For simplification, you can use WorldAlignedTexture and WorldAlignedNormal nodes and also some other variants, which are already there since UE4, so no need for creating a custom triplanar mapping. Those nodes have input values for texture scaling and custom position and normal inputs so you can provide world space to local space transformed vectors as well, if you need your texture to stick on moving objects.
Check out the description for links for more useful resources and Tips! Like how to also Support Object Rotations With Triplanar Mapping. Interested In How That Rock At The Start Of The Video Was Created? Interested In Technical Shading or Shader Coding? Check out the Channel for more videos!
Very helpful! Thanks much. For the sticky rotation to work properly, it looks like the Transform (WS to LS) needs to go after the scale multiply and before the BreakOutFloat3 rather than after the AbsoluteWP. I could be confused but that's how I got it to work on my end. Thanks again! Great stuff.
Many kudos to You. Looks like it's relatively cheap on resources too. I made it in to material function and added second conversion to local on object position.
Maan thank you, your tutorials are the best! i love ur style, i love the efficeincy of ur workflow, this helps a lot! i am more then 4 years in 3d graphics and i really apreciate what u do, very usefull info as technical artist!
Amazing video as always! I've found when using the Sticky Rotation method - the blending seams of textures on curved surfaces are very stretched and much more apparent. Anyone have any idea why using the TransformPosition node causes this? Those stretch artifacts don't seem to appear on the regular triplanar setup.
Is there any way to make it match the object rotation as well? (Like the position compensation you did at the end) I've been looking everywhere for a solution to that.
"Sticky" or static mapping by subtracting by object position is only helpful if you want to have scaling and rotation still act as if in world space. The easier way (which includes those too parameters into the projection) is to just use object space positions instead of world positions.
@@AlexandrosDemetriades67 instead of Absolute World Pos - Object Pos (Absolute) use the local space vertex position, not sure about the node name from the top of my head, something like object space, or local space position. It's important that this position is per vertex and not from the entire objects transform position
What about using this feature with an skeletal mesh using an animation? I've tried replacing the object position with the Pre-Skinned location trough a vertex interpolator but does not work. How I should approach this?
Yep! Exactly. Added the instructions for this in the description it just requires a couple modifications to the network to make it object based triplanar with sticky rotations.