Informed by the excellent tutorial on creating Wenge Wood in blender (http://wiki.blender.org/index.php/Tutorials/Textures/Wood), I proceeded to adapt it to make a really nice American Cherry. And the results look great–for one single piece of wood.
I’m really liking the Ring Noise feature of blender’s wood texture, but the method of the tutorial does not work for my design, which has dozens (hundreds?) of pieces of wood. I cannot imagine creating the dozens (hundreds?) of copies of the material so that each copy can have an empty placed in the proper location so that the Ring Noise does its job.
I have played with the idea of using Global coordinates rather than Object, and what’s not satisfying is that my wood is spread out fairly far, and wood that’s close to the global center is going to see very different ring noise than wood that’s far from the center.
What I’d really like is an Orco that’s not scaled down to a 0…1 coordinate system. The scaling is a problem because smaller wood pieces have teeny-tiny texture features and larger pieces have overly large features. I want a given grain pattern to remain the same size regardless of the size of wood it’s on.
What I really want is unscaled Orco. Should I add that and call it Loco?
Another solution to the problem would be to allow UV mapping to work on procedural textures. In this case, the UV editor would show a virtual image of the procedural texture space, and you could select how much of the face covered that space (or if the UV map extended beyond, the procedural texture would be repeated according to standard texture extension rules).
Does nobody else have the problem of controlling textures across multiple elements? Or does everybody model coffee cups on a single slab of oak table and call it a day?
But if I bake the texture I lose resolution of the procedural map. Or I need such a large map that it will be a memory hog, no? I want to do an architectural walk-through and there are times I pass this >< close to the wood, while on the opposite side of the room, it stretches for more than 10m. That’s a lot of pixels!
You CAN use UV maps on procedural textures. Just unwrap the object onto the UV void (the image editor with no image) or a test pattern if you like, then go create a proceedural and hit UV in ‘map to’. You’ll notice the thing change between renders if you move the UVS.
You CAN use the space outside the 0-1 uv area. I don’t know if it wraps or if it just continues arbitrarily for proceedurals but it dosn’t cause seams. (You can use it for images too, though i think you know; I loaded some 1024maps from UT04 and I have some quads mapped such that the texture repeats 3 or 4 times on them, because it’s a large object.)
You can share materials, you know, across objects. So if you have a piece of lumber it can have the same material and thus texture, regardless of how it is positioned.
I want to control the texture applied to my object. I can use Object mode and define an empty, but the empty is only valid for the one object, and every other object I want to texture either has to make a defective reference to the original empty or we need a new empty. It’s the proliferation of empties that make the texture non-sharable.
If I want different textures on each object (so it looks like I’m not using postage stamps) then I need a way to control how the texture is different on a per-object basis. Global coordinates are just too big (I’m doing a house-sized walkthrough and texture differences want to appear to be board-thick). And Orco makes everything look the same (assuming the same sized boards).
yes, if you want each object to have a different material, then you can either use the empty, or use Orco with offsets. I would recommend Orco, not empties, because:
For piece #2, select the Wood material. Observe the number 2 in the number of users.
Click the number button and make it single user. You now have an exact copy of the base material, with all texture channels, pre-loaded.
Adjust offsets and scales as you wish, maybe even slight shading differences.
Repeat for each piece, and you have control over each object as you desired.
Each object has their own texture space which is used with Orco mapping. This texture space normally scales up and down with your object as you edit it, which you don’t want. Also, this texture space can be scaled and translated by hand just like using an empty, but without the empty.
Steps 1 through 3 turn off this automatic texture scaling that you don’t want and correct any scaling that was done by this feature previously. Step 4 shows you how to control this texture space like you would with an empty, except without the empty.
Try this:
Save your scene so that if this technique doesn’t do what you need you can revert to your previous setup.
Use just one material with the texture set to Orco. Have this material set on all of your objects. Select all of your objects and Apply Scale and Rotation by pressing Ctrl+A.
Create a new cube. Go to the cube’s Link and Materials panel and turn AutoTexSpace off.
Select all of your objects and then finally select the new cube last. Press Ctrl+C, and choose ‘Texture Space’. Now select just the new cube and delete it. Now all of your objects will be using the same material at the same scale and the texture will stay put on the object regardless of how you edit it - though it will scale, rotate and translate with the object if those transformations are done in object mode. So now your problem of having the texture at different scales is solved. The only problem now is that the texture is boring since you’re seeing the exact same part of it on every object.
Select one object and press ‘T’, and choose Grab/Move. Now move the box made of dashed lines (which shows the texture space) to a different place, which will cause a different area of the texture to show up on that object. Repeat as desired for other objects. As a bonus, if you want to make a change to your texture or material you only have to do it once and all wooden objects use your new settings, but they still keep their same texture scales and offsets. If you want your texture rotated, you can rotated your object in object mode and then Apply Scale and Rotation again.
PS The drawing of texture space can be turned off in the Object->Draw panel with the TexSpace button under Draw Extra.
I hope that this both makes sense and helps you get the effect that you’re looking for.
Manipulating an object’s texture space and using (or turning off, actually) AutoTexSpace is critical when trying to use a procedural texture for materials on multiple objects. I’ve looked around and found a basic description of each of these features, but nowhere have I seen it put together all in one place. It’s almost enough to make me consider putting together a tutorial.