With DirectX shading,
you can view the effect of normal bump mapping in viewports.
Set up the lesson:
- Continue from the previous lesson, or
from the \materials_and_mapping\normal_bump_map folder, open pavers_view.max.
Preview the normals bump map:
- Select the plane object.
Right-click it, and choose Isolate Selection from the quad menu.
Next, you will hide the
plane’s selection cage, which was generated by the Projection modifier
you added earlier.
- On the Modify panel, open the Modifier
List and apply a Poly Select modifier. This adds the modifier to
the top of the plane’s modifier stack and hides the selection cage.
- Open the Slate Material Editor.
- Click (Pick Material From Object),
and click the plane object to display its material in the active
View.
- Double-click the Proj-Plane_mtl [Proj-Plane] /
Shell material node (the one at the right) to display the Shell
material parameters.
As the rollout shows,
the Shell material contains two types of material: the originally
assigned plane material, which displays only when rendered, and
the baked material obtained from the source object, which displays
only in viewports.
- On the Slate Material Editor, click (Zoom Extents) to see the
whole material tree.
TipYou might want to
change the size of the Slate Material Editor window, and use some
of the other navigation tools, to get a view you can read easily.
At the right is the top-level
node, the Shell material you just inspected. Next to the left are
the two sub-materials: The original, renderable material is above,
and the baked, hardware material is below. The baked material has
a Bitmap node and a Normal Bump map node (each of these has an associated
Controller node). Finally, the Normal Bump node uses the NormalsMap
bitmap you rendered in the previous lesson.
- Double-click the Bitmap node for the
Normal Bump map. This is the node at the far left.
- In the Bitmap parameters rollout Cropping/Placement group,
click View Image.
3ds Max displays the
normal bump map you created earlier, which now is applied to the
plane object.
The colors in the map
are significant. The reason normal bump maps convey so much more
detail than ordinary bump maps is that normal bump maps use the
entire RGB spectrum for surface detail information, whereas ordinary
bump maps only use a single grayscale. The blue channel conveys
vertical depth information, and the red and green channels enhance
this information by providing a direction vector for the orientation
of the surface normal at each point. This results in higher realism.
- Close the Rendered Frame
Window.
Use hardware shading to display the map:
- In the Slate Material Editor, double-click
the baked_Proj-Plane_mtl / Standard
material node to display its parameters.
- On the Slate Material Editor toolbar,
open the Show Standard/Hardware Map In Viewport flyout, and choose
Show Hardware Map In Viewport.
- On the Parameter Editor panel, open the
Maps rollout, and increase the Bump amount to 90.
- Minimize the Slate Material Editor.
- In the Perspective viewport, zoom in to get a closer view
of the plane.
The flat surface of the
plane object takes on a greater, three-dimensional degree of detail.
Next, you will add a
standard Omni light to the scene to see how effectively the normal
bump map, when combined with a standard Omni light, provides a sense
of depth to the object.
Visualize the 3D effect
- On the Create panel, turn on (Lights). Choose Standard
from the drop-down list, then click Omni to turn it on.
- In the viewport, click anywhere above
the plane object to place the light.
- Move the light across the
stones.
You might need to move
the light vertically as well, to position it above the plane.
Even though this object
is a flat plane, notice how the light and shadow play across the
stones as if the geometry was a raised surface.
Try rendering with both renderers:
- Delete the light object.
- Restore the Slate Material Editor (press M), and move the window so you can
see all of it, again.
- Double-click the Proj-Plane_mtl [Proj-Plane] /
Shell material node (the one at the right) to display the Shell
material parameters.
- On the Shell Material Parameters rollout,
set the Baked Material to be visible in the rendered output.
- Minimize the Slate Material Editor.
- In the Perspective viewport, orbit so the plane is almost
horizontal, then press F9 to
render the plane.
Notice how the edges
of the plane still appear straight and two-dimensional.
The 3D relief you’ve
achieved so far with the diffuse and normals bump maps is usually
acceptable when you model for games development. For other uses,
such as cinematics, you might need to take things one step farther.
To complete the effect,
you will use the height map you created earlier and render it with
the mental ray renderer.
- Click (Render Setup) to open the
Render Setup dialog. On the Common tab, scroll down to the Assign
Renderer rollout, then click (Choose Renderer) for the
Production renderer.
- In the Choose Renderer dialog, choose
“mental ray Renderer,” then click OK.
- Render the plane again.
- In the rendered frame window, click (Clone Rendered Frame Window),
then minimize the two frames.
Render the height map
Now you will add the
Height map to the rendering.
- Select the plane object.
- Press M to
restore the Slate Material Editor.
- Double-click the baked_Proj-Plane_mtl /
Standard material node to display its parameters.
- In the mental ray Connection rollout Extended Shaders group,
click the lock button for Displacement
to unlock Displacement and enable its controls.
- From the Material/Map Browser panel at
the left of the Slate Material Editor, locate Maps mental ray Height Map Displacement, and drag this map
type to the Active View.
- In the active View, zoom so you have a good
view of both the baked_Proj-Plane_mtl / Standard material
node and the new Height Map Displacement node.
- On the baked_Proj-Plane_mtl /
Standard material node, click the plus-sign icon (+) to open the
“mr Connection” group, and then wire the Height Map Displacement
node to the “mr Connection: Displacement” component of the baked
material.
- On the Material/Map Browser panel, locate
Maps Standard Bitmap, and drag this
map type to the active View.
3ds Max opens a file
dialog.
On the file dialog, choose proj-planeheightmap.tga.
Like the Diffuse and
Normal Bump maps, this file should be located in \sceneassets\images, or in the
folder you specified earlier on the Render To Texture General Settings rollout.
- Wire the new Bitmap node to the Height
Map component of the Height Map Displacement node.
- Double-click the Height Map Displacement
node to display its parameters, and on the Height Map Displacement
rollout, set Minimum Height to 0.0.
TipAn easy way to do
this is to right-click the spinner arrows.
- Render the Perspective viewport.
- Restore the view of the rendered frame
you cloned earlier, and compare the renderings.
The geometry has been
pushed up based on the displacement map generated by the mental
ray engine and added to the rendering.
Summary
This tutorial showed
you how to project complex surface detail from a source object onto
a simple, two-dimensional plane. Detail is derived from the source
by including normal bump, diffuse, and height maps in the projection,
then rendering them as a texture to the simple plane.