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

Tweak appearance of 3D editor gizmo icons

- Use alpha scissor to resolve transparency sorting issues with gizmo
  icons relative to other transparent materials in the scene.
  This also makes gizmos visible in `screen_texture`, which means
  gizmos can now be seen through refractive materials.
  Lastly, this reduces the amount of artifacts visible around gizmo
  outlines (although they are still present at times).
- Make icons darker when not selected to be less intrusive
  (and easier to distinguish when selected).
This commit is contained in:
Hugo Locurcio
2024-04-25 20:26:32 +02:00
parent 2042420bd7
commit e52c9cd9f1

View File

@@ -912,7 +912,9 @@ void EditorNode3DGizmoPlugin::create_icon_material(const String &p_name, const R
Color color = instantiated ? instantiated_color : p_albedo; Color color = instantiated ? instantiated_color : p_albedo;
if (!selected) { if (!selected) {
color.a *= 0.85; color.r *= 0.6;
color.g *= 0.6;
color.b *= 0.6;
} }
icon->set_albedo(color); icon->set_albedo(color);
@@ -921,9 +923,8 @@ void EditorNode3DGizmoPlugin::create_icon_material(const String &p_name, const R
icon->set_flag(StandardMaterial3D::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); icon->set_flag(StandardMaterial3D::FLAG_ALBEDO_FROM_VERTEX_COLOR, true);
icon->set_flag(StandardMaterial3D::FLAG_SRGB_VERTEX_COLOR, true); icon->set_flag(StandardMaterial3D::FLAG_SRGB_VERTEX_COLOR, true);
icon->set_flag(StandardMaterial3D::FLAG_DISABLE_FOG, true); icon->set_flag(StandardMaterial3D::FLAG_DISABLE_FOG, true);
icon->set_cull_mode(StandardMaterial3D::CULL_DISABLED); icon->set_transparency(StandardMaterial3D::TRANSPARENCY_ALPHA_SCISSOR);
icon->set_depth_draw_mode(StandardMaterial3D::DEPTH_DRAW_DISABLED); icon->set_alpha_scissor_threshold(0.1);
icon->set_transparency(StandardMaterial3D::TRANSPARENCY_ALPHA);
icon->set_texture(StandardMaterial3D::TEXTURE_ALBEDO, p_texture); icon->set_texture(StandardMaterial3D::TEXTURE_ALBEDO, p_texture);
icon->set_flag(StandardMaterial3D::FLAG_FIXED_SIZE, true); icon->set_flag(StandardMaterial3D::FLAG_FIXED_SIZE, true);
icon->set_billboard_mode(StandardMaterial3D::BILLBOARD_ENABLED); icon->set_billboard_mode(StandardMaterial3D::BILLBOARD_ENABLED);