You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This behavior can be noticed when building the engine with double precision (precision=double).
Comparison between 4.1.dev (double precision) and 4.0.stable (single precision):
4.1.dev (with double precision)
4.0.stable (with single precision)
According to my testing, the following bit on "scene_forward_clustered.glsl" is responsible for this behavior:
Code for reference:
// We separate the basis from the origin because the basis is fine with single point precision.// Then we combine the translations from the model matrix and the view matrix using emulated doubles.// We add the result to the vertex and ignore the final lost precision.vec3 model_origin = model_matrix[3].xyz;
if (is_multimesh) {
vertex =mat3(matrix) * vertex;
model_origin = double_add_vec3(model_origin, model_precision, matrix[3].xyz, vec3(0.0), model_precision);
}
vertex =mat3(model_matrix) * vertex;
vec3 temp_precision; // Will be ignored.
vertex += double_add_vec3(model_origin, model_precision, scene_data.inv_view_matrix[3].xyz, view_precision, temp_precision);
vertex =mat3(scene_data.view_matrix) * vertex;
Removing it and leaving the "else" path as the default gets rid of this behavior:
Code for reference:
Build from master with precision=double, create a scene and add a MeshInstance3D with any mesh whose Material has "billboard" enabled (both "enabled" and "Y-Billboard" fails)
Godot version
v4.1.dev.custom_build [1e0194a]
System information
Linux X11, Vulkan, Forward+, RX6600XT
Issue description
This behavior can be noticed when building the engine with double precision (precision=double).
Comparison between 4.1.dev (double precision) and 4.0.stable (single precision):
4.1.dev (with double precision)
4.0.stable (with single precision)
According to my testing, the following bit on "scene_forward_clustered.glsl" is responsible for this behavior:
Code for reference:
Removing it and leaving the "else" path as the default gets rid of this behavior:
Code for reference:
CC-ing @clayjohn as per @Calinou request on Rocket.Chat
Steps to reproduce
Build from master with precision=double, create a scene and add a MeshInstance3D with any mesh whose Material has "billboard" enabled (both "enabled" and "Y-Billboard" fails)
Minimal reproduction project
Can be reproduced using godot-demo-projects#894.
The text was updated successfully, but these errors were encountered: