I know this topic is a never ending story, but at least there was a workaround to get kinda multi-opacity for decals:
With the new system, this workaround seems not possible anymore?
You can only get four D-Buffer values (textures): Color, WS-Normal and Roughness and only one Alpha value for the A, B and C D-Buffer Textures.
There is now way to get a unique RGB+A Albedo value from the color pass of the decal material. If you key color values in the decal material, it is always interpreted as black in the response material.
Is there any blending method to bypass this problem?
One method is to pass through a coordinate system (UVs for example) and index(es) through dbuffer instead of the actual decal. Then the receiving material can map any number of texture samples to that coordinate system.
This effectively frees you of the dbuffers limited channels, but the drawback is you’ve moved a bunch of complexity to the receiver material.
I’ve already tried to pass an rgb mask (texture) through the “Customized UVs”, but the response material only gives me the UVs (gradients) of the corresponding mesh, not the mask channels of the decal material:
After some testing, everything works with mesh decals, except POM.
If I use POM, this method will only shift the normal values on two axis. I don’t really get a height value, it just offsets the UVs on the two axis based on the camera vector.
I guees, it works only with decal actors, but not with mesh decals, which have their own tangents?
Is there a way to get the tangent normals of the decal mesh and use it with the Camera Vector in Unreals “POM Function” to get a proper a world space alignment?