In a 3D scene, a QuadMesh with a SpatialMaterial with its Billboard mode set to Y-Billboard does not retain its expected orientation when the viewed through a camera rotated on its Z axis.
Camera Z Rotation 0°:
Camera Z Rotation 45°:
If the camera is rotated beyond 90 degrees, either clockwise or counterclockwise, the QuadMesh is no longer visible.
Camera Z Rotation -110°:
I suspect this is because the QuadMesh is being rotated around the global Y axis and back faces are culled by default. When the material's culling mode is set to disabled, the QuadMesh becomes visible again.
Camera Z Rotation -110°, face culling disabled:
In my experience, this occurs in both the GLES3 and GLES2 backends.
Steps to reproduce
In an empty project:
Place a Camera node in a 3D scene.
Place a MeshInstance in view of the camera and assign a QuadMesh resource to its mesh property.
Assign a SpatialMaterial with its BillboardMode parameter set to Y-Billboard.
Set the camera's Z-rotation to anything other than 0. Higher values will produce more prominent results.
Preview the camera view from the editor. Alternatively, play the scene.
From the reproduction project:
Open the "Test Scene" scene.
Preview the "Camera 1" node to observe normal behavior.
Preview the "Camera 2" node to observe the "Test QuadMesh" node being skewed.
Preview the "Camera 3" node to observe the "Test QuadMesh" node becoming invisible.
Godot version
v3.3.3 stable (Mono build)
System information
Windows 10, AMD Radeon RX 480M, GLES3
Issue description
In a 3D scene, a
QuadMesh
with aSpatialMaterial
with its Billboard mode set to Y-Billboard does not retain its expected orientation when the viewed through a camera rotated on its Z axis.Camera Z Rotation 0°:
Camera Z Rotation 45°:
If the camera is rotated beyond 90 degrees, either clockwise or counterclockwise, the
QuadMesh
is no longer visible.Camera Z Rotation -110°:
I suspect this is because the
QuadMesh
is being rotated around the global Y axis and back faces are culled by default. When the material's culling mode is set to disabled, theQuadMesh
becomes visible again.Camera Z Rotation -110°, face culling disabled:
In my experience, this occurs in both the GLES3 and GLES2 backends.
Steps to reproduce
In an empty project:
Camera
node in a 3D scene.MeshInstance
in view of the camera and assign aQuadMesh
resource to itsmesh
property.SpatialMaterial
with itsBillboardMode
parameter set to Y-Billboard.From the reproduction project:
Minimal reproduction project
YBillboardingZRotationTest.zip