[Bf-committers] Wood texture update

Chris Burt desoto at blender.spaceisbig.com
Sat Feb 26 18:48:09 CET 2005


I've been doing some work on the wood texture to find some pleasing 
results. The previous implementation relied on a periodic function to 
produce the output values of the wood texture. The end result of this 
implementation were unavoidable symmetrical intensity bands. The problem 
with this approach is that trees do not have a sinusoidal growth 
pattern. They grow faster in one season than another,except for in 
climates where growth is supported year-round. Thus a quick glance at 
the grain of any piece of wood generally reveals sharp contrasts between 
the end of one season of growth and the beginning of another. While you 
might attempt to reproduce this effect with colorbands, you would fail 
miserably because no matter how hard you try, the intensities returned 
by the current wood texture code would only let you control the 
appearance of 6 months of the year, the latter 6 months being a mirror 
image of the first. This is illustrated here:

http://blender.spaceisbig.com/old_colorband_wood.jpg

In this image you see the colorband, which, given any piece of wood, 
should represent one year of growth. The yellow color marker represents 
the month of June, and the red color marker represents the month of 
December. (Note: These are just examples for simplification. From an 
artistic standpoint it doesn't really matter what "month" the cursor is 
in, only that the entire color band represents one year of time)

http://blender.spaceisbig.com/old_wood.jpg

In this image you see the resulting wood texture as rendered on a plane 
in Blender 2.36. It is easy to see in this image that the month of 
December actually falls where June should fall, and that the last 6 
months of the "year" are simply a mirror image of the first half of the 
year. The results aren't nearly as realistic in my opinion. However, 
when you have proper control over the entire "year" you get results more 
like this (the result of some quick fiddling before lunch):

http://blender.spaceisbig.com/new_wood.jpg

I hope that you all agree this is a more realistic looking texture. I 
know I haven't created a side-by-side comparison but I hope you can see 
the usefulness has been improved.

The good thing about this new implementation is that the intensity 
values can be made to look like the old system simply by putting the 
same color marker at each end of the color band. The result is nearly 
identical.

Some questions for discussion:

1) Are the normals created by my technique accurate? (Probably not).

2) How should this be implemented in the UI? Right now I think it would 
be best if there were a way to use the old method as well, as my method 
is certainly slower.

3) Is there another way to achieve the same result without resorting to 
using the modulus function I've adapted from "Texturing & Modeling; A 
procedural approach"? It requires a sawtooth output in order for the 
user to have complete control (in my opinion.)

4) Should the "ring" versions have 3 dimensional components? Trees are 
cylinders, not spheres.. thus the code creating the output shouldn't be 
producing spherical rings in my opinion. I had trouble creating 
realistic results by simple disabling the Z-mapping. Maybe someone has a 
better idea for this?

5) Is this email too long to bother reading? ;)

Thanks everyone for your input! (Those of you who give any ;)

Regards,
--Chris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wood_update.patch
Type: text/x-diff
Size: 1585 bytes
Desc: not available
Url : http://projects.blender.org/pipermail/bf-committers/attachments/20050226/de2439fb/wood_update.bin


More information about the Bf-committers mailing list