Replicating Source/Unreal triplanar texturing methods in Blender...?


Hey folks. Just wondering if anyone knows how to replicate the Source / Unreal triplanar texturing methods in Blender.

In Hammer, I could change the following values per face:
image
https://developer.valvesoftware.com/wiki/Hammer_Face_Edit_Dialog

Ideally I’d be able to assign a different material to each face and then change the mapping for one face without it affecting the same material on a different face (without assigning a new iteration of the material to each different face - that’d get inefficient fast).

Obviously UVing works great for individual objects with lots of detail, but it’d be nice and fast to use this method while texturing a (mostly flat / orthogonal) house I’ve already laid out in greybox! It’s pretty fast to bake that to some rudimentary but efficient UVs afterwards (even just a Lightmap pack).

Any clues? Thanks in advance…!

Triplanar and sixplanar mapping with and without blending has been discussed before. I don’t know anything about how they correspond to Source/Unreal. Without blending its as simple as “if this plane when use coordinates XZ into XY”, add the coordinates together and use it for image or procedural mapping alike. With blending it gets complicated or very complicated depending on which version and how many sides you need. Give the search function a try, otherwise you can probably find them on download sites.

Hi @CarlG ! I’m not that interested in SixPlanar or even blending (though the built-in box mapping option (seen on the first image of my first post) on the image texture node does support blending).

My key goal is,

Ideally I’d be able to assign a different material to each face and then change the mapping for one face without it affecting the same material on a different face (without assigning a new iteration of the material to each different face - that’d get inefficient fast).

I guess I’m looking to drive the location / rotation / scale mapping per object (ideally per face) as opposed to per material. I’m starting to wonder if I could affect this via Geometry Nodes and passing in some attributes to the material…

Any advice or ideas on this are most welcome!

AHAHAHAHHAAHHAAA! I’ve wanted to do this for over ten years! Finally!


Look upon my works, ye mighty, and despair!
(Added three float arrays as custom properties, using them to drive the mapping in the shader via attribute nodes. Can now easily detatch faces as their own objects and change their texture mapping with custom props, then edit them with nearby objects with Blenders newish multi-object editing)
I’m very happy.

Credit to @roxya on the OpenVFX discord for pointing me towards custom properties.

1 Like