Download

Decal MultiOpacity Feature?

Hello everyone! =D
Recently I’ve been looking around at how games like Star Citizen and Doom Eternal do their art. And quite simply it’s mesh decals ofc. But something I saw these other games having was mesh decals that use diffrent opacity for different material channels. What i mean is like You can have a inset screw where the inset is just the normal but the screw in itself overwrite also the metallic and reoughness channel.
I did some digging and quite fast I found this: Expanding DBuffer Decals — polycount that lead me to this Metalness in DBuffer decals - Unreal Engine Forums .
And something that became apparent was that part of his stuff seems to have been implimented in the engine itself? We got the metallic channel now which is something I don’t think we alweys have had. (not sure maybe we have and I’m just miss remembering xD).
But I digress, What is important to me was that his “multi opacity” feature was not in the engine? Or so I thought… I read this: Multimasking opacity in Dbuffer decals not properly implemented - UE4 AnswerHub that did not get any answer. But checking it myself… and yes there are a point in the /Engine/Shaders/Private/DecalCommon.ush that say:
// @param MultiOpacity .x: Color, .y:Normal, .z:Roughness
float3 MultiOpacity = Opacity;

EncodeDBufferData(Data, MultiOpacity, Out.MRT[0], Out.MRT[1], Out.MRT[2]);

But this don’t work or as far as I can tell is not “yet” fully implimented. =/
I just wanted to see if anyone here knows what’s up? Is this a misstype in the code for a feature that should be there? Cuse these posts where done like 2 years ago.
If anything if this could easily be implimented as a settings thing in the project like enabling debuffer decals and Multi Opacity Decals, I think that would be an amazing feature. As I can see him talking in his making of this that it has a performance impact and this is very “nish” to a sertain type of workflows.

Anyhow… I want this feature alot xD
Have an awesome day and I hope someone can help.

Quite possible it was sketched to be a feature at some point, but got scratched for some reason.
You only need to add extra output pin for decal material for multi-channel opacity and do a bit of touch-up on the shader to get it running.

Ohh sounds resonable xD
And well… I wish I knew how to do that! xD I mainly do basic 3D art stuff so my programming knowladge is not much more than some simple setups in BP’s. But maybe I’ll have to look into how to learn how to do that somehow =P. Do you have any tuts recomended on how to aproach this? Like i have basic knowladge of C++ but Where and how to add things to the engine code I’m kinda lost in xD.

There’s a pull request that exists for this that has been backlogged pending review for nearly two years. Supposedly it merges just fine so you could just use that.

https://github.com/EpicGames/UnrealEngine/pull/5463

Really!? =O
I need to check that when I come home =P.