ZMapper Reference
From ZBrush Info
Contents |
Installing or Starting ZMapper
If your display resolution is 2048x1024 or narrower, you might have it happen that the ZMapper interface is not visible after launching it. This is because the interface requires a certain amount of screen space, and will not appear if there isn't enough room. In this case, try closing the left and/or right trays before launching ZMapper. If that's still not enough, hide the shelf by pressing the Tab key. You can also increase your system's display resolution if your graphics card supports it.
In order to use the plugin, you'll have to make sure it is loaded. There are two ways of doing this. ZMapper can either be installed as a plugin, meaning it will automatically load whenever ZBrush is started, or it can be loaded manually whenever you wish to use it. Both methods are described below. In general, installing ZMapper as a plugin is probably the way to go; ZMapper adds just one button to the user interface, and requires no significant resources when not being used.
Installing ZMapper as a Plugin
First, locate the home ZBrush folder, the one containing the ZBrush application. This can be almost anywhere on your system, depending on how ZBrush was installed, but good places to look first are /Applications/ZBrush2 (on a Macintosh), or C:\Program Files\Pixologic\ZBrush2 (on a PC). If you cannot find it easily, use your computer's 'find file' function to search for 'ZBrush'.
Within the ZBrush home folder should be a folder called ZStartup. Inside that folder, create a folder called ZPlugs, if it does not already exist.
Finally, copy or move the ZMapper files (ZMapperData and ZMapper.zsc) into the ZPlugs directory.
The next time ZBrush is started, it should automatically load ZMapper. If you then open the Zplugin palette, you'll see a button called ZMapper. Pressing this button will start ZMapper.
Loading ZMapper Manually
To load ZMapper manually into ZBrush, make sure you know the location of the folder containing the ZMapper plugin and its associated files. From within ZBrush, open the Zscript palette and press Load. Using the file open dialog that comes up, locate and load the file ZMapper.zsc, that will start it just as if it had loaded as a plugin
Once this is done, pressing ZMapper in the Zplugin palette will start the ZMapper plugin.
If you use this method, you'll need to load ZMapper each time you start ZBrush.
The ZMapper Process--Workflow Reference
The steps below specify how the ZMapper plugin is used from ZBrush, without going into ZMapper details. See section #ZMapper Interface Description and Reference, more detailed examples and explanations of the options available in the ZMapper plugin.
1. To begin, create or obtain a low-resolution mesh in ZBrush. There are two ways of doing this. First, you can create a Polymesh3D tool in ZBrush and use that. Or, you can import a low-resolution mesh from another application..
2. Once the initial mesh is in ZBrush, edit it as you normally would. This typically consists of subdividing the mesh and then adding detail at higher and higher levels of resolution until you are satisfied with the final detail.
3. In the Texture palette, create a new custom texture or select an existing custom texture into which the normal map will be written. If no texture has been created for the model, a new texture with a default size will be created.
4. If you wish to incorporate a bump map in the generated normal map, select it as the Alpha palette map and set Tool:Displacement:Intensity appropriately. (See examples for further details.)
5. Set the subdivision of your model to show the low-resolution model for which you are creating a normal map.
6. Activate the ZMapper plugin by pressing the ZMapper button. Unless the UI configuration has been customized, this button can be found in the Zplugin palette. The display will show a preview screen containing your model, and a control panel for setting options and generating normal maps.
7. Select either tangent coordinates or object coordinates, then create the map. There are a number of other options that may also be set before map creation, to affect various aspects of the final appearance.
8. Exit ZMapper. The created normal map will appear in the ZBrush Texture palette, and may be exported like any other texture.
Of course, the above is just a recipe that doesn't really indicate all of the possibilities. Here are some of the many ways you can alter this recipe.
- Create a model in ZBrush, then subdivide and sculpt it to a certain level. Create a very high-resolution texture map and paint it with displacement information using Projection Master. In ZMapper, generate a normal map that incorporates both the high-level sculpted details and the painted displacement information.
- Import an externally generated model and a bump map for it. Use ZBrush to sculpt further details into the model, then apply both that information and the previously existing bump map to generate a comprehensive normal map.
- Import an externally generated model and a displacement map for it. Subdivide the model in ZBrush to show an extremely high level of detail, and use the displacement map to produce a subdivided model whose geometry actually reflects the geometry implied by the displacement map. Refine the model and then use ZMapper to create a normal map without further need for reference to the original displacement map.
The details of all of these techniques are described throughout section #ZMapper Details, and examples of them may be seen in section #??5??.
Map and Model Resolutions
In spite of the nondescript title, the information in this section is quite important to achieving the best normal map possible. When working with ZMapper, there are up to four different resolutions you must consider:
- The resolution of the 3D object being mapped, in terms of number of polygons and uniformity of distribution.
- The resolution of the final normal map.
- If creating a bump map in ZBrush, the resolution of the bump map.
- If using Projection Master as part of the process, the resolution of the canvas.
For optimal results, you need to make sure that all of these resolutions are set to be compatible with one another. Here's how to do it.
- Assuming the polygons on your high-resolution model are distributed fairly equally over the UV unwrapping of the model, the number of pixels in the normal map (i.e., map pixel height times map pixel width) should be about equal to the number of polygons in the high-resolution model. If you have many more pixels than polygons, many pixels will end up mapping to the same polygons, which means your map will be carrying redundant information. Conversely, if you have many fewer pixels than polygons, some of your polygons will not be reflected in the normal map, and detail will be lost. Note that whenever you increase the size of a normal map, the number of pixels in it goes up by a factor of four, which might make it hard to get a good match for the number of model polygons. If your end use application can handle it, too many pixels will give better results than too few in this case.
- If you will be incorporating a bump map, the bump map dimensions (width and height) should generally be between one and two times the width and height dimensions of the normal map. Bump maps smaller than this will not be taking full advantage of the detail they can contribute to the normal map, and bump maps larger than this may lose fine detail when rolled into the normal map. Note that bump map dimensions are not constrained to have the same width and height, or to be powers of two.
- If using Projection Master to create a bump (or similar) map, we need to consider the resolution of the ZBrush canvas. The rule is that there should be an approximate one-to-one correspondence between pixels on the canvas and mapped pixels on the viewed portion of the model after it has been dropped, assuming it is sized so as to fill most of the canvas. This ensures that any change to a pixel on the canvas will result in a more-or-less equivalent change to a pixel (or a couple of pixels) in the bump map. When working with a flat one-sided model such as a plane representing a wall, this means that the resolution (and for that matter, the pixel dimensions) of the canvas should be about the same as the model. If the model is two sided, then on average only one-half of its mapped pixels will be exposed at any time, so the number of pixels on the canvas should be about half of the number of pixels in the bump map.
ZMapper Interface Description and Reference
Once in ZMapper, you'll be presented with your model and the ZMapper control panel. Basic navigation around the model can be done using the mouse. Everything else is done with the control panel.
Navigating Around the Model
As in ZBrush proper, ZMapper provides quick ways of viewing your model from different angles, zooming in and out, and so forth. These are described below. In addition, some of the control panel options affect model navigation, as discussed in section #Transform Column.
Rotate Model: Click and drag on the model or the display background. If the Spin switch in the control panel is on, the model will continue to rotate after the mouse button is released, in the direction of the drag. The speed of the rotation corresponds to the speed of the mouse at the end of the drag.
Pan Model: Hold down the space bar while you click and drag the mouse on the model or background.
Zoom Model: Right-click and drag on the model or background.
ZMapper Control Panel and Control Types
The ZMapper control panel appears along the bottom of the ZMapper screen. It contains an upper portion and several other sections that may be accessed via tabbed pages. ZMapper uses the standard control types in its interface; buttons, tabs, etc. These are described below.
Buttons such as Exit are shown as a lighter gray outlined area, containing the button text. Pressing on a button causes an action.
Switches such as Spin are shown as text drawn on a darker gray background if deselected; and as text on a yellow background if selected. Switches may either be toggles (clicking turns them on or off), or part of a group (clicking one activates it, and turns any other switch in its group off).
Intensity controls such as Morph Speed are shown with a gradated bar underneath. Clicking on the control sets the degree of intensity. If only the white square at the left of the bar is highlighted, the intensity is set to 0.
Tabs, such as Normal & Cavity Map, allow access to further controls in ZMapper. Clicking on a tab shows the controls associated with that tab, hiding any other tab's controls. Shift-clicking on a tab will show that tab's panel, without hiding other panels.
At any point in time, clicking on the UI title bar--the one at the top of the control panel--will hide or unhide the rest of the panel, to allow enlarging the area of the screen available for viewing the model.
Upper Controls
The upper ZMapper controls are those shown below; they are the most basic controls in the interface, and are not part of a tabbed page. The controls in the tabs will be discussed in later sections.
- Figure: ZMapper Upper Controls
We'll go through the upper controls on a column by column basis, then talk about the tabs and open/save configuration controls at the end of this section.
ZMapper Column
The ZMapper column contains general controls not related to the categories defined by the other columns. These are:
- Exit: Quit ZMapper. After exiting, any normal map you created will be available in the Texture palette of the main ZBrush application. ZMapper may also be exited using the Escape key.
- Hide: Toggles visibility of the ZMapper UI.
- Local Light: The ZMapper preview normally shows the model lit with a fixed, predefined lighting source. When Local Light is activated, a light will be created which rotates with the model. This light source, if visible on the display, will appear as a yellow cube, as shown below. To move the light relative to the model, click and drag it (if it is visible on the screen) or click and drag anywhere on the screen while holding down the shift key.
- Figure: Local Light Illumination.
- The yellow light will always illuminate the model from the same relative angle, regardless of how the model is rotated (i.e. the light rotates with the model). If this view of the model were flipped vertically, you'd see the backside is completely unlit by the local light.
- Opaque: By default the UI panel is semi-transparent to enable viewing any part of the model that might be behind it. This toggles it to be opaque.
- Background: Controls the grayscale intensity of the background.
- RenderRgn: When active, this switch causes a render box to appear on the screen. The box may be resized by dragging on any of the four corners, and moved by dragging anywhere else in the border. In addition, dragging within the box will draw a region that further refines the render area. Once a region is created, creating a normal map will create it only in and around that region. This can be extremely important when working on specific areas, since you can evaluate changes on those areas without re-rendering the entire normal map--potentially a time consuming process. Below you can see a selected, rendered region.
- Figure: Rendering a Specific Region of the Normal Map
Transform Column
The Transform column controls are related to navigating around the model.
- Rotate, Scale, Move: Rotate is the default option, and if chosen, all of the various methods for viewing the object described in section #Navigating Around the Model,"Navigating Around the Model", apply. If either of the other two options is selected then any of the actions described in that section cause the model to be scaled or moved, as appropriate to the selected setting. How you use these settings will depend on how often you use ZMapper, and your preference for remembering shortcuts vs. explicitly selecting actions with the UI. If you prefer the speed of the shortcuts described in section #Navigating Around the Model, always leave Rotate selected. If instead you prefer the simplicity of using just one type of action for all transforms, simply select the appropriate transform and then click and drag to perform it.
Mesh Column
The Mesh column contains various options having to do with viewing the mesh:
- Facetedor Smooth: Models are normally displayed using standard polygon smoothing, but choosing Faceted disables polygon smoothing in some (not all) render modes. This allows you to see the exact relationship of an underlying area (such as a UV texture group) to the polygons it covers. #??0?? gives an example.
- Figure: Mesh Faceted Display.
- Spin: When on, the model will rotate continuously in the preview window. You can control the direction and speed of the rotation by dragging the mouse on the model or background. (The Transform mode must be Rotate for this to apply; see above.) The speed and direction of the spin will be set by the mouse motion at the time you release the mouse button.
- Recenter: Causes the model to be reset to its initial position on the screen. Repeatedly clicking this button will cycle between viewing angles.
- Diffuse Intensity: Slider allowing selection of the intensity of the diffuse (ambient) light source. When Local Light is on, controls the brightness of the local light.
Morph Modes Column
The Morph Modes column allows the model to dynamically morph between different representations.
- Morph 3D: Causes the model to cyclically morph between its initial geometry and a predefined morph target, if such a morph target exists. (Morph targets can be defined while modeling in ZBrush.) If no morph target exists, nothing will happen. This can be useful for seeing the interaction between an animation (as simulated by the morph cycle) and the normal map. This may reveal artifacts without the necessity of transferring all of the data over to the next 3D application in your workflow.
- Morph UV: The screenshots below try to give some idea of the effect of this very interesting tool. Basically, this morph dynamically unwraps the 3D model surface onto a 2D texture plane so that you can easily see how various parts of the model correspond to the UV mapping.
Series of images from 'Morph UV' setting.
- The unwrapping of the troll below shows how various areas of the normal map correspond to areas on the model itself.
- The normal map for the head below was set up using adaptive UV tiling ('AUV' tiling) in ZBrush, which UV maps small sections of the model to appropriately sized rectangles in the normal map, ensuring minimal distortion. Compared to more standard mappings such as for the troll above, this makes more efficient use of the texture map, but gives little control over the positions of seams.
- Freeze At Target: When one of the two morph modes is on and this switch is activated, the morph cycle is suspended and only the other endpoint of the morph is displayed. For example, if Morph UV were on, the normal map unwrapped onto the texture plane would be shown.
- Morph Speed: Controls the speed of the morph cycle.
Wires Column
The Wires column controls various display properties of the model by imposing lines (wires) on the rest of the model. All of these options can be toggled independently.
- PolyFrame: Shows the borders of polygons. If groups are defined, border colors reflect this.
- Figure: 'PolyFrame' Model View.
- TanFrame: Shows the polygon tangent and bi-tangent[1] vectors used in generating the normal map as red and green lines.
- Figure: 'TanFrame' Model View.
- NormFrame: Shows blue lines giving polygon normal directions.
- Figure: 'NormFrame' Model View.
Screen Column
The controls in the Screen column allow the creation and saving of screenshots showing multiple views of the same model in different poses, or with different rendering options. To obtain such snapshots:
- Render and place the model on the screen as desired. Activate Snapshot. This will place a copy of the model on the screen background; when the model is next moved, the copy will remain.
- Repeat step 1 as desired, to build up a screen with multiple snapshots.
- Activate Save to prompt for a file save dialog, or Dispose to clear the screen background.
Below is a screenshot of two views of the troll model, one showing the normal texture and the other showing normal shading, composed into the same screen using the snapshot functionality. You can see how this would be useful for constructing thumbnail arrays for comparing poses, texturing, and so on.
- Figure: Multiple views caught with 'Snapshot'.
Display Column
The Display column, on the top right side of the control panel, allows viewing the model in various ways and also controls whether a normal map will be generated in object or tangent space
- Display slider: Changes the perspective of the model. Low intensities present the model as if it being viewed from afar with a high-powered zoom lens. High settings make it appear as if it were viewed from nearby with a wide-angle lens.
- Figure: Effects of 'Display' slider.
- Increasing values change the shot from a distant zoom shot to a close-up wide-angle shot.
- Object space N.Map: Causes the model to displayed using the associated texture (if any) as an object-space normal map. As well, any normal map created while this option is on will be an object-space normal map.
- Tangent space N.Map: Causes the model to displayed using the associated texture (if any) as a tangent-space normal map. In addition, pressing Create NormalMap (Found in the first tabbed page of the interface) while this is on will cause the generated normal map to be a tangent-space normal map.
- Figure: Model as it would appear with a tangent-normal map viewed using the tangent space option, or with an object-normal map viewed with the object space option set.
- Normals: Shows as colors the object-space normals of the low-resolution surface as applied to the low-resolution surface. In the figure below, the upper side is green, yellow, and orange, while you can see the traces of blues and purples that are the predominant colors on the lower side. This "full spectrum" range is characteristic of the RGB representation of normals over the surface of an object when the normals are calculated in object space.
- Figure: Model with Normals render option on.
- Tangents: Same as "Normals", except that the vectors calculated and displayed are the tangent vectors used in calculating the normal map.
- Figure: Model with Tangents render option on.
- UV Seams: Uses colors to show how different areas of the model map to different areas of the normal map texture. The borders between areas of different colors correspond to seams in the normal map texture. The colors are arbitrary and do not represent vectors of any sort.
- Figure: Model with UV Seams render option on.
- Groups: Displays the model with its different groups shown in different colors. Groups may have been generated in ZBrush, or may have been defined in a model imported from another application.
- Figure: Model with Groups render option on.
- Texture: Shows the model with the normal map (whether tangent or global space) applied as a colored texture. This is the best way of seeing how colors in a normal map relate to the appearance of bumps on the surface.
- Figure: Model with Texture render option on.
- This displays the color of the generated normal map. The bluish color of the map below indicates it was built in tangent space. An object-normal map would display a full spectrum of colors.
Configuration and Preview Controls
- Open Configuration: Allows loading a predefined configuration file that will set options appropriate for an external program you use in conjunction with ZBrush normal maps. Configuration files can be saved for later reuse (see below), or one of many predefined files included with ZMapper can be used. When you first choose Open Configuration, you'll be presented with a file selection dialog showing the contents of ZMapper's standard configuration files directory. Configuration files shipping with ZMapper indicate their uses by file name.
- Figure: Predefined Configuration Files in ZMapper
- Save Configuration: Use this button to save ZMapper configurations you've found particularly suited to your needs or favorite applications, and then reload them at a later date with Open Configuration.
- Preview High Resolution Level: Superimposes a rendering of the ZBrush model's high-level mesh over top of the model in the ZMapper screen. The ZBrush model will be displayed with whatever texture is assigned to it, which will be the normal map if one has been generated. This allows easy comparison of the appearance of the sculpted mesh with the effect of the normal map on the base mesh.
Subpanel Tabs
These control access to subpanels of the ZMapper interface. Those subpanels are described later.
The subpanels themselves are accessed simply by clicking on the appropriate tab. In addition, Shift-clicking on a tab will open that subpanel without closing any currently open subpanels; this makes it possible to have the entire ZMapper control panel visible at one time.
Normal & Cavity Map Tabbed Panel
This section describes the normal map creation options found under the Normal & Cavity Map tab. These are the settings you'll most commonly use to affect a generated normal map. (The Save Configuration and Open Configuration buttons were discussed previously).
- Flip Image Vertically: The generated normal map texture will be flipped top to bottom. Some external programs or renderers will need to use vertically flipped normal maps.
- Flip Red Channel: Vertically flips just the red channel of the normal map.
- Flip Green Channel: Vertically flips just the green channel of the normal map.
- Switch Red and Green Channels: Switches the red and green channels of the normal map. This is used with programs or renderers that switch the x-y coordinate space mapping of the color channels opposite to the "usual" way of doing things.
- RGB Blur: If you find artifacts when rendering using a ZMapper normal map, increasing the Blur value may eliminate these artifacts. Try this particularly if you find 'black speckles' in the model when displayed using the created normal map. (This has to do with limitations inherent in the process of mapping 3D geometry to a normal map representation, and will be encountered in some form in all normal map creation programs that employ the high-resolution/low-resolution subdivision correspondence used by ZBrush.)
- RGB Sharp: Inverse of RGB Blur. This is another control that may allow you to change the final map to be of higher quality.
- Seam Overpaint: When renderers are processing normal map information (or almost any other type of map information, for that matter), they need to handle UV seam issues. These issues arise because adjacent polygons in the model may be mapped to areas of the normal map that are not adjacent. A renderer that in some sense averages nearby map pixels in its calculations may need to go outside the actual group/polygon area of the map in these cases. As a result, some maps (including normal maps) may need to have valid map information outside of and around the borders of the map areas actually corresponding to points on the model. This option controls how many pixels outside of a map area such information may be written. You can try increasing it to handle artifacts that appear at UV seams.
- Samples, Subdivide: These affect the quality of the final map. Higher values are likely to produce higher quality, at the expense of increased map generation time.
- Inflat Hires Mesh Details and Inflat Bumpmap Details: Both of these exaggerate the bumps or wrinkles in the mesh by inflating them, depending on the intensity of the settings. The first control causes inflation before any bumps have been processed into the model's geometry, and so causes inflation of only geometric details; the second causes inflation after bumps have been processed into the model's geometry, and so inflates both geometric and bump details. Both may be used at the same time, but doing so will often lead to artifacts. Using these settings is definitely a matter of artistic judgment. Some screenshots are shown in below to try to give an idea of what the settings do.
- Figure: Close-ups of effects of 'Inflat Hires Mesh Details' and 'Inflat Bumpmap Details' controls.
- Inflat Hires Mesh Details at max, Inflat Bumpmap Details at max. Artifacts are clearly visible.
- Inflat Hires Mesh Details at max, Inflat Bumpmap Details at 0. Notice that the headband and some folds around the eye are more prominent, but that the headband dots (which are bump map details) are unchanged from frame 1.
- Inflat Hires Mesh Details at 0, Inflat Bumpmap Details at max. Now not only Now not only the geometric details, but also the bump map details, have been inflated.
- Inflat Hires Mesh Details at, Inflat Bumpmap Details at. This is the base model.
- Sharpen Bumpmap Details: Allows elements of the bump map to be presented more clearly, but possibly with a more pixilated effect. This is shown below.
- Figure: Elephant ear rendered at low and high values of 'Sharpen Bumpmap'.
- Sharpen Hires Mesh Details: Similar to the previous setting, but applies to mesh rather than bumpmap details.
- Cavity Intensity: One commonly used technique to achieve realistic or dramatic renders is the idea of ambient occlusion, where recessed areas of a surface become darker, even if a model is lit only with diffuse light. Cavity shading is a way of simulating this effect, and of incorporating it into the generated normal map. Cavity Intensity controls the degree of this effect; higher settings will result in darker cavities. If this setting is 0, no cavity shading will be done.
- Figure: Section of troll used to illustrate cavity mapping.
- The portion of the troll model shown below will be used to illustrate how the different cavity settings affect the final cavity map. This area was chosen because it has both wrinkled areas, flat areas, and blends between the two.
When viewing a normal-mapped model with standard shading, it's difficult to separate the effect of cavity shading from the effect of standard shading. Accordingly, in the examples below we have presented the cavity effects with cavity mapped models, rather than with normal-mapped models. Cavity maps may be created with the Create CavityMap button, described later.
- Figure: Effects of 'Cavity Intensity' setting.
- The three images below show the effects of rendering a cavity map with the cavity intensity set to 0.25, 0.5, and 0.75 of its maximum value, respectively. Other cavity-related settings held constant. Higher settings will result in darker cavities in final rendered images.
- Cavity Coverage: Affects what is considered a cavity. In practical terms, you can think of the 'cavity ratio' of a recessed area as the ratio of the depth of the recess to its width. The higher this ratio, the more of a cavity a recess is. As cavity coverage is increased, more recesses that are shallow in relation to their width will be considered and shaded as cavities. In particular, note the effect of this setting on the wrinkles in the relatively smooth area under the troll's collarbone.
- Figure: Effects of 'Cavity Coverage' setting.
- Cavity maps rendered with cavity coverage set to approximately 0.5, 0.75, and maximum of full intensity, respectively. Other cavity-related settings were held constant. Higher settings will result in more geometry being affected by cavity darkening in final rendered images.
- Cavity Blur: Use this to compensate for artifacts that might appear when using cavity shading, or to cause an effect that does not follow the contours of the model as closely as it otherwise would.
- Figure: Effects of 'Cavity Blur' setting.
- Cavity maps rendered with a blur setting 0.25, and 0.75 of maximum, respectively. Other cavity-related settings were held constant. Higher settings will cause cavities to appear softer and larger in final rendered images.
- Raytrace, Interpolate: Normal map generation is done somewhat differently depending on which of these modes is on. Map generation times will differ somewhat between modes. More importantly, the different generation modes may have an effect on the final appearance of the normal-rendered low-resolution mesh, depending on the tools and techniques you used when refining the model in ZBrush. (Using tools such as Nudge, which cause a vertex in the high-resolution model to be displaced significantly across a surface, compared to the same vertex in the low-res model, will be most likely to produce visible differences using these modes.) Often, the results using one method will be effectively identical to the results using the other method. Inspecting renders whose normal maps have been generated in each way is the best way to see which mode fits with your workflow.
- Figure: Normal map generated with interpolated mode.
- Details around the eyes are not quite as desired.
- Figure: Normal map generated with raytraced mode.
- Note how the eyes are slightly rounder, compared with the previous picture.
- Create NormalMap: Create a normal map using the specified settings, and write it to the texture chosen when ZMapper was started. (If no texture was chosen, or one of the built-in textures was chosen, a new texture will be created with a default size.) The model will be displayed in ZMapper using the generated map, once the map is complete.
- Create CavityMap: Like Create NormalMap, except that a grayscale map showing the calculated cavity intensities is produced (and will be available as a texture after quitting ZMapper). This can be useful in a number of ways. Looking at the cavity map in ZMapper makes clear what effect the cavity settings have on where shading takes place, which is not obvious from inspecting a normal mapped surface. A cavity map can also be produced separately from a normal map, and modified by hand to produce other effects, before being included in the rendering pipeline.
Projection Tabbed Panel
The Projection panel controls projection of a normal map from one mesh to another of the same shape but with different topology.
We won't describe all of the controls in detail--many of them will normally be set in the predefined configuration files that ship with ZMapper. The most important ones are:
- Capture Current Mesh: This is normally the first button activated when projecting a normal map. It sets the currently selected ZBrush subdivision model as the source mesh from which a normal map will be calculated and projected. Once the source mesh has been captured, you should exit ZMapper, choose the target mesh in ZBrush, and come back into ZMapper to project the mesh.
- Create Projected Normal Map: This is used after the source mesh has been captured and a target mesh has then been selected. It calculates the normal map for the source mesh, and then projects it onto the target mesh.
- Release Captured Mesh: Once you've created your projected normal map, use this to set the captured mesh to none. This will restore the ZMapper display area and let you view the finished model.
- Raycasting Max Scan Distance: Sets the maximum distance ZMapper will cast rays from the source mesh as it tries to find a matching point on the target mesh. You may need to increase this if some parts of your models are not closely fitted.
- ShowMesh, ShowCap: At least one of these must be set. They control visibility of the target and source (captured) mesh, respectively.
- Allow Out, Allow In: If one if these is turned off, then ZMapper will not raycast out/in as it tries to match points on the source and target mesh. This may be useful if some points on the source surface can map to points on the target by both casting in and out. However, chances are that if that happens, your mesh has become folded in a way you didn't intend.
- Favor Out, Favor In: At most one of these may be set. If raycasting in both directions is allowed, then setting one of these tells ZMapper that the favored direction should be used if two target points are found, regardless of distances.
The other controls set how rays are projected. There should be little need to use these, but you can experiment if the default Normal setting does not provide satisfactory results.
Expert 1 Pass and Expert 2 Pass Tabbed Panels
If you're looking at these controls, you're getting deeply into normal maps. Different applications can use normal maps in subtly different ways, and the expert options allow fine-tuning of normal maps to achieve exactly the desired result. It's more likely that these options will be set via configuration files than by hand.
- Figure: Normal mapping expert panels.
The expert options will not be described in detail in this document, but the next few paragraphs give an idea of some of the issues involved.
Expert Option Passes
First, notice that many of the controls in the first panel also appear in the second, and vice versa. The expert options are actually applied in two passes. The Expert 1 Pass panel defines options applied in the first pass, and Expert 2 Pass defines options applied in the second pass. The duplication of some of the controls allows certain effects to be applied before or after other effects, as a matter of choice.
Surface Normal Interpolation
In the raycasting process the rays projected out from the low-resolution surface are not projected perpendicularly to each polygon in the low-resolution surface. Instead, the ray directions are typically interpolated in some manner, using either surface normals or vertex normals in the low-resolution surface, in order to account for the fact that the polygons are normally intended as an approximation of a smooth surface. Casting rays straight out from each low-resolution polygon would not take into account this implied smoothness.
At the same time, not all polygons or polygon boundaries should be smoothed. Some of them really do represent flat faces or sharp edges. Standard mesh file formats do not have an agreed-upon method for indicating where smoothing should and should not occur, so normal map generation programs often provide options to allow heuristics during the map generation process. For example, you might wish to indicate that polygonal borders sharper than a given angle should be considered as sharp edges, while less sharp borders should be considered as smooth edges.
In addition, polygon groups often indicate sections of a model that have sharper boundaries with respect to adjacent groups, making it desirable to allow different heuristics at group borders than at polygon borders. This may also be true at UV seam borders.
A number of the expert options, such as the various PreSmooth... and PostSmooth... options relate to these issues.
Map Distortion Issues
Given the amount of translation that is being done from one space (such as the xy coordinates of a normal map texture) to another (such as the tangent space coordinates on the surface of a polygon), it would be surprising if angles in one space always translated into equivalent angles in another space. However, the definition in tangent space of the tangent, normal, and binormal vectors is such that they are supposed to be perpendicular to one another. In order to account for these stretching and distortion affects, adjustments to calculated vectors may be necessary during the normal map generation process. Expert options in ZMapper relating to this include the Orthogonalize... and Derive... options. If you play with these options, you'll often find that changing one changes another, because there are interactions between them.
Expert Options Summary
The expert options panel in ZMapper exists to compensate for the fact that other 3D applications will interpret the subtleties of normal maps in different ways. This is likely to be a general cross-application difficulty, until standards for normal maps have been agreed on and published.
This whole section on expert options was intended to help satisfy the curiosity of those who may be wondering about all of these additional controls, and to give some indication to those who may need to use expert options as to what the options relate to.
Few people should need to actually get this far into normal mapping details, however. ZMapper comes with a large number of configuration files (see section #Configuration and Preview Controls) that will appropriately set all options for use with many other 3D programs. More configuration files will become available on the Pixologic website and in the ZBrushCentral forums in the future.
Misc Tabbed Panel
This final panel contains a few simple options that aren't commonly used, or that don't fit in with the other subpanels.
- Wireframe: Normal vector length and Wireframe: Tangent vectors length: Controls the length of vector lines drawn when the corresponding view in the Wires column of the upper part of the control panel is active.
- Activate MipMap Preview: When active, ZMapper will calculate and use mipmaps while displaying the model. This allows you to rotate and scale the model to see if any artifacts are generated by the interplay of the mipmaps.












































