Alex you are one of the best content creators for Unreal thank you for all your work.
@TechArtAlex Жыл бұрын
Thanks so much!
@nicocluckers246710 ай бұрын
I've been trying to figure this out for a while. Thanks for explaining it so well!
@TechArtAlex10 ай бұрын
Glad it helped, thanks for watching!
@SkemeKOS Жыл бұрын
Thank you!
@TechArtAlex Жыл бұрын
Thanks for watching!
@teratronwrx17 ай бұрын
Awesome!
@TechArtAlex7 ай бұрын
Thanks!
@AlexQuick-s4m5 ай бұрын
Very helpful video! Thank you I have been trying to use the DBuffer Color information as an opacity mask, but it doesn't seem to work. Do you know why this might be? Is it simply impossible to use that data for opacity? I had assumed it was just a set of color channels so it could be used as a generic "mask" but that doesn't seem to be the case.
@TechArtAlex5 ай бұрын
The dbuffer unfortunately cannot be used in any way that would alter the depth of a pixel or world position of a vertex, including changing opacity. It has to do with the order in which things are drawn. The decal is mapped into the mesh using world coordinates of a given pixel, but changing the opacity would reveal a different pixel with a different position. Basically it would be a circular dependency if it was allowed.
@AlexQuick-s4m5 ай бұрын
@@TechArtAlex unfortunate, but makes sense!
@vaillecgart185411 ай бұрын
I have a question regarding the custom response. Is there a way to have this a custom material response, but only answering to specific type of decal ? As for now , the custom material response in the recieving material will treat any decal I project the way I set it up. But is there a way where a material could hanlde both , "regular" decal response, and, a custom decal response, depending if the decal type I use is set to be recognized as such ? I got something kind of working by storing an information like "If specular from projected decal is 0.51 instead of 0,5, use custom material response". This way on a surface, I can have two decals, behaving differently, but the limitations is that I cannot overlap these two without having values mixed up and artifact. I guess there is no way around, but I'm curious if you would know something that could help achieve this ? I hope the way I explained it is not too bad, anyway, thanks again for these amazing video ! :D
@TechArtAlex11 ай бұрын
Right, you would need to use one of the values (like specular) as an index to control which decal logic to apply. Overlapping gets tricky. There is only one dbuffer, so they are both writing their values to the same pixel. Either the top sorted decal wins entirely - or when using opacity, a resulting blend between the two (causing your encoded values to both be wrong). There are other ways of projecting "decals" you could use instead in some cases. For example, using the "StaticMeshDecal_Function" can imitate a decal projection using a translucent mesh. This doesn't use the dbuffer at all, allowing for a second layer. Translucent materials have their own limitations though. You may also be able to achieve something with dithering.
@vaillecgart185411 ай бұрын
@@TechArtAlex I forgot about this one ! Going to experiment it aswell. For now, I'm currently trying a "solution" via the metallic, with an IF any value above 0, then its special decal type "treatment". It seems to work, but it mean I cannot project any regular decal with metallic on the material recieiver, otherwise causing artifact like previously. But this way, I can overlap the "Special Decal" and regular decal, without issue. Anyway, thanks for your answer, Its really nice to share with you ! :D
@TechArtAlex11 ай бұрын
@@vaillecgart1854 Sure thing, thanks for watching!
@qwetry-j2u Жыл бұрын
Great feature! I was missing that in UE4. One question: does it work the same way with mesh decals too?
@TechArtAlex Жыл бұрын
I haven't tested it, but I doubt it. This is because I think they don't update the dbuffer until after opaque geometry is drawn, so it would be too late for the mesh to sample it. But I guess it couldn't hurt to give it a shot.
@JieDu-yj2vd Жыл бұрын
The receiver can decide whether or not to display the receiver's normal in decal, but only if decal's Normal slot can't connect anything or it won't work, but why
@GatyhInteractive6 ай бұрын
do you know if you can use normalWorldSpace with a dot product (0.0.1) to get the slope angle on a decal ? Cause i can't find a way to make it work !
@TechArtAlex6 ай бұрын
Yes, the decal will only output its general facing direction if you try to sample its normal. The decal can also sample the world position, which allows normals of the underlying surface to be calculated - however they will not be smooth. What in particular isn't working when you try?
@Pullow7 ай бұрын
Hi Alex. I've been trying to create a blood system that intereacts with surfaces - How can I make the decals control the surface blend of every material ? instead of going to every single surface material to apply this setup. Can't I control all of those effects in my Decal Material ?
@TechArtAlex7 ай бұрын
Your options will be very limited, since the decal material is not able to sample everything within the material it would need (such as a heightmap). This new workflow was designed to allow for that type of interaction, but with the downside of needing to be told how to interact on a per material basis. The best way to approach this is to use a master material / material instance workflow that contains the logic for how a particular decal should interact with something. This way each material instance can interact with it automatically, but with its own unique variables and textures.
@Pullow7 ай бұрын
@@TechArtAlex That's sad... Even the normals from the surface ? It seems I can't blend my decal normal with surface normals to achieve the "absorption" effect.
@TechArtAlex7 ай бұрын
@@Pullow Unfortunately. Last I checked, the decal materials can currently only sample the world position derived vertex normals, not the pixel normal. This can be used to mask the decal from appearing on surfaces that aren't properly aligned with it, which can prevent stretching artifacts - but probably not for detailed special effects.
@Pullow7 ай бұрын
@@TechArtAlex Alright then. Thank you, Alex
@JieDu-yj2vd Жыл бұрын
In UE, decal's three-plane projection of normals, other than what you do in your video, WorldAlignedNormal doesn't seem to work with patches that turn black
@TechArtAlex Жыл бұрын
You can get a reasonably correct tri-plane decal normals if you calculate them in world space. But what I show is probably the only way to get perfectly accurate tangent space normals.
@AdnanSky-sm2xk7 ай бұрын
great content. is there any way to use decal normal but still get the underlying mesh normal effect on the decal? i am trying to make a blood pool effect like the ones from last of us 2.
@TechArtAlex7 ай бұрын
Thanks! Yes, you can blend the dbuffer sample normal output and the base material normal and/or heightmap using any math you'd like using this technique.
@DevilDaggersFan8 ай бұрын
For some reason my decal's roughness parametr only works decal's perimeter, not entire decal. Why? LERP, where: A - Scalar parameter (decal's roughness) B - ORM Green Channel Alpha - DBuffer Alpha
@DevilDaggersFan8 ай бұрын
Normal Flatten works OK (using Dbuffer Colour)
@TechArtAlex8 ай бұрын
You'd have to unplug each channel and test combinations individually to see which is causing the roughness not to work.
@JieDu-yj2vd Жыл бұрын
I want to keep both, with decal's normals working at the same time as the receiver's normals, equivalent to mixing the normals of both
@TechArtAlex Жыл бұрын
Use the node "blend angle corrected normals" with the base normal going into input 1 and the decal buffer normal going into input 2.
@JieDu-yj2vd Жыл бұрын
@@TechArtAlex I tried it and it didn't work. If the normal in decal is used, then the receiver can't get the dbuffer.
@JieDu-yj2vd Жыл бұрын
@@TechArtAlexDecal's normal must remain disconnected to get buffer's normal.
@TechArtAlex Жыл бұрын
It works fine for me. Did you remember to disable the Normal in the Dbuffer response in the root node? It must be set to "None", or another option that omits normals (such as "Color, Rougness") otherwise the decal's normal will override the receiver's normals.
@JieDu-yj2vd Жыл бұрын
@@TechArtAlex Thank you so much. When I set None, it worked
@indiependentgames97509 ай бұрын
my triplanar projection does not work, I have rechecked it a lot of times but it does not work for me, it shows me the correct image only on upper side, other sides gets stretched, any help/suggestions?...can I send an email I have also a couple of other questions...thanks if possible
@TechArtAlex9 ай бұрын
Sure, techartalex.yt@gmail.com
@indiependentgames97509 ай бұрын
thank you, I will write you soon with some screenshots to show you what happens, thanks!@@TechArtAlex
@7WeirdSeeds8 ай бұрын
why isn't everyone screaming about this?!
@TechArtAlex8 ай бұрын
It definitely slipped under the radar for most, despite having some really interesting applications. Thanks for watching!
@LawsOnJoystick9 ай бұрын
nice video, hey im applying a rain fx pack that works with decals to make splashes on surfaces etc, but it makes my models look low poly..instead of smooth, any ideas?Thanks
@TechArtAlex9 ай бұрын
Perhaps don't remove 100% of the normal map details when wet, but allow a blend with some variation in smoothness.
@JieDu-yj2vd Жыл бұрын
WorldAIignedNormal and WorIdAIignedTexture are not valid in decal, right?
@TechArtAlex Жыл бұрын
Right - those nodes rely on mesh vertex normals to control the projection blend, which the decal does not have access to. So you would need to create your own tri-planar functions that obtain normals in another way, like the scene sampler.
@JieDu-yj2vd Жыл бұрын
@@TechArtAlex I have watched your other videos on normal and decal, which are all problems that I have encountered but have not been able to solve. There is a problem of normal rotation, that is, when the Angle is 0.25, the direction of the normal line is wrong, which is no problem in other times, but I saw that in your test, there is no problem in rotation all the time. What is the reason?
@JieDu-yj2vd Жыл бұрын
@@TechArtAlex The texture used is the texture of the brick wall inside the bridge
@TechArtAlex Жыл бұрын
@@JieDu-yj2vd I couldn't say without being able to see how the material is set up. It can be helpful to go the the buffer visualization mode and select world normal so that you can observe how the vectors are changing to more easily detect flaws.
@BEN3DVFX4 ай бұрын
It still has problem in UE5.2, 5.3 & 5.4 If anyone finds a way, let me know, thanks
Your vocal frying makes following impossible. Sorry!
@LudvikKoutnyArt6 ай бұрын
I do not understand this. It makes no sense. If the decal response is defined on the material which receives the decal, not the decal material itself, then how do I make a surface which receives some blend decals and some modulate decals? For example, let's say I have a wooden table board, and I want to create oil stain decal, which multiplies oily color on top of the wood base color, but also paint stain decal, which doesn't multiply but blend the base color. With this new UE5 system, I can either have a material which receives blend decals, or one which receives modulate decals, but I can't have both. So I can't put multiple different decal types onto the single wooden desk board. 🫤
@TechArtAlex6 ай бұрын
You can, you just have to have the decal pass a value in an unused channel to inform the underlying material about what it is, so that it can alter its response accordingly. For example, for most decals you could just have it sample and blend the dbuffer without altering anything, but when a decal with special handling is applied it can be detected by a value encoded on the dbuffer and would follow the custom decal path.
@TechArtAlex6 ай бұрын
Take a look at my POM decal video, where I use dbuffer channels to pass general purpose data into the dbuffer, so that the base material can interpret it and decide how it wants to use it.
@adamc3607 Жыл бұрын
How do you get DBuffer working in 5.2/5.3 only seems to work in 5.1? Never mind this was only a problem with material attributes not invididual inputs
@TechArtAlex Жыл бұрын
Thanks for watching, glad to hear you got it worked out.