Yesterday I discoved that Unreal Engine finally supports reflective and translucent materials at the same time. is a that many many people are waiting for! Why isn’t it announced? It is really required for realistic water. I tested it on engines 4.5 and older. There seems to be at least some progress from 4.1 to 4.5, but none are as usable as 4.6. Why can’t I find anything about in the release notes? The documentation does now mention it (but since when?) .unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/LitTranslucency/index.html
Eventhough is a good step, it still isn’t good enough. Know that many people are paying for product and it just doesn’t deliver on the main thing it is supposed to do: render!
post is inteded for Unreal Dev, so that these things finally get fixed (or explained how to make them work):
The problems I encountered so far:
REFRACTIONS:
See the screenshots:
- When you don’t use seperate translucency, the diffuse color is offset from the geometry with the refraction (which should not happen!). In fact can easily be solved. The left “pinky” material in the screenshot does its own screenspace offset and so generates the illusion of refraction, without artifacts.
- When you use seperate translucency, the depth-map is not offset with the refraction. (In these screenshots I used the depth map to opaque objects that are very deep in the water, so they become invisible. however does not work if the depth-map does not overlay the diffuse map). (I also used fresnel for opacity BTW).
- Refractions can be made depth dependent, so that objects very close to the surface hardly get refracted.
- Refractions should be angle dependent (don’t know if they are?)
REFLECTIONS:
- When you make a light stationary also my custom reflection map on a material became stationary.
SHADOWS:
- Can’t get coloured shadows. in the screenshot you see grayscale shadows for the translucent materials.
eventhought documentation says it should work: A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums - Only static lights cast translucent shadow (Documentation says the opposite: .unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/LitTranslucency/index.html)
TRANSLUCENCY:
- translucent materials should have the option to mark the depth map (write in the depth map).
- Translucent primitives are often not drawn in the right order (back to front)
- Up to UE4.5 specular highlights are not drawn on translucent materials (is it now fixed?)
SPECULAR COLOR:
- Allow materials to have a specular color other than white.
SCRAP:
- There are many blend modes wich I don’t understand. Make modes universal and understandable. (OK, maybe you can have more advanced shaders for more realistic scenes, but I would like to see universal support, so that the only difference is rendering quality. Actually I am just bothered that simple things like translucency, specular and all I mentioned above don’t work, but still exotic shaders are developed…).
- Subsurface
- Preintegrated Skin
- Clear Coat
- Subsurface Profile
- Ambient occlusions is unneeded: why don’t just use black ambient (emissive), black diffuse (base color) and black specular?
TWO SIDED
- you can’t really determine by the material input “twosided” and “pixel normal”, which side of the material is drawn.
OPACITY/REFLECTIONS:
- I seem to get inconsistent results. When testing with UE4.3 and 4.5 at first I thought I saw reflections and specular at the same time, but now its gone. In UE4.6 the opacity seems to be too strong. When I set it to 0.96 it looked like 0.5, but now all of a sudden it seems in line with expectation again. Also when I modulate the color with “Scene Color - Input data” the color just gets lighter, not darker. I blame on too many settings (So it might be my own fault that I get an inconsistent material, but there are so many paths to the wrong direction that it should be made more idiot proof). But I also suspect the High Dynamic rendering to be inconsistent. In any case is not something I can realy make a statement about.