How to handle transparency in 3D widget

Helly there,

I’m trying to have a 3d widget with transparency in UE4. When the widgets moves, the widget becomes blurry and unreadable. It is not placed in a postprocess with motion blur.

When I check the box “Is Opaque” in the rendering options of the 3D widget, the problem is solved, but the widget isn’t translusent anymore.

Can anyone help me to solve this?

Thanks in advance and kind regards,

ERuts

This is because each frame, the widget is rendered on top of the previous frame. In order to correctly show transparent windows, you need to clear the frame buffer before re-rendering it the next frame.

This is handled automatically by using a material of the correct translucency type, since it is moved later in the rendering pipeline: see Using Transparency in Unreal Engine Materials | Unreal Engine 5.2 Documentation

See UMG Styling in Unreal Engine | Unreal Engine 5.2 Documentation for using dynamic materials as a Slate Brush.

Hope this helps.

The content of the widgets are not materials but textures. Within the texture, transluceny is used. I’m not sure what you propose for a solution.

Ensure that you render with a material, instead of a texture. With dynamic material instances, you can change the render pipeline settings and hence fix the issue. It boils down to the following: ensure that you use a translucent material, instead of the default material, to render your transparent widget.

It can even be sufficient to use Material-based Images (UMG Styling in Unreal Engine | Unreal Engine 5.2 Documentation) in UMG/Slate, and skip the dynamic material instance altogether.

Material-based images have no effect. It is not an option to move the widget to a mesh, since it is no longer interactive then.

The problem is that the transparent image is not properly removed from the buffer when the next frame is rendered. This only happens with a movable object that moves through 3d-space, but is still on a fixed position relative to the camera.

Disabling motion-blur reduces the effect, but it remains visible. But we need it to be unnaffected by the world.

Feature request: we need for Unreal to render 3d widgets in a whole separate pass from the rest. Widgets should not be affected by post-processing or other weird realistic rendering artifacts, because it severely reduces legibility of them. Just like regular HUD elements are rendered on-top of the world!

Does anyone has new information?