-
-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce visual clutter from lights and probe gizmos in the 3D editor #6564
Comments
I think it makes sense to hide radius gizmos for unselected Light3D and AudioStreamPlayer3D nodes.
Not being able to see bounds for unselected nodes can be problematic in some scenarios though. For instance, if you're resizing a ReflectionProbe based on nearby ReflectionProbes' extents (so that every part of your level is covered by at least one probe), you need to see unselected ReflectionProbes' extents. This also applies to nodes such as VoxelGI. A middleground solution would be to only display unselected nodes' gizmos if they're of the same type as the currently selected node.
The x-ray gizmo mode in the View > Gizmos menu already does this, although it affects both the icon and the lines material: This also doesn't display occluded icons/lines with half opacity, but this requires a dedicated material for each gizmo to be done (similar to what the 3D selection box currently uses). |
Allow the extents to be viewed/edited for all selected reflection probes in that case. In practicality this isn't an issue though, since probes blend pretty seamlessly as long as they overlap to some degree. When no blending is present, there's already a hard and visible edge between the sky reflection and the probe's extents. Godot really doesn't offer an advantage with the current approach, the visual clutter from these features is incredible in comparison to Unity/Unreal. |
I've created a project with most 3D nodes that display gizmos: test_3d_gizmos.zip I've also toyed around with a solution that hid gizmos for all unselected nodes, but I feel it's confusing for nodes that don't have large gizmos (such as RayCast3D or VehicleWheel3D). |
I'm most familiar with the way reflection probes/lights work in other engines, so the other objects will likely come down to case-by-case proposals by others with more experience in them. |
Describe the project you are working on
Graphics testing scenes for engine development.
Describe the problem or limitation you are having in your project
Godot's lights and probes are extremely clutter-prone in the 3D viewport. They show their direction, bounds, range etc. at all times, and obscure darker scenes very easily. It's not practical to keep turning gizmos on/off when legibility is needed, when we simply don't need to see all this information all the time:
Here's a screenshot from Unreal for comparison. This scene contains a dozen reflection probes and 3 lights on-screen, which would easily become cluttered in Godot:
Unity and Unreal have some sensible solutions to viewport clutter, and it's worth focusing on the ones that Unity employs as Godot's nearest neighbor in the game engine space.
Reflection probes are a simple orb icon, which when clicked will show their full bounds and sample point:
Lights are simple icons without any range information until they are clicked, that will scale smaller as the camera moves away:
Lights will also turn transparent when hidden behind objects:
Describe the feature / enhancement and how it helps to overcome the problem or limitation
I propose these solutions, which are already industry standards utilized by Unreal and Unity:
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
See above
If this enhancement will not be used often, can it be worked around with a few lines of script?
No
Is there a reason why this should be core and not an add-on in the asset library?
Core engine functionality
The text was updated successfully, but these errors were encountered: