1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-17 14:11:06 +00:00

Add model_normal_matrix for fragment shader

This commit is contained in:
jsjtxietian
2023-12-10 21:32:36 +08:00
parent ee363af0ed
commit e698351db2
3 changed files with 24 additions and 0 deletions

View File

@@ -1030,6 +1030,13 @@ void fragment_shader(in SceneData scene_data) {
vec3 light_vertex = vertex;
#endif //LIGHT_VERTEX_USED
mat3 model_normal_matrix;
if (bool(instances.data[instance_index].flags & INSTANCE_FLAGS_NON_UNIFORM_SCALE)) {
model_normal_matrix = transpose(inverse(mat3(read_model_matrix)));
} else {
model_normal_matrix = mat3(read_model_matrix);
}
mat4 read_view_matrix = scene_data.view_matrix;
vec2 read_viewport_size = scene_data.viewport_size;
{

View File

@@ -839,6 +839,13 @@ void main() {
vec3 light_vertex = vertex;
#endif //LIGHT_VERTEX_USED
mat3 model_normal_matrix;
if (bool(instances.data[draw_call.instance_index].flags & INSTANCE_FLAGS_NON_UNIFORM_SCALE)) {
model_normal_matrix = transpose(inverse(mat3(read_model_matrix)));
} else {
model_normal_matrix = mat3(read_model_matrix);
}
mat4 read_view_matrix = scene_data.view_matrix;
vec2 read_viewport_size = scene_data.viewport_size;