My game uses post processing to tint the light (because it has underwater elements), but this tinting also affects 3D UI elements, which makes them unreadable.
Is there any way for 3D UI to not be affected by post-processing?
I found this question about lighting and post processing, but all the issues linked in it are dead links and there haven’t been any news on disabling post processing for UI in a while.
Currently I’m unable to use UI due to this.
I would also like to see a proper solution to this.
Currently we have a non-square, semi-transparent UI which we have on genie ‘shops’ placed in the world.
The genie has flames on its body which causes a distortion effect. The issue being this also affects the UI making the text harder to read. see below:
None of the hacky solutions I’ve come across have been usable so far.
Being able to render the UI after the PostProcessing has been applied would be great.
We have the same problem with the HUD for our VR title - just want to draw it after the posteffects. Can’t find any documentation of Unreal’s frame draw order. I could render it to an offscreen surface and composite it back on but that seems like a ton of work for what should be a simple ordering change…
We have the same issue and its annoying as hell!
I think I found a solution for you guys! Use materials instead of images and put the material domain on User Interface
(this probably renders out after the post processing). Than you simply have to drag you material into your widget.
Let me know what it does for you guys!
I gave this a quick go, however it doesn’t work.
Changing the material domain doesn’t change it’s render order.
Also this wouldn’t fix the main issue I have, which is specifically text.
The changes would need to be made in the Widget3DPassThrough_Translucent_OneSided (or related) material as this is the material that is used to render the UI onto the in-game mesh after the UI is rendered into a TextureRenderTarget. (And changing this to UI stops it from working)
Can you tell me if you set the rendering blend mode to transparent? For a 3d widget you need a BP and a component (which you may know already)
The image with the shop and genie above is what we have in-game.
As you can see, the character is visible through the 3D widget UI elements. (Item icons, background circle) And I even mention in the comment that it is a ‘semi-transparent UI.’
This is NOT a solution that works.
Have you actually tried your solution in a test setting or is this just a guess? Also as I mentioned before this doesn’t fix the major issue which would be for text widgets. (As the PP messes with their readability)
Also, could you please comment on an existing answer for discussions instead of creating a bunch of answers which make the discussion awkward and all-over the place.
Guess someone is having a bad day. Yes I tested it and for us it fixed the problem. NO post processing on 3D UI. Not even text.
Not quite sure why me saying that your solution doesn’t work == me having a bad day…
On topic: you say “this probably renders out after the post processing” so I recreated what you did again and it didn’t work. See material here:
And after using it as the brush material in a UI widget I get the following when I use a distortion effect in proximity to the 3D widget component:
In the video you can see I’ve set the Blend mode to “Transparent” as you state.
And the UI is distorted, meaning the solution does not work. That’s all.
I’m curious as I don’t see the difference between our settings.
For us (2nd image) it fixed the issue.
Can I see your texture settings? I want to recreate your issue.
Were there any updates to this? We’re also trying to figure out some workaround and it’s pretty frustrating.
No I’m afraid not.
From what I can tell their solution seems to work for (I’m assuming) whatever node(s) they’re using for the cellshading/outline shader but is not a fix all solution.
It’s possible the object is being removed from the depth buffer and the shader doesn’t get applied? (This is just a guess however)
Hey all, came across this as still being the top google search result in 2020. Thought I should mention that using custom depth pass worked for me. Just have to set use the below blueprints in the post processing material, set the 3D text to render custom depth pass, and that should be it. As shown in the [Make Believe] screenshot below, I can now use Cel Shading in post processing while also using a 3D text component for the alarm clock!
The Custom Depth pass solution didn’t seem to help, as again, that requires a full Cel shader set up, from what I understand. After further investigation I can see that they’ve actually added an option in Unreal Engine 5 to disable Post Processing effects on 3D Widgets, but that doesn’t really help any of us in our current situation. And no, the option thats in Unreal 5 isn’t in Unreal 4, just hidden. At least, I couldn’t find it if it is.
One tiny solution I found (but that doesn’t look very nice) is darkening every element’s tint in the widget. Simply take the tint and drop it from white to a dark grayish. I noticed this made the colors less washed out and bright, but it also seemed to lower the saturation just enough to be noticeable. Not to mention, CA, Motion Blur, Exposure, and other effects still overlayed the text, effectively turning it to chickenscratch.
Anyone got any ideas?
Hey! Just read this and thought I’d chime in! Having came to no potential fix. I experimented and found that if you set the blendable location within the material to “before translucency”, it’ll ignore the post processing. Hope this helps and is less convoluted than other answers which didn’t fix my issue.
Still need to experiment if it causes any potential issues. I’ll update this if I find any!
Can anyone point me to the documentation where this is explained. I cannot find anything about this.
Hi @anonymous_user_5357e441 ,
Could you please share where you saw “that they’ve actually added an option in Unreal Engine 5 to disable Post Processing effects on 3D Widgets”, or explain where to find this in the UE5 IDE?
This would be really helpful if it actually made it into UE5 and it sounds like something that people have been asking for in the forum for many years.