Translucency Clipping Problem with Opaque Objects

We’re having a problem with the material opacity blend mode. In this simple test case, the opacity node is set to 1.0, so the material should be fully opaque, yet it appears partially transparent. My guess is some z-buffer clipping issue here. First came upon this when the refraction node wasn’t producing any refractions. This particular setup is running Intel HD Graphics 4600 and a Geforce 840M.

Hey ue24acct -

Have your tired the same material on a simple box mesh? That particular mesh has a mesh which is modeled fully outside and inside so the material translucency does have some conflicts with with Z sorting. Most meshes should not be constructed in this fashion for a transparent object.

Thank You

Eric Ketchum

Not sure why the system won’t let me post a comment with images attaches to it, but here’s the album on imgur - see Screenshots

So, it is hard to visualize this error with a simple box mesh since there are no forward-facing surfaces behind other forward-facing surfaces. I’ve replaced the mesh with a box mesh from starter content and applied a normal map for better visualization. As seen in screenshots 1 and 2, it still appears partially translucent and you can still see the world lines through the mesh, even when it should be fully opaque.

For better visualization I’ve also used the half-torus mesh from starter content and you can see in screenshots 3 and 4 it having same clipping trouble as the initial mesh.

In screenshots 5 & 6, you can see how the half-torus looks with the opacity at 0.0 and refraction index of glass at 1.52. It should be creating refracting distortions, but it appears completely see-through.

Hey ue24acct-

Try making sure that have disabled Enable Separate Translucency in the Material Attributes as well as setting the Translucency Lighting Mode to TLM_Surface. Let me know if you are still having the opaque issue, realizing that Translucent Materials will never render exactly like Opaque Materials.

Thank You

Eric Ketchum

An update: When the game is built and launched externally from the editor via the Launch option, the translucent material with opacity set to 1.0 is still rendered as partially see-through, like it is in the editor.

Though when the opacity is turned to 0.0 and a refraction constant of 1.52 is plugged in, the material does appears refractive, but there is still some issues with the front-facing faces sorting, as seen in the half-torus on the left in the second screenshot attached to this comment.

TLM_Surface setting has been the used from the start. When Separate Translucency is turned off it doesn’t change how objects with opacity 0.0 appear in-game, but when opacity is turned up to 1.0, all kinds of weird refractions start happening, see screenshot attached to this comment.

Are you saying that when materials are rendered with blend mode Translucent, even though they have set opacity of 1.0 (fully opaque), they are never actually fully opaque and are partially see-through by design? If so, then the z-sorting problem of where parts of opaque objects are rendered on top of each other isn’t a bug per se.

However, for objects with fully translucent materials (opacity set to 0.0), refractions should still be showing up in the editor as opposed to them only showing up when the game is launched, correct?

Hey ue24acct-

Thanks for your patience and helping me track this down. The bug exists in the Z Render order on meshes which wrap around each other, Convex Meshes. When opacity is 1, the mesh will want to render the back faces as the front faces along the overlapping convex curve. From your earlier pictures you can see that the Opacity=1 Translucent Cube is rendered correctly Opaque (notwithstanding seeing the Grid lines through it which is a known editor bug and not involved with the scene render itself.) You should disregard my earlier statement about the Disable Separate Translucency, I was thinking the issue lied in a different direction. I have entered the bug report and will keep you up to date as I know more.

Thank You

Eric Ketchum

Hello, it seems this hasn’t been solved yet. I’m making a subway entrance, part concrete/metal and part glass. Wanted to do this with a single material, set to translucent and just masked opacity as white in the concrete/metal parts. But I narrowed it down to exactly what has been mentioned in this discussion: a simple SM_DoorFrame mesh from the starter content, with a translucent material and opacity simply set to 1, has back faces rendered in front of front faces (only viewed from one side though).

I looked into layered materials, but it seems you can’t blend two materials of different types (one opaque and one translucent).

Is using a separate mesh for the glass parts the only workaround? Thank you.

1 Like

Hi, I came into the same problem , have you figured this out ?

Hi, I am also seeing the same behaviour in 4.13.2

Any idea what the bug tracking number is on this so I can keep up to date?

Thanks,
Brad

Still have this issue in UE 4.18.1

Hi, if anyone still have this issue, here is a workaround for it: UE4: How to fix translucent materials (dithered opacity) - YouTube

The only issue with this is that the Opacity can only be 0 or 1, but with a little bit of randomization it looks relatively good.

1 Like

Have you tried this?

Culling Inner Triangle section

Is that what you are looking for? Although it’s a workaround, it worked great in my case. Hope this helps.

I read about this before posting a comment here. No, it’s not what I’m looking for.
But I solved this problem by swapping material to non-glass, but similar looking, after I’m changing glass opacity from 0.05 to 1.

I’m using an Instance of the Automotive Glass material from Epic games.
looks like for me the culprits are the Transparency Lerp A and Lerp B.
I had to turn them both to 0 to get rid of the see through artifacts.

This is the answer for this I think: