You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Godot v4.3.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3050 Ti Laptop GPU (NVIDIA; 32.0.15.6636) - AMD Ryzen 5 5600H with Radeon Graphics (12 Threads)
Issue description
The outline of Label3Ds has transparency sorting issues, even when the outline is set to a solid color.
In all examples below, Label3D has default settings (solid colors, Alpha cut disabled).
Exhibit A: a mesh and a Sprite3D with transparency. The labels that are drawn in front of the objects have their outline's color affected by the objects behind them, which shouldn't happen with a solid color. You may also notice that the editor's grid bleeds through the outline.
Exhibit B: a mesh and a Sprite3D with a simple shader. The labels in front of the objects consistently lose their outline. The labels behind the objects may or may not render their "covered" portion depending on the camera angle (which is an issue as well), but they still lose the outline.
Exhibit C: Same shader, but this time I changed the settings on the Labels. The label behind the sprite has rendering priority -1 for the text and -2 for the outline. The one in front has 3 and 2, respectively. I don't believe this to be a viable long-term solution because objects tend to move.
I believe this to be something that needs to be fixed on engine level, because:
otherwise the default settings provide the best visual result compared to alpha hash and discard,
the user can't control the outline's rendering behavior separately, despite the fact that it behaves differently than the text.
Open the MRP and just fly around the scene in the editor. Or:
Create a Label3D with the default settings
Create a visual object with transparency. A half-transparent mesh/sprite and a mesh/sprite with a shader that writes to alpha will have different results (see the showcase above).
Since the outline is a default feature, what's the intended use? Manual sorting by depth whenever the objects move, like in my last example?
Would it help to have separate settings for the label and the outline, or perhaps a different way to implement the outline other than a second plane on the next layer? Seems like with the current implementation there's basically no way to keep the text and the outline together, since if you assign them the same render priority, they start clashing with each other.
Tested versions
Reproducible in 4.3
System information
Godot v4.3.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3050 Ti Laptop GPU (NVIDIA; 32.0.15.6636) - AMD Ryzen 5 5600H with Radeon Graphics (12 Threads)
Issue description
The outline of Label3Ds has transparency sorting issues, even when the outline is set to a solid color.
In all examples below, Label3D has default settings (solid colors, Alpha cut disabled).
Exhibit A: a mesh and a Sprite3D with transparency. The labels that are drawn in front of the objects have their outline's color affected by the objects behind them, which shouldn't happen with a solid color. You may also notice that the editor's grid bleeds through the outline.
Exhibit B: a mesh and a Sprite3D with a simple shader. The labels in front of the objects consistently lose their outline. The labels behind the objects may or may not render their "covered" portion depending on the camera angle (which is an issue as well), but they still lose the outline.
Exhibit C: Same shader, but this time I changed the settings on the Labels. The label behind the sprite has rendering priority -1 for the text and -2 for the outline. The one in front has 3 and 2, respectively. I don't believe this to be a viable long-term solution because objects tend to move.
I believe this to be something that needs to be fixed on engine level, because:
Might be related to #77153
Steps to reproduce
Open the MRP and just fly around the scene in the editor. Or:
Minimal reproduction project (MRP)
label3d-outline-test.zip
The text was updated successfully, but these errors were encountered: