4
$\begingroup$

I am making "2x4"s!!! For consistency across the variations i have to use the same texture, otherwise they would look like they were made with different types of wood... but if you line them up you can see very obviously that they all use the same texture, and they look tiled. so for each object i have a unique node tree where the only difference between them is that i have changed the location in the mapping node...

problem is that i have to create an entirely new node tree for each unique 2x4, which can become a pain when making minor adjustments to the shaders. so i was wondering if there was a way to create a pointer to sections of a node tree and have the changes reflect across all references to that pre-defined node section. i have heard about instantiating node groups and am not entirely sure if this provides the functionality i desire (i worry about memory and render speed)

QUESTION

does blender allow for pointers to a node group? or reuse of a group of node without the memory hit of multiple instances?

EDIT: maybe it would be better to say i want a static node group....

$\endgroup$
5
$\begingroup$

Randomizing Texture Locations

Here are 3 node tree setups that allow one texture to be randomly placed on multiple objects:

(NOTE: If you can't see the node tree graphics easily here, you can download them to see them in much higher resolution)

Node Tree #1:

enter image description here

  • NOTE: In the Vector Curves node here, see how the curve has been changed from it's default straight line to a curve and how the X button is selected above that on the left? Well, in order for the randomization to be most comprehensive, you need to similarly change the curve for Y and Z -- just click on each and adjust it's curve.

Node Tree #2:

enter image description here

Node Tree #3:

enter image description here

  • NOTE: The node called "Object Variation" is a node group. To expand the group so you can see and/or edit all the nodes in it, select it and press TAB (and TAB again to collapse the group). Here are the nodes in the group:

enter image description here

Points to Note

  • You probably will want to use a seamless tileable wood texture so you don't have seams showing on occasion.

  • You can use either Photoshop or GIMP to create your own seamless texture:

    • In GIMP: Filters -> Map -> Make Seamless
      NOTE: GIMP's "Make Seamless" works very well if the texture is very vague, like sand on the beach, but it doesn't work well at all if the texture is very well defined, like zebra stripes.
    • In Photoshop

And to give credit where due:

$\endgroup$
  • $\begingroup$ i am using seamless textures... but when the boards all are the exact same, its noticeable... furthermore... "make seamless" is a failure of the highest order, and should never be used $\endgroup$ – Konner Rasmussen Mar 26 '14 at 2:49
  • $\begingroup$ thank you... this does solve my problem... but since it does not answer my question i cannot rightly check it for you... i found a variation that does the trick where i multiply the object location by the random value, then scale the coordinates with a mapping node $\endgroup$ – Konner Rasmussen Mar 26 '14 at 3:18
  • $\begingroup$ One solution to make sure all the boards don't look exactly the same is to have a very large seamless texture and only UV map PART of it onto the board. That way, I think, some boards will have parts of the texture that weren't showing on the other boards. I haven't tried that, but see if that helps. Regarding GIMP's "make seamless", it is amazingly effective if the texture is very vague, such as sand on a beach, but you are right, when the texture is very distinct, such as grain on a board, it can fail utterly...sorry about that. Maybe it can be useful for you in other instances. $\endgroup$ – Thom Blair III Mar 26 '14 at 3:22
  • $\begingroup$ then the board would have a seam on one edge, to avoid this effect i only map by multiples of 2 (0.25, 0.5, 1,2,4,8) and ensure that the UV covers the entire image... this causes the uv to roll over to the next tile of the image at the edge of the uv map... $\endgroup$ – Konner Rasmussen Mar 26 '14 at 3:29
  • $\begingroup$ Can you post your blend file? I'd love to see your technique, especially since these aren't working for you. Also, if you could include the texture you're using, that'd be great too. $\endgroup$ – Thom Blair III Mar 26 '14 at 3:32
1
$\begingroup$

To reuse part of your nodes select all of your nodes up to your Mapping and Texture Coordinate nodes. then press Ctr + G that will make a node group you can reuse, saving you some of the work.

$\endgroup$
  • $\begingroup$ ie: instantiating node groups... but i want a --reference to-- a node group, not an instance of one $\endgroup$ – Konner Rasmussen Mar 26 '14 at 2:51

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.