but when shape is something else than square, texture gets deformed.
(shape was edited in edit mode, so it’s not a scale problem)
And all details are lost too.
Thank you for help
Thanks great explanation
That’s what I discovered today too - texture node use by default “Generated” coords if nothing is plugged into vector socket and “Generated” behaves like a bounding box.
I’ll start with the ‘Position’, because it’s better to go from here.
-‘Position’ is the world coordinate. The Origin is the blender origin, and the values go from negative to positive in all axis (XYZ) and their scale is the default blender unit. ( be aware that scaling the dimensions in the world settings doesn’t change the unit size in materials)
-‘Object’ is very similar to ‘Position’, but the Origin is instead the object origin. Also, because objects can be affected by transformations (the world can’t!), ‘Object’ coordinates will reflect those transformations.
-‘Generated’ is similar to ‘Object’ with the only difference that the coordinates are scaled to the interval between 0 and 1 in each axis (‘Object’ coordinates, on the other hand, can be negative and also bigger than the unit).
@RickyBlender, the wave and the gradient textures (more visible in their radial/spherical results) use the [0,0,0] as the center. And in the generated coordinates this point is moved to one corner of the object’s bounding box. Also, when no vector input is supplied, cycles uses ‘Generated’ by default.
the scale of the generated is only 1, whatever size the object is…
In your example, if you place the origin of the plane in the bottomleft vertex and set the size of your plane to be 1x1 unit, the result will be identical.
ohh… and just tested to confirm what I said, the ‘Generated’ will set the Z to 1 in the case of a plane, which scales the wave texture even more. (this is a interesting behaviour, to choose the z max value of an object that is bidimensional in xy!! :/)
@Secrop: “…to choose the z max value of an object that is bidimensional in xy” - is it?
I don’t feel like it is http://www.pasteall.org/pic/show.php?id=99293
Object’s origin is on [0,0,0] and it’s not 2-dimensional to better visualize procedural’s ‘position’ in 3d space.
@eppo, I didn’t went for a correct measure the first time… but here’s the final and correct information:
when using the generated coordinates on a plane (parallel to xy) the returned z value is 0.5 (in my earlier post i assumed it was 1 but i was wrong)
like this: http://www.pasteall.org/pic/show.php?id=99297
For me this looks like texture generation starts at Object’s bounding box corner (idk how to properly mark or name it) if mapping is Generated and at objects Origin if mapping is set to Object. Best is seen if texture is Wave - Spherical.
What’s always confused me is why the default setup between Generated and Object coordinates gives different results. It seems to me that the default Generated system (Default Cube --> Apply Texture --> Generated Coordinates) should match the default Object system (Default Cube --> Apply Texture --> Object Coordinates). However, the Object coordinates come in at half the size:
In the case of your cube, the generated coordinates start at one corner of the bounding box, with the value (0,0,0), and end in the other side with (1,1,1).
The final space is allways 1x1x1.
On the other hand, the object coordinates start at the cube’s origin, and go in all axis in blender units (with the object matrix applied to the coordinates)…
The final space will be the object dimentions. In the cube, it goes from (-1,-1,-1) to (1,1,1), therefore 2x2x2.