Brick Node Mapping

Hi…This is my first post.

I have been working with the “Brick Texture” node, and have it setup to project without the use of UV’s or baking textures to be used with UV’s.
The reason for this is so I can assign the material to multiple objects and have the scale of the bricks be the same (with UV’s its difficult to match brick scale over multiple objects).

I’ using “Object” texture coordinates for the mapping, however the bricks only project in the Y axis. I was able to make it project from Y and X by mixing 2 mapping nodes (refer to attached images) I don’t really know what I’m doing, just played around till it worked…this worked great for a cube

I thought I was done, when I checked to find that objects with 45 degree angles stretch (refer to attached images).

QUESTION: Is there a way to make the brick node project correctly onto an object with multiple angles, without the use of UV’s?
A mapping node setup to achieve this.

Thanks in advance.
IvanB


1 Like

For this the Bricks must be a 3D-texture, but that wouldn’t solve the problem with bricks. Imagine a 3D-bricks-texture as the complete 3D-space filled with bricks but all layed with the usual offsets and your model would be cut out of that. The bricks would be cut in any directions. But bricks are set on the outer walls of an object. So, exactly for bricks you need a even UV-map. See your 45 degree (imagine any other…)…
(if they are only rectangular it is possible for different north-south and west-east oriantation/mapping)

1 Like

Hi Okidoki, thanks for your reply…I think I understand your analogy…basically it means it cant be projected from any other axis other than xyz.
I was hoping someone might have devised or could devise a work around for this.
Thanks again!

1 Like

Hi, it is possible:

For a nonartificial pattern textures like stones yes, but for something like tiled stones hardly.
(This is some thing like i said N-S W-E plus up-down.)

1 Like

I have a “Multi Planar Mapping” node group that aligns the texture coordinates with all the flat faces of a mesh. It obviously won’t be seamless, but depending on your use-case it might help you:

I’ve been mostly using it together with Freestyle/LineArt so the seams weren’t an issue.
Here’s the .blend-file so you can test it yourself:
multi-planar-mapping.blend (942.7 KB)

5 Likes

This one works a bit better for vertically slanted sides than the one I linked to, thanks for sharing.

Thats Awesome, Thank you all for your help!!!
I thought that it was possible and hoped someone would come up with the solution, and you have.
Thank you soooo much!!!

Lone_noel, that setup works great for me…see attached image, this is what I need it for.

I will take a look at the setup…However I’m currently making a modular “buildings asset” pack to hopefully sell on Blender market and would like to know if I can use your (Lone_noel) setup in my asset pack to sell? Is that ok?

Thank you all again for responding!!!

Ivan.

1 Like

Hey Noel, I checked out your blend file…It works great with regards to the projection, However the bricks stretch and scale along with the object (check image)…I need for the bricks to be the same size regardless of the size if the geometry.
Is there a solution for this…It would be greatly appreciated if you could come up with one.

Ivan.

Try using the Object output from the texture coordinates for the Vector input into the node group (rather than the Generated). That should give consistent results.

Also, feel free to use and distribute the node group however you like. :slight_smile:

Thanks, I tried that and its a whole lot better, but still variations in the the brick sizes.

Thank you for allowing me to use it in my asset pack!

I see. So the different pieces are scaled on the object level. Can you apply the scale or do the different parts have to be scaled to work with your system? If you can apply the scale, that should fix it.

Otherwise it might be a bit more involved. One way would be to use an empty as origin for the texture coordinates for each object.

All the objects are scaled very specifically, all have been placed at 0.0.0 and all transforms have been reset, then just moved out of the way…I thought that might be the issue, but I checked and the transforms are good.
Not sure what you mean regarding the empty…are you saying parent to empty etc…might not work there are many many objects, as well as the option for the customer to edit them, which could be problematic.

Thanks for your help in trying to solve this issue.

Yeah, setting up empties for all of that seems like a hassle and pretty fragile. I had some time on my hand and thought this was an interesting problem to improve the reusability of the node group.
I think I found a setup that should take any object sizing into account: multi-planar-mapping_v2.blend (998.3 KB)

Using this setup as your texture coordinates should hopefully give you consistently sized bricks in all cases.
If that doesn’t work, I’m pretty sure I’m fundamentally missing something about the specific setup you have. :upside_down_face:

1 Like

To @IvanB For an uniformly distribution of UV’s you may have a look at TexTools. It has some Texel Density Tools.

And to @lone_noel : this Multi Planar Mapping (v1) is great, i had to look closely, because at first i thought this is box/triplanar maping (first name often used when 1 image texture, second partially if 3) blender :
TriplanarWithOneImageOrBox_clip

which stretches on the diagonals (slighlty altered beveled cube not only 45 degree, bad mapping on buttom
using box map node…), but:
MultiPlanar_NormalOrientated_clip

I wish this mapping would be an unrwap function.

1 Like

OHHHH BUDDDY…You are a genius!!!
It works perfectly!!!

As you can see, all the building are different sizes, and the bricks are spot on, it works exactly as the default, but projects from all angles…brilliant.
You just have to be sure to apply the scale transform after scaling the object.

THANK YOU SOOO MUCH
I’ll be sure to send you my asset pack when its complete as a thankyou.

Ivan.

1 Like