Leaf Tutorial
I thought I'd start off by going through my method of creating leaf textures. This is a mixture of notes that I've taken on the subject from various sources (Peter Guthrie, Bertrand Benoit, Grant Warwick, among others).
To start with, every leaf is different. A maple leaf is going to behave differently than an oak leaf,
and very differently than a rhododendron leaf. This is due to the shape, age, thickness and transluscency of the material,etc.
We'll be working with a Vray2sidedMlt. Realistically, leaves have a small amount of thickness which allows the light to bounce around inside of them. Some of the light gets reflected, some gets refracted, and the rest gets absorbed. If your aim is to be really physically accurate, you'll want to add a shell modifier to your leaves and use a VrayFastSSS. This isn't practicle for most purposes and will jack up your render times. A key feature that I wanted to reproduce was the distinctive transluscency that occurs when lights hits the leaf from behind. Hence the use of the Vray2sidedMlt which does a pretty decent job of reproducing that effect.
In this case I chose a Cypress Oak to work with. To start with it's always a good idea to desaturate the texture a bit.
The reflection and reflection glossiness map are just a desaturated version of the texture modified with a levels adjustment in photoshop. I also use this in the bump slot with an output adjustment to in crease the contrast, mixed with a normal map. You could increase the contrast in photoshop instead of using an output map but sometimes I opt to use a less contrasted map and modify it in 3ds max as needed. This also reduces the number of maps used overall.
In this instance, the veins on the leaf aren't that pronounced. When creating a normal map for a leaf make sure to flip the image for the back side of the leaf to get inverted veins like you would with a real leaf.
Putting it all together, you'll get something that looks like this:
After taking Grant Warwick's vray course I tend to use falloff maps EVERYWHERE. The reflection slot is a composite of a falloff map (with a greenish/blue tint) and the reflection/bump map put through an output map set to multiply. The same applies to the reflection glossiness.
The bump slot is a composite of the normal map and the reflection/bump map set to multiply (%100). The normal map being on the bottom.
One of the feature of leaf textures is that values need to be big. The bump slot is set to 80% and the reflection glossiness is amlost maxed out.
And lastly, the opacity map; make sure the blur value is set to 0.01, otherwise you'll get a fuzzy halo around the leaf.
The back side is a copy of the front side with a few differences:
- the texture is slightly desaturated and shifted to the yellow.
- the leaf isn't as glossy
- the normal map is inverted (and depending upon what kind of leaf you are using the bump slot value will be higher).
In order to get that distinctive translucent characteristic that you see when leaves are backlit, a very contrasted version of the reflection/bump map has to be used in the translucency slot of the Vray2sidedMlt
L astly is color variation. Obviously trees aren't completely uniform. Depending on what program you are using, this can be achieved in a couple ways. CG-Source's, Unique Material ID can add variation to individual trees. I use forest pack pro so I used a forest color with a texture map as a source of the color variation. In this case, I didn't want dead leaves and was aiming for something close to uniform but with some variation.
A close up/crop of the raw render:
It's worth noting that all of this is dependent on using a model that has good geometry. If your leaf is a flat plane you'll lose out on the benefit of creating a shader that produces nice reflections.
With a little post-work:
Please note that the results will vary depending on your render settings. I rendered out two versions, one using IR and another using BF. For the purpose of close-ups, I used BF in order to get more detail but it took ages to render. Also the GI subdiv. was set to 0.1. This little change makes a HUGE different in render times.