Projection Modifier The Projection modifier offers new ways of sending existing texture coordinates from one model to another. Specifically, some of the Vertex Channel data that exists within the geometry of an object can now be projected onto another object. The result is not always predictableunder certain conditions the transferred data will be distortedbut you will nonetheless find the Projection modifier a timesaver in appropriate situations.To better understand how this new feature works, let's project the texture coordinates from one Plane object to another Plane object.
1. | Open the project UV start.max file from this book's companion DVD. Note that the polygons on the top plane are deformed into a swirling pattern. You want to project this deformation to the bottom plane, which has polygons that are not deformed. | 2. | Select the Project From Plane object, apply a Projection modifier, and uncheck Cage (Figure 3.6).Figure 3.6. The Projection modifier is applied to the Project From Plane object, and Cage is not checked. [View full size image] The Cage does not need to display, and can be distracting, as it is in this example. The Cage display is more useful with curvy and organic objects; it enables you to verify that the projection completely surrounds the target object. (We'll use the Cage in the tutorial that follows this one.) | 3. | With the Pick button in the Geometry Selection rollout, click the Project To Plane object. | 4. | Click the Add button in the Projection rollout. | 5. | Click the Project button (Figure 3.7).Figure 3.7. Click the Project button, and the Project To Plane object will acquire the swirly texture coordinates from the Project From Plane object. [View full size image] |
Projecting a Normal Map Also new to the Projection feature is the ability to generate a Normal map in the Bump map of a material directly from the geometry of other objects in the scene. A Normal mapalso referred to as a Normals map in parts of the interfaceis an RGB image that contains information about the curvature of the Bump map. A Normal map contains more information (256 levels for each color channel) than a grayscale image (which has only 256 levels total), and therefore is more accurate. The red channel determines the left and right influence, the green channel affects the up and down, and the blue channel affects towards and away within the bump.Let's digress for a moment and consider why you would want to use Normal mapping with Projection. The basic aim is to project a complex high-resolution object to a simple angular low-resolution object. As you know, simple objects with fewer polygons calculate faster and are more efficient for dynamic simulations, scene management, and ultimately rendering. In particular, real-time game engines perform best with models that are lower in polygon count. But the low-polygon object must look as close as possible like its high-poly counterpart; its Bump map must display the same curvatures. Normal maps, with their higher resolution, provide better results than the grayscale maps usually used for Bump mapping, and are mainly used for game engines that perform better with models that are lower in polygon count. Many of these games typically need to render in real time, which requires the scenes to have as few polygons as possible. The highly detailed textures in the Diffuse Color and Bump maps that are made possible by Normal mapping in large part make up for the loss of polygonal detail in the model.Let's use Normal mapping to texture a simple Plane object with a higher-resolution Plane object.
1. | Open the file Project Normal to Bump start.max on the DVD. Select the Project To Plane object. Press the keyboard shortcut 0 to open the Render To Texture dialog. | 2. | Within the Objects To Bake rollout, check Enabled for Projection Mapping. Click the Pick button and add the Project From Plane object. Make sure that Use Existing Channel is selected for both Object and Sub-Object and that you are using channel number 1 (Figure 3.8).Figure 3.8. To begin the process of Normal mapping, pick the Project From Plane object and check Use Existing Channel. [View full size image] A Projection modifier will automatically be applied to the Project To Plane object. Since the Project To Plane object already has mapping coordinates, you do not need Render To Texture to flatten a map, so uncheck Use Existing Channel.Note | In order to maintain control, prior to choosing Render To Texture you should make your own mapping coordinates and keep Use Existing Channel selected. |
| 3. | Within the Cage rollout, check both Shaded and Point To Point. Change the Amount value to 130.Checking both Shade and Point To Point allows you to visualize the area the Cage will use to project the Normal map. After the Amount value is typed in, the value will return to 0.0.If for any reason you need to get the blue Cage back to its original location, press the Reset button and retype the Amount you want to push the Cage. If the Cage does not completely surround the source object, then the resulting image will clip out the misaligned areas (Figure 3.9).Figure 3.9. The Cage completely surrounds the Project From Plane object. [View full size image] | 4. | Press the Add button in the Output rollout of the Render To Texture dialog and choose NormalsMap from the list. Make sure that the Target Map slot shows Bump (if needed, select Bump from the Target Map Slot drop-down to show it in the Output window). Change the Size to 1024 by pressing the 1024 button. Change the Render from Original to Baked, and press the Render button (Figure 3.10).Figure 3.10. A NormalsMap is rendered and applied to the Bump slot. This figure shows the dialog's final state.
Changing the Size to 1024 gives you extra mapping pixels that make the rendered image look cleaner and more detailed. The rendered image goes into the Bump slot of a Shell material. This Shell material is automatically assigned to the Project To Plane object, but is not automatically visible in the Material Editor. You will need to put this material into one of the Material Editor slots so it can be edited. | 5. | Activate the third Material slot. Click the Pick Material from Object button (the eyedropper) and the Project To Plane object (Figure 3.11).Figure 3.11. The Shell material, which is applied to the Project To Plane object, is placed into the third slot. [View full size image] A Shell material is made from two materials: the Original and the Baked. You can choose to have either the Original or the Baked material used in the viewport and/or the rendering. If you render at this point, the Baked material will show the bump raised like the Project From Plane object. In the next step, you will increase this bump to exaggerate how much it lifts. | 6. | Click on the Baked Material button to edit it. Change the Specular Level to 50. Change the Bump Amount to 300 (Figure 3.12).Figure 3.12. The bump has been exaggerated and will show better in the final rendering.
 | 7. | Render the Perspective viewport (Figure 3.13).Figure 3.13. The bump from the Project From Plane object is projected to the Project To Plane object.
 |
 |