In blender I created a procedural marble material using nodes and no image textures and also using generated texture coordinates and it looks great in this image

enter image description here

but when I go to join the marble object to the brass object using ctrl j the procedural marble texture looks completely different almost like it stretched in the z axis enter image description here Is there a way to join these objects together without having the texture change or stretch here is the node setupenter image description here and here is the blend

  • 1
    $\begingroup$ I don't think there is an automatic way to achieve that. You need to accommodate for the hight change, using Mapping node. $\endgroup$
    – Mzidare
    Sep 2, 2018 at 9:33

1 Answer 1


Right of the bat, I must say that your use of 'Texture coordinate' node as a texture/color input is not in line with its intended purpose. Anyway, the problem here is, all the texture input nodes (noise and voronoi ) don't have their 'vector' inputs connected. So by default, they take 'generated' as the texture coordinates input. And generated texture coordinates work based on the bounding box of the object.This is a problem in our case because when we join the objects, the objects bounding box (black lined box) increases as shown here.enter image description here. Inorder to have similar marble effect even after joining, we have to scale the texture proportionately. This could be done using texture 'mapping' node under (Vector>Mapping). Here are the steps.

  • Before joining the parts, note down the marble globe bounding box dimensions.You can find these in properties panel (Hot key 'N') under dimensions section, while the marble globe is selected (as shown below).enter image description here
  • Join the two objects.Now note down the dimensions of the new object.It will be as shown.enter image description here
  • Now in the node editor for the marble material add the 'texture mapping' node as shown here (remember we need to scale the texture).enter image description here
  • Now if you are wondering what the scale values in the red box are, they are basically the ratio of bounding box dimensions. For X & Y: 1.66573/1.11312 = 1.49645 and for Z :3.16439/0.680168 = 4.65237
    • This will fix the scale and get a result very close to your initial texture. You can fiddle with the 'location' values in the texture mapping node to get a result you like. Feel free to check the attached blend file below with the implementation. enter image description here
  • $\begingroup$ While not in line with its intended usage, it is perfectly possible to use texture co-ordinates as a colour input, and combining them with e.g. noise textures is an effective way to distort them. Bartek Skorupa explains it quite well in his lecture Manipulate texture coordinates like a boss. $\endgroup$
    – user27640
    Sep 2, 2018 at 20:54
  • 1
    $\begingroup$ @ Duane Dibbley I think this will teach me something new. Thanks for sharing this link. $\endgroup$
    – Teja
    Sep 2, 2018 at 21:09
  • $\begingroup$ thanks for the answer I think I understand it somewhat better although i'm still relatively new to procedural texturing could I instead of having to scale the mapping node just connect every texture input to object coordinates instead of generated and the scale will remain the same hope this makes sense? $\endgroup$
    – Funny1048
    Sep 3, 2018 at 1:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .