Przeglądaj źródła

Merge pull request #51989 from drcd1/non-uniform-scale-fix

Fixes non-uniform scaling of normals
K. S. Ernest (iFire) Lee 4 lat temu
rodzic
commit
fe1d551543

+ 1 - 1
servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl

@@ -118,7 +118,7 @@ void main() {
 
 	mat3 world_normal_matrix;
 	if (bool(instances.data[instance_index].flags & INSTANCE_FLAGS_NON_UNIFORM_SCALE)) {
-		world_normal_matrix = inverse(mat3(world_matrix));
+		world_normal_matrix = transpose(inverse(mat3(world_matrix)));
 	} else {
 		world_normal_matrix = mat3(world_matrix);
 	}

+ 1 - 1
servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl

@@ -124,7 +124,7 @@ void main() {
 
 	mat3 world_normal_matrix;
 	if (bool(draw_call.flags & INSTANCE_FLAGS_NON_UNIFORM_SCALE)) {
-		world_normal_matrix = inverse(mat3(world_matrix));
+		world_normal_matrix = transpose(inverse(mat3(world_matrix)));
 	} else {
 		world_normal_matrix = mat3(world_matrix);
 	}