Replies: 1 comment
-
Thanks for the proposal! Consolidating in #6604.
This is done for efficiency for flexibility reasons. If the overhead of MSDF font rendering (and limited flexibility) is not a problem for your use case, enable MSDF for the font in the Import dock (or enable Default Font Multichannel Signed Distance Field in the project settings if using the default font). This means the Label3D will be crisp at any size, but this is slower to render and doesn't support colored fonts (such as emoji). You don't need to scale nodes or anything like that to achieve this. (If you really want to use this approach, change Pixel Size on the Label3D node instead so you don't need to scale the node.) |
Beta Was this translation helpful? Give feedback.
-
Godot's 3D UI Needs Serious Improvement
Getting 3D UI to work well in Godot is terrible. If you try to use anything other than
Label3D
orSprite3D
, you’ll run into all sorts of issues.Blurry Text and UI Scaling Issues
For example, adding a
Label
results in extreme blurriness unless you make the font size huge and then scale down its parentSprite3D
.Positioning is Unclear and Slow to Update
Any changes to UI elements in 3D—like positioning, anchoring, or even changing fonts—is frustrating.
Nodes inside a
SubViewport
aren’t even visible in the2D
tab, even though Godot automatically switches to it when you click on them. So you have to manually click back to the3D
tab after selecting them to preview any changes.On top of that, some UI changes update slowly in 3D and can cause you to think changes haven’t been applied.
The Current Workaround Is Ridiculous
Right now, you have to go through all these steps just to get a functional 3D UI:
2D
at a large size (especially fonts).Sprite3D
with aSubViewport
, set theSprite3D
's texture to the viewport texture, then assign the correct viewport.2D
UI as a child of theSubViewport
.SubViewport
.Sprite3D
to avoid blurriness.Why does something so commonly used require so many workarounds?
This Needs to Change
Almost every 3D project needs some form of
2D UI
in 3D, and right now, it’s just not good.As someone who has been working exclusively with Godot 3D games for over 2 years and even released a Steam game, I truly believe this is one of the biggest issues with Godot’s
3D
workflow.Adding a
Sprite3D
takes less than 10 seconds, but setting up2D UI
in 3D took me almost a minute as someone who knows all the steps required:Recording.2025-03-01.121815.1.mp4
Beta Was this translation helpful? Give feedback.
All reactions