Odd Quirks [blitz3d]

Started by MrmediamanX, January 04, 2024, 14:30:11

Previous topic - Next topic

MrmediamanX

I have started a topic for show casing odd native bugs/rendering/glitches in blitz3d.

Bug: Odd render on masked image.
Cause: The images size slightly exceeds screen draw size.
fix: use sprite or decrease size of image.
Oddity: only occurs on certain modern graphics cards.



Anyone is free to post and contribute to the topic with their own renders/bugs and stuff.
It's a thing that doe's when it don't..

MrmediamanX

#1
Bug: renders surface as white [similar to no textures being rendered] during animated texture cycle.
Cause: Over counting of frames within the animated texture [even if a frame counter with a Capp in used].
fix: use a static single frame texture or less frames in the same texture [animation will not loop however].
Oddity: only occurs on certain graphics cards due to faster timing.

It's a thing that doe's when it don't..

MrmediamanX

Bug: Last screen image rendering under the new screen image.
Cause: The usage of masked image's or any section completely black will be rendered on the new screen buffer during next step.
Fix: Use an off black image or use 'drawblock' for the new image or screen.
Oddity: only happens with images.


It's a thing that doe's when it don't..

RemiD

#3
interesting infos, thanks  :)

after all these years, i have noticed a few bugs / graphics artifacts :

-camerazoom does no work on some graphics cards : (solved)
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/graphics-artifacts-black-lines-using-camerazoom/

-no text is drawn on texture : (solved)
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/no-text-is-drawn-on-a-texture-when-using-text-blitz3d-solved/

-entityPitch() entityYaw() entityRoll() return sometimes incorrect values depending on how the entity is oriented... : (solved)
solution : keep track of the pitch, yaw, roll of the entity using variables.

-mav at renderworld() if number vertices exceed 32000 or number of triangles exceed 32000 in a surface : (not solved, it is a directx7 limitation)

-updatenormals() does not calculate the appropriate normals : (solved)
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/bug-updatenormals-mesh-does-not-calculateset-the-correct-normals-fixed/
or use appropriate smoothing groups in your modeling editor...

-surface colored with vertexcolor() becomes transparent if vertexR, vertexG, vertexB have negative values :
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/bug-or-weird-behavior-with-vertexcolor-fixed/

-meshes / surfaces which are textured with a texture with alpha may flicker if one is inside the bounding box of another (not solved, entityorder may help in some cases)

MrmediamanX

Quote from: RemiD on January 06, 2024, 19:00:31interesting infos, thanks  :)

after all these years, i have noticed a few bugs / graphics artifacts :

-camerazoom does no work on some graphics cards : (solved)
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/graphics-artifacts-black-lines-using-camerazoom/

-no text is drawn on texture : (solved)
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/no-text-is-drawn-on-a-texture-when-using-text-blitz3d-solved/

-entityPitch() entityYaw() entityRoll() return sometimes incorrect values depending on how the entity is oriented... : (solved)
solution : keep track of the pitch, yaw, roll of the entity using variables.

-mav at renderworld() if number vertices exceed 32000 or number of triangles exceed 32000 in a surface : (not solved, it is a directx7 limitation)

-updatenormals() does not calculate the appropriate normals : (solved)
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/bug-updatenormals-mesh-does-not-calculateset-the-correct-normals-fixed/
or use appropriate smoothing groups in your modeling editor...

-surface colored with vertexcolor() becomes transparent if vertexR, vertexG, vertexB have negative values :
https://www.syntaxbomb.com/blitz2d-blitzplus-blitz3d/bug-or-weird-behavior-with-vertexcolor-fixed/

-meshes / surfaces which are textured with a texture with alpha may flicker if one is inside the bounding box of another (not solved, entityorder may help in some cases)
Solid find i'll certainly go through these.  :)
It's a thing that doe's when it don't..

MrmediamanX

Bug: Skewed 'Rect' 
Cause: The Rect somehow responds to orientation of either camera or player entity.
Fix: Use a sprite with scaling assigned via a variable or simply use a number font counter [only shows numbers].
Oddity: only happens with 'Rect' on certain graphics cards.

It's a thing that doe's when it don't..

RemiD

jet set radio vibes in your screenshot. ( i like roller freeskate :) )

RemiD

#7
-when building a procedural mesh (surface), if the mesh is then set as a child of an entity (in case of a hole / cut mark which must turn / move with the shape which has been hit (picked) ), the weird results you may have, even if your procedure seems correct, is because a child entity is influenced by the scale (scaleentity()) of its parent !
solution : scale your parent mesh using scalemesh().

MrmediamanX

Solid find, I found that if a Child entity is parented and the positionentity entityX(),entityY(),entityZ() command is used as well, it tends to move the child entity double the position of the parent entity.
It's a thing that doe's when it don't..

RemiD

#9
Quoteit tends to move the child entity double the position of the parent entity
i have never seen that...

it may be related to what i have noticed and explained :

if a mesh / entity is set as a child of another entity (parent), if the parent entity has been scaled using scaleentity(), the child entity will be also scaled the same way (which may alter its root position or the positions of its vertices). 

(if you use scalemesh() to scale the mesh of a parent entity, the child entity will not be affected because the scale of the parent entity is still 1)


can you show me a code example of what you say, i will take a look...