Browse Source

Merge pull request #90255 from Jabberdrake/bugfix-new

Fix 3d axes flickering in the negative direction when extremely zoomed out
Rémi Verschelde 1 year ago
parent
commit
dfcf803724
1 changed files with 7 additions and 2 deletions
  1. 7 2
      editor/plugins/node_3d_editor_plugin.cpp

+ 7 - 2
editor/plugins/node_3d_editor_plugin.cpp

@@ -6639,8 +6639,13 @@ void fragment() {
 
 
 			for (int j = 0; j < 4; j++) {
 			for (int j = 0; j < 4; j++) {
 				Transform3D t = Transform3D();
 				Transform3D t = Transform3D();
-				t = t.scaled(axis * distances[j + 1]);
-				t = t.translated(axis * distances[j]);
+				if (distances[j] > 0.0) {
+					t = t.scaled(axis * distances[j + 1]);
+					t = t.translated(axis * distances[j]);
+				} else {
+					t = t.scaled(axis * distances[j]);
+					t = t.translated(axis * distances[j + 1]);
+				}
 				RenderingServer::get_singleton()->multimesh_instance_set_transform(origin_multimesh, i * 4 + j, t);
 				RenderingServer::get_singleton()->multimesh_instance_set_transform(origin_multimesh, i * 4 + j, t);
 				RenderingServer::get_singleton()->multimesh_instance_set_color(origin_multimesh, i * 4 + j, origin_color);
 				RenderingServer::get_singleton()->multimesh_instance_set_color(origin_multimesh, i * 4 + j, origin_color);
 			}
 			}