8
$\begingroup$

Before I begin, I would like to mention that I just recently got into the nodes system and the answer may very well be glaringly obvious to you Blender veterans out there, so if you take the time to answer this, know that my knowledge on the subject is limited.

I've found a lot of questions regarding how to disable tiling of textures in the Cycles rendering engine. I can't seem to find out how to make that happen using the current node system I'm using, because it doesn't tile the texture on its own.

I know that I could be using a vector mapping node, but the way I'm modeling this requires that I texture each individual part of the building for purposes I don't really need to get into for the sake of time. If I use a vector mapping node, I'll have to edit each individual part myself.

The nodes I'm currently using - Very simple, right?

The problem that I'm having is that if I use the same nodes for a mesh with different properties, it is stretched like this - Ugly.

I want to avoid the need of using vector mapping nodes and just give it the ability to tile the texture so that it goes over a mesh of any size without stretching.

$\endgroup$
14
$\begingroup$

The concept you are missing is UV texture coordinates.

Normally you would have to UV Unwrap your mesh, but that is not always desirable or practical, and for most simple cases automatic texture coordinates will suffice.

For that you have to use an Input > Texture Coordinates node, you can use the either Generated texture coordinates output or the Object type coordinates.

  • Generated Coordinates will apply exactly 1x1 tiles of texture per object and stretch along with the object dimensions even if you change it's size (this is the behavior you are currently getting in your images by default without any texture coordinate input in your nodes)

  • Object Coordinates will use the object's local coordinates for repeating your texture across the surface, exactly one tile per Blender unit, if the object grows, more patterns tiles show up without stretching or distortion.

For both cases use the vector mapping node to control texture size or repetition of the pattern (vector mapping node alone won't do much on it's own)

Have in mind that scaling the object in object mode without applying the scale will also stretch the texture with it. To counter that you may use an Vector > Vector Transform node to convert between coordinate systems.

Texture Coordinates

EDIT

This is how the Vector Mapping node should work for all axis XYZ. Make sure your texture is set to Box projection method.

Vector Mapping

The vector transform node converts between coordinate systems, if your object is scaled non uniformly in Z axis the it's texture space will also be stretched, in that case you need to convert the texture space from local to global so it transforms from Object Coordinates to World Coordinate system.

Vector Transform

$\endgroup$
  • $\begingroup$ I'm in the same boat I was in before because this was exactly what I tried earlier and I'm still in search of a way to apply it without having the Z axis stretched to the moon. Even if I do the same exact node system, every value I edit that is supposed to allow more tiles in the texture does not do anything, and only leaves stretched textures, leaving me irritated every time. $\endgroup$ – Gh0stRunner Jun 25 '16 at 8:01
  • 1
    $\begingroup$ The photo you attached makes no sense to me because I have replicated it exactly (After trying the same thing two days ago) and it does not turn out the same way. There is a single texture on the top in a corner, and the rest is stretched beyond comprehension. In your image, you have a neat, tiling of the textures whereas mine shares no likeness. $\endgroup$ – Gh0stRunner Jun 25 '16 at 8:03
  • $\begingroup$ Is your object scale applied and 1 unit in every axis? If your object is scaled, textures will invariably stretch with it. In that case you will have to add a Vector Transform node to your node tree to transform the coordinates from the stretched local space to world space as stated in the answer above. $\endgroup$ – Duarte Farrajota Ramos Jun 25 '16 at 12:54
  • $\begingroup$ My current predicament is that I have mapping nodes working fine and I can edit the X and Y axes of the texture to make it look however I want. But the Z axis is completely unresponsive no matter what values I change. I also can't seem to figure out the Vector Transform node. $\endgroup$ – Gh0stRunner Jun 25 '16 at 19:35
  • $\begingroup$ Updated the answer above, the Vector Mapping node should affect all axis, make sure your texture is set to Box mapping. The vector transform node converts between coordinate systems. You will need that if your object is not uniformly scaled $\endgroup$ – Duarte Farrajota Ramos Jun 26 '16 at 0:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.