Advanced Surfacing Techniques - This tutorial will cover 3 different techniques for layering different shaders on a single surface: Falloff, SimbiontLW Blend, and SimbiontLW Alpha .  You will need basic operating skills for LightWave 7.x and SimbiontLW.


This first section covers something you probably know about already: falloff. LightWave's procedural textures can be mixed and layered using falloff. SimbiontLW takes this method further by including falloff at the shader level, and by adding a sharpness control.

In this section, we will layer two shaders on one surface using falloff. It is possible to layer more shaders this way, but we'll stick with two for the example.

1. Surface the cow with a base layer DarkTree.

  1. Load the much-abused cow into LightWave and set up the scene so you have a good view of the side of the cow.
  2. Bring up the Surface Editor for the cow and select the CowHide surface.
  3. Select the Shaders tab and select SimbiontLWShader from the shaders list.
  4. Open up the properties panel and load the "skinHolsteinCow" DarkTree. 

Render out the cow.

2. Layer a second DarkTree on the cow.

  1. Add another SimbiontLWShader to the CowHide surface and open its properties.
  2. Load the "skinBrindle" DarkTree.
  3. Set the scaling to 5m.

Render this out. As you can see, the brindle completely covers the previous shader. If you don't see any brindle, make sure the brindle is the LAST shader in the list (as in the screenshot).

3. Set falloff.

To put the brindle skin in a specific spot on the cow, we'll use falloff.  Make sure you've got the brindle SimbiontLWShader open. 

  1. Select the Falloff tab, and type in 100% for Y and 100% for Z.
  2. Change the falloff Type to Spherical. 

Render this out. Only the bottom part of the cow shows a faded brindle. Time for some adjustments.

4. Adjust falloff.

There are two problems.  The first is that the blending is a bit broad.  Also, the falloff is happening from the object's origin, which is down at the hoof level.  Raise this up.

  1. Type in 300% for Y and Z.
  2. Open the Position tab.
  3. Type in 1m for Y.

Render this out.

The brindle patch  is smaller, but the edges of the blended areas are still pretty fuzzy.  Time to use a feature of SimbiontLW to fix this. 

  1. Open the Falloff tab.
  2. Change the Falloff Sharpness to 95%.

Render it out. As you can see, it's a much sharper transition from one shader to the other.

The biggest drawback to using falloff to layer shaders is getting the position and shape just right. Using NULL objects to position the center of the texture can help, but if you want more control, you need to use something more advanced. 

If you're going to take a break, save your work since we'll use it in the next section.

SimbiontLW Blend

This section demonstrates the blend feature of the SimbiontLWShader. This feature is useful for more complex blending of two shaders on an object.  We'll continue to abuse the holstein/brindle cow we created in the Falloff section. If you don't have the scene from the previous section, add the cow, apply the skinHolsteinCow and the skinBrindle shaders to the CowHide surface of the cow. Make sure they are scaled appropriately, then skip the next paragraph.

1. Remove falloff.

If you are starting with the cow from the Falloff section, remove the falloff.

  1. Open the surface editor for the cow and select the CowHide surface.
  2. Open the properties of the brindle Simbiont.
  3. Open the Falloff tab and set all falloffs to 0%.

Now the brindle surface should cover the cow completely.

2. Assign a procedural texture to control blend.

We're going to control the way we composite the brindle skin with a procedural texture. 

  1. Bring up the properties for the brindle SimibontLWShader. 
  2. Open the Blend tab. Make sure the list says All Channels, then click the T button to bring up the Texture Editor.
  3. Change the Layer Type to Procedural Texture (instead of Image Map), and use the default Turbulence texture. 
  4. Set the Texture Value to 100%, set the Contrast to 90%, and scale it by 200mm in all directions.

Try a test render.

All brindle - what's going on? A quirk with textures. The value of the blend parameter in SimbiontLWShader is 100% and the Texture Value of the Turbulence texture is 100%.  So nothing is happening.  Change either of these values to 0% to get it working.  Changing the Blend value is better, if you change the Texture Value to 0% you'll get a completely black preview in the Texture Editor.  If you've got it set up properly, you should see patchy brindle spots on the holstein cow.

    5. Set Blend in SimbiontLWShader to 0%.

3.Assign a gradient to control blend.

Randomly mixing between shaders is OK, but what about having control over the mixing?  You could use an image map on the cow to control the blend, or you can use a gradient. Let's try a simple gradient example.

  1. Go back into the Texture Editor for the blend channel.
  2. Change the Layer Type from Procedural Texture to Gradient.
  3. Change the Input Parameter to Incidence Angle. This changes value depending on how glancing your view of the object is.
  4. Add a key to the gradient on the left and set the Value to 0% and the Parameter to 90.

You should have a smooth gradient white at the top and black at the bottom.  Render this out.


The edges of the cow are brindle and the middle is holstein.  Again, the mix in between is pretty broad.  Let's sharpen that up.

  1. Go back to the Gradient and add two more keys in the middle. 
  2. Change the upper new key to a Value of 100% and a Parameter of 60. 
  3. Change the lower new key to a Value of 0% and a Parameter of 70.

Now the transition is much sharper:


Kinda neat, but Incidence Angle isn't that useful for general shader placement.  Go back into the Texture Editor for the Incidence gradient and select the Input Parameter. Take a look at the last item in the list:  Weight Map. You can create any weight map you want and use it to blend between shaders.  This is a very powerful tool for mixing shaders. You can assign keys to your gradient to control the sharpness and bias of the mixing just like we did with the Incidence Angle, but it will be using your hand-painted weight map as the basis.

If you're not familiar with weight maps, take a look at our weight map tutorial.  It goes through the steps of creating a weight map for an object. The weight map is used to control a tweak in that tutorial, but you can use a weight map to blend between two shaders as well. To the right is an example of the cow with the same two shaders controlled by a weight map.

SimbiontLW Alpha

The last way to blend between shaders on the same surface is to use the alpha channel that is available in some DarkTrees. DarkTree materials can be designed to composite over other materials by using the alpha channel.

1. Surface the cow with a base layer DarkTree.

We're going to abuse the cow one last time.  Set up the scene the same as before (nice side shot of the cow).

  1. Assign a SimbiontLWShader to the CowHide surface. 
  2. Load the buildBrick2 DarkTree (White Bricks). 
  3. Change the brick color to an orange-red so it will contrast better with the lichen we're going to add on top.
  4. Rotate the heading of the texture 90 degrees so the bricks line up with the side of the cow. 
  5. Make a test render to make sure it looks good.

2. Layer a second DarkTree on the cow.

  1. Assign another SimbiontLWShader to the CowHide surface.
  2. Load the bioLichen DarkTree.
  3. Scale it by 4m. 
  4. Go into the Options panel and make sure the Alpha Clips option is off and the Alpha Blends option is on.

If you have the Alpha Clips option on, the empty areas between the lichen will clip the entire surface away. While this is great for chain link fences and gratings, it's not that useful for lichen.

Go ahead and render out the result.  You should see a brick surface covered in lichen.

3. Adjust bump blend.

Pretty good, but there's one last touch we need to add to make it look more convincing. The problem is that the lichen completely replaces the brick wherever the lichen appears.  It doesn't look so good where it covers the mortar because you don't see any hint of the gap between the bricks.  This might be perfect for very thick substances, but this lichen should conform more to the surface it's on.

This is an easy fix.

  1. Open the properties for the lichen SimbiontLWShader.
  2. Select the Blend tab.
  3. Select the Bump channel from the list and change the blend value to 85%.  

Now render it out

The mortar now shows slightly inside the lichen areas, making the lichen look much more like it's actually sticking to the surface of the brick.  Decreasing the blend value will make the lichen appear thinner. You can blend any of the other channels as well, for instance you could make it so the brick's color "bleeds" into the lichen a little.

Copyright © 2006 Darkling Simulations, LLC. All rights reserved.         Any questions? Mail me!