Easier mapping... Triplanar node

Wasnt sure if there was a new feature area, but here is something I’d want…

A single node that could be used in the material editor that would elimnate the need to plug in a bunch of other nodes to do triplanar mapping.

This would make it easier for those coming from other 3d programs that do this internally already.

It might also allow for better optimization for certain shader targets.

However, if the only goal is “make transition easier,” then you can build your own shader function that shows up as a node:

I havent been able to really implement tri planar mapping in unreal beacuse I havent found any document or tutorial that explains it in a way I can understand. Seems like you have to connect too many things just to be able to tile a pattern (texture or normal) across the surface of an object.

As for transition…yeah…but overall it would benefit everyone by speeding up making materials, and possibly be able to reduce some load as well, if the node could handle all 3 axis with the size, etc controls right in there, so it doesnt have to talk to other nodes (unless you want it to).

You can build your own material function to do this!
So, yes, you have to implement it once, but then it can behave just like you want.

Then again, you can also buy the Brushify.io shader pack, which adds a number of other features you’ll very likely also want, like material-dependent detail mesh spawning on terrain, macro-scale variation to avoid terrible tiling patterns, and a few other nice bits.
You don’t need the environment specific add-ons – the main shader pack is where all the magic happens. (That being said, if you want to support the creator, buying all the packs is a good way to do so.)

Is there a clear step by step on setting it up? and then being able to use it across multiple projects?
Thanks.

Yeah Brushify is on my list of things to get, cause it looks cool for sure.

If you know how triplanar mapping works, then the mapping to unreal shader graph isn’t particularly hard – you have world position as an available input, and you’ll map various projections of the XYZ into UV into the texture coordinates you use, and then use a couple of if() nodes to select which coordinate set to use, and then six texture fetches (four, if you really optimize) for each material component (diffuse, normal, etc.) that in turn get lerped into the output.

It’s just quite tedious – a lot of copy-paste!

There’s a free “Landscape Material Pro v2” on the Marketplace right now. If you go to the support page for that product, and follow to the video tutorials, there’s one video tutorial on how to copy-paste a bunch of things around to make that material use tri-planar mapping. You might get something out of following along there.

Thanks. I’ll check that out and the vids.

could also get mine for free:

it’s quite identical to the one epic made but has some minor changes/additions under the roof.

Having said that, there is no “one plop, works on everything” node, in almost all cases users want to adjust texture size, rotation, offset, and such. not giving these features would harm more people than the few that want it to work as-is.

Thanks I’ll check that out too.

My idea for the node is to have all the size, offsets, rotation variables within the node, so you could set that (like how Renderman’s multi plane manifold node works)…that way you have the same functions, but only one node that you can then plug into your texture nodes.

thats (sadly) not going to happen unless they significantly rewrite how material functions work.

But, once you set mat functions how they are now with variables, you can easily do it through material instances.