3D Studio MAX Online Reference

From this screen, you can look for information in three ways:

Contents

The Contents lists groups of related topics, like the chapters in books.

  1. Click the Contents tab to display the Table of Contents.
  2. Click the book icon representing the area in which you need information.

The page icons below each book represent topics in that area.

  1. Click the page icon for the topic you want.

Index

The index is an alphabetical listing of keywords. A single keyword may be linked to more than one topic.

  1. Click the Index tab to display the Help Index.
  2. Scroll through the alphabetical list to find the term for which you need information.
  3. Click the term, then click Display to see the topic or topics for that term, or double-click the term to see its topics.

Search

Full-text search lets you search all the help topics for any word or phrase.

  1. Click the Search tab to conduct a full-text search.
  2. Enter the word or phrase for which you want to search, then click List Topics.

All topics containing your entry are listed.

  1. Scroll through the list to find the topic you want.
  2. Click the topic name, then click Display, or double-click the topic name to see the topic.


Title Bar

The title bar displays the 3D Studio MAX program name followed by the current MAX file name. When you first start 3D Studio MAX, this file name is Untitled.


Menu Bar

3D Studio MAX uses a standard Windows Menu Bar. Menu commands that are on/off toggles use a checkmark to indicate their status. The following menus are available:

File Menu

Edit Menu

Tools Menu

Group Menu

Views Menu

Rendering Menu

Track View Menu

Help Menu


File Menu

Contains functions for managing files, as listed here.

New

Reset

Open

Merge

Replace

Insert Tracks

Save

Save As

Save Selected

Import

Export

Archive

Summary Info

View File

Configure Paths

Preferences

History

Exit


New

Clears the contents of the current scene without changing system settings (viewport configuration, snap settings, Material Editor, background image, etc.).

Reference

Keep Objects and Hierarchy: Keeps the objects and the hierarchical links between them, but removes any animation keys.

Keep objects: Keeps the objects in the scene, but removes any links between them and any animation keys.

New All (Default): Clears everything and starts afresh.

How To

To create a new scene

  1. Choose File/New or press CTRL+N.
  2. Specify the types of objects to keep.
  3. Click OK.


Reset

Clears all data and resets the system settings (viewport configuration, snap settings, Material Editor, background image, etc.).

Reference

The Reset dialog prompts you to save changes, if you have made any since the last save operation. A confirmation dialog asks if you want to reset.

Resetting restores 3D Studio MAX to its default configuration and removes any customization you may have done during the current session. Resetting 3D Studio MAX has the same effect as exiting and restarting the program.

When you reset, 3D Studio MAX accesses the 3D Studio MAX start-up defaults. These default are stored in the file maxstart.max.

How To

To reset 3D Studio MAX

  • Choose File/Reset and specify whether to save any unsaved changes.


Open (File Menu)

Open

Loads a 3D Studio MAX scene file (.max file).

Reference

If the scene you're loading was created using plug-ins that are not installed, a dialog lists them. You can still load the file, but any objects in the scene that were created by the missing plug-ins are replaced by boxes.

When Automatic Unit Conversion is selected on the General page of the Preferences dialog, loaded files that have a different system unit scale display a dialog that lets you rescale the loaded scene to the current system unit scale or change the current system unit scale to match the one in the loaded file. No conversion is done when loading files created in 3D Studio MAX Release 1.x.

If you rescale the file objects, the objects are scaled as if they had been created using the current system unit scale. For example, if the current system unit scale is set to 1 unit = 1 inch, and the incoming file was set to 1 unit = 1 foot, a sphere with a radius of 100 feet becomes 1200 inches in radius (if the unit display is set to generic units), or 100 feet.

If you change the current system unit scale to match the one in the loaded file, the same sphere remains 100 feet in radius, the System Unit Scale setting in the Preferences dialog is reset to 1 Unit = 1 Foot.

If Automatic Unit Conversion is cleared, a 100-unit radius sphere that was created in a 1 = 1 foot system becomes a 100-inch sphere in a 1 = 1 inch system with a 100-unit radius.

How To

To display the Open File dialog

  • Choose File/Open or press CTRL+O.

To reopen a previously opened file

  • From the bottom of the File menu, choose the file name.

You set the number of scene files listed by changing the Recent Files in File Menu field in the Files panel of the Preferences dialog. The valid range for the number of files to display is from 0 to 9.

To launch 3D Studio MAX and open a specific file

  • Specify the filename after the 3D Studio MAX program file. For example, enter:

C:DSMAXDSMAX.EXE myproject.max

To launch 3D Studio MAX and open the last file you worked on

  • Type -L after the 3D Studio MAX program file:

C:DSMAXDSMAX.EXE -L


Merge

Merges objects from other 3D Studio MAX files.

When Automatic Unit Conversion is selected on the General page of the Preferences dialog, merged objects from a file with a different system unit scale are scaled to maintain their correct size in the new scene. No conversion is done when merging files created in 3D Studio MAX Release 1.x.

If Automatic Unit Conversion is cleared, a 100-unit radius sphere that was created in a 1 = 1 foot system becomes a 100-inch sphere in a 1 = 1 inch system with a 100-unit radius.

See also:

Merging Atmospheric Effects

Open

Replace

Insert Tracks

Reference

Select the 3D Studio MAX scene file to merge in the standard file selector dialog. To see more than one file type at a time, choose the All Files file type.

After you select a file, select the objects to merge in the Merge dialog.

All/None: Select or clear the object-type check boxes when you are filtering your list.

Invert: Reverses your current list selections.

Display Subtree: Displays the objects in the list in an indented format and enables the Sort and Select Subtree options. Clear this option to left-justify the list.

Select Subtree: When Display Subtree and this option are selected, all items indented below the selected one are also selected.

Case Sensitive: Distinguishes between upper and lowercase for item names.

Sort: Allows you to sort the list on the left. If the Display Subtree check box is selected, these options are disabled.

Alphabetical: Sorts from A at the top to Z at the bottom.

By Type: Sorts by category, using the same order as the check boxes in List Types.

By Color: Sorts by object wireframe color.

List Types: Determines which components in the scene are displayed in the list on the left: geometry, shapes, lights, cameras, helpers, and space warps.

Groups: Displays only groups of objects. Groups are shown in brackets. If you turn off Groups display, only the group name is shown, in brackets. To merge an entire group, select the group and all its children.

All/None: Select all items or no items.

Invert: Reverses your current list display criteria. If groups were displayed, Invert displays items; if all items were displayed, Invert deselects all items.

How To

To specify object types to list, do any of the following

  • Display or hide the subtree. If the subtree is displayed, you can sort items in the list alphabetically or by type or color.
  • Select the object types that you want displayed in the list box.
  • Click All or None to select or clear all of the object types.

The names of all objects that match the selected object types are displayed in the list window.

To select objects to merge, do any of the following

  • Type the name of an item, or use wildcard characters to specify multiple items that share a set of characters in their names.
  • Click to select single objects.
  • Press CTRL and click to add and remove single objects from the selection.
  • Press SHIFT and click to select all objects between the previously selected object and the current object.
  • Click All or None to select or deselect the entire list.
  • Click and drag to select items to merge from the list on the left.

To merge items

  1. Choose File/Merge.
  2. Select a file from which to merge items.
  3. Choose a group or an item to merge.

    4. When one or more incoming objects have the same name as objects in the scene, an alert gives you the following options:

    Merge: Merges the incoming object using the name in the field at the right. To avoid having two objects with the same name, type a new name before proceeding.

    Skip: Does not merge the incoming object.

    Delete: Deletes the existing object before merging the incoming one.

    Apply to All Duplicates: Treats all subsequent incoming objects with duplicate names the same way you specified for the current object. No further alerts will appear. This option is not available if you renamed the current object.

    Cancel: Cancels the entire Merge operation.

    When one or more materials assigned to incoming objects have the same name as materials in the scene, an alert gives you the following options:

    Use the Scene Materials: Assigns the characteristics of the scene materials to the same-named incoming materials.

    Use the Merged Materials: Assigns the characteristics of the incoming materials to the same-named scene materials.

Only top-level material names (not sub-materials) are checked for duplicates.


Replace

Lets you replace the geometry of one or more objects in a scene by merging objects with duplicate names. Use Replace when you want to work with less complex geometry to set up your scene and animation, and then replace it with more detailed geometry before rendering.

When you replace an object in your scene, you replace its geometry, including its modifiers, but not its transforms, space warps, hierarchy, or materials. To replace the object with all its characteristics, use Merge instead.

If the object that you’re replacing has instances in the scene, all of the instances are replaced with the new object.

All objects in the scene with the same name as the incoming object are replaced by that object. If you have more than one object in the scene with the same name as the incoming object, all of those objects are replaced.

See also:

Merging Atmospheric Effects

Merge

Insert Tracks

Reference

Select the 3D Studio MAX scene file that contains the replacement objects in the standard file selector dialog. To see more than one file type at a time, choose the All Files file type.

After you select a file, you select the replacement objects in the Replace dialog.

All/None: Select or clear the object-type check boxes when you are filtering your list.

Invert: Reverses your current list selections.

Display Subtree: Displays the objects in the list in an indented format and enables the Sort and Select Subtree options. Clear this option to left-justify the list.

Select Subtree: When Display Subtree and this option are selected, all items indented below the selected one are also selected.

Case Sensitive: Distinguishes between upper and lowercase for item names.

Sort

Allows you to sort the list on the left. If the Display Subtree check box is selected, these options are disabled.

Alphabetical: Sorts from A at the top to Z at the bottom.

By Type: Sorts by category, using the same order as the check boxes in List Types.

By Color: Sorts by object wireframe color.

List Types

Determines which components in the scene are displayed in the list on the left: geometry, shapes, lights, cameras, helpers, and space warps.

Groups: Displays only groups of objects. Groups are shown in brackets. If you turn off Groups display, only the group name is shown, in brackets. To merge an entire group, select the group and all its children.

All/None: Select all items or no items.

Invert: Reverses your current list display criteria. If groups were displayed, Invert displays items; if all items were displayed, Invert deselects all items.

How To

To replace items

  1. Choose File/Replace.
  2. Select a file from which to choose replacement items.
  3. Choose a group or a replacement item.

    4. An alert asks if you want to replace the materials along with the objects. If yes, the materials from the incoming objects replace the current materials. If no, only the geometry is replaced, while the material assigned to the original object is retained.

To select objects to replace, do one of the following

  • Type the name of an item, or use wildcard characters to specify multiple items that share a set of characters in their names.
  • Click to select single objects.
  • Press CTRL and click to add and remove single objects from the selection.
  • Press SHIFT and click to select all objects between the previously selected object and the current object.
  • Click All or None to select or deselect the entire list.


Insert Tracks

Lets you import animation from another scene by replacing controller tracks. You can insert tracks into a selected object, group, or hierarchy, but all items whose tracks you are replacing must be part of the same hierarchical branch.

The destination object must contain the same type of track (for example, Position or Bend) as the replacement object. Unmatched tracks from the replacement object are ignored.

See also:

Merge

Merging Atmospheric Effects

Replace

Reference

Select the 3D Studio MAX scene file containing the tracks you want in the standard file selector dialog and then select the objects to merge in the Insert Tracks dialog.

Objects

Source: Displays all objects in the scene of the selected source file. If an object matches the name of the selected destination object in the current scene, it’s highlighted.

Destination: Displays the name of the selected destination object in the current scene. This object will receive the inserted tracks.

Subtree: Displays the objects in the list in an indented format. Clear this option to left-justify the list.

Method

Specifies how tracks will be inserted.

Replace Controllers: Replaces all controllers and animation in the destination object with those in the source object.

Paste Time: Inserts animation from a specified range of time in the source file to a specified insertion point in the destination object. If the controllers in the source and destination are not compatible, the track is skipped.

Start and End Time: Specifies the range to insert.

First Key to Last Key: Restores Start and End Time to the first and last key in the source file.

Insertion Time: Specifies the frame where you want to insert the source range of animation. If a key exists in the destination track at that point, the key is deleted.

Relative: Inserts the source range relative to the value at the time of insertion.

Absolute: Inserts the source range at its absolute value, regardless of the insertion time.

Affect Only

Lets you specify which types of tracks are inserted.

How To

To replace controller tracks in the current scene with those from another scene

  1. Choose File/Insert Tracks.
  2. Specify the name of the file from which to import controller tracks.
  3. In the Insert Tracks dialog, select the tracks to import.

    4. Click or click and drag to select items. CTRL+click selects more than one nonsequential item. SHIFT+click selects a range of sequential items.

  4. Specify the method by which the imported tracks will be inserted.
  5. Click OK.


Save

Updates the current 3D Studio MAX scene by overwriting the last save of the scene.

If no scene was previously saved, this command works like Save As.

Reference

When you save a scene, you save the system settings also. When you open the file again, it is opened with the same viewport configuration, view and zoom levels, snap and grid settings, etc.

3D Studio MAX allows you to incrementally number saved files and to make automatic backup files at specified time intervals. The options to set up Increment on Save and Backup on Save are in the Files panel of the Preferences dialog.

How To

To save a file

  • Choose File/Save or press CTRL+S.


Save As

Saves the current 3D Studio MAX scene under a different filename.

Reference

3D Studio MAX allows you to incrementally number saved files and to make automatic backup files at specified time intervals. The options to set up Increment on Save and Backup on Save are in the Files panel of the Preferences dialog.

How To

To save a file to a different name

  1. Choose File/Save As.
  2. Do either of the following:
    • Enter a name in the File Name field.
    • Click the Increment button.


Save Selected

Saves the selected geometry as a 3D Studio MAX scene file under a different filename.

Reference

Identical bitmaps with different properties are stored as different files. Objects linked to a selected object are also saved. The following dependencies are preserved for a Save Selected operation:

  • Ancestors of selected child objects are saved, all the way to the root of the hierarchy.
  • Space Warps to which selected objects are bound are saved.
  • IK follow objects to which selected objects are bound are saved.

How To

To save selected object to a new file

  1. Select one or more objects.
  2. Choose File/Save Selected.
  3. Enter a name in the File Name field.


Import

Loads or merges any data files that are not 3D Studio MAX scene format.

Reference

You can import DXF, PRJ, 3DS, STL (Stereolithography), PSD (Photoshop), and SHP files.

To see more than one file type at a time, choose the All Files file type.

How To

To import a file

  1. Choose File/Import.
  2. Choose an import file type from the Files of Type list in the file selector dialog.

    3. DXF

    PRJ

    3DS

    SHP

    STL (Stereolithography)

    PSD (Photoshop)

    AI (Adobe Illustrator)

  3. Select a file to import.
  4. If a second Import dialog appears, choose the import options you want.
    5. #ENDNUMBLOCK#


Importing PRJ Files

PRJ is the 3D Studio Release 4 project-file format.

When you import a PRJ file, you can merge the imported objects with the current scene or replace the current scene completely. If you choose to merge the objects with the current scene, you'll be asked whether you want to reset the length of the animation in the scene to the length of the imported file (if the imported file contains animation).

You'll also be asked how you want 3D Studio MAX to handle shapes in the incoming file: to make them into a single object or multiple objects.

Reference

The following control appears in the Import PRJ File dialog.

Import Shapes: Select this option if you don’t want to import shapes from a .prj file.


Importing 3DS Files

Importing and Exporting 3DS Files

3DS is the 3D Studio Release 4 mesh-file format. You can import and export 3DS files from 3D Studio MAX.

When you import a 3DS file, you can merge the imported objects with the current scene or replace the current scene completely. If you choose to merge the objects with the current scene, you'll be asked whether you want to reset the length of the animation in the scene to the length of the imported file (if the imported file contains animation).

When you import a 3DS file, the following information is imported:

  • Backgrounds (solid, gradient, and bitmap).
  • Fog, Layered Fog, and Distance Cue.
  • Ambient light level.
  • Subtractive transparency is converted to 3D Studio MAX "Filter" transparency and the filter color is set equal to the diffuse color.
  • Transparency falloff settings.
  • All map channels that are enabled. Map channels that are turned off in the 3DS file do not import into 3D Studio MAX.
  • All map parameters, including UV transforms, Negative, Mirror, and Rotation. Some Map Parameters such as Blur, Luma, RGB, and Alpha work much differently in 3D Studio MAX. These values are converted to new values that produce a similar affect.
  • Mask bitmaps are imported as a 3D Studio MAX mask texture.
  • When materials with both Texture 1 and Texture 2 are imported, a composite texture is created and added to the Standard material’s Diffuse channel.
  • Reflection maps, auto-cubics, and mirrors.
  • Automatic reflection map Nth frame and Map Size settings.
  • SXP translation for Marble and Noise materials.
  • 3DS/DOS IK joint parameters.
  • 3D Surfer patch data.

When you import a 3DS file, the following information is not imported:

  • Morph keys.
  • Keyframer instances.
  • Map channels that are turned off.
  • Custom .cub-format cubic maps.
  • Decal transparency using the RGB color of the upper-left pixel of the map.

When you import a PRJ file, all of the above items are imported, plus the following:

  • Shapes

When you export a 3DS file, the following information is exported:

  • Position, Rotation and Scale animation. If the controller is a TCB controller, the TCB, Ease In, and Ease Out values are also saved. If the controller is any other type of key controller, the keys are saved but the tangent information is lost. If the controller is not a key controller, only the object's transformation at frame 0 is saved.
  • Basic material color/parameters from the Standard material.
  • Single maps with their amount, offsets, scales, etc.
  • Auto-cubics and Mirrors.
  • Target cameras, target spotlights and omni lights.
  • Most "static" parameters for cameras and lights, and animation tracks for Roll, Falloff, Hotspot, and FOV.

When you export a 3DS file, the following information is not exported:

  • Composite and procedural maps.
  • UV mapping coordinates.
  • Grouped object transformations. There’s no concept of group hierarchy in the 3D Editor. Groups export to the Keyframer because the Keyframer understands hierarchies.
  • Global shadow parameters.

When you export a 3DS file, the following occurs:

  • All non-mesh geometry, such as procedural primitives and patches, are collapsed to meshes before export.
  • Objects are exported as they exist on the frame 3D Studio MAX displays at export time. If you want to output morph targets, go to each frame and export the target to a different filename.
  • Meshes are saved with edge display information and smoothing groups.
  • 3D Studio MAX instances are saved as Keyframer instances.
  • Modifier and morph animation is frozen at the current frame, collapsed, and exported as a simple mesh.

3D Studio Save-Selected Import Problem

There is a known problem in 3D Studio MAX Release 1 in which 3DS files that have been created by the 3D Studio Release 4 Save Selected method do not import correctly. To work around this problem, reload the file created with Save Selected into 3D Studio MAX and create a new file with the Save command. Then import this file into 3D Studio MAX.


Importing DXF Files

DXF files are used to import and export objects to and from AutoCAD (and other programs that support this file format).

Keep the following in mind when you are creating your DXF geometry, and when you are deciding whether to convert by layer, color, or entity:

  • With AutoCAD Release 12, if you are using the AutoCAD Advanced Modeling Extension (AME), use the SOLMESH command on your AME models prior to saving the .dxf file.
  • With AutoCAD Release 13, you can use the 3DSOUT command to convert an AutoCAD drawing to mesh objects. This command creates a 3D Studio Release 4 file that you can import into 3D Studio MAX.
  • After importing a DXF file, you might want to divide the resulting 3D Studio MAX objects into smaller objects.

Entities that are frozen or turned off are ignored.

The successful unification of face normals depends on the welding of coincident vertices. Sometimes, depending upon the precision of the model as it was created in AutoCAD, the vertices may not be close enough to be considered "coincident." They will not be welded, and the faces will not be properly unified. In this case, increase the Weld Threshold value in the Import DXF File dialog.

Converting by layer can result in objects consisting of many elements. In certain cases, some of these elements may have all of their face normals flipped the wrong way. You can detect this in 3D Studio MAX by clearing Backface Cull in the Display panel or by rendering the objects. Use the Normal modifier to correct this.

If you do not want to flip normals, you can either use 2-sided materials, or turn on the Force 2-Sided option in the Render Scene dialog.

If you are loading a large scene containing thousands of entities (such as 3D faces) and have chosen to load an object by entity, the conversion can take a long time. It also produces a huge number of objects to handle in 3D Studio MAX. To avoid this, organize your DXF file so that these kinds of entities are grouped by layer, then make the conversion by layer rather than by entity.

Reference

The following controls appear in the Import DXF File dialog.

Derive Objects From: Determines how components in the .dxf file are to be converted into objects.

Layer: Each layer with a unique name is converted into a separate object.

Color: All entities of the same color are converted into a single entity.

Entity: Each entity is converted into a separate object.

Weld Vertices: Welds coincident vertices in the .dxf file into single vertices in the 3D Studio MAX mesh.

Weld Threshold: Determines the size of the area which vertices must occupy to be welded.

Weld: Turns on the Weld Vertices function. In most cases, you should leave this box selected because unwelded objects cannot be correctly unified or smoothed.

Auto-Smooth: Applies smoothing groups to the geometry based on the smoothing angle set by the smooth angle spinner. Edges between faces that have an angle between them that is greater than the specified smoothing angle will appear faceted in the rendered image. Edges between faces that are below the specified angle are smoothed.

Arc Subdivision

Polygon Degrees: Specifies the number of degrees between each vertex any imported curvature that’s converted to a mesh object in 3D Studio MAX. An example might be an extruded pline.

Spline Degrees: Specifies the number of degrees between vertices in an imported curvature that’s converted to a Bezier spline (a shape) in 3D Studio MAX. This could be an arc or a non-extruded pline, for example. Unlike mesh objects, Bezier splines contain their own curvatures, so you don’t need as many vertices. The default setting of 90 degrees is usually adequate.

Miscellaneous

Remove Double Faces: Removes one of the pair wherever two faces are occupying the same location.

Fill Polylines: Converts closed 2D polylines into mesh objects. Closed, planar, 3D polylines are capped. If the 2D polyline is open, it will be imported as a spline shape.

Unify Normals: Forces the normals of all faces on each object to face the same way (usually out). If, when you render your 3D Studio MAX scene, the face normals are pointing in the wrong direction, use the Normal modifier to flip them. For best results, leave this box selected.


Importing SHP Files

SHP is the 3D Studio Release 4 shape-file format. You can import these files into 3D Studio MAX.

Reference

The .shp file contains polygons created in 3D Studio's 2D Shaper.

When importing an SHP file that contains multiple shapes, 3D Studio MAX gives you the option to either merge them all into one object or make multiple incoming objects.

The shape importer looks at the vectors on incoming splines, and if they're collinear within a couple of percentage points, it changes the angle to a smoothed Bezier (otherwise, it's a Bezier corner).


Importing STL Files

STL files are generally used for purposes of rapid prototyping. A variety of methods use the STL format to construct prototypes. For example, many STL machines use a liquid polymer and harden it in small slices, creating a solid plastic model. Other STL machines use metal powder to create a model in steel. Still other machines use a special wax.

You can import and export STL files. An STL file saves object data in a format used for stereolithography. STL files have a filename extension of .stl. There is an ASCII STL format as well as a binary STL format. You can choose which to create when you export a 3D Studio scene.

Reference

The Import STL File dialog has the following options:

Name: Enter a name for the 3D Studio object created from the STL file. Default = the filename (without extension) or the name saved internally in the STL file.

Weld Vertices

Welds coincident vertices in the STL file into single vertices in the 3D Studio mesh.

Weld Threshold: Determines the size of the area which vertices must occupy to be welded. Vertices with distances equal to or less than this value are welded into a single vertex.

Weld: Turns on the Weld Vertices function. In most cases, you should leave this box selected because unwelded objects cannot be unified or smoothed.

Use Threshold: If on, STL import uses the standard 3D Studio welding method. This can be a very slow process.

Quick Weld: If on, STL import uses a welding algorithm optimized for the STL format. This is up to thirty times faster than standard 3D Studio welding, and is highly recommended.

Auto-Smooth: Applies smoothing groups to the geometry based on the smoothing angle set by the smooth angle spinner. Edges between faces that have an angle between them that is greater than the specified smoothing angle will appear faceted in the rendered image. Edges between faces that are below the specified angle are smoothed

Remove Double Faces: Removes one of the pair wherever two faces are occupying the same location. Recommended.

Unify Normals: Forces the normals of all faces on each object to face the same way (usually out). If, when you render your 3D Studio scene, the face normals are pointing in the wrong direction, use the Normal modifier to flip them. For best results, leave this box selected


Importing Adobe Photoshop Files

Adobe Photoshop native file format (PSD file format) is an image format in which Adobe Photoshop files are saved. This image format supports multiple layers of images superimposed to get the final image. Each layer may have any number of channels (R, G, B, Mask, etc.). It’s a very powerful file format because multiple layers can contribute to a wide variety of special effects.

Reference

Adobe provides 14 different modes of superimposing layers: normal, darken, lighten, difference, multiply, screen, dissolve, hard light, hue, saturation, color, luminosity, overlay, and soft light. Photoshop version 4.0 has added special types of layers called Adjustment Layers.

You can import all PSD layers.

Limitations

Bits Per Channel: Photoshop supports images with 1, 8, and 16 bits per channel (1, 24, and 48 bit RGB images, respectively). 3D Studio MAX supports only PSD images with 8 bits per channel. In practice, there are very few images with 1 or 16 bits per channel, and Photoshop converts images with 16 bits per channel to 8 bits per channel.


Importing Adobe Illustrator 88 Files

You can import Adobe Illustrator (AI88) files into 3D Studio MAX.

Reference

When importing AI88 files, 3D Studio MAX converts polygons to Shape objects. You choose an option in the Shape Import dialog to set how the shape objects are created:

Single Object: All polygons in the .AI file are converted to Bezier Splines and placed inside a single composite shape object.

Multiple Objects: Each polygon in the .AI file is converted to a Bezier Spline and placed inside an independent shape object.


Export

Converts and exports 3D Studio MAX scenes in various formats.

Reference

The Save Files of Type field provides output conversion to 3DS, STL (Stereolithography), DXF, WRL (VRML 2.0), and ASCII file types. To see more than one file type at a time, choose the All Files file type.

How To

To export a file

  1. Choose File/Export.
  2. Choose an export file type from the Files of Type pull down list in the file selector dialog.

    3. 3DS

    STL (Stereolithography)

    DXF

    WRL (VRML 1.0)

    WRL (VRML 2.0)

    ASE (ASCII)

  3. Enter a name File Name field.
  4. If a second Export dialog appears, choose the export options you want.

    5. Depending on the file type you choose, you might be presented with options available for that export choice.

    #ENDNUMBLOCK#


Exporting to VRML 1.0

The VRML Export dialog contains the following options:

Output Language

VRBL: Choose this option if you are exporting to the Kinetix Topper VRML browser.

VRML 1.0: (Virtual Reality Behavior Language) Choose this option to export for any other purpose. The additional triggers and animation supported by this format are described below.

Generate

Selecting any of these options increases the size of the VRML file generated by the export process.

Normals: Generates real normals for objects. Some browsers need normals to do smoothing properly. You can leave this option clear if you are using the Kinetix browser.

Indentation: Indents the VRML source code neatly so that it is easy to read.

Fields: Supports extensions to VRML in the source code. If you are exporting for the Kinetix Topper VRML browser, you can clear this box.

Initial View

Sets the camera for the scene at the point it first appears in the browser. If there are no cameras in the scene, the scene appears with a default viewpoint (which may give only a partial view).

Bitmap URL Prefix

Lets you specify a URL prefix for bitmaps assigned to objects in the scene. If you want to keep all your texture bitmaps in one location, you can specify the location here.

Use Prefix: Enables the prefix mechanism.

Prefix: Adds the prefix you enter here to the names of all assigned bitmaps. The name can be a full URL (beginning with HTTP), or it can be a relative path (a subdirectory of the location of the VRML file). For example, if you enter "Maps" for the prefix, when the browser opens a VRML file that has a texture map assigned to it, it will look for the subdirectory "Maps" in the same directory as the VRML file.

Use forward slashes (not backslashes) to enter longer paths, for example, "3dsmax/maps."

VRML Features Supported by Export

Anchor: An anchor lets you add links to other HTML pages, VRML worlds, or alternate cameras in your VRML world.

Inline: An inline object is a small "stand-in" helper object that references another VRML file that is included in your world when loading into your VRML browser.

Level Of Detail (LOD): You can specify alternate objects with varying face counts that are appropriate for different viewing distances, giving the object a small number of faces at a great distance and increasing detail as the view gets close

Lights: The exporter supports all VRML light types: direct, omni, and spot.

Cameras: Both free and targeted cameras are exported to the VRML file.

Primitives: Sphere, cone, box, and cylinder primitive objects are translated as VRML primitive objects. This helps reduce the size of VRML files.

Animation: All position, rotation, and scale animation on objects are exported to the VRML 2.0 file. Animated hierarchies, inverse kinematics and all controller types are supported. Selecting "CoordinateInterpolators" in the Export dialog also allows you to export animated meshes, such as an animated bend modifier, or Character Studio physique animations.

TouchSensor: You can set up an object so that selecting it in a VRML 2.0 browser starts a set of objects animating by pointing it to an action object.

ProximitySensor: You can set up a rectangular region in space so that entering the region in a VRML 2.0 browser starts a set of objects animating.

TimeSensor: This helper object allows you to control looping , start and stop times of animations. It also sets up animations that start when the VRML world is loaded into the browser.

NavigationInfo: This object lets you specify initial information about how to navigate your VRML world.

Background: Background helpers let you specify colors and images for the sky and ground in your VRML world.

Fog: Fog helpers let you specify the color and range of fog in your VRML world.

Sound: The sound helper lets you place 3D or ambient sounds in a scene.

Billboard: The billboard helper lets you create objects that always align to the viewpoint in the VRML browser.

VRBL Features Supported by Export

VRBL extends VRML 1.0 by adding keyframe-style animations and trigger types. Currently only Hyperwire supports VRBL.

Proximity Triggers: A proximity trigger activates when the viewpoint in the browser enters the area of influence of the trigger. The triggers may be either spheres or rectangular boxes.

Line Of Sight Triggers: These trigger types are activated when an object comes into view in the browser. Additionally, you can further constrain the trigger to only activate when approaching the object from a particular direction.

How To

To export a file to VRML or VRBL format

  1. Choose File/Export.
  2. Select VRML as the export file format.
  3. Click Save.
  4. In the VRML Export dialog, set the options and click OK.


Exporting to ASCII

When you choose ASE (*.ase) as the Save as Type, the exported file is an ASCII representation of your scene. A dialog lets you specify which scene components are included, and how they’re output. This is helpful if you are writing a program that requires you to parse the ASCII file.

Reference

When you export to ASCII, the dialog box has the following options:

Output Options

Provides check boxes to specify which general options are included in the ASCII file.

Mesh Definition: Exports the definition of each mesh, including vertex and face information for geometric objects. In addition, selecting this enables the items in the Mesh Options area, described below.

Materials: Includes the material description. If a material is not assigned to an object, its wireframe color is exported. All levels of a material tree are included, so this can produce a lot of text.

Transform Animation Keys: Includes the transform animation data for the objects. If the object is a target camera or spotlight, this will include target animation data.

Animated Mesh: Exports a complete mesh definition of every n frames. The frequency is specified by the Controller Output spinner, described below. Each block contains the same information specified in the Mesh Options area, described below. Selecting this can result in a huge file, even for small scenes.

Animated Camera/Light Settings: Exports the animation data for cameras and lights, such as color, intensity, falloff, map bias, etc. Outputs a block every n frames, as specified by the Controller Output spinner.

Inverse Kinematic Joints: Exports the IK joint settings in the Hierarchy branch.

Mesh Options

These items are enabled only when Mesh Definition is selected in the Output Options area.

Mesh Normals: Exports the face and vertex normals. The normal of the face is listed first, followed by the normals of the three vertices supporting the face. Selecting this results in a much larger file.

Mapping Coordinates: Exports a list of mapping vertices and faces, according to the TVert and TVFace structures described in the 3DS MAX Software Developer’s Kit. If an object uses face mapping, a face map list is exported containing UVW coordinates for each face.

Vertex Colors: Exports vertex colors.

Object Types

The items here let you specify which category of object you want included in the output. You can include geometric objects, shapes, cameras, lights, and helper objects.

Static Output

Frame #: Lets you specify which frame of the animation will be used to export all static data, whether or not you output controller animation data.

Precision

Decimals: Lets you specify the precision (the number of digits after the decimal) of the values exported to the ASCII file.

Controller Output

Use Keys: Exports key values. If the controller doesn’t use keys, then the Force Sample method is used. In the case of transform controllers, the Use Keys option works only if all of the transform controllers are either Linear/TCB or Bezier. If one of the transform tracks uses a different type of controller, then the Force Sample method is used for all transform tracks.

Force Sample: Samples controller values based on the frequency specified in the Frames per Sample Controller.

Frames per Sample:

Controllers: Specifies the frequency, in frames, with which to sample controller values for export.

Animated Objects: Specifies the frequency, in frames, with which to output animation settings and mesh definitions.


Exporting to DXF

DXF files are used to import and export objects to and from AutoCAD (and other programs that support this file format).

Reference

The options in the Export DXF File dialog are:

Save to Layers

By Object: Each object with a unique name is converted into a separate layer.

By Material: Each object with a unique material is converted into a separate layer.

1 Layer: All objects are exported as a single layer.

Save As R13

Lets you save your file as either an AutoCAD release 13 or Release 14 file.


Exporting to STL

An STL file saves object data in a format used for stereolithography. STL files have a filename extension of .stl. There is an ASCII STL format as well as a binary STL format. You can choose which to create when you export a 3D Studio scene.

STL files are generally used for purposes of rapid prototyping. A variety of methods use the STL format to construct prototypes. For example, many STL machines use a liquid polymer and harden it in small slices, creating a solid plastic model. Other STL machines use metal powder to create a model in steel. Still other machines use a special wax.

You can import and export STL files.

An STL object must define a complete and closed surface. You can check whether the geometry you want to export satisfies this criterion by using the STL-Check modifier. This modifier helps save time and expense when you are creating physical STL models, either at your own facility or by using a service bureau.

Reference

The Export to STL dialog contains the following options:

Object Name: Enter a name for the object you want to save in STL format.

Binary/ASCII: Choose whether the STL output file will be binary or ASCII (character) data. ASCII STL files are much larger than binary STL files.

Selected Only: Exports only objects that you selected in the 3D Studio scene.


Archive

Creates a compressed archive file or a text file listing the scene bitmaps and their path names.

Compressed archive files are created using an external program. You specify the name and location of the archive program you want to use in the Files panel of the Preferences dialog.

Reference

To create a text file, choose List of Files (*.txt) in the Save As Type list. The resulting file is an ASCII list of scene files.

To create an archive file, choose 3D Studio MAX Archive in the Save As Type list. The archive file contains the scene plus all bitmaps used for the scene, including Video Post bitmaps.

3D Studio MAX automatically finds the files referenced in the scene and creates the archive file in the 3D Studio MAX executables folder. During the archiving process, 3D Studio MAX displays a log window.

How To

To archive a file

  1. Choose File/Archive.
  2. Enter a name in the File Name field.

    3. Include the appropriate file extension (for example .zip).

  3. Choose a file type: 3D Studio MAX Archive or List of Files.

To set up the Archive program

  1. Choose File/Preferences.
  2. Click the Files tab to display the Files panel.
  3. Enter the full path and executable file name, and any command line option you want, for your external archive program in the Program field.


Summary Info

Displays statistics about the current scene.

Reference

Summary Info includes the following:

Scene Totals: Number of objects in your scene listed by type.

Mesh Totals: Total number of vertices and faces in the scene.

Memory Usage: Physical and virtual memory used and available.

Rendering: Time spent rendering the last frame, animation, and video post.

Description: Lets you enter notes about the scene.

Summary Info: Lists materials in the scene. The information is sorted by category and includes object name, assigned material name, type of material, object vertex and faces counts, etc. Materials are listed at the bottom of the list. Bitmaps used by the materials are listed with the materials. Environmental and atmospheric maps are listed separately. The Other Maps category lists all other maps used in the scene, such as Displace maps, and any maps assigned by third-party plug-ins. Video Post maps are not included.

The buttons at the bottom of the dialog have the following functions:

Save to File: Saves the contents of the dialog and descriptive text to a .txt (text) file.

Plug-In Info: Displays a subdialog with information about the plug-ins used in the scene. By default, the subdialog shows the name and a brief description of each plug-in.

Show Details: Shows information about all of the classes supported by each plug-in.

Show Used Only: Restricts the view to only those plug-ins that have been used in the scene.

How To

To display summary information for your scene

  • Choose File/Summary Info.


View File

Allows you to select and view a still image or an animation file.

A still image appears in a floating window that has the same controls as the Render output window (virtual frame buffer).

Reference

If you select an animation file (AVI or FLC), 3D Studio MAX starts the Windows Media Player so that you can play it. The Media Player has its own Help system.

If you select an .ifl file in the file dialog, the Info button displays the ASCII IFL file in Windows Notepad.

You can zoom in and out and pan the image, even while a scene is rendering. If you have a Microsoft Intellimouse, you can use its third-button/wheel to zoom and pan.

When the View File dialog displays a bitmap that’s smaller than 382x267 pixels, the filled background is gray instead of black.

Alpha Channels

Specifies the RGB channels to display for the image. You display the red, green, and blue channels in any combination, or in monochrome.

The color swatch stores the color value of the last pixel you clicked. You can drag and drop this color swatch to any other color swatch in 3D Studio MAX. Click the color swatch to display the Color Selector dialog for further detail. You can leave the Color Selector dialog displayed while right-clicking over the image.

Frame-Steps (arrows)

For sequentially numbered files (such as image0005.jpg), or IFL files, displays the next numbered file in the sequence and the previously numbered file. Hold CTRL and click either button to jump to the first image frame or last image frame in the sequence.

For animation files, such as AVI, these buttons launch the media player.

Right Mouse Button Menu

To read the color/alpha value and coordinate location of any pixel in the image, right-click over the image while the View File dialog is displayed. Hold down the right mouse button to see information about the pixel under the mouse pointer. The following information is displayed:

Width: The width of the image in pixels.

Height: The height of the image in pixels.

Type: The type of image, based on color depth. For example, 24 bits (RGB) or Paletted Image (256 Colors).

Aspect: The pixel aspect ratio.

Gamma: The gamma value carried in the bitmap file.

Red: The red component value (0-255) and the percentage of red.

Green: The green component value (0-255) and the percentage of green.

Blue: The blue component value (0-255) and the percentage of blue

Alpha: The alpha component value (0-255).

Mono: The monochrome value of the pixel, using the same formula used by monochrome material map channels such as bump and opacity maps.

Optional Pixel Data

If the image contains additional information, such as that saved in an .rla file, the right-mouse menu also displays the following data:

Z: Displays the Z-depth. The value is in world units, representing the distance from the camera to the object pixel. The values are always negative because the camera looks down the negative axis of the view coordinate system.

Mtl Effect: Displays the material ID number assigned to the pixel.

Object: Displays the object ID number assigned to the object.

UV: Displays the UV coordinates.

Normal: Displays the X, Y, and Z components of the normal vector in camera space. Each value is a floating-point value from -1.0 to 1.0.

Real Red: Displays the “real” red value delivered to the Renderer. The Renderer uses a floating point range of 0-1 to represent the range of each color channel. Thus, 1 is 100%, or 255 (color values can be greater than 1, but are clamped by the renderer to 1). To see the real color values, render your scene to an .rla file that’s been setup to render unclamped RGB values.

Real Green: The unclamped green value.

Real Blue: The unclamped blue value.

Z Coverage: The value of the Z coverage.

How To

To view a file

  1. Choose File/View File.
  2. Choose a file type from the Files of Type list.
  3. Select a file to view.

To zoom in to the virtual frame buffer

  • Press CTRL and click.

To zoom out of the virtual frame buffer

  • Press CTRL and right-click.

To pan the virtual frame buffer

  • Press SHIFT and drag.

To use a Microsoft Intellimouse to zoom and pan

  • Roll the wheel to zoom in or out.
  • Press the wheel, and drag to pan. (You can use any third-button device to pan the image.)

Note: You must have the Pan/Zoom option chosen in the Viewports page of the File/Preferences dialog in order to use the third button for panning and zooming.


Configure Paths

Allows you to edit the paths for the default 3D Studio MAX folders in the 3dsmax.ini file.

Reference

Choose one of the paths and double-click to enter a directory. The dialog displays all files in the specified directory. You can also click Modify to display the standard file browser. Then choose the folder.

How To

To display the Configure Paths dialog

  • Choose File/Configure Paths.
  • You can set paths for Bitmaps, Plug Ins, and General file types.


Bitmap Path Configuration

Allows you to edit the list of directories that 3D Studio MAX searches for bitmap files in scenes, such as those referenced by mapped materials.

Reference

You identify the default locations of image files by adding paths to this panel. Use this technique to identify the standard directories used by most of your scenes.

3D Studio MAX also reads the full path of any image you load and saves that as the image filename. When 3D Studio MAX needs to reload the image, it searches for it in the following order:

  • The path saved with the image file.
  • The directory of the current scene.
  • The paths listed in the Bitmaps panel, starting at the top of the list.

How To

To configure bitmap paths

  • Choose File/Configure Paths and click the Bitmaps tab.

To modify a bitmaps file path

  1. Choose a path entry in the Bitmaps panel.
  2. Click Modify.
  3. Do either of the following:
    • Enter a path in the Path edit box.
    • Use the directory navigation buttons to locate a path.

To add a bitmaps path

  1. Click Add in the Bitmaps panel.
  2. Do either of the following:
    • Enter a path in the Path field.
    • Use the directory navigation buttons to locate a path.

To delete a bitmaps path

  1. Choose a path entry in the Bitmaps panel.
  2. Click Delete.

To move a path up or down in the list

  1. Choose a path entry.
  2. Do either of the following:
    • Click Move Up to move the entry closer to the top of the list.
    • Click Move Down to move the entry closer to the bottom of the list.


General Path Configuration

Set the paths for many file types used by 3D Studio MAX.

Reference

You can set paths for the following purposes:

Autoback: Default path for your auto-backup files. If you use the Auto Backup feature, use either the \Autoback directory, which is specific to each running version of 3D Studio MAX, or a directory that’s not shared by any other machine.

Export: Saving scenes you export to other file formats.

Expressions: Loading and saving text files used by expression controllers.

Fonts: Loading font files.

HEIDI Drivers: The path for your HEIDI drivers. If you have a network of machines, each using different HEIDI-driven display boards, you can point all machines to a single directory. This lets you upgrade your drivers in a single directory for all machines on your network.

Help: Loading online help files.

Images: Saving and viewing image files.

Import: Loading files you import from other programs.

Materials: Material library .mat files. Material library files that are created or updated in 3D Studio MAX release 2, cannot be used in earlier versions of 3D Studio MAX. If you load a materials library from release 1.x into 3D Studio MAX release 2, and then click the Put to Library button to save a material or click the Save button in the Browser, that library will be updated and no longer available in previous versions of 3D Studio MAX.

MaxStart: Loading maxstart.max that provides initial 3D Studio MAX scene settings.

PlugCFG: Loading plug-in configuration files.

Previews: Saving and viewing animation files rendered with preview renderer.

Scenes: Opening and saving 3D Studio MAX scene files.

Sounds: Loading sound files.

Video Post: Opening and saving Video Post queues.

How To

To set up general path configuration

  • Choose File/Configure Paths and click the General tab.

To modify a file path

  1. Choose a path entry.
  2. Click Modify.
  3. Do either of the following:
    • Enter a path in the Path edit box.
    • Use the directory navigation buttons to locate a path.


Plug Ins Path Configuration

Allows you to add or modify the paths for the 3D Studio MAX plug-in folders in the plugin.ini file.

Reference

You can keep your plug-ins in separate directories and tell 3D Studio MAX where to find them by adding path entries to this panel.

How To

To configure plug-in paths

  • Choose File/Configure Paths and click the Plug Ins tab.

To modify a file path

  1. Choose a path entry.
  2. Click Modify.
  3. Do either of the following:
    • Enter a path in the Path edit box.
    • Use the directory navigation buttons to locate a path.

To add a path

  1. Click Add in the Plug-ins panel.
  2. Do either of the following:
    • Enter a path in the Path field.
    • Use the directory navigation buttons to locate a path.
  3. Type a path description in the Label field.

To delete a path

  1. Choose a path entry in the Plug Ins panel.
  2. Click Delete.

To move a path up or down in the list

  1. Choose a path entry.
  2. Do either of the following:
    • Click Move Up to move the entry closer to the top of the list.
    • Click Move Down to move the entry closer to the bottom of the list.


Preferences

The Preference Settings dialog contains the following pages:

General

Rendering

Inverse Kinematics

Animation

Keyboard

Files

Gamma

Viewports

Colors

How To

To change program preferences

  • Choose File/Preferences and click the appropriate tab.


Viewports Preferences

Sets preferences for viewport display and behavior.

See also

Strokes

3D Studio MAX Driver Setup

Configure Driver

Reference

The Viewports preferences panel contains the following options:

Viewport Parameters

Use Dual Planes: Uses the front/back plane system when redrawing the viewport. The selected object is manipulated in the front plane and is redrawn, while other objects remain on the back plane and are not redrawn. This default setting provides the fastest redraws under normal circumstances. Clear it to improve redraw speed if you are rotating the whole scene or moving a camera through the scene (situations in which the whole viewport needs to be redrawn anyway). If your assigned display driver doesn’t support dual planes, this option is not available.

Zoom About Mouse Point: By default, viewports zoom about the center of the view. When this box is selected, viewports zoom about the point where you click the mouse.

Draw Links as Lines: Displays the hierarchical links between parent and child objects as plain lines, rather than as shapes.

Backface Cull on Object Creation: Determines whether faces with normals pointing away from view are displayed. When selected, you see through the wireframe to the back faces. This option applies to Wireframe viewport displays only. In most cases, you’ll want this item selected. However, if you’re modeling with NURBS surfaces, which consist of single-sided planes, it’s easier to view them from all angles when backface culling is turned off.

This check box affects only the created objects, and you can reverse the effect on each object by changing the Backface Cull check box in the Object Properties dialog for that object. You might clear Backface Cull on Object Creation before creating your NURBS, and then select it again when finished. You can globally change the display of backface culling in the viewports by selecting Force 2-Sided on the Rendering Method page of the Viewport Configuration dialog.

Attenuate Lights: Turns the display of attenuation effects on or off from start to end in the interactive viewport renderer. If this box is clear (the default), attenuated lights behave as though there was no attenuation.

Mask Background to Safe Region: By default, the viewport area outside the outermost safe frame displays the contents of the viewport. When this box is selected, that area is left blank.

Update Background While Playing: Turns on the updating of bitmaps in the viewport background when you play an animation. You need this capability to check your action against a 2D rotoscoped background, even if your animation plays at 1fps. When this box is selected, an IFL, AVI, or FLC file updates on each frame when you click the play button. Turn off the real-time switch in the Time Configuration dialog to use this feature.

Filter Environment Backgrounds: Affects the background displayed in the viewport only when the Use Environment Background check box is selected in the Background Image dialog. When Filter Environment Backgrounds is selected, the environment background is filtered in the viewport, resulting in an antialiased image. When clear, the background image is not filtered, resulting in an aliased, pixelated image.

Filtering slows down the recalculation of the viewport background image about 30 to 40 percent. Unless you really need that smooth display, it’s best to leave the option clear.

This option has no effect on the rendered background image, and has no effect on viewport backgrounds when Use Environment Background is turned off.

Low Res Environment Background: Reduces the size of the environment background map by half, and then magnifies to the size needed for the viewport. This results in a chunkier, pixelated appearance, but speeds the rendering in the viewport four times (since the width and the height of the original image are halved). Unless you need fine detail in your environment background, it’s best to leave this item selected.

Grid Nudge Distance: Sets the nudge distance for the arrow keys, which you can use to nudge selected objects into position.

Non Scaling Object Size: Sets the display size of cameras, lights, and other nonscaling objects. 1 is the default size.

Move/Rotate Transforms

Controls the way selected objects can be moved with the mouse in a non-orthographic view (such as Perspective).

Intersection: Shoots a ray from the mouse point into the screen. This makes it easy to move objects, but as you move toward the horizon, the object is moving great distances.

Projection: Projects the motion of the mouse onto the plane. This ensures that there are no singularities at the horizon, and that motion is always smooth and stable. However, it can become difficult to move objects when the plane is not parallel to the screen.

Persp Sensitivity: Sets mouse sensitivity for projection transforms.

Rotation Increment: Specifies the amount of rotation generated by moving the mouse 1 pixel. Lower this value for smaller angular rotations than the default .5 degrees. The lower this value, the more mouse movement is needed to rotate objects.

Ghosting

Ghosting Frames: Specifies the number of ghost images that appear before and after the current frame when you choose Show Ghosting from the Views menu. If you display ghosts both before and after the current frame, the total number of ghosts is twice this number.

Display Nth Frame: Specifies the number of frames between the appearance of each ghost. The smaller this number, the closer together the ghost images appear.

Ghost Before Current Frame: Displays only ghost images that occur before the current frame. This makes the ghosts trail the object.

Ghost After Current Frame: Displays only ghost images that occur after the current frame.

Ghost Before and After: Displays ghosts both before and after the current frame.

Ghost in Wireframe: Displays ghosts in black wireframe in shaded viewports. When clear, the ghosts appear as shaded objects, using the same colors as the wireframe ghosts.

Show Frame Numbers: Displays a frame number in the upper-left corner of each frame.

Middle Mouse Button

Pan/Zoom: If you have a three-button mouse, sets the middle mouse button to pan the viewport. If you have a Microsoft Intellimouse, you can also roll the middle wheel to zoom the viewport.

Note: By default, the Intellimouse slows the speed of the mouse when you hold down the wheel button. You can increase the mouse speed in the Mouse Properties dialog in the Control Panel. Choose the Wheel tab, click the Settings button in the Wheel Button area, and turn the slider up to Fast.

Stroke: For a three-button mouse, allows you to assign command shortcuts to stroke patterns applied by dragging with the middle mouse button.

Display Drivers

Currently Installed Driver: Displays the name of the currently installed driver.

Choose Driver: Displays the 3D Studio MAX Driver Setup dialog. Use this dialog to select a different software display driver, or to switch drivers if you install a hardware accelerator card.

Configure Driver: Displays the Configure Driver dialog, where you can change the driver options for your currently selected driver.

How To

To change viewport preferences

  • Choose File/Prefences and click the Viewports tab.


3D Studio MAX Driver Setup

You display the 3D Studio MAX Driver Setup dialog from the Viewports page of the Preferences dialog on the File menu.

HEIDI

When HEIDI is chosen, two additional options become available:

Software Z Buffer: Choose this if you’re using software rather than hardware acceleration.

Custom Driver: Choose this if you’re manipulating a lot of wireframe displays and no shaded displays, and you’re using hardware acceleration. Choose a HEIDI hardware display driver from the list.

OpenGL

Choose this option if you’re using any form of hardware acceleration. 3D Studio MAX will use whatever driver has been installed in your operating system.

The OpenGL driver supports geometry acceleration as well as rasterization acceleration. It is tightly integrated into Windows NT, and many 3D display cards were specifically designed to accelerate OpenGL operations. OpenGL implementations have all of the scene data necessary to optimize the entire 3D display process.

Since OpenGL is most efficient when run on systems with at least rasterization acceleration, the HEIDI/SZB option may work best on systems with an ordinary 2D display card. However, with a 3D-enabled card you may see dramatic acceleration through the use of the OpenGL driver.

The disadvantages of this driver are that all potentially visible scene data must be transferred to the driver, and this can cause a communication bottleneck across the system bus. In particular, this slows down the display of individual primitives (as opposed to strips or polylines, like wireframe displays). Because OpenGL was designed to support a wide-variety of display systems, there is no guarantee that either incremental scene update methods (partial window blits or dual planes) will work with a particular implementation of OpenGL. Because lighting and texturing are restricted to OpenGL-specified semantics, there can be mismatches between MAX scene lighting and texturing and what appears in an OpenGL viewport. (This applies especially to attenuated lights and non-tiled texture display.)

Direct 3D

Choose this if you have a Direct 3D driver installed on your system. If you don't have this driver installed, this option is not available.

The Microsoft Direct3D API supports both rasterization and 3D scene level calls, though in D3D Version 5 (the only version supported by 3D Studio MAX at this time), the 3D calls are not accelerated by any underlying display hardware. As with the HEIDI driver, only rasterization-level API calls are supported.

This driver is efficiently supported by many inexpensive 3D display cards, supports scene data culling efficiently, accelerates texture display (depending on the specific display card), and performs perspective correction.

The driver works with high-color displays, which provide a good trade-off between display quality and memory overhead. Incremental display update works efficiently

The disadvantages of this driver are that it currently runs under Windows 95 only (so there is no multi-processor support) and it supports only high-color displays. Dual plane operations are slow (if available), and there can be some additional overhead in minimizing/maximizing viewports, due to the way D3D allocates video memory.

Custom

Choose this if you have a custom driver installed on your system. Such custom drivers do not use HEIDI, OpenGL, or Direct3D. If you don't have such a driver installed, this option is not available.

Known Problems

The following are known display problems with drivers for the Intergraph, Glint, and Dynamic Pictures cards.

  • The Glint driver has a line-clipping bug that causes grid lines to disappear if they cross the viewport boundary. Also, although the card should support incremental scene update and not need to redraw the scene on window expose, there are a few display anomalies surrounding the clearing of the z-buffer planes.
  • The Intergraph Intense 3D card has problems showing mipmapped textures. Rather than getting the expected texture, the object appears white. This also happens with bitmapped backgrounds.
  • The Dynamic Pictures Oxygen 102 card has problems showing bitmapped backgrounds. Doing so may crash your system.


Configure Driver

You display the Configure Driver dialog from the Viewports page of the Preferences dialog on the File menu. It contains options for configuring your specific driver.

Driver options take effect immediately and persist between sessions, but data downloaded to the graphics card is not regenerated. If you change texture resolution, for example, the hardware uses the old resolution values until you reload the texture through Medit.

Reference

The dialog options vary, depending on the driver. Options for custom drivers are dependent on their manufacturers. See the custom driver manufacturer's documentation for further information.

Configure HEIDI/Direct 3D

The options are the same for HEIDI and Direct 3D drivers.

Redraw Scene On Window Expose: Redraws the whole scene when a dialog over the viewports is moved, resulting in smoother dragging of the Materials Editor or Trackview dialogs, for example. If your display is corrupted, select this item or force a redraw with the “1” key macro.

Use Triangle Strips: “Stripifies” the geometry, which can more than double display speed. In some cases, such as when topology is constantly changed, the time taken to stripify the geometry can cause a slowdown instead. In such cases, clear this option. Otherwise, leave it selected for speed.

Download Texture Size

64/128/256/512: Lets you specify the size of the bitmaps used to map the surfaces in the viewports. The larger the size, the better the resolution, but the slower the speed. High speed produces jagged maps, and slower speeds produce smooth maps.

Configure OpenGL

Redraw Scene On Window Expose: Redraws the whole scene when a window over the viewports is moved, resulting in smoother drags of the Medit, Trackview or VideoPost windows. If your display is corrupted, select this item or force a redraw with the “1” key macro.

Interactive Incremental Scene Updates: Redraws only those scene objects that have changed, or that intersect a region changed by another moving object. When clear, the entire scene is redrawn for each new frame. If your display is corrupted, select this item or force a redraw with the “1” key macro.

Allow Dual Plane Support: Uses dual planes, if that option is set in the Preferences/Viewport page. If clear, dual planes are never used, regardless of other settings.

Use Triangle Strips: "Stripifies" all geometric data before sending it to the driver. In some cases, such as when topology is constantly changed, the time taken to stripify the geometry can cause a slowdown instead. In such cases, clear this option. Otherwise, leave it selected for speed.

Anti-Aliased Lines: Draws lines slightly thicker and much smoother. This is best used for wireframe-only views, and especially if you are making a preview of wireframe objects.

Background Texture Size: Unlike the HEIDI driver, which uses bitmaps to display viewport backgrounds directly, the OpenGL driver uses a texture-mapped background rectangle. This allows for smoother zooms and pans in ortho views and can take less memory than the direct bitmap method. However, background bitmap resolution may be lost. Increase the resolution if you are using a maximized viewport to digitize.

Download Texture Size: Lets you choose the size of the texture map that is downloaded to the driver for texture-mapped scene objects. Bigger maps may look better, but they take up more space on the display card.

Texel Lookup: Specifies whether to use the nearest pixel or to linearly interpolate the pixel value from the four closest texels. Using the nearest pixel is faster, but using texels produces a higher-quality display.

Mipmap Lookup: Specifies whether to use one version of the texture map ("none") or to interpolate between a pyramid of progressively smaller maps. With "nearest," the texel lookup is done on the map level nearest the ideal one, and with "linear," the texel values from the two closest map levels are interpolated.

With both Texel and Mipmap lookup set to linear, a true trilinear weighting of 8 texel values is used for a single pixel display. This is very accurate and helps eliminate aliasing, but it may be time-consuming on unaccelerated texture-mapping hardware.


Strokes

Strokes are a way to assign command shortcuts to mouse (or tablet) stroke patterns. Strokes require a three-button mouse, or the equivalent in a digitizing tablet. If you don’t have a three-button mouse, you can still use some strokes by using the Strokes utility.

Reference

You can also assign keyboard shortcuts to frequently used commands, but strokes are convenient because they can select an object and apply a command to it.

For example, you can assign Arc Rotate to a downward stroke. When this stroke is drawn, it puts you in Arc Rotate mode. You can assign a circular stroke to the Hide Selected command, so that it both selects the objects and then hides all the objects in the bounding extents of the stroke pattern.

Before you can use strokes, you must specify the Stroke option under Middle Mouse Button in the Viewports page of the Files/Preferences dialog.

The same stroke pattern can become four distinct strokes by holding the SHIFT and/or ALT keys when drawing the stroke. Drawing a vertical line is one type of stroke, holding SHIFT while drawing the same line is another type, holding ALT while drawing it is a third type, and holding both SHIFT and ALT while drawing the line is a fourth type.

See also

The Strokes Utility

Defining Strokes

Reviewing and Editing Strokes

Stroke Preferences

How To

To assign properties to a stroke

  1. Click the Draw Strokes button.
  2. Hold CTRL, and drag straight down from top to bottom, and then back up to the starting point.
  3. The Define Stroke dialog appears, and the name of the stroke is “HKKH.”

    4. If an alert appears, you’ve either drawn the stroke wrong, or this stroke has already been assigned. Continue with the following steps to replace the defined stroke.

  4. Choose the Properties command from the Command to Execute list.
  5. The option that is enabled is Single Object at Start of Stroke, because that’s the logical choice for the Object Properties command.
  6. Click OK.
  7. Drag vertically down and back up over any object in the scene to display the Object Properties dialog for that object.

To assign Hide Selection to a stroke

  1. Click the Draw Strokes button, if it’s not already green.
  2. Hold CTRL, and drag an L shape (drag vertically from top to bottom, and then continue from left to right).
  3. In the alert that appears, click Yes to redefine the stroke and display the Define Stroke dialog.

    4. The name of this stroke is GJEF.

  4. Select Hide Selection from the list.
  5. Choose All Objects in Rectangular Extents, and choose Crossing.
  6. Click OK.
  7. Load a scene containing several objects.
  8. Drag an L shape that crosses and encloses some objects in the scene.

    9. The stroked objects are all hidden.


Strokes Utility (Menus)

The Strokes Utility (Menus)

The Strokes utility does not require a three-button mouse. Instead, it displays a modeless dialog consisting of a single Draw Strokes button. Click this button, and then drag with the left mouse button to draw your strokes.

Reference

To use the Strokes utility, you must turn on Stroke in the Preferences dialog, but the middle mouse button options in that dialog are ignored.

Some strokes are already set up for you.

How To

To turn on Arc Rotate using the Strokes utility

  1. Turn on the Stroke option in the Viewport page of the Files/Preferences dialog.
  2. Activate any viewport.
  3. Hold down the mouse button and drag the mouse straight down from top to bottom.

    4. The length of the stroke doesn’t matter, but the direction does.

    As you drag the mouse, small X’s appear, displaying your stroke. When you release the mouse, a 3x3 grid appears briefly and then you’re in Arc Rotate mode.

    If a Stroke Not Found message appears, click Continue, and then repeat steps 2 and 3.


Defining Strokes

If you hold the CTRL key (either alone or in combination with SHIFT and/or ALT) while you stroke, you display the Define Stroke dialog, where you assign the stroke.

You can see how the strokes are analyzed by examining the grid in the Stroke to Define area of the Define Stroke dialog. When you complete the drawing of a stroke, a nine-square grid is centered around the stroke and fit to its extents. The inner segments of the grid are assigned unique letters. Where the stroke crosses a segment, the letter associated with that segment is added to the stroke name. Thus, the direction and the shape of the stroke matter, but the size of the stroke has no effect.

The stroke is always centered within the grid. If you draw a stroke vertically from top to bottom, the stroke is named HK, because it crossed the segments labeled H and K, in that order. Had you drawn the stroke from bottom to top, it would have been named KH.

Tip: You can define more than one stroke for the same command. For example, you might assign a U shape stroke to Undo, but find that you sometimes draw only a J shape when attempting the U. By assigning both the U and the J strokes to Undo, you don’t have to worry about missing that stroke.

See Also

The Strokes Utility

Reviewing and Editing Strokes

Stroke Preferences

Viewports Preferences

Reference

The following options are available in the Define Stroke dialog.

Stroke to Define

Displays the name of the stroke and shows the stroke you just drew as a series of white X’s connected by white lines. A green X represents the start of the stroke, and a red X represents the end. The labeled grid shows you how the stroke is recognized. Where the stroke crosses the labeled segments in the grid, a letter is added to the name of the stroke.

Command to Execute

The window lists all commands to which you can assign a stroke. Select a command and click OK to assign the stroke displayed in the grid to the selected command. Depending on the type of command you choose in this list, various options become available in the Command Should Operate On area.

Currently assigned to stroke: Displays the name of the stroke currently assigned to the selected command. If the SHIFT or ALT keys were pressed when the stroke was drawn, they’re added to the name. For example: “Shift + HK” or “Alt + HK.”

Command Should Operate On

Provides a number of options that specify which objects (if any) are affected by the command. These options are enabled or disabled depending on the type of command you’ve selected in the list window.

No Objects Just Execute the Command: This text is displayed when a command is chosen that is not specific to selected objects (such as Arc Rotate). When a command is selected that can be applied to selected objects, the following options become enabled:

Single Object at Start of Stroke: Causes the command to act on the object beneath the first stroke point in the active viewport.

All Objects in the Selection Set: Causes the command to act on all objects in the current selection set.

Multiple Objects Based on the Stroke Boundary

Choosing one of the options in this area lets you use the stroke itself to select multiple objects and then apply the command.

All Objects in Rectangle Extents: Selects all objects defined by the rectangular bounding of the stroke.

All Objects in Circular Extents: Selects all objects defined by the largest circle that fits within the rectangular bounding of the stroke.

Window/Crossing: When either of the above two options are chosen, these two options become available. Window selects only those objects entirely within the rectangular or circular region. Crossing selects all objects within or crossing the region.

Current Stroke Set: Displays the name of the current stroke set, and lets you review the strokes defined in that set. (You can create and save a number of different stroke sets. See Stroke Preferences.)

Review: Click to display the Review Strokes subdialog, where you can choose from a list of defined strokes and then see the stroke itself. You cannot edit strokes this way. To view, change, and delete strokes, draw the Review Strokes stroke (by default, a horizontal line from left to right).

How To

To define a stroke using the CTRL key

  1. Hold the CTRL key while drawing a stroke.
  2. If the stroke already exists, a message asks you if you want to replace it. Click Yes.
  3. In the Define Stroke dialog that is displayed, assign the stroke.

To define a stroke by example

  1. Draw a stroke that doesn’t exist.
  2. A Stroke Not Found message appears. Click Define.
  3. In the Define Stroke dialog that is displayed, assign the stroke.


Reviewing and Editing Strokes

You can view defined strokes in the Review Strokes dialog. Depending on how you display this dialog, you can also change or delete defined strokes:

  • Click the Review button in the Define Strokes dialog to view strokes, but not change or delete them.
  • Draw the Review Strokes stroke (by default, a horizontal line from left to right) to view, change, and delete strokes. You can redefine the Review Strokes stroke in the Review Strokes dialog.

Reference

Defined Strokes

Displays a list of commands that currently have strokes assigned to them and the name of the current stroke set. These are the commands available as Main U.I. keyboard shortcuts in the Preferences dialog, plus the following commands, available only through Strokes:

Make Camera Active: Point at a single camera (not the target), draw the stroke, and that camera becomes active in the viewport in which the stroke is drawn.

Change Light Color: You can stroke this command over one or more lights. The color selector appears, letting you change the color of the selected lights.

Light On/Off Toggle: Stroke over a light to toggle its on/off state. If you stroke over two or more lights, all the lights are set to a common state, either all on or all off.

Set Constraints: Displays a small dialog with the available axis constraints. Double-click to change the axis constraints for the current transform mode.

Move Mode (Set Constraints): Switches to Move transform and displays a small dialog with the available axis constraints. Double-click to change the axis constraints for the current transform mode.

Rotate Mode (Set Constraints): Switches to Select and Rotate mode and displays a small dialog with the available axis constraints. Double-click to change the axis constraints for the current transform mode.

Scale Mode (Set Constraints): Switches to Select and Scale mode and displays a small dialog with the available axis constraints. Double-click to change the axis constraints for the current transform mode.

Review Strokes: Displays the Review Strokes dialog.

Stroke Preferences: Displays the Stroke Preferences dialog.

Show As

Provides two options that let you specify how the commands are displayed in the list.

Command Name: Displays the assigned strokes by command name (e.g., Play Animation).

Stroke Name: Displays the assigned strokes by their stroke name (e.g., HK).

Change: Assigns a different stroke to the command, or vice versa, depending on whether commands or strokes are displayed in the list.

Delete: Removes the selected command (or stroke) from the list, and the command is no longer assigned to the stroke.

Information on Selected Stroke

Displays the stroke assigned to the item selected in the list window and its name.

How To

To change the command assigned to a stroke (or vice versa)

  1. Select a command (or stroke) from the list
  2. Click Change. The Define Strokes dialog appears.
  3. Select the new stroke to assign.
  4. Click OK in the Define Strokes dialog to assign the selected stroke to the command currently highlighted in the Review Strokes dialog.


Stroke Preferences

The Stroke Preferences dialog is available only by drawing its stroke (by default, an inverse L, drawn vertically from bottom to top, and then horizontally from left to right). You can redefine the Stroke Preferences stroke in the Review Strokes dialog.

The Stroke Preferences dialog lets you save sets of strokes and set various other stroke properties.

Reference

Current Stroke Set

Displays the name and number of strokes in the current set. To create a new set, type a new name in the field and click Save. To choose a different set, choose it from the list and click OK.

Save: Saves the set displayed in the list.

Delete: Deletes the set displayed in the list.

Review Strokes Default Sort Order

Specifies whether commands or strokes are initially listed in the Review Strokes dialog.

Show Grid Time (ms)

The time, in milliseconds, that the stroke analysis grid appears in the viewports when you complete a stroke. Set it to 0 to hide the grid. The default value is 300 (about 1/3 of a second). The valid range is 0 to 2000.

Show Extents Time (ms)

The time, in milliseconds, that the extents of the stroke appears in the viewports. Set it to 0 to disable this feature. The default value is 300 (about 1/3 of a second). Strokes that operate on the First Point display a small X. Strokes that operate on items in the bounding box of the stroke display the bounding box. Strokes that operate on the circular extents display a circle that fits inside the square bounding box of the stroke. Window selections appear solid. Crossing selections appear dotted. The valid range is 0 to 2000.

Stroke Point Size

The size, in pixels, for Xs drawn in the viewports that allow you to visualize the stroke shape. The default is 4. The valid range is 3 to 20.


General Preferences

Sets preferences for the user interface and for interactivity.

Reference

The General preferences panel contains the following options:

Preview Options

AutoPlay Preview File: Starts the Media Player automatically at the end of a Make Preview. If clear, the Media Player does not start.

Virtual Framebuffer

Optimize for 8-Bit Display: Turns color-palette optimization on for the virtual frame buffer. When this box is selected, images are processed after rendering and redisplayed using an optimized palette, which increases the quality of 8-bit renderings.

System Unit Scale

Changes the scale of the 3D Studio MAX unit. The unit is the standard measurement throughout 3D Studio MAX. You should change this value only if you are working on a scene that is so huge or so tiny that 3D Studio MAX can no longer measure distances accurately using the default unit scale. If you change this value, you make the scale of the objects you create incompatible with objects in scenes created with the default unit scale.

Automatic Unit Conversion: When selected, merged objects from a file with a different system unit scale are scaled to maintain their correct size in the new scene. For loaded files that have a different system unit scale, you can either rescale the loaded scene to the current system unit scale, or change the current system unit scale to match the one in the loaded file.

Scaling affects geometry, 3D maps in materials, and various environment settings that are scaleable and affected by changes in the system unit scale.

The Views/Units Setup dialog specifies the display of units in the 3D Studio MAX interface (the spinners, etc.), but not the actual scale of the geometry.

The Rescale World Units utility lets you alter the scale of world units throughout the entire scene, or to selected objects only.

Spinners

Spinner Precision: Sets the number of decimal places displayed in a spinner's edit field. This parameter ranges from 0-10 (where 0 is no decimal places).

Spinner Snap: Sets the single-click increment/decrement value for all of the spinners in 3D Studio MAX.

Use Spinner Snap: Turns spinner snap on or off.

Log File Maintenance

The following controls affect the max.log file:

Never Delete Log: This and the following two options determine how long the log file is maintained. When Never Delete is chosen, the max.log file is never deleted.

Maintain Only...Days: Resets the file to zero bytes every set number of days (as specified in the Days spinner).

Maintain Only... Kbytes: Resets the file to zero bytes when it reaches the size specified in the KBytes spinner field.

Errors: Writes fatal errors to the max.log file, instead of generating alert dialogs. Alerts halt network rendering for one or more servers.

Info: Writes general information to the max.log file instead of generating alert dialogs.

Debug: Writes debug messages to the max.log file instead of generating alert dialogs.

The types of errors covered by all four of these categories include maps that can’t be found, missing UV coordinates, missing output directories, full disks, missing .dlls, disks to which you don’t have access, invalid meshes, and obsolete .max files.

UI Display

Viewport Tooltips: Displays a tooltip when the cursor pauses over an object in the viewports, if you are not in sub-object mode. Tooltips show the names of objects.

Display NU Scale Warning: Displays a warning alert when you attempt to use Non-Uniform Scale or Squash at the object level. If you don’t want to be reminded, clear this item and the warning will no longer appear.

Short Toolbar: Displays a shorter toolbar that fits into 800x600 resolution. Some buttons are removed, but you can still use all tools from the menus.

Righthand Command Panel: By default, 3D Studio MAX displays the Command Panel on the right side of the screen. Clear this box to display the Command Panel on the left.

Flyout Time: Sets the pause between the mouse click and the flyout popping up from the button (in milliseconds). Increase this only if you need an extra-long delay. Do not decrease it much or you may not be able to execute button commands before the flyout takes over.

Scene Undo

Undo Levels: Sets the number of operations you can undo for Undo (not viewport Undo). You can always see the next operation that will be undone by looking at Undo in the Edit menu (or Views menu).

How To

To reset the system unit

  1. Choose File/Preferences to bring up the Preference Settings dialog.
  2. On the General panel, adjust the System Unit Scale setting and click OK.

    3. The system unit is immediately reset. This setting remains in effect until you change it.

To set and toggle spinner snap

  1. Do one of the following:
    • Choose File/Preferences and click the General tab on the Preference Settings dialog.
    • Right-click the Spinner Snap button in the status line.

    Either method brings up the General panel. The two controls for spinner snap are in the Interaction area of this panel.

  2. Set a value in the Spinner Snap field.
  3. Select Use Spinner Snap.

    4. When you exit the dialog, the Spinner Snap button is turned on.

  4. As you work, use the Spinner Snap button to toggle the alternate setting.

To set the Undo level

  1. Choose File/Preferences.
  2. Click the General panel.
  3. Change the Undo Levels field in the Interaction area.


Inverse Kinematics Preferences

Sets preferences for inverse kinematics.

Reference

The Inverse Kinematics preferences panel contains the following options:

Applied IK/Interactive IK

The threshold and iterations settings are a trade-off between accuracy and speed. The two groups of settings let you individually tune the behavior of Interactive IK and Applied IK. Interactive IK provides fast, real-time response, so Interactive IK preferences should be set for speed. Applied IK provides the IK solution to match the follow objects very closely. Applied IK preferences should be set for accuracy.

Position: Sets how close the end effector has to get to the follow object or cursor position to be considered a valid solution. The value represents a distance in the current unit system. Small values increase accuracy but take longer to solve.

Rotation: Sets how accurately the end effector has to match the orientation of the follow object to be considered a valid solution. The value represents a rotation angle in degrees. Small values increase accuracy but take longer to solve.

Iterations: Sets the maximum number of times 3D Studio MAX repeats the IK calculations to find a valid solution. A high iterations value increases the chance that 3D Studio MAX can calculate a valid solution but takes longer to complete.

Miscellaneous

Use secondary threshold: Compares the second derivative of the end effector to a very small threshold. If it is within the threshold, IK terminates.

Always transform children of the world: This option applies when IK is turned on in both move and rotate mode. It affects only an object that is a direct child of the world and is selected.

For example, if the root of an IK chain is a child of the world, and you are manipulating an object at the end of the chain (the root object is not selected), any constraints set for the root object will be observed. However, if you select the root object and try to move it, its constraints will be ignored.

How To

To clear the Always Transform of Children of the World setting

  1. Choose File/Preferences.
  2. Click the Inverse Kinematics panel.
  3. Clear the option labeled Always Transform Children of the World.

    4. Single, unlinked objects are hierarchies of one. An unlinked object is its own root and is also a child of the world, so clearing Always Transform Children of the World prevents you from transforming single objects in IK mode.

To change IK preference settings

  1. Choose File/Preferences.
  2. Click the Inverse Kinematics panel.


Keyboard Preferences

Provides functions to set up, modify, and manage the keyboard shortcuts for 3D Studio MAX.

Reference

The Plug-in Keyboard Shortcut Toggle lets you switch between using the 3D Studio MAX shortcut keys, and using shortcut keys assigned by third-party plug-ins. When this is on, and when the focus is on the plug-in, that plug-in’s shortcut keys are used instead of the 3D Studio MAX shortcut keys. Functions in the command panels are treated as third-party plug-ins, even if they ship with 3D Studio MAX.

The Keyboard preferences panel contains the following options:

Command

Choose the button representing the area for which you want to change shortcuts: Main UI, Material Editor, Track View, or Video Post. The shortcuts for that category become active and shortcuts for other categories are ignored.

Some keyboard shortcuts bring up a subdialog or place the focus in an editable field. When this happens, the keyboard shortcuts are ignored until you leave the field.

Select the 3D Studio MAX command to which you want to assign a shortcut. If the selected commands already has a shortcut assigned to it, the shortcut appears below the list.

Use Only Main U.I Shortcuts: Deactivates all but the Main UI shortcuts. The radio buttons above the list are unavailable if this option is selected.

Remove: Removes a shortcut from the selected command.

Save List to File: Saves the shortcuts for all the categories to a single text file. In the file, shortcuts are listed with their category titles and related functions.

Reset Category: Removes any shortcuts you've assigned for this category and returns them to their defaults.

Shortcut

Defines the combination of keys for the shortcut.

Press Key: Press any key (except Scroll Lock, Num Lock, or Pause) to use in combination with the CTRL, ALT, and SHIFT keys.

Assign: Assigns the current shortcut to the selected command.

Sets

Displays the list of named .kbd files containing custom shortcuts.

Save: Saves the custom keyboard assignments to a .kbd file you specify.

Delete: Deletes the selected shortcut file.

How To

To set up keyboard shortcuts

  • Choose File/Preferences, then click the Keyboard tab.


Gamma Preferences

Allows you to adjust the Gamma values for input and output images and for the monitor display.

Reference

The Gamma preferences panel contains the following options:

Enable Gamma Correction: Applies any gamma adjustments you make. Clear this box to disable gamma correction.

Load Enable State with MAX Files: Loads the state of the Enable Gamma Correction check box with each .max file.

When Load Enable State is selected, and you load a .max file whose Enable Gamma Correction state is different than the current state, you can make the gamma correction correspond with the setting in the current file or leave it as it is.

If you have a maxstart.max file and this option is selected, new sessions of 3D Studio MAX use the Enable Gamma Correction state in the maxstart.max file. If this option is clear, the maxstart.max file has no effect on the state of Enable Gamma Correction.

Display

Display gamma is used for the Material Editor spheres, the color selector, color swatches, and the virtual frame buffer (Scanline Renderer). Note the default value before you start making adjustments, in case you need to restore it.

Gamma: Adjusts the gamma display for 3D Studio MAX. The spinner increases/decreases the value (lightness or darkness) of the center square. Adjust the value until the center square is as close as possible in value to the surrounding checkered square.

If you’re creating imagery that will be sent to anyone else, use Display Gamma to get some assurance that the image will look correct at the destination site.

You can also display these gamma settings from the Gamma button in the file browser dialog (for example, when you are rendering a scene to an image file).

Bitmap Files

Input Gamma: The system input gamma that 3D Studio MAX uses to process bitmaps if that bitmap type doesn’t override it with its own gamma value. In the case of Targa files, the file’s inherent gamma will override the system input gamma. Input Gamma is used to invert the gamma of bitmaps coming into 3D Studio MAX (for example, texture maps) so that when they are processed by the renderer and re-output, they aren’t gamma processed twice.

If you have gamma enabled and are loading texture maps, set your input gamma to the same value as your display gamma, or your maps will be too bright.

Output Gamma: The system output gamma that 3D Studio MAX uses to process bitmaps if that bitmap type doesn’t override it with its own gamma value.

How To

To set gamma preferences

  • Choose File/Preferences, then click the Gamma tab.


Animation Preferences

Sets preferences relating to animation.

Reference

The Animation preferences panel contains the following options:

Key Bracket Display

When you move to a frame, 3D Studio MAX displays white brackets around objects that have transform keys at that frame, including cameras and lights. These key brackets only appear in wireframe viewport displays.

All Objects/Selected Objects/None: Specifies which objects will display key brackets.

Use Current Transform: Displays brackets only on those frames containing a key for the transform button currently active in the toolbar (Move, Rotate, or Scale).

If no transform button is active, a bracket appears when you're on a frame containing any of the three transforms.

Position/Rotation/Scale: Specifies which type of transform will display a bracket. If only Rotation is selected, brackets appear only on those frames containing Rotation keys. These check boxes become active when Use Current Transform is clear.

Animate

Local Center During Animate: Locks the center method to local (because when animating, that’s the only center possible to animate around). If you want to animate around a non-local center, use a dummy object.

MIDI Time Slider Control

Lets you use a MIDI device to control the time slider. Select On to use the MIDI device specified in the MIDI Time Slider Control Setup dialog, displayed with the Setup button.

Sound Plug-In

Assign: Displays a dialog listing all sound plug-ins installed in the system. Select a new one to replace the current one.

Controller Defaults

Sets the default values for animation controllers capable of supporting default settings, for example, the TCB and Bezier controllers.

Set Defaults: Displays a dialog listing all controllers that have default values to be set. The Set button becomes available when you select a controller class from the list. Choose this button to display a dialog, provided by the plug-in controller, that lets you set default values.

Restore to Factory Settings: Prompts to verify if you want to reset all controllers to their default settings. If you choose yes, the defaults are reset for all controllers currently in the system.

How To

To change the default transform center

  1. Under File/Preferences, go to the Animation panel of the Preference Settings dialog.
  2. Clear Local Center During Animate.

    3. This changes the default and activates all the transform center buttons. You can now animate around the selection, coordinate center, or local pivot.

To set the key bracket display

  1. Choose File/Preferences, and click the Animation panel.
  2. Use the controls in the Key Bracket Display area to specify how you want key brackets displayed.

To specify default controller settings

  1. Choose File/Preferences.
  2. Click Set Defaults in the Animation panel of the Preference Settings dialog.

    3. The Set Controller Defaults dialog appears.

  3. Choose a controller type from the list of available controllers and click the Set button.

    4. A dialog containing the default settings supported by the selected controller type appears, for example, the In and Out tangents for a Bezier controller.

  4. Make changes to the controller settings.

    5. Once you click OK in this dialog, the controller defaults are changed. You cannot cancel from the Set Controller Defaults dialog.

    Changes to the controller default settings are written to your 3dsmax.ini file and become the defaults for all newly assigned controllers and all new scenes.

    If you decide that you want to revert to the original 3D Studio MAX defaults for all controllers, you can click the Restore to Factory Settings button in the Preference Settings dialog.

To restore the original default settings for all controllers

  1. Choose File/Preferences.
  2. Click Restore to Factory Settings in the Animation panel of the Preference Settings dialog.


MIDI Time Slider Control Setup

This dialog is displayed from the Animation Preferences dialog box. It lets you specify and set up a MIDI device.

Reference

The MIDI Time Slider Control Setup dialog contains the following options:

Presets: Specifies the type of MIDI device used. You can choose the Media Control Station 2, which is a MIDI device containing standard VCR-style playback buttons along with a jog wheel, or you can choose Custom, which lets you specify note events in the spinners. You can also use Custom to customize the buttons used by the Media Control Station.

Channel: Specifies the channel to which your MIDI device is assigned.

Note Number

The spinners in this area let you specify which note event triggers which function.

Start Frame: Goes to the start frame (the Rewind button in the Media Control Station).

End Frame: Goes to the end frame (the Fast-Forward button in the Media Control Station).

Step Forward: Moves one frame forward (the Fast-Forward button and Option button in the Media Control Station).

Step Backward: Moves one frame back (the Rewind button and Option button in the Media Control Station).

Stop: Stops playback (the square button).

Play: Plays the animation (the arrow button).

Jog Wheel: Controls the time slider with the jog wheel.

Sensitivity: The number of ticks that the time slider is moved in response to one unit of movement from the jog wheel. A lower value provides more precise positioning of the time slider, while a higher value makes the time slider move faster. If you set your time display to show ticks and set the sensitivity to 1, you can move one tick at a time with the jog wheel.

How To

To use a MIDI device to control the animation time slider

  1. Choose File/Preferences and click the Animation tab.
  2. Under MIDI Time Slider Control, select On.
  3. Click the Setup button.
  4. Set the MIDI device options and click OK.


Rendering Preferences

Sets preferences for rendering.

Reference

The Rendering preferences panel contains the following options:

Video Color Check

Some pixel colors are beyond the safe NTSC or PAL threshold. You can choose to flag them or modify them to acceptable values.

Flag with Black: Flags all illegal pixels with black to show you how illegal your image is. This mode can teach you how to make correct colors, instead of depending on one of the Scale options. The scale options force a natural discontinuity in the color values. In some cases, that discontinuity can cause visible aliasing.

Scale Luma: Scales the luminance to bring the color into range, and maintains saturation. This generally makes the illegal areas appear darker than they should be.

Scale Saturation: Scales the chroma to bring the color into range, and maintains saturation. Because it keeps the brightness of the pixels fairly equivalent to the unscaled ones, this is the more useful of the two scale methods.

NTSC/PAL: Determines the standard to use for the video color check.

Output Dithering

Sets output dithering for all file types.

True Color: Turns dithering on or off for any truecolor output device. For 24-bit work, Dither True Color should be on. For paletted work, it can be off.

Paletted: Turns dithering on or off for any 8-bit paletted device.

Field Order

Odd/Even: Sets which set of scanlines are rendered to the first field. Some devices require this set to even. Some require it set to odd. Determine the correct setting for your system. If you are rendering to fields and having problems with incorrectly strobing video images, try changing this parameter.

Super Black

Threshold: Keeps the super black threshold above a certain level (primarily for luminance keying).

HotSpot/Falloff

Angle Separation: Locks the spotlight hotspot and falloff cones at the angle separation defined by the spinner (degrees). This option constrains the hotspot angle so that it can’t equal the falloff (and cause aliasing artifacts).

Don’t Alias Against Background

Ensures that the edges of rendered geometry are not antialiased against the background. The inside of the geometry is still antialiased. Clear this option unless you’re creating sprites for game development, or require special compositing techniques. In these cases, selecting this option helps avoid generating alpha antialiasing on the outlines of the geometry.

Default Ambient Light Color

Click the color swatch to change the default ambient light color for renderings. This color will be the darkest color for rendered shadows in the scene.

Pixel Size Limit

Allows you to increase the Pixel Size to between 1.5-2.0 for extra-smooth antialiasing. This is needed for high-resolution video and film animation for scenes that have many long, high-contrast, nearly-vertical, or nearly-horizontal lines. In these cases, setting this value to 2.0 smoothes out the long edges. Test to make sure you don't create artifacts by this method, especially against a black background.

Output File Sequencing

Nth Serial Numbering: Specifies whether output frame files generated using a frame-step value other than 1 are numbered sequentially (selected) or according to their true frame numbers (clear).

Render Termination Alert

Beep: Beeps to let you know that the rendering has finished. You can set the frequency and the duration.

Play Sound: Plays a sound file to let you know that the rendering has finished. To select a sound file, click the Choose Sound button. You can test sound files with the Play button in the file browser dialog. Press Esc to turn off the sound.

Current Renderer

Specifies the renderers for the Production side and the Draft side. Switch between the two renderers using the Production and Draft options in the Render Scene dialog.

Assign: Displays a dialog listing all renderer plug-ins installed in your system. Select a new one to replace the current one.

Multithreading

On: Causes 3D Studio MAX to treat the rendering task as separate threads. This option works with multiprocessor systems. When clear, 3D Studio MAX treats a rendering task as a single chunk of processing and won't divide it up. Each processor in your computer handles a different thread, which makes full use of available processing power and speeds up rendering to the maximum.


Files Preferences

Sets preferences relating to file handling.

Reference

The Files preferences panel contains the following options:

File Handling

Backup on Save: Creates a backup file if a file of the same name already exists. The existing file is renamed "MaxBack.bak" and placed in the 3DSMAX directory before the save occurs.

Increment on Save: Creates a new copy of the file in the same directory when you save. The name of the new file is incremented by 1 (filename01.max, filename02.max, and so on).

Recent Files in File Menu: Specifies the number of recently-numbered files to display at the bottom of the File menu.

Save Viewport Thumbnail Image: Saves a 64-pixel thumbnail of the active viewport when you save each .max file. The thumbnail can be read by the Asset Manager utility. Saving thumbnails adds about 9K to each .max file.

Auto Backup

The Auto Backup system creates AutobakN.mx files (where N is an integer from 1-9), based on a time interval. For example, if you’ve set it for three Autobak files at one-minute intervals (the default), it will create Autobak1.mx, then a minute later Autobak2.mx, and then Autobak3.mx. At minute four, it will overwrite Autobak1.mx, etc.

At this setting, you’d lose only one minute’s work and keep disk space use to a minimum.

Enable: Enables the Auto Backup system.

Number of Autobak Files: Determines how many backup files to write before overwriting the first one. This spinner can range from 1-9.

Backup Interval: Determines the number of minutes between backup file generation.

Archive System

Program: Specifies the name and location of the program to use for archiving. The program must be one you have independently installed on your system. You can add command line arguments to follow the executable file name. For example, for pkzip, the arguments might be:

project1.zip c:proj0?.max -o

How To

To set file preferences

  • Choose File/Preferences, then click the Files tab.


Colors Preferences

Customizes the user interface colors in 3D Studio MAX that are not affected by the standard Windows NT custom colors.

Reference

Choose an item from the list, then click the color swatch to change its color. Click Reset Item to reset the currently-selected item in that area. Click Reset Category to reset all the items in the current category.

The Colors preferences panel contains the following options:

Main UI

Lets you specify colors for the 3D Studio MAX user interface (items that don’t appear in the viewports).

Objects

Lets you change the colors of objects in the scene that have specific colors, such as space warps.

Choose an item from any of the lists, then click the color swatch to change its color.

Gizmos & Apparati

Lets you change the colors of components that appear in the viewports, such as gizmos, camera cones, and so on.

Grids

Lets you specify a custom color or gray intensity setting for the home grid.

Grid Intensity: Sets a grayscale value for the display of the grid lines. 0 is black and 255 is white.

Invert: Inverts the grayscale value for the display of the grid lines. Dark gray becomes light gray and vice versa.

Reset Grid Intensity: Resets the grid intensity to its default value.

Grid Color: Sets a color value for the display of the grid lines. Lighter and darker intensities of the coilor are used for subgrid lines. Click the swatch to display a color selector, in which you can specify a color for the grid.


History

This is a File menu area that appears after you have worked with some 3D Studio MAX files. It lists the four most recently opened files.


Exit

Exits 3D Studio MAX.

Reference

If you have unsaved work, you'll be asked if you want to save it.

How To

To exit 3D Studio MAX

  • Choose File/Exit or click the close button (the X) in the upper-right corner of the application window.


Edit Menu

Contains functions for selecting and editing objects in the scene, as listed here.

Undo/Redo

Hold

Fetch

Delete

Clone

Select All

Select None

Select Invert

Select By

Select By Color

Select By Name

Region

Select Region Window

Select Region Crossing

Edit Named Selections

Properties


Undo/Redo

Cancels the last action.

For a full description of the Undo function, see the Undo button.

For a full description of the Redo function, see the Redo button.


Hold

Stores the current 3D Studio MAX scene and its settings in a restorable buffer.

Reference

Hold saves the scene to a temporary file (maxhold.mx) under the directory specified as the Scenes path in the Configure path dialog. The Fetch command restores the contents of the Hold buffer, which includes all geometry, lights, cameras, viewport configuration, and selection sets.

Use Hold before you undertake an operation that may not work as expected. These commands allow you to easily get back to a particular point if you need to.

How To

To store the current scene in a restorable buffer

  • Choose Edit/Hold.


Fetch

Restores the 3D Studio MAX scene and settings previously stored by the Hold command.

Reference

The Hold command stores the scene in the Hold buffer. Information stored includes all geometry, lights, cameras, etc. viewport configuration, and selection sets.

Use Hold before you undertake an operation that may not work as expected. These commands allow you to easily get back to a particular point if you need to.

How To

To restore the scene from the Hold buffer

  • Choose Edit/Fetch.


Delete

Deletes the current selection from the scene.

How To

To delete the current selection, do one of the following:

  • Press DEL
  • Choose Edit/Delete


Clone

Creates a copy, instance, or reference of the selected object(s).

Reference

The Clone Options dialog appears when you choose Clone from the Edit menu or when you hold down the SHIFT key when transforming an object.

Object

Copy: Places a copy of the selected object at the specified position.

Instance: Places an instance of the selected object at the specified position.

Reference: Places a reference of the selected object at the specified position.

Controller

Makes either copies or instances of the original objects’ transform controllers. This option is only active when the selection you’re cloning includes two or more hierarchically linked objects.

Copy: Places a copy of the selected object's transform controllers at the specified position.

Instance: Places an instance of the selected object's transform controllers at the specified position.

The following option only appears when you SHIFT-clone an object.

Number of Copies: Specifies the number of cloned objects. If you SHIFT-move an object and specify two copies, the second copy will be offset from the first copy by the same distance that the first copy is offset from the original.

For rotate, two copies of the rotated object are created, with the second one rotated twice as far as the first. For scale, two copies of the scaled object appear, with the second copy twice (or half) the size of the first copy.

Name

Displays the name of the cloned object.

How To

To SHIFT-Clone an object

  1. Click a Move, Rotate, or Scale button and select the object or set you want to clone.

    2. You can select a single object, multiple objects, a group, or a sub-object.

  2. Hold down the SHIFT key and drag the selection to apply the transform.

    3. As you drag, a clone is created and selected; it is now the object being transformed. The original object is no longer selected and is unaffected by the transform.

    When you release the mouse button, the Clone Options dialog appears.

  3. Change settings in this dialog or accept the defaults, and then click OK.

To clone an object without transforming it

  1. Select the object, or set of objects, to clone.
  2. Choose Edit/Clone on the menu bar.

    3. The Copy Options dialog appears. You can't set a multiple number of clones.

  3. Change settings in this dialog or accept the defaults, and click OK.

    4. The cloned objects occupy the same space as the original. Select any of these clones by name to move or modify it.


Select All

Selects all objects in the scene of the current selection filter type in the toolbar.

How To

To select all objects

  • Choose Edit/Select All.


Select None

Deselects all objects in the scene conforming to the current selection filter.

How To

To deselect all objects for the current selection filter

  • Choose Edit/Select None.


Select Invert

Inverts the selection set.

All objects not currently selected are selected. All objects currently selected are deselected.

How To

To invert the current selection

  • Choose Edit/Select Invert.


Select By

Provides options for selecting objects in the scene by color or by name.

Select By Color

Select By Name


Select By Color

Selects all objects having the same color as the selected object.

After you choose this command, click on any object in the scene to determine the color for the selection set.

How To

To select by color

  1. Choose Edit/Select By/Color.

    2. The Select Color cursor appears.

  2. Select an object of the color you want to match.

    3. All objects of the same color are selected.


Select By Name (Menus)

Select By Name

Allows you to select objects by picking them from a list of all objects in the scene.

For a full description of the Select By Name function, see the Select By Name button.

How To

To select by name

  • Choose Edit/Select By/Name.


Edit Named Selections

Lets you manage named selection sets.

Reference

In the Edit Named Selections dialog, the window at left lists all of the current named selections. When you select any of the items in the leftmost window, those objects are listed in the window at right. The buttons beneath the windows let you delete, merge, rename, and edit the listed items.

You can use Edit Named Selections in sub-object editing mode, but the dialog displays only the left half of the dialog.

Named Selections

Lists all existing named selection sets. When a single item is selected, you can rename it by typing a new name in the field below the list.

Combine: Merges all objects from the highlighted selection sets into a single, new selection set. Select two or more selection sets, and then click Combine and enter a new name for the selection set. Use Delete to delete the original sets.

Delete: Deletes all selected items in the Named Selections window.

Subtract (A-B): Subtracts the objects contained in one selection set from another. Select one item in the Named Selections window, and then select the other. The top highlighted item in the window is operand A, and the bottom is operand B (regardless of the order of their selection). Click Subtract (A-B) to subtract the objects in the bottom item from those in the top item.

Subtract (B-A): Subtracts the objects in the top selected item from those in the bottom item.

Intersection: Creates a selection set that consists of objects in common between the highlighted selections sets. Select two or more items from the Named Selections window and click Intersection. In the dialog that appears, enter a new name and click OK.

Objects

Displays the names of objects that are common to the named selections that have been highlighted in the leftmost window. For example, if you select two named selections that both have a torus, but all other objects in their sets are mutually exclusive, only the torus appears in the Objects window.

Add: Adds objects to the highlighted selection set(s). The Select by Name dialog appears, listing all objects in the scene that are not common to the highlighted selection sets. Choose one or more items from the dialog, and then click Add.

To add to a named selection for a sub-object, select the geometry you want to add, give it a name, then Combine the newly named geometry with an existing name in the Edit dialog.

Remove: Select one or more items from the Objects window, and then click Remove to remove that item from the selection set. Since the Objects window displays only the objects that are common to all highlighted selection sets, you can remove objects from more than one selection set at once. Remove is available only when you select one or more items from the Objects window.

To Remove geometry from a named selection for a sub-object, select and name the geometry you want to remove, then use Subtract.

How To

To edit a named selection

  1. Click the selection name from the list.

    2. The defined objects are selected.

  2. Choose Edit/Edit Named Selections.


Region

Toggles between selecting objects within, or crossed by, a rectangular window.

These are the same functions provided by the Window/Crossing button in the status bar.

Select Region Window

Select Region Crossing


Select Region Window

Selects objects within a selection region.

Reference

After you choose this command, draw a rectangle, circle, or fence around any objects in the scene. Only those objects that are entirely within the region boundary are selected.

How To

To select objects within a selection region, do one of the following:

  • Choose Edit/Region/Window.
  • Click the Window/Crossing toggle to display the Window icon.


Select Region Crossing

Selects objects within or crossed by a selection region.

Reference

After you choose this command, draw a rectangle, circle, or fence around or crossing any objects in the scene. Those objects that are within the region boundary or that are crossed by it are selected.

How To

To select objects crossed by a selection region, do one of the following:

  • Choose Edit/Region/Crossing
  • Click the Window/Crossing toggle to display the Crossing icon.


Properties

Allows you to view and edit the properties of the current selection.

Reference

The items displayed in the Properties dialog box depend on the type of object selected.

General Properties

Object Information

Displays information about the selected object, including the following:

Name: You can type a new name for the object in the field.

Color: Click the color swatch to select a different color.

Dimensions: Displays the X, Y, and Z dimensions for the object.

Vertices/Faces/Polygons: Displays the vertex/face count for shapes and the number of polygons in a shape. Shape faces are generated only at rendering time (if they’re set as renderable), so the vertex/face numbers represent those of the rendered spline and are affected primarily by the interpolation settings of the shape. Because these values can change over time, they’re valid only for the current frame and the current view.

Parent: (the name of the hierarchical parent.) Displays “Root” if the object is not linked to another object.

Material Name: Displays the name of the material used or the selection name (for example, Cylinder01, 2 meshes, 4 entities, etc.).

Num Children: Displays the number of hierarchically linked children.

In Group: Displays the name of the group to which the object belongs. Shows None if the object is not part of a group.

Rendering Control

Renderable: Makes an object appear or disappear from the rendered scene. Non-renderable objects do not cast shadows or affect the visual component of the rendered scene. Like dummy objects, non-renderable objects can manipulate other objects in the scene.

Shape objects have the Renderable option turned on by default, but have an additional Renderable check box in their creation parameters in the command panel. When both check boxes are selected, the shape is renderable. If Renderable in the Properties dialog is off, the shape is not renderable, regardless of the state of its local Renderable check box. If a modifier is applied that converts the shape into a mesh object, such as a Lathe or Extrude modifier, the object automatically becomes renderable, regardless of the state of its local Renderable check box.

Renderable in the Properties dialog affects the master object, so it affects all instances and references of a shape, whereas Renderable in the command panel affects only the node itself.

Cast Shadows: Toggles the shadow-casting ability of the object. Default=On

Receive Shadows: Toggles the entity’s ability to receive shadows. Default=On

Inherit Visibility: Causes the object to inherit the visibility of its parent (as determined by the parent’s Visibility track in the Track View). When a group parent is assigned a visibility track, Inherit Visibility is automatically turned on for all children in the group. Transparent materials and hidden objects have no effect on this function.

Motion Blur

None: Turns off the state of motion blur for the object.

Object: Provides a time-slice blur effect.

Image: Blurs the object’s image based on the velocity of each pixel.

The rendering speed of Object motion blur is dependent on the complexity of the geometry to which it’s assigned, whereas the speed of Image motion blur is dependent on the amount of rendered screen space taken up by the blurring object. In most cases Image motion blur will be faster. Object motion blur will be faster when applied to very simple objects, and Image motion blur will be slower when rendering an object that takes up a lot of screen space, and moves all the way across the screen in a single frame.

If you choose either form of motion blur here in the Object Properties dialog, you must also choose to apply that type in the Render Scene dialog.

Display Properties

Show as Boxes: Toggles the display of selected objects, both 3D objects and 2D shapes, as bounding boxes. Produces minimum geometric complexity.

Backface Cull: Toggles the display of faces with normals pointing away from view. When selected, you see through the wireframe to the back faces. Applies only to Wireframe viewport display.

Edges Only: Toggles the display of face edges. When set, only faces appear. When clear, all mesh geometry appears. Applies only to Wireframe viewport display.

Vertex Ticks: Displays the vertices as tick marks.

Trajectory: Toggles trajectory display for the selected object so you can display its trajectory wherever you are in 3D Studio MAX.

Vertex Colors: Displays the effect of assigned vertex colors. You assign vertex colors in the editable mesh in vertex or face sub-object level.

Shaded: Determines whether the object with the assigned vertex colors appears shaded in the viewport. When off, colors are unshaded. When on, colors appear like any other assigned color in the viewport.

G-Buffer

Allows you to tag a material as a target for a Video Post effect based on the G-buffer channel. Rendering the Scene event creates a g-buffer channel if the Object Channel spinner has a non-zero ID.

Object Channel: Setting this spinner to a non-zero number means that the object will receive the post-processing effect specified for that channel in Video Post.

To save the channel data with the rendering, you use the RLA (.rla) file format.

User Defined Properties

Lists all user-defined properties.

How To

To display object properties for the current selection do one of the following

  • Choose Edit/Properties.
  • Right-click on an object and choose Properties.


Tools Menu

Contains functions for changing objects, as listed here.

Transform Type-In

Display Floater

Selection Floater

Mirror

Array

Snapshot

Align

Align Normals

Place Highlight

Material Editor (Menu)

Material/Map Browser


Transform Type-In

Allows you to type in precise values for move, rotate, and scale transforms. You can use Transform Type-In with anything that can display an axis tripod.

The title of the dialog reflects the currently selected transform. If rotate is active, the dialog's title is Rotate and its controls affect rotation. If scale is active, its title is Scale, etc.

When you use the Transform Type-In dialog in sub-object mode, you transform the axis tripod of the sub-object selection. So, for example, the absolute position values represent the absolute world position of the axis tripod. If you’ve selected a single vertex, it’s the absolute world position of the vertex.

If multiple vertices are selected, the axis tripod is placed at the center of the selection, so the position you specify in the Transform Type-In dialog sets the absolute position of the center of the selected vertices.

When multiple vertices are selected in Local transform mode, you end up with multiple axis tripods. In this case, only the Offset control is available.

Because the axis tripods are not scaled, the Absolute Scale control is not available in sub-object mode.

When you use the Transform Type-In dialog for Absolute rotation, the state of the Center fly-out is respected. You can perform absolute rotations about the pivot point of the object, the selection center, or transform coordinate center.

Reference

Absolute:World

X, Y, and Z: Display and accept entry for absolute values of position, rotation, and scale along all three axes.

Offset:Screen

X, Y, and Z: Display and accept entry for offsets of the values of position, rotation, and scale along all three axes.

Offset values revert to zero after each operation. If you enter 45 degrees in the Offset field, when you press Enter, the object is rotated 45 degrees from its previous position, the Absolute field is increased by 45 degrees, and the Offset field reverts to zero.

How To

To display the Transform Type-In dialog

  • Choose Tools/Transform Type-In.


Display Floater

This modeless dialog contains most of the functions on the Display command panel. You can leave the display floater up while you work in your scene, making it easier to change viewport displays without changing the current command panel.

Reference

Display functions include:

Hide/Freeze

Hide

Selected: Hides the selected object(s).

Unselected: Hides all visible objects except the selected ones. Use this to hide all the objects except the one you're working on.

By Name: Lets you select the objects to hide by name.

By Hit: Causes any object you click in the viewport to be hidden. If you hold the CTRL key while selecting an object, that object and all of its children are hidden. To exit Hide by Hit mode, right-click, press Escape, or select a different function. This mode is automatically turned off if you hide all objects in the scene.

Unhide

All: Unhides all hidden objects. The unhide buttons are only available when you have specifically hidden one or more objects. They won't unhide objects hidden by category.

By Name: Displays a dialog in which you can unhide objects you select from a list.

Freeze

Selected: Freezes the selected object(s).

Unselected: Freezes all visible objects except the selected ones. Use this to quickly freeze all the objects except the one you're working on.

By Name: Lets you select the objects to freeze by name.

By Hit: Causes any object you click in the viewport to be frozen. If you hold the CTRL key while selecting an object, that object and all of its children are frozen. To exit Freeze by Hit mode, right-click, press Escape, or select a different function. This mode is automatically turned off if you freeze all objects in the scene.

Unfreeze

All: Unfreezes all frozen objects.

By Name: Displays a dialog in which you can unfreeze objects you select from a list.

By Hit: Causes any object you click in the viewport to be unfrozen. If you hold the CTRL key while selecting an object, that object and all of its children are unfrozen.

Object Level

Hide by Category

Toggles the display of objects by their category (objects, cameras, lights, and so on). Set the check boxes to hide objects of that category. Use the All, None, and Invert buttons to quickly change the settings of the check boxes.

Display Properties

Provides controls that alter the display of selected objects.

Display as Box: Toggles the display of selected objects, including 3D objects, 2D shapes, and particle systems, as bounding boxes. Produces minimum geometric complexity.

Particle systems appear as bounding boxes when adaptive degradation takes effect. Since particle systems naturally exist in world space, their bounding box is always oriented parallel to the world planes.

Backface Cull: Toggles the display of faces with normals pointing away from view. When selected, you see through the wireframe to the back faces. Applies only to Wireframe viewport display.

Edges Only: Toggles the display of face edges. When set, only faces appear. When clear, all mesh geometry appears. Applies only to Wireframe viewport display.

Vertex Ticks: Displays the vertices in the selected geometry as tick marks.

If the current selection has no displayed tick marks, the check box is clear. If some of the vertices in the current selection display tick marks, the check box contains a gray X. If all vertices in the current selection display tick marks, the check box contains a black X.

Trajectory: Toggles trajectory display for the selected object so you can display its trajectory wherever you are in 3D Studio MAX.

How To

To use the Display Floater

  • Choose Tools/Display Floater.


Selection Floater

This modeless dialog lets you select objects in the scene.

Reference

You can leave this dialog up while you work in your scene, making it easier to select objects. The selection options are the same as those in the Select By Name dialog box.

You can display the Selection Floater only from the Tools menu. If you use the H key during selection, the modal Select Objects dialog appears instead.

For a full description of the items you can select, see the Select By Name button.

How To

To use the Selection Floater

  • Choose Tools/Selection Floater.


Mirror (Menus)

Moves one or more objects while mirroring their orientation. Mirrors the current selection about the center of the current coordinate system.

As you adjust the various settings in the dialog box, you see the results in the viewports.

For a full description of the Mirror function, see the Mirror button.


Array

Creates an array of objects based on the current selection.

For a full description of the Array function, see the Array button.


Snapshot

Clones an animated object over time.

Reference

You can create a single clone on any frame, or space multiple clones along the animation trajectory (motion path). The spacing can be a uniform timing or a uniform distance. To use snapshot, select an object that has a trajectory assigned to it.

For a full description of Snapshot, see the Snapshot button.


Align

Aligns the current selection to a target selection.

You can align the position and/or orientation of the bounding box of the source object to the bounding box of a target object.

For a full description of Align, see the Align button.


Align Normals

Aligns the normals of two objects.

You can use this command to align faces on geometry.

The Align Normals dialog box lets you adjust (or cancel) the current alignment.

For a full description of Align Normals, see the Align Normals button.


Place Highlight

Lets you align a light (or an object) to another object so that its highlight (or reflection) can be precisely positioned.

For a full description of Place Highlight, see the Place Highlight button.


Material Editor (Menu)

Provides functions to create and edit materials and maps.

For help information about the Material Editor, see the Material Editor (Toolbar) help topic.


Material/Map Browser

This modeless dialog allows you to browse through, select, edit, and merge materials.

Reference

Once opened, you can leave this dialog up while you work in your scene, making it easier to change materials. You can drag materials from the Material/Map Browser lists to any material or map slot in the 3D Studio MAX user interface. You can also drag materials from the Material Editor sample slots into the Browser, when the Browser displays the Material Library.

For more information, see the Material/Map Browser topic.

How To

To display the Material/Map Browser

  • Choose Tools/Material/Map Browser.


Group Menu

Contains functions for grouping and ungrouping objects in the scene.

Group

Open

Close

Ungroup

Explode

Detach

Attach


Open (Group Menu)

Open

Lets you temporarily ungroup and access objects within a group.

Reference

You can transform and modify the objects within the group independently from the rest of the group, then restore the original group using the Close command.

How To

To open a group

  1. Select one or more groups.
  2. Choose Group/Open.

    3. A pink dummy object appears, and the objects in the group are now accessible.

To open nested groups

  1. Select the group within the opened group.
  2. Choose Group/Open.


Group

Combines a selection set of objects or groups into a single group.

Reference

Once you group objects, you can treat them as a single object in your scene. You can click any object in the group to select the group object. You can transform the group as a single object, and you can apply modifiers as if it were a single object.

Groups can contain other groups, up to any level.

Group names are similar to object names, except that they’re carried by the group object. In lists like the one in the Select by Name dialog, group names appear in square brackets. For example: [My Group].

All members of a group inherit the visibility of the parent when a visibility controller is assigned to the parent.

Groups are considered whole objects in the Light Exclude/Include dialog, so you can exclude (or include) all objects in a group by selecting the group in the list. If a group is nested within another group, only the “outer” group is available in the list. To exclude only certain objects in a group, open the group before displaying the Exclude/Include dialog.

How To

To define a group

  1. Select two or more objects.
  2. Choose Group/Group.

    3. A dialog appears requesting a name for the group.

  3. Enter a name and click OK.

To define a nested group

  1. Select two or more groups-or any combination of groups and objects.
  2. Choose Group/Group.

    3. A dialog appears requesting a name for the group.

  3. Enter a name for the new group object.


Close

Regroups an opened group. For nested groups, closing the outer most group object closes all open inner groups.

Reference

When you link an object to a closed group, the object becomes a child of the group parent rather than any member of the group. The entire group flashes to show that you’ve linked to the group.

How To

To close all opened groups nested within a main group

  1. Select the pink dummy representing the main group.
  2. Choose Group/Close.

To close a nested group

  1. Select any object in the nested group or its dummy.
  2. Choose Group/Close.


Ungroup

Separates the current group into its component objects or groups.

Reference

The Ungroup command ungroups one level, unlike Explode, which ungroups all levels of nested groups.

When you Ungroup a group, the objects within the group lose all group transforms that were applied on nonzero frames, but they retain any individual animation.

All ungrouped entities remain in the current selection set.

How To

To ungroup a group

  1. Select one or more groups.
  2. Choose Group/Ungroup.

    3. All components of the group remain selected, but are no longer part of the group. The group dummy is deleted.


Explode

Ungroups all objects in a group, regardless of the number of nested groups, unlike Ungroup, which ungroups one level only.

Reference

As with the Ungroup command, all exploded entities remain in the current selection set.

Warning: Ungroup and Explode remove all transform animations that have been applied to the group as a whole. As with the Ungroup command, all exploded entities remain in the current selection set.

How To

To explode a group

  1. Select one or more groups.
  2. Choose Group/Explode.

    3. All objects in the groups remain selected but no longer belong to groups. All nested groups are exploded. All group dummies in the selection are deleted.

    Warning: Ungroup and Explode remove all transform animations that have been applied to the group as a whole.


Detach

Detaches the selected object from its group.

Reference

This command becomes active when you open the group by choosing the Open command from the Group menu.

How To

To detach an object from a group

  1. Open the group.
  2. Select one or more objects to detach.
  3. Choose Group/Detach.

    4. The selected objects are now separate, independent objects, no longer members of the group.


Attach

Makes the selected object part of an existing group.

Reference

With an object selected, choose this command, then click on a (closed) group in the scene.

How To

To attach an object to a group

  1. Select one or more objects to attach.
  2. Choose Group/Attach.
  3. Click any member of a group.

    4. The selected objects become part of the group, which is now selected.


Views Menu

Contains functions for setting up and controlling 3D Studio MAX viewports.

Undo/Redo (Viewport)

Save Active View

Restore Active View

Units Setup

Grid and Snap Settings

Grids

Background Image

Update Background Image

Reset Background Transform

Show Axis Icon

Show Ghosting

Show Key Times

Shade Selected

Show Dependencies

Match Camera to View

Redraw All Views

Deactivate All Maps

Update During Spinner Drag

Expert Mode

Viewport Configuration


Undo/Redo (Viewport)

Cancels the last change in the current viewport.

Redo cancels the last undo in the current viewport.

Reference

Undo works like Undo in the Edit menu, except that the command affects only viewport changes. The name of the change you're undoing appears in the View menu beside the command.

Undo is useful when you are working with a background image in the viewport. You can zoom into the geometry to adjust it, then use Undo Viewport Zoom to restore the original alignment of the geometry with the background.

Redo works like Redo in the Edit menu, except that the command affects only viewport changes. The name of the change you're redoing appears in the View menu beside the command.

How To

To undo a viewport change

  • Choose Views/Undo or press SHIFT+Z.

To redo a viewport undo

  • Choose Views/Redo or press SHIFT+A.


Save Active View

Saves the active view to an internal buffer.

Reference

The viewport that will be restored is displayed in the menu item (for example, “Save Active Perspective View”). You can save and restore up to eight different views (Top, Bottom, Left, Right, Front, Back, User, Perspective).

How To

To save an active view

  1. Activate the viewport with the view you want to save.
  2. Choose Views/Save Active View from the menu bar.

    3. The view is now saved.


Restore Active View

Restores the view previously stored with Save Active View.

Reference

The viewport that will be restored is displayed in the menu item (for example, “Restore Active Perspective View”).

The active view is restored if the same view and layout are active.

How To

To restore a saved view

  1. Activate the viewport where you saved the view.
  2. Choose Views/Restore Active View from the menu bar. This option is available only in a viewport with a saved view.

    3. The viewport returns to the saved view.

    If you're not sure whether a viewport has a saved view, check the Views menu. Restore Active View is grayed out unless a view is saved in the active viewport.


Units Setup

Establishes the unit display method.

If you enter fractions in numeric fields, they are converted to the correct value for the current units. For example, if units are set to Feet with Decimal Inches, and Default Units is set to Feet, type 37/45 and press ENTER for the result 0’9.867”, or 37/45’.

Note: To enter a fraction and a units specifier, place the specifier after the divisor. For example, enter 17/5’, but not 17’/5.

You can also add fractions. For example, to find the sum of 6 7/8” + 1’2 1/4”, type 6 7/8 1'2 1/4 and press ENTER.

You can convert between unit types by entering any valid unit specifier along with the number, and then pressing ENTER. The number is converted to the current unit display type. For example, if units are set to Meters, type 1/2 to get the result 0.5M. However, if you type 1/2’ or 6” the result is 0.152M.

Reference

Click one of the option buttons (Metric, US Standard, Custom, or Generic) to activate its settings.

Metric: Click the list and choose one of these metric units:

  • Millimeters
  • Centimeters
  • Meters
  • Kilometers

US Standard: Click the list and choose one of the following units. If you choose a fractional unit, the adjoining list activates to let you select the fractional component. The decimal units require no additional specification.

  • Fractional Inches
  • Decimal Inches
  • Fractional Feet
  • Decimal Feet
  • Feet w/ Fractional Inches
  • Feet w/ Decimal Inches

For the last two items, you can specify which unit is assumed when you enter a value in a numeric field and press ENTER without including a units specifier, such as ‘ for feet or “ for inches.

For example, if Feet is the default, typing 5 followed by ENTER results in 5 feet. Typing 5” followed by ENTER results in 0’5”. If Inches is the default, typing 5 followed by ENTER results in 0’5”. Typing 5’ followed by ENTER results in 5 feet.

Custom: Fill in the fields to define a custom unit of measurement.

Generic: This is the default option and is equal to the system unit used by 3D Studio MAX, which is one inch. You should reset the system unit only if you are working on a scene that is so huge or so tiny that 3D Studio MAX can no longer measure distances accurately using the default unit scale. If you change this value, you make the scale of the objects you create incompatible with objects in scenes created with the default unit scale.

How To

To display the Units Setup dialog

  • Choose Views/Units Setup from the menu bar.


Grid and Snap Settings

This modeless dialog establishes the home grid and snap settings.

Reference

Display this dialog by choosing Views/Grid and Snap Settings, or by right-clicking one of the snap buttons in the prompt line.

The dialog contains tabs for the following:

Home Grid

Snaps

Options

How To

To change grid and snap settings

  • Choose Views/Grid and Snap Settings and click the appropriate tab.


Home Grid Settings

This panel of the Grid and Snap Settings dialog sets the spacing and other characteristics of the home grid. Choosing useful home grid settings can simplify the construction process, because the home grid gives you a visual reference for the objects created in the scene.

In 3D Studio MAX, grids have these primary uses:

  • As an aid in visualizing space, scale, and distance.
  • As construction planes where you create and align objects in your scene.
  • As a reference system for using snap.

Reference

Grid spacing

Grid spacing is the size of the grid’s smallest square. Use this spinner to adjust the spacing, which is in current units.

For example, if you have units set to centimeters, you might make one grid space equal to 1.000 (one unit, or one centimeter in this case).

Major Lines every Nth

The home grid displays heavier or "major" lines to mark groups of grid squares. Use this spinner to adjust the value, which is the number of grid squares between major lines. The minimum is 2.

For example, if you use a grid spacing of one centimeter, you might use a value of 10 so the major grid divisions represent one decimeter.

Inhibit Grid Subdivision Below Grid Spacing

Causes 3D Studio MAX to treat the grid as a fixed set of lines when you zoom in on the home grid. In effect, the grid stops at the grid space setting. If you keep zooming, the fixed grid is lost from view. Zooming out is not affected. When you zoom out, the home grid expands indefinitely to maintain the major grid divisions.

This is the default. When you clear this box, you can zoom indefinitely into any plane of the home grid. Each grid square subdivides into the same number of smaller grid spaces.

For a grid spacing of one centimeter and a major division of 10, the next level down subdivides into millimeter spaces, and so on.

Dynamic Update

By default, only the active viewport updates as you change values for Grid Spacing and Major Lines every Nth. The other viewports update when you close the dialog. Choose All Viewports to have all viewports update as you change the values.

How To

To set grid spacing for unit measure

  1. Choose Views/Grid And Snap Settings from the menu bar.
  2. Click the Home Grid tab.
  3. Under Grid Spacing, adjust the value, which is in current units.

    4. For example, if you have units set to centimeters, you might make one grid space equal to 1.000 (one unit, or one centimeter in this case).

To set major grid divisions for multiple units

  1. Choose Views/Grid And Snap Settings from the menu bar.
  2. Click the Home Grid tab.
  3. Under Major Lines every Nth, adjust the value, which is the number of grid squares between major lines. The minimum is 2.

    4. For example, if you use a grid spacing of one centimeter, you might use a value of 10 so the major grid divisions represent one decimeter.

    In perspective viewports, the displayed size of the home grid adjusts for different major grid divisions. The home grid itself is unchanged.

To set view update options

  1. Choose Views/Grid And Snap Settings from the menu bar.
  2. Click the Home Grid tab.
  3. Under Dynamic Update, choose either Active Viewport (the default) or All Viewports.

To allow subdivision below grid spacing

  1. Choose Views/Grid And Snap Settings from the menu bar.
  2. Click the Home Grid tab.
  3. Clear Inhibit Grid Subdivision Below Grid Spacing.

    4. When you clear this box, you can zoom indefinitely "deep" into any plane of the home grid. Each grid square subdivides into the same number of smaller grid spaces.


Snaps

Snaps give you control when creating, moving, rotating and scaling objects, because they let you snap to specific portions of existing geometry during creation and transformation of objects or subobjects. The controls in this dialog set the strength and other characteristics of the snap tools.

You can specify the portion of the geometry where you’ll snap. For example, when Vertex is selected, creation and transforms snap to the vertices of existing geometry. You can select any combination to provide multiple snap points. If Vertex and Midpoint are selected, snaps occur both at vertices and at midpoints. The Grid Points snap type is on by default.

The status of the snap types is saved with the .max file, so if you want to set up a startup configuration of snap types, save them in your maxstart.max file.

Snap works at sub-object level in absolute mode. For example, you can snap a gizmo to the object on which you’re working, or snap it to other objects in the scene.

Reference

The list lets you change the category of snap types.

Standard

These are the standard grid snaps used for grids and mesh and shape objects. Other snap types, when active, take priority over Grid Points and Grid Lines snaps--if the mouse is equally near a grid point and some other snap type, it will choose the other snap type.

Grid Points: Snaps to the grid. This snap type is on by default.

Pivot: Snaps to pivot points of objects.

Perpendicular: Snaps to the perpendicular point on a spline, relative to the previous point.

Vertex: Snaps to vertices of mesh objects or objects convertible to editable meshes.

Edge: Snaps anywhere along edges (visible or invisible).

Face: Snaps anywhere on the surface of a face. Backfaces are culled, so they have no effect.

Grid Lines: Snaps to the grid lines.

Bounding Box: Snaps to one of the eight corners of the bounding box of an object.

Tangent: Snaps to a tangent point on a spline, relative to the previous point.

Midpoint: Snaps to middle of edges.

Endpoint: Snaps to the end points of edges on meshes or splines.

Center Face: Snaps to the center of triangular faces.

NURBS Snaps

These options snap to objects or sub-objects in a NURBS model.

These snap options are aids to creating and transforming objects. They are not constraints. 3D Studio MAX does not maintain the relationship between the NURBS object and the other object after you create or transform the other object.

CV: Snaps to a CV sub-object in a NURBS curve or NURBS surface.

Curve Center: Snaps to the center of a NURBS curve.

The center of a NURBS curve is calculated parametrically, and might not be the same as the curve's apparent visual center.

Curve Tangent: Snaps to a point tangent to a NURBS curve.

This snap operates only while you are creating a new object that requires two or more clicks to create.

Curve End: Snaps to the end of a NURBS curve.

Surf Normal: Snaps to a point normal to a NURBS surface.

This snap operates only while you are creating a new object.

Point: Snaps to a point sub-object in a NURBS model.

Curve Normal: Snaps to a point normal to a NURBS curve.

This snap operates only while you are creating a new object that requires two or more clicks to create.

Curve Edge: Snaps to the edge of a NURBS curve (the current object moves or is created to lie along the curve).

Surf Center: Snaps to the center of a NURBS surface.

The center of a NURBS curve is calculated parametrically, and might not be the same as the curve's apparent visual center.

Surf Edge: Snaps to the edge of a NURBS surface.

Override

This label changes to display the temporary snap type used by the Override system. See Snap Override for more information.

Clear All

Clears all of the snaps.

How To

To display the Snap Settings panel, do one of the following

  • Choose Views/Grid and Snap Settings from the menu bar, then click the Snap tab on the Grid and Snap Settings dialog.
  • Right-click any of the snap buttons on the Status line (except Spinner snap).

To set grid and snap settings

  1. Turn on the 3D Snap Toggle button to activate snapping.
  2. Display the Grid and Snap Settings dialog.
  3. In the Snaps page, select one or more of the types of snaps you want active.
  4. Create an object or transform an object.

    5. You’ll see the snap guidelines appear on existing geometry, and you’ll snap to the displayed, square snap points.


Snap Options

This panel of the Grid and Snap Settings dialog lets you set options related to snapping.

Reference

Marker

Provides settings that affect the visual display of the snap points.

Display: Clear this to turn off the display of the snap guides. The snaps still function, but there’s no display.

Size: Sets the size, in pixels, of the snap “hit” point. This is the small square that indicates either the source or target snap point.

Color: Click the color swatch to display the Color Selector, where you can set the color of the snap display.

General

Snap Strength: Sets the strength of the snap, and represents the pixel “search region” around the cursor.

Snap Values

Angle: Sets the increment at which objects are rotated about a given axis (degrees).

Percent: Sets the percentage increment for scale transforms.

Translation

Use Axis Constraints: Constrains the selected object to move only along the axes specified by the axis constraint buttons. When this is clear (the default), the transform axis constraints in the toolbar are ignored, and snapped objects can be translated in any dimension (assuming 3D snapping is used).

How To

To set snap options

  1. Choose Views/Grid and Snap Settings from the menu bar.
  2. Click the Options tab.
  3. Set the options as desired.


Snap Override

Lets you override all the currently selected snap types and temporarily use only one selected snap type. For example, you might be creating a spline while snapping to Grid Points, but then need to snap one of its vertices to the midpoint of an object. You can do this with Snap Override.

Reference

In addition to the available snap types, the menu contains these items:

Last: Displays the last snap type you chose, letting you easily reselect that snap type and use it again. (This item is disabled if no previous snap type was chosen.)

None: Turns off all snap types for the next mouse action. (This item is disabled if the Snap Toggle is off.)

When you use Snap Override during a drag operation, you can do one of the following:

  • Keep the left button pressed, select from the menu with the right button, and then continue the drag operation.
  • Release the left mouse button after the menu appears, select the snap you want with a left-click, move the mouse with no buttons pressed (the geometry will remain locked to the mouse), and then click to complete the operation.

How To

To use Snap Override

  1. Press SHIFT and right-click.
  2. Select one of the snap types from the menu to make it the only active snap type.

    3. If the Grid and Snap dialog is displayed, the “Override OFF” label displays the selected snap type. When you complete the mouse action, “Override OFF” is again displayed in the dialog, and the previously active snap types are active again.


Grids

Provides functions to manipulate the home grid and grid objects.

Reference

Grids are used both as visual references and as physical snap references by the Snap system. In addition, grids are construction planes, since the objects you create are built on the active grid in the active viewport.

As a default, there is a home construction grid or home grid. The home grid is the basic reference system, and is defined by three fixed planes on the world coordinate axes. It provides ready-to-use construction planes, intersecting at right angles through the origin. When the home grid is displayed, each orthographic viewport is coplanar (parallel) with one of the grid faces.

A grid object is a helper object that you can use in place of the home grid. While the home grid is three intersecting planes whose orientation is fixed in world space, a grid object is a free-floating, 2D grid that you can position and rotate anywhere, letting you construct objects at any angle in world space.

The Grids submenu on the Views menu contains the following items:

Show Home Grid

Activate Home Grid

Activate Grid Object

Align to View


Show Home Grid

Toggles the display of the home grid in the active viewport.

How To

To toggle the display of the home grid, do one of the following

  • Choose Views/Grids from the menu bar and change Show Home Grid.
  • Right-click a viewport label and change Show Grid on the Viewport Properties menu.
  • PressSHIFT + G.


Activate Home Grid

Activates the home grid as the construction grid and deactivates the active grid object.

Reference

This menu item is available only when a grid object is active.

How To

To return to the home grid, do one of the following

  • Choose Views/Grids/Activate Home Grid from the menu bar.
  • Right-click the selected grid object and choose Activate Home Grid from the Viewport Properties menu.

This deactivates the grid object and returns the home grid in all views.


Activate Grid Object

Activates the selected grid object as the construction grid and deactivates the home grid.

Reference

This menu item is available only when a grid object is selected.

How To

To activate a grid object

  1. Select a grid object.
  2. Do one of the following:
    • Choose Views/Grids/Activate Grid Object from the menu bar.
    • Right-click the selected grid object and choose Activate Grid from the Viewport Properties menu.

    The grid object changes to show its internal grid structure. Except for its main axes, the home grid disappears in all viewports.


Align to View (Menus)

Align to View

Aligns a grid object with the current view.

Reference

The grid object is aligned so that it's coplanar with the view and oriented with the top of the grid at the top of the view.

This menu option is only available when a grid object is active.

How To

To align a grid object with a viewport

  1. Activate a grid object.
  2. Choose a viewport by clicking or right-clicking in it.
  3. Choose Views/Grids/Align to View from the menu bar.

    4. The grid object rotates to align itself with the selected view. The grid object is now planar, or parallel, with the viewport.


Background Image

Controls display of a background image in the active viewport. You can assign different background images to different viewports.

This dialog controls display of an image or animation in the viewport, for alignment, rotoscoping, and so on. It lets you select the image or animation to display in the active viewport, set the frame synchronization between the animated image file and 3D Studio MAX, and turn the assigned image on/off. It does not affect the rendered scene. To place an image in the background of the rendered scene, use the Environment dialog (Render menu).

When safe frames are displayed in a viewport, and the Aspect Ratio options are set to either Match Viewport or Match Rendering Output, the assigned viewport background image is confined to the Live area of the safe frames and will correctly match the rendered background bitmap.

See also:

Update Background Image

Reference

Background Source

Select the background image, either from a bitmap image file, a video file, or from a device such as a video recorder.

Use Environment Background: Lets you display in the viewports the map you’ve assigned as your environment background. If no environment map has been assigned in the Environment dialog, or the Use Map check box in that dialog is off, then the Use Environment Background check box is not available.

Animation Synchronization

Controls how sequences of images (for example, from IFL, AVI, or FLC files) are synchronized to the viewport for rotoscoping.

Use Frame: The first field sets the first frame of the incoming sequence that you want to use, and the second field sets the last one.

Step: Sets the interval between the frames you want to use. For example, if this spinner is set to 7, 3D Studio MAX uses every seventh frame.

Start at: Specifies the 3D Studio MAX frame number at which you want the first input frame to appear . What happens in the viewport before the start frame depends on the option you choose for "Start Processing" below.

Sync Start to Frame: Determines which frame from your incoming sequence is displayed at the "Start at" frame. You could have a 30-frame .ifl sequence that starts in your scene at frame 10, but you could use the 5th frame from the .ifl on frame 10 by setting "Sync Start" to 5.

Start Processing

Determines what happens in the viewport background before the start frame.

Blank Before Start: Makes the viewport background blank before the start frame.

Hold Before Start: Specifies that the viewport background will contain the start frame.

End Processing

Determines what happens in the viewport background after the last input frame.

Blank After End: Makes the viewport background blank after the last input frame.

Hold After End: Specifies that the viewport background will contain the last input frame until the last frame in the 3D Studio MAX animation.

Loop After End: Specifies that the viewport background will loop from the end frame back to the start frame, ad infinitum.

Aspect Ratio:

Match Viewport: Changes the aspect ratio of the image to match the aspect ratio of the viewport.

Match Bitmap: Locks the aspect ratio of the image to the native aspect ratio of the bitmap.

Match Rendering Output: Changes the aspect ratio of the image to match the aspect ratio of the currently-chosen rendering output device.

When the second or third option is chosen, 3D Studio MAX centers the image and clears the edges of the viewport to the background color.

Display Background

Turns on display of the background image or animation in the viewport.

Lock Zoom/Pan

Locks the background to the geometry during zoom and pan operations in orthographic or User viewports. When you Zoom or Pan the viewport, the background zooms and pans along with it. When Lock Zoom/Pan is clear, the background stays where it is, and the geometry moves independently of it.

This check box is disabled if you select Match Viewport. Use Match Bitmap or Match Rendering Output to enable Lock Zoom/Pan.

Warning: If you zoom in too far, you can exceed the limit of your virtual memory, which can cause NT to crash MAX. When you perform a zoom that requires more than 16 megabytes of virtual memory, an alert asks if you want to display the background during the zoom. Choose No to perform the zoom and turn off the background. Choose Yes to zoom with the background image. Your machine may run out of memory as a result.

Animate Background

Turns on animation of the background. Shows the appropriate frame of the background video in the 3D Studio MAX scene.

Apply Source and Display to

All Views: Assigns your background image to all viewports.

Active Only: Assigns your background image to only the active viewport.

The name of the currently active viewport appears in a list to the left of the OK/Cancel buttons. This reminds you which viewport you’re affecting and lets you change the active viewport by selecting its name from the list.

When you use different images for different viewports, the settings for each viewport are stored separately. Each time you display the Viewport Background dialog, the settings of the currently active viewport are displayed. If you switch the viewport using the list, the settings remain the same. This is useful for copying settings from one viewport to another.

How To

To match your viewport background with the rendered background

  1. Choose Views/Viewport Configuration/Safe Frames to turn on Safe Frames in the viewport where you plan to render.
  2. In the Material Editor, create a map that contains the bitmap for your rendered background.
  3. Set the coordinates to Environment/Screen (select Screen from the Mapping list).
  4. Choose Rendering/Environment.
  5. Click the Environment Map button and select Material Editor from the Material/Map Browser.
  6. Select the created map in the Material Editor.
  7. Assign the same bitmap as a background source in the Viewport Background dialog.
  8. Set the Aspect Ratio options to either Match Viewport or Match Rendering Output and click OK.
  9. Render the viewport.

    10. The background displayed in the rendered scene should exactly match the background displayed in the Live area of the safe frames.

    When you use the Match Bitmap option in the Viewport Background dialog, the bitmap reverts to its original aspect ratio and does not match the rendered scene, unless you’re rendering to the same aspect ratio.

To display the environment map in a viewport

  1. In the Environment dialog, assign an environment map, and select the Use Map check box.
  2. Activate the viewport where you want the map displayed.
  3. Choose Background Image from the Views menu.
  4. Select Use Environment Background.
  5. Click OK.

    6. Because of the time it takes to render the map in the viewport, it doesn't update automatically. If you change the environment map in any way, such as altering the bitmap, or assigning a new bitmap, you can update its display in the viewports by selecting Update Background Image in the Views menu.


Update Background Image

Updates the background image displayed in the viewports.

Reference

Update Background Image affects only the active viewport. If the active viewport is not displaying a background image, this item is unavailable.

Use this command to update the background for changes that are not updated automatically, such as the following:

  • Reassigning the map, or changing any parameters affecting the map in the Materials Editor, the Environment dialog, or the Viewport Background dialog.
  • Changing the rendering resolution and aspect ratio.

The following changes update the viewport background image automatically:

  • Moving the time slider when you have an animated background image.
  • Changing the camera view.
  • Undo view.
  • Undo.
  • Assigning a different view type.
  • Toggling Safe Frames display on or off.
  • Changing the rendering parameters.

How To

To update the background image displayed in the viewports

  1. Activate a viewport that contains a background image.
  2. Choose Views/Update Background Image.


Reset Background Transform

Rescales and recenters the current background to fit the viewport.

Reference

You can use Reset Background Transform when Lock Zoom/Pan is on and you want to reset the background to the new position of your geometry.

How To

To reset the background to fit the viewport

  • Choose Views/Reset Background Transform.


Show Axis Icon

Toggles the display of the XYZ axis tripod for all viewports when objects are selected.

Reference

The state of Show Axis Icon is saved in 3dsmax.ini, so it’s maintained between scenes and sessions.

How To

To toggle the display of the XYZ axis tripod

  • Choose Views/Show Axis Icon.


Show Ghosting

Ghosting is a method of displaying wireframe ghost copies of an animated object at a number of frames before and after the current frame. Use it to analyze and adjust your animation.

Reference

When Show Ghosting is selected, ghosting is displayed for selected objects in the scene. Only currently selected objects display the ghosting.

The Viewports page of the Preferences dialog provides settings that affect the number of frames that are ghosted, before and after the current frame.

The ghosts that appear before the current frame are a different color than those that appear after the current frame. You can change these colors in the Colors page of the Preferences dialog by choosing Ghost (Before) or Ghost (After) from the Main UI list.

How To

To show wireframe ghost copies of an animated object

  • Choose Views/Show Ghosting.


Show Key Times

When Show Key Times is selected and an object trajectory is displayed (either by entering the Trajectories panel in the Motion command panel, or by turning on Trajectory in the Display Properties rollout of the Display panel), time values are displayed in the viewport beside each key in the trajectory path.

How To

To toggle the display of time values in the viewport

  • Choose Views/Show Key Times.


Shade Selected

Shades only the selected objects in the scene.

Reference

This command lets you work with a wireframe scene and shade only selected objects when you want to visualize them more clearly (without the shaded "noise" of all the other objects).

How To

To shade only selected objects in a scene

  • Choose Views/Shade Selected.


Show Dependencies

Toggles highlighting of objects dependent on the selection while you are using the Modify panel.

Reference

When this is on and the Modify panel is active, any object that is dependent upon the currently selected object in any way appears green. This includes instances, references, shared modifiers, etc. The default is off.

How To

To show dependencies between objects

  1. Select an object with an instanced modifier.
  2. Choose the instanced modifier in its stack.
  3. Choose Views/Show Dependencies from the menu bar.

    4. Other objects with instances of the same modifier appear in bright green.

To animate with Linked XForm

  1. Select the sub-object geometry you want to animate and apply a Linked XForm modifier.
  2. On the Parameters rollout, click Pick Control Object.
  3. Click an object to be the control object. Choose a dummy object if you want to keep the control hidden in final rendering.

    4. The chosen object is now linked as parent to the sub-object selection and its name is listed on the Parameters rollout.

  4. Choose Views/Show Dependencies from the menu bar to make the link visible when the control object is selected.
  5. Use any of the transforms to animate the control object.

    6. The selection is animated in parallel with the control object.


Match Camera to View

Moves a selected camera so that its view matches that of the active, perspective view.

Reference

This menu item is active only when the current viewport is some form of perspective view, and a camera is the selected object.

If you match a camera to another camera’s view, the two cameras occupy the same location in the scene.

How To

To match a camera to a viewport

  1. Select a camera in any viewport.
  2. Activate a perspective viewport. (This can include a Perspective, Spotlight, or other Camera viewport.)
  3. Choose Views/Match Camera to View.
  4. The selected camera (and target) are moved to match the active viewport.
  5. Choose a viewport and assign it to the current camera.


Redraw All Views

Redraws all viewports.

Reference

When you transform or otherwise manipulate geometry, the viewports may display the scene with some irregularities or with objects or parts of objects missing. This effect is normal. Use the Redraw All Views command to redisplay your scene with all lines and/or shading restored.

How To

To redraw all views, do one of the following

  • Choose Views/Redraw All Views.
  • Press the keyboard shortcut 1.


Deactivate All Maps

Turns off the Show Map in Viewport flag for all materials assigned to the scene.

Reference

You cannot undo this action. Because this turns off the Show Map in Viewport flag for all materials in the scene, the only way to turn them back on is to transfer each mapped material back to the Materials Editor, go to the map level that was originally displayed, and turn on the Show Map in Viewport button.

How To

To deactivate all maps

  • Choose Views/Deactivate All Maps.


Update During Spinner Drag

When Update During Spinner Drag is on, dragging a spinner (such as a Radius spinner), updates the effects in real time in the viewports.

When Update During Spinner Drag is off, the effect is updated after the drag, when you release the mouse. Use this option when you’re adjusting processor intensive controls.

How To

To turn Update During Spinner Drag on or off

  • Choose Views/Update During Spinner Drag.


Expert Mode

This option provides larger viewports for those familiar enough with 3D Studio MAX to operate it using keyboard shortcuts.

Reference

When selected, the menu bar, toolbar, command panels, status line, prompt line, and all of the viewport navigation buttons are removed from the display, leaving only the 3D Studio MAX title bar, time slider, and viewports.

How To

To turn on Expert Mode

  • Choose Views/Expert Mode.

To turn off Expert Mode

  • Click the Cancel Expert Mode button to the right of the time slider to return to full display.


Viewport Configuration

Sets options for all viewports.

Rendering Method

Layout

Safe Frames

Adaptive Degradation

Regions

How To

To set viewport configuration options, do one of the following

  • Choose Views/Viewport Configuration.
  • Right-click any of the Viewport Controls in the lower right corner of the 3D Studio MAX screen.
  • Right-click any viewport label and choose Configure from the menu.


Rendering Method

Sets the rendering method either for the current viewport or all viewports.

Reference

The initial settings for this dialog box reflect the current viewport.

Rendering Level

Determines how 3D Studio MAX displays objects.

Smooth+Highlights: Renders objects with smooth shading and displays specular highlights.

Smooth: Renders objects with smooth shading only.

Facets+Highlights: Renders objects with flat shading and displays specular highlights.

Facets: Renders objects with flat shading only.

Lit Wireframes: Renders objects as wireframes with flat shading.

Wireframe: Draws objects as wireframes with no shading applied.

Bounding Box: Draws objects as a bounding box with no shading applied. The bounding box is defined as the smallest box that completely encloses an object.

Edged Faces: Available only when the current viewport is in a shaded mode, such as Smooth, Smooth + Highlights, Facets + Highlights, or Facets. When Edged Faces is on in these modes, the wireframe edges of objects appear along with the shaded surfaces. This is helpful for editing meshes in a shaded display.

Edges are displayed using the object wireframe color, while surfaces use material colors (if assigned). This lets you create contrasting colors between the shaded surfaces and the wireframe edges. You can switch these around in the Display Color rollout in the Display branch.

Apply To

Applies the current settings to the active viewport only, to all viewports, or to all the viewports except the active one.

Rendering Options

These check boxes modify either the shading modes or the wireframe modes. They refer to the viewport renderer only, not to the scanline renderer.

Disable View: Disables the active viewport. A disabled viewport behaves like any other viewport while it is active. However, when you change the scene in another viewport, the view in the disabled viewport does not change until you next activate it. Use this function to speed up screen redraws when you are working on complex geometry.

Disable Textures: Select to turn off display of texture maps assigned to objects. Clear to show the maps assigned to objects.

Texture Correction: Redraws the viewport using pixel-interpolation (perspective corrected), and it will stay that way until you force the viewport to redraw for any reason. This command is only available when the viewport is shaded and at least one object's map is displayed.

Z-Buffer Wires: Select to generate a Z-buffer channel for the viewport. The Z-buffer can be displayed in the virtual frame buffer when you render to an . rla file.

Force 2-Sided: Set to render both sides of faces. Clear to render only faces with normals toward the viewer. Usually, you'll want to keep this option off to speed redraw time. You may want to turn it on if you need to see the inside as well as the outside of objects, or if you've imported complex geometry in which the face normals are not properly unified.

Default Lighting: Set to use default lighting. Clear to use the lights created in the scene. Sometimes the lighting you create in the scene makes the objects harder to see in the viewport. The default lighting displays the objects under an even illumination.

Fast View

Turns on Fast View display mode, which speeds screen redraw by displaying fewer faces. The Nth Faces spinner sets the number of faces that are displayed when the Fast View mode is active. For example, a setting of 3 displays every third face. This setting also affects any objects that are displayed using Fastdraw mode (set in the Display command panel).

Perspective User View

FOV: Sets the field of view angle for a Perspective viewport. This spinner is not available when any other viewport type is active. You can change the Camera field of view in the Modify panel.

How To

To set the viewport rendering method

  1. Choose Views/Viewport Configuration.
  2. Click the Rendering Method tab.
  3. Click the desired rendering level and any options available for that level.
  4. Determine how to apply the rendering method.
    • Active Viewport Only applies the rendering method to the active viewport. This choice is always the default.
    • All Viewports applies the rendering method to all configured viewports. The rendering method is applied to all viewports even if a single viewport is maximized.
    • All But Active applies the rendering method to all viewports except the active one. This lets you work in wireframe in the active viewport and see rendered updates in the other viewports.

To type an FOV value in a Perspective view

  1. Activate a viewport with a Perspective view.
  2. Right-click Field of View to display the Viewport Configuration dialog.
  3. Click the Rendering Methods tab.
  4. Enter an angle in the FOV field.


Safe Frames

Lets you toggle the status of the video safe frame for the current viewport and adjust its parameters.

When Safe Frames are displayed in the viewport and a bitmap image is assigned as a viewport background using either the Match Viewport or Match Rendering Output options, the image is confined to the Live area of the safe frames and will match the rendered background, assuming that the same bitmap is assigned to the Environment background using Environment/Screen coordinates.

The Safe Frames settings are saved with the .max file. If you load an old .max file, the current safe frame settings are retained.

Reference

Setup

The Safe Frames dialog contains settings for the following frame types:

Live Area: (yellow) The area that will actually be rendered, regardless of the size or aspect ratio of the viewport.

Action Safe: (green) The area in which it’s safe to include your rendered action. The Lock check box lets you lock the aspect ratio of the Action frame. When Lock is selected, use the Both spinner to set the percentage of the live area that’s trimmed within the safe frame. When Lock is clear, you can use the Horizontal and Vertical spinners to set these parameters independently. (Default=10 %)

Title Safe: (cyan) The area in which it’s safe to include titles or other information. When used correctly, this is smaller than the Action frame. The Lock check box lets you lock the aspect ratio of the Title frame. When Lock is selected, use the Both spinner to set the percentage size of the title frame relative to the action area.

When Lock is clear, you can use the Horizontal and Vertical spinners to set these parameters independently. (Default=20 % of Live Area.)

User Safe: Displays an addition safe frame that you can use for any custom necessity. The Lock check box lets you lock the aspect ratio of the User frame. When Lock is selected, use the Both spinner to set the percentage size of the user frame relative to the action area. When Lock is clear, you can use the Horizontal and Vertical spinners to set these parameters independently. (Default=20 % of Live Area.)

12-Field Grid: Displays a grid of cells (or fields) in the viewport. In this case, "fields" are cells in the grid, and not scanline fields.

The “12-field grid” is a method used by video directors to refer to specific areas of the screen. A director might ask you to move an object two fields to the left and four fields down. The 12-field grid is a reference for this type of placement.

4 x 3/12 x 9: Lets you choose between two matrices of either 12 or 108 cells.

Application

Show Safe Frames in Active View: Toggles the frame displays on or off for the current viewport. This option is duplicated by the Show Safe Frame item in the right-click viewport menu.

How To

To turn on Safe Frame display, do one of the following

  • Right-click a viewport label and choose Show Safe Frame from the Right-Click Viewport menu.

Default keyboard shortcut: SHIFT+F

  • Choose Views/Viewport Configuration and use the Safe Frames panel in the dialog.

The check boxes for the three kinds of safe frame let you individually choose which to display.


Adaptive Degradation

Adjusts the adaptive viewport redraw methods.

Reference

The dialog contains the following options:

General Degradation/Active Degradation

Select the boxes in each column to indicate the rendering modes the system will step through during necessary degradation. Those selected in the General Degradation column affect all inactive viewports, while those selected in the Active Degradation column affect only the active viewport.

Degrade Parameters

Maintain FPS: Lets you set the frame rate in frames per second that the adaptive display system will attempt to maintain.

Reset on Mouse Up: Resets the rendering level as the mouse is released. If selected, the program tries various rendering levels to achieve optimal quality while still maintaining FPS. If clear, the program immediately drops the rendering level to the previous minimum.

Show rebuild cursor: Displays a cursor to show when the program is busy recalculating the viewport rendering.

Interrupt Settings

Update Time: Sets the interval between updates during viewport rendering. At each interval, a new section of the rendering is drawn on screen. If set to 0, nothing is drawn until the rendering is complete.

Interrupt Time: Sets the interval between times when the program checks for a mouse-down event during viewport rendering. Small values free the mouse more quickly, so you can use the mouse elsewhere without waiting for it to “wake up.”

To override the adaptive degradation system, turn off the Degradation Override button in the Prompt line. Press o (lower-case O, for override) to turn off adaptive degradation, and press o again to turn it back on.

This is handy when you’re adjusting lights and want to see their effect, real time, in a shaded mode. Or you might be adjusting the camera and need to see complex geometry exactly as it is.

The settings for this page of the Viewport Configuration dialog are saved with your .max file.

How To

To display the Adaptive Degradation controls

  1. Choose Views/Viewport Configuration.
  2. Click the Adaptive Degradation tab.


Layout

The Layout panel of the Viewport Configuration dialog specifies the division method of viewports, and assigns specific types of views to each viewport.

Reference

The Layout page is arranged in three general areas. At the top of the page are icons representing the possible division methods. Click on an icon to select the division method, which appears in the larger screen representation.

To assign specific views, click in the viewport in the screen representation. A menu lists the various viewport types.

An additional area provides two option buttons labeled Layout A, and Layout B. These store two complete layouts by default. Layout A uses four viewports, and Layout B uses three viewports with Track View assigned to the wide viewport.

How To

To display the Layout panel, do one of the following

  • Choose Views/Viewport Configuration from the menu bar, then click the tab marked Layout.
  • Right-click a viewport label and choose Configure, then click the tab marked Layout.


Regions

Specifies default selection rectangle sizes for the Blowup Region and the Sub Region, and the parameters for setting up a virtual viewport. Virtual viewports are useful for zooming in on camera views.

The rectangular selection region appears when you render with either Blowup or Region selected in the Render Modifier List. You can change the size of the region by dragging its handles.

The Virtual Viewport options let you zoom in on a sub-region of the current viewport, creating a “virtual viewport” in which you can perform all the standard navigation, but in a zoomed-in area. This function works only when you’re using an OpenGL driver. If you’re using the Software Z-Buffer, these controls are disabled.

You can use the Virtual Viewport on any type of viewport, but it’s primarily designed for zooming in on camera views. This lets you perform closeup work, such as tracing, without distorting the relationship between the geometry and a bitmap background. (See Lock Zoom/Pan in the Background Image dialog for similar functionality in orthographic views.)

Because you’re actually zooming the viewport image itself, the viewport label might be hidden from display, but you can still right-click in the upper-left area of the viewport to display the drop-down menu.

Reference

The dialog contains spinners for setting the four corners of the region (in pixels), and the following options:

Virtual Viewport

Use Virtual Viewport: Enables the virtual viewport. A reduced image of the viewport appears in the dialog, along with a white zoom rectangle representing the virtual viewport window.

Zoom, X Offset, and Y Offset: Adjusts the size and position of the virtual window. You can also drag the white window anywhere within the image.

The following keyboard shortcuts are available:

Virtual Viewport Toggle: Turns the Virtual Viewport on and off

Virtual Viewport Zoom In/Out: Zooms the Virtual Viewport

Virtual Viewport Pan shortcuts: Pans the Virtual Viewport. You can switch views within the same viewport while maintaining the virtual zoom area.

You can change these shorcuts in the Preferences/Keyboard list.

How To

To use the Virtual Viewport

  1. Make sure you’re using an OpenGL driver for your display.
  2. Activate the viewport to convert to a virtual viewport (typically a camera viewport that is displaying a bitmap background).
  3. Choose Views/Viewport Configuration and click the Regions tab.
  4. Click Use Virtual Viewport. A reduced image of the viewport appears in the dialog, along with a white zoom rectangle representing the virtual viewport window.
  5. Use the Zoom, X Offset, and Y Offset spinners to adjust the size and position of the virtual window, or drag the white window anywhere within the image.
  6. Click OK.

    7. The camera viewport is converted to a virtual viewport and displays the area of viewport represented by the white rectangle. All viewport navigation methods work the same as usual, except that you’re seeing only the zoomed portion of the viewport.


Rendering Menu

Contains functions for rendering scenes, for setting up environmental effects, and for compositing scenes and images with Video Post.

Render (Menu)

Video Post

Show Last Rendering

Environment

Make Preview

View Preview

Rename Preview


Render (Menu)

Displays the Render Scene dialog and lets you set all the parameters for rendering.

How To

To display the Render Scene dialog

  • Choose Rendering/Render.


Show Last Rendering

Displays the last image that you rendered. If no image has yet been rendered, this item is disabled.

How To

To display the last image you rendered, do one of the following

  • Choose Rendering/Show Last Rendering.
  • PressCTRL-I.


Environment

Sets up atmospheric and background effects.

You can use the environment functions to:

  • Set and animate the background color.
  • Use an image in the background of the rendered scene (screen environment) or use texture maps as spherical, cylindrical, or shrinkwrap environments.
  • Set and animate the ambient light.
  • Use atmospheric plug-ins, such as volumetric light, in the scene.

Atmospheres

Atmospheres are plug-in components that create light effects such as fog, combustion, and so on.

Combustion

Fog

Volume Fog

Volume Light

Reference

The Environment dialog includes the following options:

Commmon Parameters

Background

Color: Sets the color for the scene background. Click the color swatch, then select the color you want in the Color Selector dialog. You can animate the color effect by changing the background color at a non-zero frame with the Animate button on.

Environment Map: The large Environment Map button displays the name of the map, or None if none has been assigned. The map must use Environmental mapping coordinates (spherical, cylindrical, shrink-wrap, and screen).

To assign an environment map you can drag a map from a sample window or map button in the material editor (or anywhere else in 3D Studio MAX; for example, a projector map button) and drop it on the Environment Map button. A dialog asks if you want the environment map to be a copy (independent) or an instance of the source map.

Clicking Environment Map displays the Material/Map Browser, where you can choose a map type from the list.

To adjust the environment map’s parameters, for example to assign a bitmap or change the coordinate settings, display the Material Editor and then drag the Environment Map button and drop it over an unused sample window.

Use Map: Uses a map for the background rather than the background color.

Global Lighting

Tint: If this color is anything other than white, it tints all lights in the scene (except for ambient light). Click the color swatch to display the Color Selector dialog, where you can choose the tint color. You can animate the tint color by changing it at a non-zero frame with the Animate button on.

Level: The Level is a multiplier for all lights in the scene. A Level of 1.0 preserves the original, individual light settings. Increasing the Level raises the lighting for the overall scene, and decreasing the Level lowers the overall lighting. This parameter is animatable. Default = 1.0.

Ambient: Sets the color for the ambient light. Click the color swatch, then select the color you want in the Color Selector dialog. You can animate the light effect by changing the ambient light color at a non-zero frame with the Animate button on.

Atmosphere

Effects: Shows the queue of effects that get evaluated in linear order within the scene during rendering.

Name: This editable field lets you give a custom name to effects in the list.

For example, you might have different custom settings for different kinds of combustion, which you could name then Spark and Fireball.

Add: Displays the Add Atmospheric Effect dialog (all currently-installed atmosphere effects). Double or single-click and click OK to assign an effect to the list.

Delete: Deletes a selected atmospheric effect from the list.

Active: Sets the on/off state for the individual effects in the list. This is a convenient way of isolating effects within a list of complicated atmospheric functions.

Move Up / Move Down: Moves the selected item in the list up or down to change the order in which the atmospheric effects are applied.

Merge: Lets you merge effects from other 3D Studio MAX scene files.

When you click Merge, a file dialog appears. Select a 3D Studio MAX scene, and click Open. A Merge Atmospheric Effects dialog appears. This dialog lists the effects in the scene you specified. Select one or more of the effects, and click OK to merge them into the scene.

The list shows the names of the atmospheric effects only, but when you merge an effect, the lights or gizmos bound to that effect are merged as well. If one of these objects to merge has the same name as one already in the scene, an alert appears giving you the following choices:

  • You can rename the incoming object by changing its name in the editable field.
  • You can Merge the incoming object, resulting in two objects in the scene with the same name.
  • You can delete the existing object in the scene by selecting the Delete Old button.
  • You can select Apply to All Duplicates, which performs the same action to all subsequent matching objects.

How To

To set the background color:

  1. Choose Rendering/Environment.

    2. The Environment dialog appears.

  2. In the Background area, click the color swatch.

    3. A Color Selector dialog appears.

  3. Use the Color Selector to change the background color.

    4. The Renderer now uses this color as a background.

To choose an environment map:

  1. Display the Material Editor.

    2. The Material Editor is where you adjust the map's parameters.

  2. Choose Rendering/Environment.
  3. In the Background area of the Environment dialog, do one of the following:
    • Drag a map to the Environment Map button. You can do this from a map displayed in one of the Material Editor’s sample windows, or from any map button that has been assigned, either in the Material Editor or from a projection light, and so on.
    • Click the Environment Map button. The Material/Map Browser appears. Choose a map type from the list.

    In the Environment dialog, the name of the Environment Map button changes to show the type of map you chose, and Use Map turns on.

    After you have set up the map, you can later clear Use Map to test rendering the scene without the mapped background.

    You have set up the environment map, but to assign a bitmap or adjust map parameters, you need to use the Material Editor.

    You can also create a standalone map in the Material Editor first, and then choose it with the Browser after you click Assign.

To put the map in the Material Editor:

  • Drag the Environment Map button to an unused sample window.

The map is now in the Material Editor, where you can adjust it by changing its parameters.

To change the color of ambient light:

  1. Choose Rendering/Environment.
  2. Click the color swatch labeled Ambient Light.

    3. A Color Selector dialog appears.

  3. Use the color selector to set ambient light color.

    4. Shaded viewports update to show ambient light changes.

  4. Dismiss the Environment dialog.

    5. 3D Studio MAX also uses the new ambient light color when you render the scene.

    The color of ambient light tints the scene. For most renderings, the color of ambient light should be the complement of the color of the principal light source for the scene.

To change the intensity of ambient light:

  1. Choose Rendering/Environment.
  2. Click the color swatch labeled Ambient Light.

    3. A Color Selector dialog appears.

  3. Change the Value setting (the V component of ambient light's HSV description) to increase or decrease intensity.

    4. Shaded viewports update to show changes in the ambient light intensity.

  4. Click Close to dismiss the Color Selector.

    5. The intensity of ambient light affects contrast as well as overall illumination (the higher the intensity of ambient light, the lower the contrast). This is because ambient light is completely diffuse, so the angle of incidence is equal for all faces. Ambient light alone cannot show depth.

    Note: 3D Studio MAX has a default ambient light setting. You can change the default by using the Rendering panel of the Preference Settings dialog.

To add an atmosphere:

  1. Choose Rendering/Environment.

    2. The Environment dialog appears.

  2. In the Atmosphere area of the Environment dialog, click Add.

    3. The Add Atmospheric Effect dialog appears.

  3. Choose the kind of atmosphere you want to use, and then click OK.


Make Preview

Creates an avi-file preview of the animation in the current viewport.

When the preview is complete, 3D Studio MAX starts the Media Player with the preview _scene.avi file ready to play. (If you don't want the Media Player to start, choose File/Preferences/General and clear the Autoplay Preview File box.)

Reference

Preview range

Specifies the frames to be included in the preview, either the active time segment or a custom range of frames.

Frame Rate

Specifies the playback frame rate in frames per second. Use Every Nth Frame to preview a regular sampling of the animation. For example, a value of 8 includes only every eighth frame in the preview.

Image Size

Sets the resolution of your preview as a percentage of the current output resolution. The output resolution is set in the Render Scene dialog. For example, if the rendering output resolution is 640x480, and you set the Percent of Output spinner to 50, the preview resolution is 320x240.

Display in Preview

Specifies the types of objects to include in the preview. Frame numbers prints a frame number in the upper-left corner of each frame of the AVI file. Background includes the assigned viewport background in the preview.

Rendering Level

Specifies the type of viewport rendering for the preview.

Output

Specifies the preview output format.

AVI: When chosen, the preview is output as an AVI file. The button to the right displays the current AVI codec. Click it to adjust the assigned codec, or choose a different codec. The quality of your output AVI file depends on the type of codec you use and the codec settings, which vary. For the highest visual quality, choose the highest compression quality. The higher the compression quality, the lower the compression, and the larger the resultant file.

Custom File Type: Outputs the preview to the file type you specify. When this option is chosen, and you click the Create button, a file selector appears, where you can name your file and specify the output file type. For example, you can output the preview as a flic by specifying a filename with a .flc extension. If you specify a single-image format, such as .tga, the preview is output as a series of sequentially numbered files.

Use Device: Lets you output the preview to an external device, such as a digital recorder. The button at right displays the name of the currently assigned device. Click it to either change the settings of the device, or assign a different device.

How To

To create a preview

  1. Choose Rendering/Make Preview.

    2. The Make Preview dialog appears.

  2. Change the preview parameters or accept the defaults, and then click OK.

    3. 3D Studio MAX renders the preview and saves it in a file called _scene.avi. Immediately after it renders the preview, it invokes the Media Player for this animation.

  3. View the preview by clicking Play in the Media Player.

    4. If you dismiss the Media Player but want to view the preview again, choose Rendering/View Preview. This re-invokes the Media Player with _scene.avi.

    You can save the preview under a different name, so it won't be overwritten the next time you make a preview. To do so, use Rendering/Rename Preview.


View Preview

Displays the Windows-standard Media Player to view the current preview file.

Reference

When you use Make Preview, 3D Studio MAX stores the output preview in a file called _scene.avi by default. View Preview loads this file. If you want to keep the preview file, use Rename Preview to save it under another file name, otherwise, the next Make Preview will overwrite _scene.avi.

The Media Player has its own Help system.

How To

To view a preview

  • Choose Rendering/View Preview.


Rename Preview

Renames the _scene.avi preview file.

Reference

When you use Make Preview, 3D Studio MAX stores the output preview in a file called _scene.avi by default. View Preview loads this file. If you want to keep the preview file, use Rename Preview to save it under another file name, otherwise, the next Make Preview will overwrite _scene.avi.

How To

To rename the preview file

  1. Choose Rendering/Rename Preview.
  2. Specify a folder and a name for the preview file.
  3. Click Save.


Track View Menu

Provides access to the animation (time) parameters for your 3D scene.

Open Track View

New Track View

Delete Track View

The bottom of the Track View menu lists all stored track views. To open any stored track view, select its name.


Open Track View (Menus)

This menu duplicates the function of the Track View button in the toolbar. The function of this command changes, depending on the number of track views already created or opened.

Reference

Open Track View: Select to open a Track View.

If no previous track views have been created and closed, a new track view labeled “Untitled 1” appears. If an open track view labeled “Untitled 1” already exists, a new track view labeled “Untitled 2” is created.

Previously opened track views are stored in a buffer of up to 13 track views per MAX scene. You can open all stored track views by repeatedly selecting Open Track View, the track views are opened in a last in, first out order. When all stored track views are open, a new Untitled track view is opened.

The hierarchy state for all track views is preserved during a 3DS MAX session. All the stored track views are saved with the .max file, but the hierarchy state of the track views is lost when a .max file is re-opened.

Track View filter settings are saved in the .max file.

Notes

Reset closes all open track views and deletes all named track views.

Loading a .max file closes all open track views in the current scene.

You can name a track view by typing in the editable field at the right end of the track view toolbar.

How to

Open the last closed track view.

  • Click Track View/Open Track View.

The last track view that was closed will open.


New Track View (Menus)

Launches a new, untitled track view, regardless of how many closed track views are stored in the buffer. A limit of 13 Track Views can be stored in the Track View buffer.

You can name a track view by typing in the editable field at the right end of the track view toolbar.

Reference

New Track View: Select to open a new untitled track view.

How to

Open a Track View and place the selected object at the top of the Hierarchy list window:

  1. Select an object in any Viewport.
  2. Select Track View/New Track View.
  3. Click the Zoom Selected Object button in the Track View window.

    4. This is a fast way to locate a selected object in the Track View Hierarchy.


Delete Track View (Menus)

Allows you to delete one or more of the stored or displayed track views.

Reference

Delete Track View: Click to display a list of all available track views (stored or displayed).

Delete Track View dialog

Select from the list, and then click OK to remove the specified track views from the buffer.

How To

To delete a track view

  1. Choose Track View/Delete Track View.
  2. Select from the list.
  3. Click OK to remove the specified track views from the buffer.


Bottom of the Track View menu

Lists all stored track views by name. Up to 13 Track View can be stored in the Track View buffer.

You can name individual Track Views in the Track View editable name field.

Reference

Open any stored track view by selecting its name here.

How To

Display a previously stored track view.

  • Select Menu Bar/Track View, then select a stored track view.


Help Menu

Provides access to the 3D Studio MAX online reference system.

Online Reference

Learning 3D Studio MAX

Additional Help

Connect to Support and Information

About 3D Studio MAX


Online Reference

Displays helpful information for 3D Studio MAX.

Reference

3D Studio MAX online reference provides navigation and search methods to help you to find the information you want:

Contents: Starting at the Contents topic, you click to select different levels of topics, proceeding from more general to more specific. Click a book icon to see the topics in that book. Click the page icon for the topic you want to display.

Index: Lists keywords for topics alphabetically in index format.

Search: Lists all words in all topics. When you enter the words you want to search for, 3D Studio MAX gives you a list of all topics containing those words.

How To

To get help for 3D Studio MAX

  • Choose Help/Online Reference.


About 3D Studio Max

Help About 3D Studio MAX

Displays copyright and license information about your copy of 3D Studio MAX.

How To

To view copyright and license information

  • Choose Help/About 3D Studio MAX.


Additional Help

Displays help for the 3D Studio MAX plug ins.

How To

To view help for the plug ins

  1. Choose Help/Additional Help.
  2. Choose the plug in for which you want help
  3. Click Display Help.


Toolbar

Provides quick access to tools and dialogs for many of the most common tasks in 3D Studio MAX.

The toolbar includes buttons for:

Get Help

Undo

Redo

Select and Link

Unlink Selection

Bind to Space Warp

Select Object

Selection Region Rectangle, Circle, Fence

Selection Filters Dropdown

Select By Name

Select and Move

Select and Rotate

Select and Uniform Scale, Non-Uniform Scale, Squash

Transformation Axis Coordinate System Pop-Up

Use Pivot Point Center, Selection Center, Transform Coord. Center

Constrain to X

Constrain to Y

Constrain to Z

Constrain to XY, YZ, ZX

Inverse Kinematics

Mirror

Array

Snapshot

Align

Align Normals

Place Highlight

Align to Camera

Align to View

Named Selection Sets Pop-Up

Track View (Toolbar)

Material Editor Toolbar

Render Scene

Quick Render (Production or Draft)

Render Modifier List Pop-Up

Render Last


Get Help

Displays context-sensitive Help information for items in the 3D Studio MAX interface.

Reference

The Get Help Button provides quick assistance on tools in the 3D Studio MAX interface. For precise information on a feature of 3D Studio MAX, use the Help Index option, which searches the titles of every help topic.

If the item you click contains only general help, you may need to navigate a few levels in the Help system to get help on the specific item you're interested in. For example, click the Display Panel to see a list of items on that panel, then click the item you want to see more specific help on that.

How To

To get help on an item in the 3D Studio MAX interface

  1. Click the Get Help button.
  2. Click the item you want to get Help for.

    3. For example, you can click any button in the toolbar to go directly to its help topic.


Undo

Cancels the last action.

Reference

Right-clicking over the Undo button displays a list of recent actions, from which you can choose the level of Undo.

Undo is also available in the Edit Menu, where the name of the function to undo is also displayed. By default, there are 20 levels of undo. You can set the level higher or lower in the General panel of the Preferences dialog.

Some actions cannot be undone; for example, applying modifiers, deleting modifiers, and changing parameters in the command panel.

How To

To undo an action

  1. Right-click over the Undo button.

    2. You can press CTRL+Z to undo the most recent action.

  2. Select from the list the level to which you want to return.
  3. Click the Undo button.

    4. To exit the list without performing an action, click the Cancel button, or click somewhere outside of the list.


Redo

Cancels the last undo.

Redo is also available in the Edit Menu, where the name of the function to be redone is displayed.

Reference

Right-clicking over the Redo button displays a list of the last actions, from which you can choose the level of Redo.

How To

To redo an action

  1. Right-click over the Redo button or press CTRL+A.
  2. From the list, select the level to return to.
  3. Click the Redo button.

    4. To exit the list without performing an action, click the Cancel button or click somewhere outside of the list.


Select and Link

Defines the hierarchical relationship between two objects by linking them as child and parent.

Reference

You link from the currently selected object (child) to any other object (parent).

You can link an object to a closed group. When you do, the object becomes a child of the group parent rather than any member of the group. The entire group flashes to show that you’ve linked to the group.

A child inherits the transformations (move, rotate, scale) applied to the parent, but the child's transformations have no effect on the parent.

How To

To link two objects

  1. Click the Select and Link button
  2. Drag a line from the currently selected object (child) to any other object (parent).


Unlink Selection

Removes the hierarchical relationship between two objects.

Unlink Selection detaches a child object from its parent object.

How To

  1. Select the child object you want to unlink
  2. Click the Unlink Selection button.


Bind to Space Warp

Binds the current selection to a space warp.

How To

To bind the current selection to a space warp

  1. Select an object
  2. Click the Bind to Space Warp button.
  3. Drag a line from the selected object to the space warp object.

    4. The space warp object flashes for a moment to show that the bind was successful.


Select Object

Selects an object or objects for manipulation.

Reference

Object selection is affected by several other controls:

  • The active selection region type (Rectangle, Circle, or Fence).
  • The active selection filter (All, Geometry, Shapes, Lights, etc.)
  • The state of the crossing selection icon (which determines whether completely surrounded objects only or surrounded and crossing objects are selected).

A number of objects selected together is called a selection set. You can name selection sets in the prompt area of the toolbar.

How To

To add or remove objects from the selection set

  • Hold down the CTRL key and select the objects to add or remove.

Adding or removing of objects doesn't change a named selection set.

To toggle the selected/deselected state of objects in the selection set

  • Hold down the SHIFT key and select the objects to toggle.

To select objects AND move, rotate, or scale them

  • Use the Select and Move, Select and Rotate, or Select and Scale tools.

When you rotate a selection set, the pivot of rotation depends which option is selected on the Use Pivot Point Center flyout on the toolbar. These tools are restricted to a specific axis or plane, which you choose from the toolbar.


Selection Region Rectangle, Circle, Fence

Determines the type of region you draw on the screen to select objects.

Reference

The Select Region tool is a flyout that contains three buttons:

Rectangle: Click this button to draw a rectangle.

Circle: Click this button to draw a circle.

Fence: Click this button to draw an irregular shape.

For all three methods, all objects completely within (window) or within/touching (crossing) the shape you draw are selected. Toggle between the window and crossing selection methods using the Window/Crossing button in the status bar.


Selection Filters Dropdown

Filters the objects that can be selected by the selection tools.

Use this list to limit the types of object for selection. For example, if Cameras is selected, you can select only cameras with the selection tools. Other objects do not respond. This is useful as a quick method of freezing objects when you need to select objects of a certain type.

Reference

Create Combination

Geometry, Shapes, Lights, Cameras, Helpers, Space Warps: Select the category you want included in the combo.

Combos: Displays a Filter Combinations dialog that lets you create combinations of the various filters. The list window displays all combos that have been created. The combos are labeled using the first letter of each category. For example, “GLC” is Geometry, Lights, and Cameras.

You can add and delete combinations.

How To

To create a combination filter

  1. Open the Select Filter list, and choose Combos.

    2. The Filter Combinations dialog appears.

  2. Select one or more of the check boxes in the Create Combination area.
  3. Click the Add button.

    4. The specified combination appears in the window at right as a combination of the first letters of each selected category.

  4. Click OK.

    5. The new combo item appears at the bottom of the Select Filter list.

    Combos are stored in the 3dsmax.ini file, so they remain in effect for all scenes through all sessions.

To delete a combination filter

  1. Open the Select Filter list, and choose Combos.

    2. The Filter Combinations dialog appears.

  2. Select one or more of the combos in the list.
  3. Click the Delete button.
  4. Click OK.


Select By Name Button

Allows you to select objects by picking them from a list of all objects in the scene.

Reference

Select Objects List

Objects are listed according to the current Sort and List Types selections.

All, None, and Invert: These buttons alter the pattern of selection in the list window.

Display Subtree: Displays each item in the list so that its hierarchical branch is included, for example, Thigh/Shin/Foot. Hierarchichal branches are indented.

Select Subtree: When this is selected and you select an item in the list window, all of its hierarchical children are selected as well.

Case Sensitive: Considers the case of the characters for each item in the list. Upper-case letters are listed above lower-case letters. In addition, the field above the list becomes case-sensitive.

Select Dependents: When this is selected and you select an item in the list, all of its dependent objects are selected as well. Dependents include instances, references, and objects sharing a common modifier (the same objects that appear green when Show Dependencies is on in the View menu).

When both Select Subtree and Select Dependents are selected, the subtree of any newly selected node is selected, and then the dependents are selected--dependents of the subtree are selected, but not the subtrees of all dependents.

If you click Select by Name while Select and Link is active, these check boxes are not available.

Sort

Specifies the sort order of the items displayed in the list.

Alphabetical: Sorts from A at the top to Z at the bottom.

By Type: Sorts by category, using the same order as the check boxes in the List display.

By Color: Sorts by object wireframe color.

By Size: Sorts based on the number of faces in each object. The object with the least number of faces is listed first, followed by those objects with a greater number of faces..

List Types

Determines the types of obejcts to display in the list.

All, None, and Invert: These buttons alter the pattern of selection in the list window.

Selection Sets

Lists any named selection sets that you have defined in the scene. When you select a selection set from the list, 3D Studio MAX highlights its component objects in the main list.

How To

To select objects by name

  1. Do one of the following:
    • Click Select by Name in the toolbar.
    • Choose Edit/Select By/Name on the menu bar.

    The Select Object dialog appears. By default, it lists all objects in the scene. Currently selected objects are highlighted in the list.

  2. Choose one or more objects in the list.

    3. SHIFT+click to select a continuous range of objects and CTRL+click to select noncontinuous objects. In the field above the list, you can type a name to select it. You can use the asterisk (*) and the question mark (?) as wildcards.

  3. Click Select.

    4. The selection is made as the dialog disappears.


Select and Move

Moves the selected objects.

Reference

To move a single object, you don't need to select it first. When this button is active, clicking an object selects it and dragging the mouse moves it.

To constrain the objects' movement to the X, Y, or Z axis, or to any two axes, click the appropriate button further to the right in the toolbar.


Select and Rotate

Rotates the selected objects.

Reference

To rotate a single object, you don't need to select it first. When this button is active, clicking an object selects it and dragging the mouse rotates it.

When you are rotating an object about a single axis (which is usually the case), don't rotate the mouse, expecting the object to follow the mouse movement. Just move the mouse straight up and straight down. Up rotates the object one way, down rotates it the other way.

To constrain the objects' movement to the X, Y, or Z axis, or to any two axes, click the appropriate button further to the right in the toolbar.


Select and Uniform Scale, Non-Uniform Scale, Squash

Scales the selected objects.

You can constrain the objects' scaling about the X, Y, or Z axis, or to any two axes, by first clicking the appropriate button further to the right in the toolbar.

Reference

To scale a single object, you don't need to select it first. When this tool is active, clicking an object selects it and dragging the mouse scales it. The Scale tool is a flyout that contains three buttons:

Uniform Scale: Click this button to scale the object uniformly along all three axes.

Non-uniform Scale: Click this button to scale the object according to the active axis constraint.

Squash: Click this button to squash the object according to the active axis constraint. Squashing an object always involves decrease on one axis and increase on another.

When you select either Non-Uniform Scale or Squash at object level, an alert appears. Click Yes to go ahead with the scaling operation. Click No to cancel and revert to Move mode. You can turn off this alert by clearing Display NU Scale Warning on the General page of the File/Preference Settings dialog.

Important: Avoid applying non-uniform scale at the object level. Non-uniform scaling is applied as a transform and changes the axes of the object, so it affects other object properties. It also alters the properties passed hierarchically from parent to child. When you perform other operations on the object, such as rotation, inverse kinematic calculations, and other positioning operations, you may not get the results you expect. To recover from these problems, use the Reset Scale button on the Hierarchy panel or the Reset Transform utility on the Utilities panel. Either of these options will reset the axes to use the non-uniform scale as the fundamental scale for the object.


Transformation Axis Coordinate System Pop-Up

Specifies the coordinate system used for a transformation (move, rotate, scale).

Defines the orientation of the axis used by the transformation. Options Include View, Screen, World, Parent, Local, Grid, and Pick.

View is a hybrid of World and Screen coordinate systems. Using View, all orthographic views use the Screen coordinate system, while perspective views use the World coordinate system. In the View coordinate system, perspective views use the World coordinate system, while in the Screen coordinate system all views (including perspective views) use the viewport screen coordinates.

Reference

View: In the default View coordinate system, X, Y, and Z axes are the same in all viewports. When you move an object using this coordinate system, you are moving it relative to the space of the viewport.

  • X always points right.
  • Y always points up.
  • Z always points straight out of the screen toward you.

Screen: Uses the active viewport screen as the coordinate system.

  • X is horizontal, running in a positive direction toward the right.
  • Y is vertical, running in a positive direction upward.
  • Z is depth, running in a positive direction toward you.

Since the Screen mode depends on the active viewport for its orientation, the X, Y, and Z labels on an axis tripod in an inactive viewport show the orientation of the currently active viewport. The labels on that tripod will change when you activate the viewport it is in.

World: Uses the world coordinate system. Seen from the front:

  • X runs in a positive direction to the right.
  • Z runs in a positive direction upward.
  • Y runs in a positive direction away from you.

Parent: Uses the coordinate system of the parent of the selected object. If the object is not linked to a specific object, it’s a child of the world, and the parent coordinate system is the same as the world coordinate system.

Local: Uses the coordinate system of the selected object. An object’s local coordinate system is carried by its pivot point. You can adjust the position and orientation of the local coordinate system, relative to its object, using the options on the Hierarchy command panel.

When Local is active, the Use Transform Center button is inactive and all transforms use the local axis as the center of transformation. In a selection set of several objects, each uses its own center for the transform.

Grid: Uses the coordinate system of the active grid.

Pick: Uses the coordinate system of another object in the scene.

After you choose Pick, click to select the single object whose coordinate system the transforms will use. The object’s name appears in the Transform Coordinate System list.

Saving the object’s name in the list lets you pick an object’s coordinate system, change the active coordinate system, and then use the object’s coordinate system again at a later time. The list can save up to four object names.

When using Pick to specify an object as a reference coordinate system, you can press h to display the Select by Name dialog and pick the object from there.


Use Pivot Point Center, Selection Center, Transform Coord. Center

Defines the center about which objects or selections rotate or are scaled.

Reference

This flyout contains three buttons:

Use Pivot Point Center: Rotates or scales the object around its pivot point.

Use Selection Center: Rotates or scales the selection around the its center.

Use Transform Coordinate Center: Rotates or scales the object around the center of the current coordinate system.

The axis icon shows the center that is currently being used.


Constrain to X

Limits all transformations (move, rotate, scale) to the X axis.

Reference

When you move an object along a plane that is head-on to your view, the object moves along the single available axis shown in the view.

You can also right-click a selected object and chooseTransform, which cascades to display the six axis options (X, Y, Z, XY, YZ, ZX). Selecting any one of these is the same as selecting the corresponding toolbar button.


Constrain to Y

Limits all transformations (move, rotate, scale) to the Y axis.

Reference

When you move an object along a plane that is head-on to your view, the object moves along the single available axis shown in the view.

You can also right-click a selected object and choose Transform, which cascades to display the six axis options (X, Y, Z, XY, YZ, ZX). Selecting any one of these is the same as selecting the corresponding toolbar button.


Constrain to Z

Limits all transformations (move, rotate, scale) to the Z axis.

Reference

When you move an object along a plane that is head-on to your view, the object moves along the single available axis shown in the view.

You can also right-click a selected object and choose Transform, which cascades to display the six axis options (X, Y, Z, XY, YZ, ZX). Selecting any one of these is the same as selecting the corresponding toolbar button.


Constrain to XY, YZ, ZX

Limits all transformations (move, rotate, scale) to the two selected axes.

Reference

When you move an object along a plane that is head-on to your view, the object moves along the single available axis shown in the view.

You can also right-click a selected object and choose Transform, which cascades to display the six axis options (X, Y, Z, XY, YZ, ZX). Selecting any one of these is the same as selecting the corresponding toolbar button.

The Constrain to XY, YZ, ZX tool is a flyout that contains three buttons:

XY: Limits transformations to the XY axis (by default, parallel with the top view).

YZ: Limits transformations to the YZ axis (by default, parallel with the left view).

ZX: Limits transformations to the ZX axis (by default, parallel with the front view).

The axis constraints (X, Y, Z) are stored separately at object and sub-object levels. If you set these three controls one way while in sub-object mode and another way while in object selection level, when you return to sub-object mode, they’re restored to the way they were previously set. For example, if you’re using XY restraints at object level, then switch to sub-object level and use Z restraint, when you return to object level, XY will be restored.


Inverse Kinematics

Toggles inverse kinematics on and off.

Reference

When IK mode is off, forward kinematics is in effect. In this mode, child objects inherit the transformations of their parents, so when you transform a parent object, you transform its children as well. If you transform a child object, the parent is not affected.

When IK mode is on, inverse kinematics is used for position and rotation transforms. As a result, when you move or rotate a child object, its parents follow, on up through the chain of the hierarchy.


Mirror Button

Moves one or more objects while mirroring their orientation. Mirrors the current selection about the center of the current coordinate system.

As you adjust the various settings in the dialog box, you see the results in the viewports.

Reference

Mirror Axis

Six option buttons labeled X, Y, Z, XY, XZ, YZ specify the direction of the mirroring.

Offset: Specifies the distance of the mirrored object's pivot point from the original object's pivot point.

Clone Selection

Determines the type of copy made by the Mirror function. Default is No Clone.

No Clone: Mirrors the selected object to the new position without making a copy.

Copy: Mirrors a copy of the selected object to the specified position.

Instance: Mirrors an instance of the selected object to the specified position.

Reference: Mirrors a reference of the selected object to the specified position.

If you have Animation turned on mirroring generates a Scale key.

Mirror IK Limits

Causes the IK constraints to be mirrored (along with the geometry) when you mirror the geometry about a single axis. Clear this if you don’t want the IK constraints to be affected by the mirror command. The end effectors used by the IK are not affected by the Mirror command. To successfully mirror an IK hierarchy, first delete the end effectors.

How To

To mirror an object

  1. Make any object selection.
  2. Click the Mirror button in the full toolbar or choose Tools/Mirror from the menu bar.

    3. This brings up the Mirror Selection dialog.

  3. Set the mirror parameters in the dialog.

    4. The active viewport changes to show the effect of each parameter as you set it. When you click OK, 3D StudioMAX creates the choice of mirror that you see previewed.


Array Button

Creates an array of objects based on the current selection.

The items in the Array Dimensions area let you create one-, two-, or three-dimensional arrays. In this case, the term dimension refers to the dimension of arraying the objects. For example, a row of five objects is a single-dimension array, even though it takes up three-dimensional space in the scene. An array of objects that’s five rows by three columns is a two-dimensional array, and an array of objects that’s five rows by three columns by two levels is a three dimensional array.

Reference

Array Transformation

Specifies which combination of the three transforms to use to create the array. You also specify the extent, along the three axes, for each transform. You can specify the extent of the transform in increments between each object, or in totals for all objects. In either case, the distances are measured between the pivot points of the objects. The arrays occur using the current transform settings, so the area title changes depending on the transform settings.

Click the left or right arrow button for Move, Rotate, or Scale to indicate whether you want to set Incremental or Total array parameters.

Incremental

Move: Specifies the distance between each arrayed object along the X, Y, and Z axes, in units.

Rotate: Specifies the degree of rotation about any of the three axes for each object in the array, in degrees.

Scale: Specifies the percentage of scale along any of the three axes for each object in the array, in percentages.

Totals

Move: Specifies the overall distance, along each of the three axes, between the pivot points of the two outer objects in the resulting array. For example, if you’re arraying 6 objects and set Move X total to 100, the six objects will be arrayed in a row that’s 100 units between the pivot points of the two outer objects in the row.

Rotate: Specifies the total degrees of rotation applied to the objects along each of the three axes. You can use this, for example, to create an array that totals 360 degrees.

Re-Orient: Rotates the generated objects about their local axes while rotating them about the world coordinates. When clear, the objects maintain their original orientation.

Scale: Specifies the total scale of the objects along each of the three axes.

Uniform: Disables the Y and Z spinners and applies the X value to all axes, resulting in a uniform scale.

Type of Object

Determine the type of copies made by the Array function. The default is Copy.

Copy: Arrays copies of the selected object to the specified position.

Instance: Arrays instances of the selected object to the specified position.

Reference: Arrays references of the selected object to the specified position.

Array Dimensions

Lets you add to the Array Transformation dimension. The additional dimensions are positional only. Rotation and scale are not used.

1D: Creates a one-dimensional array, based on the settings in the Array Transformation area.

Count: Specifies the total number of objects along this dimension of the array. For 1D arrays, this is the total number of objects in the array.

2D: Creates a two-dimensional array.

Count: Specifies the total number of objects along this second dimension of the array.

X/Y/Z: Specifies the incremental offset distance along each axis of the second dimension of the array.

3D: Creates a three-dimensional array.

Count: Specifies the total number of objects along this third dimension of the array.

X/Y/Z: Specifies the incremental offset distance along each axis of the third dimension of the array.

Total in Array: Specifies the total number of entities to create, including the current selection, and defaults to 10. If you’re arraying a selection set, the resulting number of objects will be a multiple of this number times the number of objects in the selection set.

Reset All Parameters: Resets all the parameters to their default settings.

How To

To create an array

  1. Select the object(s) to array.
  2. Click the Array button or choose Tools/Array.
  3. In the Array dialog box, select the type of object to output (copy, instance, or reference).
  4. Click the arrow to indicate whether to set Incremental or Total array parameters for Move, Rotate, and/or Scale.
  5. Enter coordinates for the Array Transformation parameters.
  6. Indicate whether you want a 1D, 2D, or 3D array.
  7. Select the number of copies.
  8. Enter the appropriate values in the numeric fields for Incremental Row Offsets.
  9. Click OK.

    10. The current selection is duplicated the specified number of times, with each object transformed as indicated.

To replace an array

  1. Undo the array to replace, using Edit/Undo Create Array or CTRL+Z.
  2. Change the coordinate system and transform center, if needed.
  3. Click the Array button to display the Array dialog and adjust any of the parameters.
  4. Create a new array, which replaces the previous version. Repeat these steps to fine-tune the array.

To create an array of objects that numbers 5 x 4 x 3.

  1. Create a teapot with a radius of about 10 units.
  2. Click the Array button to display the Array dialog.
  3. In the Incremental set of spinners, adjust the Move X spinner to 50 to array each object 50 units apart.
  4. In the Array Dimensions area, choose the 3D button to enable all of the spinners in that area.
  5. Set the 1D Count spinner to 5, the 2D Count spinner to 4, and the 3D Count spinner to 3.

    6. This creates a row of 5 objects that are 50 units apart, and then 4 rows of those five objects, and then 3 rows of the 5 x 4 matrix of objects, resulting in a box array.

  6. In the 2D row, set the Y spinner to 80.
  7. In the 3D row, set the Z spinner to 100.
  8. Click OK.

    9. A box array of teapots appears. The first dimensional is five teapots created along the X world axis, 50 units apart (as specified in the Array Transform area). The second dimensional array is four layers created along the Y world axis, 80 units apart (as specified in the Array Dimensions area. The third dimensional array is three layers created along the Z world axis, 100 units apart. The total number of teapots in the array is 60.

To create a 360-degree array

  1. Reset 3D StudioMAX.
  2. Near the top of the Front viewport (away from its center), create a long, thin box at the six-o’clock position (if the viewport were a clock face).
  3. Choose Use Transform Coordinate Center in the Toolbar.
  4. Click Array to display the Array dialog.
  5. Click the arrow button to the right of the Rotate label to enable the three Rotate spinners in the Totals section.
  6. Set the Z spinner to 360.
  7. In Array Dimensions, choose 1D and set the Count spinner to 12.
  8. Click OK.

    9. An array of 12 boxes is created in a full circle.


Snapshot Button

Clones an animated object over time.

You can create a single clone on any frame, or space multiple clones along the animation trajectory (path). The spacing can be a uniform timing or a uniform distance. To use snapshot, select an object that has a trajectory assigned to it.

Reference

Snapshot

Single: Makes a clone of the geometry of the object at the current frame.

Range: Makes clones of the geometry of the object along the trajectory over a range of frames. Specify the range with the From/To spinners and the number of clones with the Copies spinner.

From/To: Specifies the range of frames to place the cloned object along the trajectory.

Copies: Specifies the number of clones to place along the trajectory. They are evenly distributed over the time period, but not necessarily the spatial distance along the path.

Clone Method

With copy, instance, and reference methods, the clone retains any animation within the object, so all the clones will be animated in the same way.

Copy: Clones copies of the selected object.

Instance: Clones instances of the selected object.

Reference: Clones references of the selected object.

Mesh: Makes the object into a single mesh so that it loses all its animation. However, if you’re snapshotting an animated object, you’ll still get all the various states of that object on the different frames.

How To

To clone an object over time

  1. Select an object with an animation path.

    2. Snapshot also shows the effect of any other transform animations, such as rotate or scale.

  2. Click Snapshot, a flyout from the Array button, or choose Tools/Snapshot from the menu bar.

    3. The Snapshot dialog appears.

  3. Set parameters in the dialog, and click OK.

To space clones evenly by distance

  1. Select an object with an animated position.
  2. Open Track View and find the position track for the original object.
  3. Click assign controller and check that the track is using a Bezier Position controller. Do one of the following:

    4. If the track is already using a position controller, proceed to step 4.

    If the track is not using a position controller, change the controller, then return to step 4.

  4. Select all the transform keys and right click one of the selected keys to display the Key Info dialog.
  5. Click Advanced to expand the dialog.
  6. Click Normalize Time.
  7. Set Constant Velocity on.
  8. Select all the transform keys and right click one of the selected keys to display the Key Info dialog.
  9. Click Snapshot or choose Tools/Snapshot from the menu bar.

    10. The Snapshot dialog appears.

  10. Set parameters in the dialog, and click OK.


Align Button

Aligns the current selection to a target selection. The name of the target object appears in the title bar of the Align dialog. When performing sub-object alignment, the title bar of the Align dialog reads Align Sub-Object Selection.

You can align the position and/or orientation of the bounding box of the source object to the bounding box of a target object.

You can use the Align tool with any selection that can be transformed. If an axis tripod is displayed, you can align the tripod (and the geometry it represents) to any other object in the scene.

When performing sub-object alignment, the Current Object options and the Match Scale check boxes are disabled. If you plan to align orientation for sub-objects, first switch to Local transform mode in the toolbar so that the axis tripod is properly aligned with your sub-object selection.

From this flyout, you can also choose Align Normals, Place Highlight, Align to Camera, or Align to View.

Reference

Align Position (Screen)

X, Y, Z Position: Specifies on which axis or axes to perform the alignment. Selecting all three boxes centers the current object on the target object.

Current Object/Target Object

Specifies which point on the objects' bounding boxes to use for the alignment. You can choose different points for the current object and the target object. For example, you can align the current object's pivot point with the center of the target object.

Minimum: Aligns the closest point of the object's bounding box with the chosen point on the other object.

Center: Aligns the center of the object's bounding box with the chosen point on the other object.

Pivot Point: Aligns the object’s pivot point with the chosen point on the other object.

Maximum: Aligns the farthest point of the object's bounding box with the chosen point on the other object.

Align Orientation (Local)

Lets you match the orientation of the local coordinate systems between the two objects on any or all three axes.

This option is independent of the position alignment settings. You can leave the position settings alone and select all three Rotation check boxes to rotate the current object to match the orientation of the target object.

Position alignment uses world coordinates, while orientation alignment uses local coordinates.

Match Scale

Click on the X Axis, Y Axis, or Z Axis options to match the scale axis values between the two selected objects. This matches only the scale values you’d see in the Transform Type-in dialog. It will not necessarily cause two objects to be the same size. There will be no change in size if neither of the objects has previously been scaled.

How To

To align an object with a point object

  1. Create a point helper object and position it at a target location in your scene. Rotate it as necessary to adjust final orientation.
  2. Select a source object.
  3. Click Align on the default toolbar, or choose Tools/Align.

    4. The Align cursor appears attached to a crosshair.

  4. Move the crosshair over the point object and click.

    5. The Align Selection dialog appears. If necessary, move the dialog out of the way so you can see the active viewport.

  5. In the Align Position area, select X Position.

    6. The selected source object shifts to align with the X axis of the point object.

  6. Select Y Position and Z Position.

    7. The source object moves so its center is at the point object.

  7. Select X, Y, and Z Axis in the Align Orientation area to reorient object to match the coordinates of the point.

To align objects by position and orientation

  1. Select a source object (the object to move into alignment with the target object).
  2. Click Align in the default toolbar, or choose Tools /Align.

    3. The Align cursor appears attached to a crosshair.

  3. Move the crosshair over the target object and click.

    4. The Align Selection dialog appears. By default, all options in the dialog are turned off.

  4. Under Current Object and Target Object, click Minimum, Center, Pivot Point, or Maximum.

    5. These settings establish the points on each object that become the alignment centers.

  5. Begin alignment by clicking X, Y, and Z Positions.

    6. The source object moves in relation to the target object, along the axes of the reference coordinate system. Setting all three moves the objects as close as possible, given the Current and Target Object Settings.

  6. In the Apply Orientation area, click X, Y, or Z Axis.

    7. The source object realigns accordingly. If the objects share an orientation, that axis has no effect. Once two axes are aligned in orientation, the third is automatic.

To align a gizmo to another object

  1. Display the gizmo level of the Sub-Object selection.
  2. Click the Align button in the toolbar.
  3. Click to select a target object in the viewport. (You can select the same object containing the gizmo to align the gizmo to a part of its own object.)
  4. Use the available settings in the Align dialog to adjust the transformation of the gizmo.

To align a sub-object selection of geometry to another object, do this:

  1. Do one of the following:
    • Convert the object to an editable mesh, and then perform the sub-object selection at any level.
    • Apply a Mesh Select modifier, followed by an Xform modifier. (The Mesh Select modifier by itself doesn’t allow transforms.)
  2. Click the Align button, and then select a target object.
  3. Use the settings in the Align dialog to perform the alignment.


Align Normals Button

Aligns the normals of two objects.

In a mesh or loft object, you can use this to align faces.

You can use Align Normals with any selection that can be transformed.

If you use Align Normals while a sub-object selection is active, only that selection is aligned. This is useful when aligning sub-object selections of faces, since otherwise there’s no valid face normal for the source object.

Align Normals respects smoothing groups and uses the interpolated normal, based on face smoothing. As a result, you can orient the source object face to any part of the target surface, rather than having it snap to face normals.

For an object with no faces (such as helper objects, space warps, particle systems, and atmospheric gizmos), Align Normals uses the Z axis and origin of the object as a normal. For this reason, you can use a Pointer object with Align Normals.

From this flyout, you can also choose Align, Place Highlight, Align to Camera, or Align to View.

Reference

The Align Normals dialog box lets you adjust (or cancel) the current alignment, and contains the following controls:

Position Offset

Lets you translate the source object perpendicular to the normal.

Rotation Offset

Lets you rotate the source object about the normal’s axis. You see the rotation in real time.

Flip Normal

Determines whether the source normal is aligned to match the same direction as the target normal. This defaults to off, since you usually want the two normals to have opposing directions. When you select and clear this check box, you see the source object flip 180.

OK/Cancel Align

The Cancel button is labeled Cancel Align to make it clear that you’re not only canceling the settings in the dialog box, but canceling the original transform of the source object.

How To

To align normals

  1. Select a source object. This is the object that moves during alignment.
  2. Click Align Normals in the default toolbar, or choose Tools/Align Normals.
  3. Drag across the surface of the source object.

    4. The Align Normal cursor appears, attached to a crosshair. A blue arrow at the crosshair indicates the current normal.

  4. Move the crosshair and blue arrow until you locate the normal you want to use, then release.

    5. The blue arrow remains as reference to the source normal.

  5. Drag across the surface of the target object.

    6. A green arrow at the crosshair indicates the current normal.

  6. Move the crosshair and green arrow until you locate the normal you want to use as a target, then release.

    7. The source object moves into alignment with the target normal, and the Normal Align dialog appears.

  7. Do one of the following:
    • Click OK to accept the alignment.
    • Using the dialog, make modifications to the alignment before clicking OK.


Place Highlight Button

Lets you align a light (or an object) to another object so that its highlight (or reflection) can be precisely positioned.

From this flyout, you can also choose Align, Align Normals, Align to Camera, or Align to View.

Reference

In Place Highlight mode, you can click and drag the mouse around in any viewport. Place Highlight is a viewport-dependent function, so use the viewport that you’re going to be rendering. As you drag the mouse around in the scene, a ray is shot from the mouse cursor into the scene. If it hits a surface, you see the surface normal at that point on the surface.

When you hit a surface, any selected objects are positioned along a line that represents the ray reflected off the surface about the surface normal. The objects are positioned along this line based on their original distance from the surface point. For example, if the object is 100 units from the surface point before it’s moved, then it will be positioned 100 units from the surface point along the reflected ray.

If the object is a light, the position of the highlight on the surface of the object will be the surface point that you’ve chosen.

Tip: Place Highlight works with any kind of selected object. You can also use Place Highlight with a selection set that contains more than one object. All objects maintain their initial distance from the face.

Note: For materials in 3D StudioMAX, highlight rendering depends on the material's specular properties and the type of rendering you use.

How To

To position a light so it highlights a face

  1. Make sure the viewport you plan to render is active, and that the object you want to highlight is visible in it.

    2. The result of Place Highlight depends on what is visible in the viewport.

  2. Select a light object.
  3. Click Place Highlight or choose Tools/Place Highlight.

    4. If the button is not visible on the toolbar, choose it from the Align flyout.

  4. Drag over the object to place the highlight.

    5. When you place an omni, free spot, or directional light, 3D StudioMAX displays a face normal for the face the mouse indicates.

    When you place a target spotlight, 3D StudioMAX displays the light's target and the base of its cone.

  5. Release the mouse when the normal or target display indicates the face you want to highlight.

    6. The light now has a new position and orientation. You can see the highlight illumination in shaded viewports that show the face you chose, and when you render those views.


Align to Camera

Align to Camera Button

Lets you align a camera to a selected face normal.

From this flyout, you can also choose Align, Align Normals, Place Highlight, or Align to View.

Reference

Align to Camera works similarly to the Place Highlight function, except that it operates on face normals instead of angle of incident, and occurs on mouse up instead of dynamically acting during the mouse drag. Its purpose is to let you align a camera viewport to a specified face normal.

How To

To use Align to Camera

  1. Select the camera used for the viewport you want to align.
  2. Choose Align to Camera.
  3. In any viewport, drag the mouse to choose a face.

    4. The chosen face normal appears as a blue arrow beneath the cursor.

  4. Release the mouse to perform the alignment.

    5. The camera is moved so that the selected normal is centered in the camera viewport and faces the camera.


Align to View Button

Lets you align the local axis of an object or sub-object selection with the current viewport.

You can use Align to View with any selection that can be transformed.

From this flyout, you can also choose Align, Align Normals, Place Highlight, or Align to Camera.

Reference

The Align to View dialog contains the following options:

Align X, Align Y, Align Z: Specifies which local axis of the selected object will be aligned with the current viewport’s Z axis.

Flip: Switches the direction of the alignment.

How To

To align the local axis of a selection with the current viewport

  1. Select the objects or sub-objects to align.
  2. Click Align to View.
  3. Specify the local axis of the selected object to align with the current viewport’s Z axis.
  4. Select the Flip check box if you want to switch the direction of the alignment.

    5. The alignment takes place while the dialog is displayed.

  5. Click OK to complete the process.


Named Selection Sets Pop-Up

Allows you to name a selection set and recall the selection for later use. See also Edit Named Selections on the Edit menu for ways to edit named sub-object selections.

Reference

A named selection set is removed from the list if all of its objects have been deleted from the scene, or if all of its objects have been removed from the named set in the Edit Named Selections dialog.

Both object-level and sub-object level named selections are case sensitive.

You can transfer sub-object named selections from one level in the Stack to another. The Copy and Paste buttons lets you copy named selections from one modifier to another.

While at a specific sub-object level (vertex, for example), you can make selections, and name those selections in the named selection field of the toolbar. The named sets are specific to both the selection level and the level on the Stack.

Keep in mind the following restrictions:

  • You can transfer named selections only between the same type of sub-object level. In other words, you can transfer named selections from vertex sub-object to another vertex sub-object, but you can’t transfer it to face or edge sub-object level.
  • You must transfer the selection between modifiers that handle like geometry. You can copy and paste between an editable mesh and a mesh select modifier, but you can’t copy and paste between a mesh select modifier and an editable spline.
  • You can copy and paste between two modifiers in two different objects, as long as you’re at the same level and both modifiers handle the same type of geometry.
  • If you change the topology of a mesh after creating a named selection (such as deleting some vertices), the named selections will probably no longer select the same geometry.

How To

To create a named selection set

  1. Select the objects you want in a set.
  2. Type the name of the set in the Named Selection Set field and press Enter.
  3. Whenever you want to access the selection, choose its name from the Named Selection Sets list.

To select a named selection set, do any of the following

  • To select a single item, click it in the list.
  • To select more than one item in the list, hold down the CTRL key.
  • To deselect single items after you’ve selected multiple items, hold down the ALT key.

To transfer a named selection to another modifier in the Stack

  1. Click the Copy button to display a dialog listing all the named selections for the specific sub-object level (vertex in this example).
  2. Select a named selection from the list, and then click OK.
  3. Move to the Stack modifier in which you want to use the named selection.
  4. Access the same sub-object selection level (vertex, in this case), and click the Paste button.

    5. The selection is applied to the geometry, and the named selection is now available in that modifier at that sub-object selection level.


Track View Toolbar

Contains the tools for working with the tracks and function curves displayed in the Track View Edit Window.

Reference

The buttonsare divided into three functional groups. From left to right the groups are:

Global Track View buttons apply to all Track View items regardless of the current edit mode.

Edit Mode buttons change the way you view and edit values in Track View.

Edit Buttons vary according to the current edit mode. You use these buttons to make any changes to the key values.


Render Scene

Displays the Render Scene dialog, which lets you set the parameters for rendering.

The purpose of modeling with 3D Studio MAX is to create still images or animations. You do this by rendering your scene.

Rendering shades the scene’s geometry using the lighting you’ve set up, the materials you’ve applied, and environment settings, such as background and atmosphere.

Rendering is multi-threaded and multi-processed on multiple-processor configurations. A two-processor Windows NT system can render in nearly half the time a single-processor system can.

Rendering can also take place on multiple systems by using a network. See the online network rendering documentation.

Reference

The Render Scene dialog has two rollouts. The first, Common Parameters, contains the controls that apply to all 3D Studio MAX renderings. The second contains the controls specific to the current renderer. This rollout can be titled MAX Default Scanline A-Buffer, VUE File Renderer, or have the name of a third-party renderer provided separately from 3D StudioMAX (documentation for third-party renderers is also provided separately).

Note: You choose which renderer to use, along with many other rendering parameter options, in the Rendering panel of the Preferences dialog. Each rendering configuration (Production or Draft) can have its own renderer.

When you click Render, a Rendering progress dialog shows the parameters being used and a progress bar. The Rendering dialog has a Pause button to the left of the Cancel button. When you click Pause, the rendering pauses, and the button’s label changes to Resume. Click Resume to continue with the rendering.

Missing Mapping Coordinates

If the renderer finds a parametric object that requires mapping, it automatically sets its Generate Mapping Coordinates toggle before rendering the scene. The toggle remains set after the rendering is done.

In the following cases, however, 3D StudioMAX is unable to automatically supply mapping coordinates:

  • Some third-party (plug-in) objects won’t work.
  • Non-parametric objects, such as imported meshes, don’t have built-in coordinates and require you to add a UVW Map modifier.
  • In these cases, 3D StudioMAX displays a dialog saying it is unable to render the scene. This dialog lists the objects the renderer couldn’t map.

Note: If a material has Show Map in Viewport set when that material is assigned to an object, this sets the object’s Generate Mapping Coordinates toggle, if it was not previously set. (The state of Show Map in Viewport is saved with each material.)

Rendering Configurations

There are two different rendering configurations you can use: production or draft. By default, Production is the active configuration and Draft has the same parameters as production. At any time, you can choose the active configuration and then use the Render Scene dialog to change that configuration’s parameters.

For example, while Production is active you can set up the Renderer for network rendering with a specific video resolution, a range of frames, an output file, and so on. You can then switch to Draft, and set the draft configuration to be single-frame rendering at a smaller resolution with no file output. This lets you test the rendering using the Draft parameters, then switch to Production parameters for the final output.

The Quick Render flyout lets you choose either the Draft or Production configuration.

Render Scene Controls

In addition to the common and renderer rollouts, the bottom of the Render Scene dialog has the following controls:

Production/Draft: Specifies the production renderer or the draft renderer. (Default: Production).

Copy Draft Parameters: Copies the parameter settings from the current renderer (draft or production) to the other one. An alert asks if you are sure you want to do so.

Note: The only settings unaffected by Copy Draft Parameters are the Output Size preset buttons. For example, you can have Production set for OmniMAX 360x360 and Draft set to Custom 320x240, but if you change one of the buttons to a custom setting, such as Custom 1000x1200, that specific button is the same for both the Production and Draft settings.

Viewport List: Displays the names of the four viewports currently visible, letting you choose which viewport to render from within the Render Scene dialog. (Default: the name of the active viewport).

How To

To render a still image

  1. Activate the viewport to render.
  2. Click Render Scene.

    3. The Render Scene dialog appears.

  3. Make sure Single is selected in the Time Output area.
  4. Set the output image size, and set other rendering parameters or use the defaults.
  5. Click Render.

    6. By default, the rendering appears in a window.

    To render a view without using the dialog, click Quick Render or Render Last.

To render an animation

  1. Activate the viewport to render.
  2. Click Render Scene.

    3. The Render Scene dialog appears.

  3. Choose a time range in the Time Ouptut area.
  4. Set the output image size, and set other rendering parameters or use the defaults.
  5. Click Files.
  6. In the file dialog, specify a name and a type for the animation file, and then click OK.

    7. The Save File toggle turns on.

  7. Click Render.

    8. Warning: If you set a time range but don't specify a file to save to, the animation is rendered only to the window. If you intended to save the animation or view it at full playback speed, this can be a time-consuming mistake.

    Once you have rendered the animation this way, you can render it again without using the dialog by clicking Quick Render (but not Render Last, which doesn't save to a file).


Quick Render (Toolbar)

Quick Render/Production or Draft (Toolbar)

Choose Production or Draft to render the scene using the current production or draft render settings without displaying the Render Scene dialog.

Reference

You can assign different renderers to the Draft and Production sides in the Rendering page of the File/Preferences dialog. To use the Production and Draft options as a quick way to switch renderers while using identical parameters, assign the two different renderers, set up all your parameters in the Draft side, and then click the Copy Draft Parameters to copy the settings to the Production side.

The only settings that are the same between Production and Draft are the Output Size preset buttons. You can have Production set for OmniMAX 360x360 and Draft set to Custom 320x240, but if you change one of the buttons to a custom setting, such as Custom 1000x1200, that specific button will be identical for both the Production and Draft settings.


Render Type

Reference

Specifies the portion of the scene that will be rendered.

View: Renders the active viewport (default).

Selected: Renders the currently selected object or objects only.

Region: Renders a region within the active viewport. Use this option when you need to test render just a part of the scene.

Blowup: Renders a region within the active viewport and enlarges it to fill the output display.

A rectangular selection region appears when you render with either Blowup or Region selected in the Render Type list. You can change the size of the region by dragging its handles.

How To

To render selected objects

  1. Choose Selected from the dropdown list.
  2. Make the viewport active.
  3. Select the objects.
  4. Click a render button.

To render a region

  1. Make the viewport active.
  2. Choose Region from the dropdown list.
  3. Click Render Scene or Quick Render.

    4. A window box appears in the active viewport, and an OK button appears in the viewport's lower-right corner.

  4. Drag in the middle of the window to move it. Drag the window's handles to adjust its size.

    5. To preserve the window's aspect ratio, you can hold down CTRL while you drag a handle.

  5. Click the OK button in the corner of the viewport.

To render a blowup

  1. Make the viewport active.
  2. Choose Blowup from the dropdown list.
  3. Click Render Scene or Quick Render.

    4. A window box appears in the active viewport and an OK button appears in the viewport's lower-right corner.

  4. Drag in the middle of the window to move it. Drag the window's handles to adjust its size.

    5. The window is constrained to the aspect ratio of the current output size.

  5. Click the OK button in the corner of the viewport.

    6. 3D StudioMAX displays a progress dialog that shows the progress of rendering and the rendering parameter settings. To stop rendering, click Cancel in this dialog, or press ESC.


Render Last

Repeats the last render; whether a render view, render region, render blowup, or render selected, using the last viewport from which you rendered.


Geometry

Creating Primitives from the Keyboard

Standard Primitives

Extended Primitives


Creating Primitives from the Keyboard

You can create most geometric primitives from your keyboard using the Keyboard Entry rollout. In a single operation, you define both the initial size of an object and its three-dimensional position. Name and color are automatically assigned.

This method is generally the same for all primitives; differences occur in the type and number of parameters. The Hedra primitive, a complex and highly visual family of objects, is unsuited to this method and has no keyboard entry.

Reference:

Coordinates and Parameters

The Keyboard Entry rollout contains a common set of position fields, labeled X, Y, and Z. The numbers you enter are offsets along the axes of the active construction plane; either the home grid or a grid object. Plus and minus values correspond to positive and negative directions for these axes. The defaults are 0,0,0; the center of the active grid.

The location set by X,Y is equivalent to the first mouse-down position in the standard method of creating objects.

Each primitive has the following parameters on its Keyboard Entry rollout.

Primitive XYZ point Parameters

Box Center of base Length, Width, Height

Sphere Center Radius

Cylinder Center of base Radius, Height

Torus Center Radius 1, Radius 2

Tube Center of base Radius 1, Radius 2, Height

Cone Center of base Radius 1, Radius 2, Height

Teapot Center of base Radius

Creation Method Rollout

You often have a choice of how you use the mouse to create an object. For example, you can use either the center (radius) or edge (diameter) to define the size of a Circle shape.

There’s always a default creation method. If you want to use an alternate method, choose the option before you create the object. The creation method has no effect on a finished object; the options are for your convenience during creation.

How To:

To open the Keyboard Entry rollout:

  1. On the Create command panel for Standard Primitives, click any of the primitive Object Type buttons, except Hedra.
  2. Click the Keyboard Entry rollout to open it. This rollout is closed by default.

    3. As an example, this is the Keyboard Entry rollout for the Tube primitive:

    Note: The buttons on the Creation Method rollout have no effect on keyboard entry.

To create a primitive from the keyboard:

  1. On the Keyboard Entry rollout, select a numeric field with the mouse and then enter a number.
  2. Press TAB to move to the next field. You do not have to press ENTER after entering a value. Press SHIFT+TAB to reverse direction.
  3. When you have all fields set, press TAB to move to the Create button. Press ENTER.
  4. The object appears in the active viewport.

Once created, a new primitive is unaffected by the numeric fields in the Keyboard Entry rollout. You can adjust parameter values on the Parameters rollout, either immediately after creation or on the Modify command panel.


Standard Primitives

Geometric primitives are familiar as 3D objects in the real world such as beach balls, pipes and tubes and boxes, doughnuts, and ice cream cones. In 3D Studio MAX, you can model many such objects using a single primitive. You can also combine primitives into more complex objects and further refine them with modifiers.

3DS MAX supplies a set of Ten basic primitives for your use. All are easily generated by mouse, and most have keyboard entry as well.

Reference:

Box

Sphere

Cylinder

Torus

Teapot

Cone

GeoSphere

Tube

Pyramid

Prism

Each primitive contains multiple variations. Many can be sliced like a pie. As a starting point for experimentation, this chapter gives you the specifics on all options available in this set.


Box

The Box button on the Creation command panel produces the simplest of the primitives. Cube is the only variation of Box. However, you can vary the scale and proportion to make many different kinds of rectangular objects, from large, flat panels and slabs to long columns and small blocks.

Reference

Box Parameters

The defaults produce a box with one segment on each side.

Length, Width, Height: Set these interactively during creation to specify the length, width, and height of the Box object. These fields act also as readouts while you drag the sides of the box. After creation, you can revise these values. Default=0,0,0.

Length, Width, Height Segments: Set these to specify the number of divisions along each axis of the object. Can be set before or after creation. By default, each side of the box is a single segment. When you reset these values, the new values become the default during a session. Default=1,1,1.

Generate Mapping Coordinates: Check this to automically generate coordinates for applying mapped materials to the box.Default=clear.

How To

To create a box:

  1. On the Object Type rollout, click Box.
  2. In any viewport, drag to define a rectangular base, then release to set length and width.
  3. Move the mouse up or down to define the height.
  4. Click to set the finished height and create the box.

To create a box with a square base:

  • Hold down CTRL as you drag the base of the box. This keeps length and width the same. CTRL has no effect on height.

To create a cube:

  1. On the Creation Method rollout, click Cube.
  2. In any viewport, drag to define the size of the cube.
  3. As you drag, a cube emerges with the pivot point at the center of its base.
  4. Release to set the dimension of all sides.
  5. You can adjust parameters to vary the length of one or more sides of the finished cube.


Sphere

The Sphere button produces a full sphere, which you can then resize to an exact hemisphere or other portion of a sphere.

Reference:

Sphere Parameters

The defaults produce a smooth sphere of 16 segments with the pivot point at its center.

Radius: Set this to specify the radius of the Sphere

Segments: Sets the number of polyginal divisions the Sphere has.

Smooth: When selected (the default), faces of the sphere are blended together, creating a smooth appearance in rendered views.

Hemisphere: Sets possible values from 0.0 to 1.0. During creation, the default is always 0.0, producing a full sphere. Increasing values after creation progressively “cuts off” the sphere, starting at the base. A setting of 0.5 produces a hemisphere, and 1.0 reduces the sphere to nothing. Default=0.0.

Chop and Squash toggle creation options for Hemisphere.

Chop: When selected the number of vertices and faces in the sphere are reduced by “chopping” them out as the hemisphere is cut off. This is the default.

Squash: Maintains the number of vertices and faces in the original sphere, “squashing” the geometry into a smaller and smaller volume toward the top of the sphere. Since the geometry is maintained, you can use different versions of a squashed sphere for morph objects.

Effects of Chop and Squash during hemisphere cut-off

Base To Pivot: Check this to move a sphere upward along its local Z axis so the pivot point is at its base. When unchecked, the pivot point is on the construction plane at the center of the sphere. Default=clear.

Checking Base To Pivot lets you animate a hemisphere so it appears to grow out of the construction plane or sink into it. It also lets you place spheres so they rest on the construction plane, like pool balls on a table.

Effect of using Base to Pivot setting

Generate Mapping Coordinates: Check this to automically generate coordinates for applying mapped materials to the box.Default=clear.

How To:

To create a sphere:

  1. In any viewport, drag to define a radius.
  2. As you drag, a sphere emerges with its center at the pivot point.
  3. Release the mouse to set the radius and create the sphere.

To create a hemisphere:

  1. Create a sphere of desired radius.
  2. Enter 0.5 in the Hemisphere field.

The sphere is reduced to exactly the upper half, a hemisphere. If you use the spinner, the sphere changes in size.


Cylinder

The Cylinder button on the Creation command panel produces a cylinder, which you can then “slice” around it’s major axis.

Reference

Cylinder Parameters

The defaults produce a smooth cylinder of 24 sides with the pivot point at the center of the base. There is one height segment and one cap segment. If you plan to apply a modifier to the cylinder, increase the number of height segments. With only a single height segment, a cylinder can’t bend, for example, instead, it tilts rigidly. You might also increase cap segments if you plan to modify the ends of the cylinder.

Radius: Sets the radius of the cylinder

Height: Sets the dimension along the central axis. Negative values create the cylinder below the construction plane.

Height Segments: Sets the number of divisions along the cylinder’s major axis.

Cap Segments: Sets the number of concentric divisions around the center of the cylinder's top and bottom.

Sides: Sets the number of sides around the cylinder. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Smooth: When selected (the default), faces of the cylinder are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete cylinder reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole cylinder reappears.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the cylinder. Default=clear.

How To

To create a cylinder:

  1. In any viewport, drag to define the radius of the base, then release to set the radius.
  2. Move up or down to define a height, either positive or negative.
  3. Click to set the height and create the cylinder.


Torus

The Torus button on the Creation command panel produces toruses, or circular rings, sometimes referred to as doughnuts. Three smoothing options can be combined with rotation and twist settings to create complex variations.

Reference

Torus Parameters

The defaults produce a smooth torus with 12 sides and 24 segments. The pivot point is at the center of the torus on the plane cutting through the center of the torus. Higher settings for sides and segments produce a more dense geometry that might be required for some modeling or rendering situations.

Radius 1: Sets the distance from the center of the torus to the center of the cross-sectional circle. This is the radius of the torus ring.

Radius 2: Sets the radius of the cross-sectional circle. At startup, the default is 10 units. This value is replaced each time you create a torus.

Radius 1 and Radius 2

Rotation: Sets the degree of rotation. Vertices are uniformly rotated about the circle running through the center of the torus ring. Positive and negative values for this setting “roll” the vertices in either direction over the surface of the torus.

Rotation and Twist

Twist: Sets the degree of twist. Cross sections are progressively rotated about the circle running through the center of the torus. Beginning with twist, each successive cross section is rotated until the last one has the number of degrees specified.

Twisting a closed (unsliced) torus creates a constriction in the first segment. You can avoid this by either twisting in increments of 360 degrees, or by setting Slice on, with Slice parameters at 0 to maintain a complete torus.

Segments: Sets the number of radial divisions around the torus. By reducing this number, you can create polygonal rings instead of circular ones.

Sides: Sets the number of sides on the cross-sectional circle of the torus. By reducing this number, you can create prism-like cross sections instead of circular ones.

Smooth area:

Sets one of four levels of smoothing:

All: is the default, producing complete smoothing on all surfaces of the torus.

Sides: smooths the edges between adjacent segments, producing smooth bands running around the torus.

None: turns off smoothing entirely, producing prism-like facets on the torus.

Segments: smooths each segment individually, producing ring-like segments along the torus.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the torus. Default=clear.

How To

To create a torus:

  1. In any viewport, drag to define a torus.
  2. As you drag, a torus emerges with its center at the pivot point.
  3. Release to set the radius of the torus ring.
  4. Move to define the radius of the cross-sectional circle, then click to create the torus.


Teapot

The Teapot button on the Create command panel produces a teapot. You can choose to make the whole teapot at once (the default) or any of its parts. Since the Teapot is a parameteric object, you can choose which parts of the teapot to display after creation.

History of the Teapot

This teapot derives from the original data developed by Martin Newell in 1975. Beginning with a graph-paper sketch of a teapot that he kept on his desk, Newell calculated cubic Bezier splines to create a wireframe model. James Blinn, also at the University of Utah during this period, produced early renderings of exceptional quality using this model.

The teapot has since become a classic in computer graphics. Its complexly curved and intersecting surfaces are well suited to testing different kinds of material mappings and rendering settings on a real-world object.

Reference

Teapot Parameters

Radius: Sets the radius of the teapot

Segments: Sets the number of divisions for the teapot or its individual parts.

Smooth: When selected (the default), faces of the teapot are blended together, creating a smooth appearance in rendered views.

Teapot Parts Area

This area contains options to enables or disables individual teapot parts

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the teapot. Default=clear.

How To

To create a teapot:

  1. In any viewport, drag to define a radius.
  2. As you drag, a teapot emerges with the pivot point at the center of its base.
  3. Release the mouse to set the radius and create the teapot.

To create a teapot part:

  1. Uncheck parts, leaving only the part checked that you want to create.
  2. Create a teapot.
  3. Only part you checked appears. The pivot point remains at the center of the teapot’s base.

    4. The teapot has four separate parts: body, handle, spout, and lid. Controls are located in the Teapot Parts area of the Parameters rollout. You can check any combination of parts to create at the same time. The body alone is a ready-made bowl, or a pot with optional lid.

To turn a part into a teapot:

  1. Check all parts. This is the default.
  2. The whole teapot appears.
  3. You can apply modifiers to any separate part. If you later turn on another part, the modifier affects the additional geometry as well.


Cone

The Cone button on the Creation command panel produces round cones, either upright or inverted.

Reference

Cone Settings

The defaults produce a smooth, round cone of 24 sides with the pivot point at the center of the base. There are five height segments and one cap segment. For improved rendering, increase the number of height segments for smoothly shaded cones, particularly those with pointed tips.

Radius 1, Radius 2: Sets first and second radius for the cone. The minimum setting is 0. Minus values are converted to 0. You can combine these settings to create pointed and flat-topped cones, upright or inverted. The following combinations assume a positive height.

Radius 1 and Radius 2

Radius 2 is 0 Creates a pointed cone

Radius 1 is 0 Creates an inverted pointed cone

Radius 1 is larger than Radius 2 Creates a flat-topped cone

Radius 2 is larger than Radius 1 Creates an inverted flat-topped cone

If Radius 1 and 2 are the same, a cylinder is created. If the two radius settings are close in size, the effect is similar to applying a Taper modifier to a cylinder.

Effect of Radius settings

Height: Sets dimension along the central axis. Negative values create the cone below the construction plane.

Height Segments: Sets the number of divisions along the cone's major axis.

Cap Segments: Sets the number of concentric divisions around the center of the cone's top and bottom.

Sides: Sets the number of sides around the cone. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Smooth: When selected (the default), faces of the cone are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete cone reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole cone reappears.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the cone. Default=clear.

How To

To create a cone:

  1. In any viewport, drag to define a radius for the base of the cone, then release to set it.
  2. Move to up or down to define a height, either positive or negative, then click to set it.
  3. Move to define a radius for the other end of the cone. Decrease this radius to 0 for a pointed cone.
  4. Click to set the second radius and create the cone.


GeoSphere

Use the Geosphere button in the Create panel to make spheres and hemispheres based on three classes of regular polyhedrons.

Geospheres produce a more regular surface than standard spheres. They also render with a slightly smoother profile than a standard sphere given the same number of faces.

Reference

Geosphere Parameters

Radius: Sets the size of the geosphere.

Segments: Sets the total number of faces in the geosphere. The number of faces in a geosphere is equal to the sides of the base polyhedron times the segments squared.

Lower segment values work best. Using the maximum segment value of 200 can generate up to 800,000 faces, impairing performance.

Geodesic Base Type area:

Determines which type of regular polyhedron is used for the geosphere’s basic geometry.

Tetra: Based on a four-sided tetrahedron. The triangular facets can vary in shape and size. The sphere can be divided into four equal segments.

Octa: Based on an eight-sided octahedron. The triangular facets can vary in shape and size. The sphere can be divided into eight equal segments.

Icosa: Based on a 20-sided icosahedron. The facets are all equally sized equilateral triangles. The sphere can be divided into any number of equal segments, based on multiples and divisions of 20 faces.

Smooth: Applies smoothing groups to the surface of the sphere.

Base To Pivot: Sets the pivot point location. When checked, the pivot is at the bottom of the sphere. When unchecked, the pivot is at the center of the sphere. This option has no effect when Hemisphere is checked.

Generate Mapping Coords: Applies default mapping coordinates to the geosphere.

How To

To make a Geosphere:

  1. Click Geosphere in the Create panel.
  2. Drag in any viewport to set the center and radius of the geosphere.
  3. Set parameters such as Geodesic Base Type and Segments.

To make a Geo-hemisphere:

  1. Create a geosphere, as described above.
  2. Check the Hemisphere check box. The geosphere is converted to a hemisphere.


Tube

The Tube button on the Creation command panel produces both round and prismatic tubes. The tube is similar to the cylinder with a hole in it.

Reference

Tube Parameters

The defaults produce a smooth, round tube of 24 sides with the pivot point at the center of the base. There is one height segment and one cap segment. If you plan to apply a modifier to the tube, increase the number of height segments. With only a single height segment, a tube can’t bend, it tilts rigidly.

Radius 1, Radius 2: The larger setting becomes the outside radius of the tube.

Radius 1 and Radius 2

Height: Sets the dimension along the central axis. Negative values create the tube below the construction plane.

Height Segments: Sets the number of divisions along the tube's major axis.

Cap Segments: Sets the number of concentric divisions around the center of the tube's top and bottom.

Sides: Sets the number of sides around the tube. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Smooth: When selected (the default), faces of the tube are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete tube reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole tube reappears.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the tube. Default=clear.

How To

To create a tube:

  1. In any viewport, drag to define the first radius, which can be either the inner or outer radius of the tube. Release to set the first radius.
  2. Move to define the second radius, then click to set it.
  3. Move up or down to define a height, either positive or negative.
  4. Click to set the height and create the tube.

To create a prismatic tube:

  1. Set the number of sides for the kind of prism you want. 5 creates a pentagonal prism.
  2. Uncheck Smooth.
  3. Create a tube.


Pyramid

Creates a pyramidal object with a square or rectangular base and triangular sides.

Reference

Pyramid Parameters

Width, Depth and Heigth : sets the dimension of the corresponding side of the pyramid.

Width, Depth and Heigth Segs: sets the number of segments to the corresponding sides of the pyramid.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the pyramid. Default=clear.

How To

To create a Pyramid:

  1. Choose a creation method, either Base/Apex or Center.
  2. Drag the mouse to define the base of the pyramid. If you’re using Base/Apex creation, you define the opposite corners of the base, moving the mouse horizontally or vertically to define the width and depth of the base. If you’re using Center creation, you drag from the center of the base rather than the corner.
  3. Click, and then move the mouse to define the Height.
  4. Click to complete the pyramid.

    5. Note: Hold the CTRL key while using either creation method to constrain the base to a square.


Prism

Creates a three-sided prism with independently segmented sides.

Reference

Prism Parameters

Side (n) Length: Sets the length of triangle's corresponding side (and thus its angles).

Height: Sets the dimension of the prism's central axis.

Side (n) Segs: Specifies the number of segments for each side.

Height Segs: Sets the number of divisions along the prism's central axis.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the prism. Default=clear.

How To

To create a Prism with an isosceles triangle at its base, do this:

  1. Choose Isosceles in the Creation Method rollout.
  2. Drag horizontally to define the length of Side 1 (along the X axis), and drag vertically to define the length of Sides 2 and 3 (along the Y axis).
  3. Release the mouse, and move it to define the height of the Prism.
  4. Click to complete the Prism.

    5. Note: Press CTRL during the above step to constrain the base to an equilateral triangle.

To create a Prism with a scalene or obtuse triangle at its base, do this:

  1. Choose Base/Apex in the Creation Method rollout.
  2. Drag horizontally to define the length of Side 1 (the “base” along the X axis), and drag vertically to define the length of Sides 2 and 3 (along the Y axis).
  3. Click and then move the mouse to specify the placement of the apex of the triangle. Note that this alters the length of sides 2 and 3, along with the angles of the corners of the triangle.
  4. Click and then move the mouse to define the height of the Prism.


Extended Primitives

Extended Primitives are a collection of complex primitives for 3DS Max. The following sections describe the type of object and its various creation parameters. Unless otherwise mentioned, the Creation Method parameters and Keyboard Entry parameters are the same as those found in the Standard Primitives.

Reference

Hedra

Chamfer Box

Oil Tank

Spindle

Gengon

Torus Knot

Chamfer Cylinder

Capsule

L-Ext

C-Ext

Doors

Windows


Hedra

The Hedra button on the Creation command panel produces a family of polyhedra.

Reference

Family Parameters

Family Area

Selects the type of hedra created

Family parameters area

P, Q: Interrelated parameters that provide a two-way translation between the vertices and facets of a polyhedron. They share the following:

  • Range of possible values is 0.0 through 1.0.
  • The combined total of the two parameters can be equal to or less than 1.0.
  • Extremes occur if either P or Q is set to 1.0; the other is automatically set to 0.0.
  • Midpoint occurs when both P and Q are 0.

In the simplest terms, what P and Q do is change the geometry back and forth between vertices and facets. At the extreme settings for P and Q, one parameter represents all vertices, the other all facets. Intermediate settings are transition points, with the midpoint an even balance between the two parameters.

Axis Scaling area

Polyhedra in 3DS MAX can have as many as three kinds of polygonal facets, such as triangle, square, or pentagon. These facets can be regular or irregular. If a polyhedron has only one or two types of facet, only one or two of the axis scaling parameters are active. Inactive parameters have no effect

P, Q, R: Controls the axis of reflection for one of the facets of a polyhedron. In practice, these fields have the effect of pushing their corresponding facets in and out. Defaults=100.

The following figure shows a variation of the dodecahedron that has its Q and R axes scaled above and below 100, the mean value representing the object’s original setting.

Reset: returns axes to their default setting.

Vertices area

The Vertices settings determine the internal geometry of each facet of a polyhedron. These settings are illustrated in the following figure. They cannot be animated.

The Center and Center & Sides options increase the number of vertices in the object and therefore the number of faces. If you scale the axis of the object, the Center option is used automatically, unless Center & Sides is already set.

To see the internal edges shown in the figure, you need to uncheck Edges Only on the Display command panel.

Radius: Sets the radius of any polyhedron in current units.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the hedra. Default=clear.

How To

To create a hedra:

  1. In the Family area of the Parameters rollout, check one of the buttons.
  2. In any viewport, drag to define a radius, then release to create the polyhedron.

    3. As you drag, a polyhedron emerges from the pivot point.


Chamfer Box

Creates a box with beveled, or rounded edges.

Reference

Chamfer Box Parameters

Length, Width, height: sets the corresponding dimension of the chamferbox.

Fillet: "slices" off the edges of the chamferbox. The higher the number, the more filleted the chamferbox becomes.

Length, Width, Height Segs: Sets the number of divisions along the corresponding axis.

Fillet Segs: Sets the number of segments in the filleted edges of the box. Adding fillet segments curves the edges, producing a chamfered box.

Smooth: When selected (the default), faces of the chamferbox are blended together, creating a smooth appearance in rendered views.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the chamferbox. Default=clear.

How To

  1. Drag the mouse to define the diagonal corners of the base of the ChamferBox. (Press CTRL to constrain the base to a square.)
  2. Release the mouse, and move it to define the height of the box.
  3. Click and move the mouse vertically to define the width of the fillet, or bevel.


Oil Tank

Creates a cylinder with (optionally) convex caps.

Reference

Oil Tank Parameters

Radius: Sets the radius of the oiltank.

Height: Sets the dimension along the central axis. Negative values create the oiltank below the construction plane.

Cap Height: Sets the height of the convex caps. A value of 0 produces no caps.

Overall: Determines what the Height value specifies. When Overall is chosen, the Height is the overall height of the object.

Centers: Determines what the Height value specifies. When Centers is chosen, the Height is the height of the midsection of the cylinder, not including its convex caps.

Blend: When greater than 0, creates a bevel at the edge of the caps.

Sides: Sets the number of sides around the oiltank. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Height Segs: Sets the number of divisions along the oiltank's major axis.

Smooth: When selected (the default), faces of the oiltank are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete oiltank reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole oiltank reappears.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the cylinder. Default=clear.

How To

  1. Drag the mouse to define the radius of the base of the OilTank.
  2. Release the mouse, and move it to define the height of the OilTank.
  3. Click and move the mouse vertically to define the height of the convex caps.


Spindle

Creates a cylinder with (optionally) peaked caps.

Reference

Radius: Sets the radius of the spindle.

Height: Sets the dimension along the central axis. Negative values create the oiltank below the construction plane.

Cap Height: Sets the height of the convex caps. A value of 0 produces no caps.

Overall: Determines what the Height value specifies. When Overall is chosen, the Height is the overall height of the object.

Centers: Determines what the Height value specifies. When Centers is chosen, the Height is the height of the midsection of the cylinder, not including its convex caps.

Blend: When greater than 0, creates a bevel at the edge of the caps.

Sides: Sets the number of sides around the oiltank. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Cap Segs: Sets the number of concentric divisions along the center of the spindle's top and bottom

Height Segs: Sets the number of divisions along the oiltank's major axis.

Smooth: When selected (the default), faces of the oiltank are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete oiltank reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole oiltank reappears.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the cylinder. Default=clear.

How To

  1. Drag the mouse to define the radius of the base of the Spindle.
  2. Release the mouse, and move it to define the height of the Spindle.
  3. Click and move the mouse vertically to define the height of the peaked caps.


Gengon

Creates an extruded, regular-sided polygon with optionally filleted side edges.

Reference

Gengon Parameters

Radius: Sets the radius of the gengon.

Height: Sets the dimension along the central axis. Negative values create the gengon below the construction plane.

Sides: Sets the number of sides around the gengon. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Height Segs: Sets the number of divisions along the gengon's major axis.

Smooth: When selected (the default), faces of the gengon are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete gengon reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole gengon reappears.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the gengon. Default=clear.

How To:

  1. Set the Sides spinner to specify the number of side wedges in the Gengon.
  2. Drag the mouse to create the radius of the Gengon.
  3. Release the mouse, and move it to define the height of the Gengon.
  4. Click and move the mouse vertically to specify the size of the fillet along the side angles.
  5. (Optionally) adjust the Fillet Segs spinner to round the fillets by adding segments to them.


Torus Knot

Creates a complex torus, or a knotted torus by drawing 2D curves in the normal planes around a 3D curve. The 3D curve (called the Base Curve) can be either a circle or a torus knot.

Reference

Creation Method Parameters

Specifies the mouse creation method.

Diameter/Radius: Choose Diameter to drag out the diameter of the torus, or radius to drag out the radius.

Keyboard Entry Parameters

Lets you create the torus knot by entering values rather than by using the mouse.

X, Y, Z: Specifies the position of the center of the torus knot

Major Radius: Specifies the radius of the base curve.

Minor Radius: Specifies the radius of the cross section.

Create: Click to create the torus knot.

Parameters: Provides various parameters to alter the torus know.

Base Curve Area

Provides parameters that affect the base curve.

Knot/Circle: When Circle is chosen, the base curve is a circle, resulting in a standard torus, when parameters such as Warp and Eccentricity are left at their defaults. When Knot is chosen, the torus interweaves itself, based on various other parameters.

Radius: Sets the radius of the base curve.

Segments: Sets the number of segments around the perimeter of the torus.

P and Q: These spinners are only available when Knot is chosen. P and Q describe up and down and around-the-center winding numbers.

Warp Count: The two Warp spinners are only active when Circle is chosen. The Warp Count is the number of “points” in a star shape around the curve.

Warp Height: Sets the height of the "points" given as a percentage of the base curve radius.

Cross Section Area

Provides parameters that affect the cross section of the torus knot.

Radius: Sets the radius of the cross section.

Sides: Sets the number of sides around the cross section.

Eccentricity: Sets the ratio of the major to minor axes of the cross section. A value of 1 provides a circular cross section, while other values create elliptical cross sections.

Twist: Sets the number of times the cross section twists around the base curve.

Lumps: Sets the number of bulges in the torus knot. Note that the Lump Height spinner value must be >0 to see any effect.

Lump Height: Sets the height of the lumps, as a percentage of the radius of the cross section. Note that the Lumps spinner must be >0 to see any effect.

Lump Offset: Sets the offset of the start of the lumps, measured in degrees. The purpose of this value is to animate the lumps around the torus.

Smooth Area

Provides options to alter the smoothing in the torus knot.

All: Choose this to smooth the entire torus knot.

Sides: Choose this to smooth only the adjacent sides.

None: When this is selected, the torus knot is faceted.

Mapping Coordinates Area

Provides methods of assigning and adjusting mapping coordinates.

Generate Mapping Coords: Select this to assign mapping coordinates based on the geometry of the torus knot.

Offset U/V: Use these spinners to offset the mapping coordinates along U and V.

Tiling U/V: Use these spinners to tile the mapping coordinates along U and V.

How To

To create a Torus Knot, do this:

  1. Click and drag the mouse to define the size of the Torus Knot.
  2. Click and drag the mouse to define the radius.
  3. Adjust the parameters.


Chamfer Cylinder

ChamferCyl

Creates a cylinder with beveled or rounded cap edges.

Reference

ChamferCyl Parameters

Radius: Sets the radius of the chamfercyl.

Height: Sets the dimension along the central axis. Negative values create the chamfercyl below the construction plane.

Fillet: "slices" off the edges of the chamfercyl. The higher the number, the more filleted the chamfercyl becomes.

Height Segs: Sets the number of divisions along the corresponding axis.

Fillet Segs: Sets the number of segments in the filleted edges of the box. Adding fillet segments curves the edges, producing a chamfered cylinder.

Sides: Sets the number of sides around the chamfercyl. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Cap Segs: Sets the number of concentric divisions along the center of the chamfercyl's top and bottom

Smooth: When selected (the default), faces of the chamfercyl are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete chamfercyl reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole chamfercyl reappears.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to the chamfercyl. Default=clear.

How To:

  1. Drag the mouse to define the radius of the base of the ChamferCyl.
  2. Release the mouse, and move it to define the height of the cylinder.
  3. Click and move the mouse vertically to define the width of the fillet, or bevel.


Capsule

Creates a cylinder with hemispherical caps.

Reference

Capsule Parameters

Radius: Sets the radius of the capsule.

Height: Sets the dimension along the central axis. Negative values create the capsule below the construction plane.

Overall: Determines what the Height value specifies. When Overall is chosen, the Height is the overall height of the object.

Centers: Determines what the Height value specifies. When Centers is chosen, the Height is the height of the midsection of the cylinder, not including its domed caps.

Sides: Sets the number of sides around the capsule. Higher numbers shade and render as true circles with Smooth selected. Lower numbers create regular polygonal objects with Smooth clear.

Height Segs: Sets the number of divisions along the capsule's major axis.

Smooth: When selected (the default), faces of the capsule are blended together, creating a smooth appearance in rendered views.

Slice On: Sets or clears the Slice feature. Default=clear.

When you create a slice and then uncheck Slice On, the complete capsule reappears. You can therefore use this check box to switch between the two topologies.

Slice From, Slice To: Sets the number of degrees around the local Z axis from a zero point at the local X axis.

For both settings, positive values move the end of the slice counterclockwise, negative values, clockwise. Either setting can be made first. When the ends meet, the whole capsule reappears.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the capsule. Default=clear.

How To:

  1. Drag the mouse to define the radius of the capsule.
  2. Release the mouse, and move it to define the height of the capsule.


L-Ext

Creates an extruded L-shaped object.

Reference

L-Ext Parameters

Side/Front Length: Set this to specify the length of the side.

Side/Front Width: Set this to specify the width of the side.

Height: Set this to specify the height of the of the object.

Side/Front Segs: Set this to specify the number of segments for a specific side of the object..

Note: The object’s dimensions (Back, Side, Front) are labeled as though it were created in the Top or Perspective viewports, and seen from the front of world space.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the capsule. Default=clear.

How To

To create a L-Ext, do this:

  1. Drag the mouse to define the overall dimension of the base. Regardless of which creation method you use (Corners or Center), you can press CTRL to constrain the base to a square.
  2. Release the mouse and move it to define the height of the L-Ext.
  3. Click, and then move the mouse vertically to define the thickness, or width of the walls of the L-Ext.


C-Ext

Creates an extruded C-shaped object.

Reference

C-Ext Parameters

Back/Side/Front Length: Set this to specify the length of the side.

Back/Side/Front Width: Set this to specify the width of the side.

Height: Set this to specify the overall height of the of the object.

Back/Side/Front Segs: Set this to specify the number of segments for a specific side of the object..

Note: The object’s dimensions (Back, Side, Front) are labeled as though it were created in the Top or Perspective viewports, and seen from the front of world space.

Width/Height Segs: Set this to specify the number of segments for the width and height of the object. This setting affects all three sides of the object.

Generate Mapping Coordinates: Sets up the required coordinates for applying mapped materials to the capsule. Default=clear.

How To

  1. Drag the mouse to define the overall dimension of the base. Regardless of which creation method you use (Corners or Center), you can press CTRL to constrain the base to a square.
  2. Release the mouse and move it to define the height of the C-Ext.
  3. Click, and then move the mouse vertically to define the thickness, or width of the walls of the C-Ext.


Doors

Doors are useful for architectural models. The door models provided let you control details of a door's appearance. You can also set the door to be open, partially open, or closed

There are three kinds of doors. PivotDoor is the familiar door that is hinged on one side only. BifoldDoor is hinged in the middle as well as the side, like many closet doors. You can also make these kinds of doors a set of double doors. SlidingDoor has a fixed half and a sliding half

The topic for each kind of door describes its unique controls and behavior. Most door parameters are common to all kinds of doors, and are described here.

Reference

Creation Method Parameters

Each type of door has the same three items in its Creation Method rollout:

Width/Depth/Height: Sets the mouse to create the first two points defining the width and angle of the base of the door. Specifically, the first point defines a point on the jamb at the hinge for single-pivot and bifold doors (both jambs have hinges on double doors, and sliding doors have no hinge). The second point specifies the width of the door, as well as the direction from one jamb to the other. This lets you align the door with a wall or opening when you place it. The third point specifies the depth of the door, and the fourth specifies the height.

Width/Height/Depth: This option works in the same way as the Width/Depth/Height option, except that the last two points create the Height and then the Depth.

Allow Non-vertical Jambs: When this is checked, and 3D Snap is on (allowing snapping to points off of the construction plane), you can create tilted doors by clicking on points off the construction plane. Since tilted doors are not a standard item, this checkbox defaults to clear.

Door Parameters:

Height: Sets the overall height of the door unit.

Width: Sets the overall width of the door unit.

Depth: Sets the depth of the door unit.

Open: Specifies the degrees that the door is open. (When using Sliding and Bifold doors, this specifies the percent that the doors are open.)

Frame Area

This rollout has controls for the doorjamb frame. Though part of the door object, the frame behaves as if it were part of the wall. It doesn't move when you open or close the door.

Create Frame: This is checked as a default to display the frame. Uncheck this to turn off the display.

Width: Sets the width of the frame parallel to the wall.

Depth: Sets the depth of the frame as it projects from the wall.

Door Offset: Sets the location of the door, relative to the frame. At 0.0, the door is flush with one edge of the trim. Note that this can be a positive or negative value.

Generate Mapping Coords: Assigns mapping coordinates to the door.

Leaf Parameters

Provides controls that affect the door itself (as compared to the door unit, which includes the frame). Here, you can adjust the dimensions of the door, add panels, and adjust the dimensions and placement of those panels. The total number of panels for each door element is the number of horizontal divisions times the number of vertical divisions. PivotDoors have a single door element unless they are double doors. BifoldDoors have two door elements, or four if they are double doors. SlidingDoors have two door elements.

Thickness: Sets the thickness of the door.

Stiles/Top Rail: Sets the width of the panel framing on the top and sides. This setting is apparent only if the door is paneled.

Bottom Rail: Sets the width of the panel framing at the base of the door. This setting is apparent only if the door is paneled.

Horiz. Divisions: Sets the number of panel divisions along the horizontal axis.

Vert. Divisions: Sets the number of panel divisions along the vertical axis.

Muntin: Sets the width of the separations between the panels.

Panel Area

None: Choose this to have no paneling.

Glass: Choose this to have the panels appear as glass panels with no beveling.

Thickness: Sets the thickness of the glass panels.

Beveled: Choose this to have beveled panels.

Bevel Angle: This and the remaining spinners affect the beveling of the panels. This spinner specifies the angle of the bevel between the outer surface of the door and the surface of the panel.

Thickness 1: Sets the outer thickness of the panel.

Thickness 2: Sets the thickness where the bevel begins.

Middle Thick.: Sets the thickness of the inner part of the panel.

Width 1: Sets the width where the bevel begins.

Width 2: Sets the width of the inner part of the panel.

How To

To create a door by dragging:

  1. Make sure Base is the chosen creation method.
  2. Drag in a viewport. This creates the rectangular dimensions of the door in a ground-plan view. Release the mouse to set these dimensions.
  3. Move to define the height of the door.
  4. Click to set the height and create the door

To create a door using Object Snap:

  1. Choose the Object Snap creation method.
  2. In the status bar, click to turn on Object Snap and Absolute Snap.
  3. In the status bar, right-click the Object Snap button to display the Osnap Settings dialog.
  4. Turn on the Object Snap options you want to use.
  5. Move the mouse to find the first snap point. Click to set the first corner of the door.

    6. The two snap points define the opposite corners of the face of the door.

  6. Move the mouse to find the second snap point. Click to set the opposite corner and create the door.


Pivot Door

A PivotDoor is hinged on one side only. You can also make the door a double door, with two door elements that are each hinged on their outer side.

Reference

Pivot Door Paramters

The topic for each kind of door describes its unique controls and behavior. Most door parameters are common to all kinds of doors,see Doors

In the door's Parameters rollout, the three check box controls below the Frame area are specific to PivotDoors.

Double Door: Check this to make a double door.

Flip Swing: Check this change the direction that door swings.

Flip Hinge: Check this to place the door hinges on the opposite side of the door..

This check box is disabled while Double Door is turned on

How To

For an explanation of how to create a door see Doors


Sliding Door

A SlidingDoor slides as if on a track or railing. A SlidingDoor has two door elements: one remains stationary while the other moves.

Reference

Sliding Door Reference

The topic for each kind of door describes its unique controls and behavior. Most door parameters are common to all kinds of doors,see Doors

The two elements are offset by the width of each door element. The Depth parameter of a SlidingDoor is actually half the depth of the extents of the SlidingDoor object.

In the door's Parameters rollout, the three check box controls below the Frame area are specific to SlidingDoors.

Flip Front Back: Check this to change which element is in front, compared to the default.

Flip Side: Check this to change the current sliding element to the stationary element and the stationary elment to the sliding element.

How To

For an explanation of how to create a door see Doors


Bifold Door

A BifoldDoor is hinged in the middle as well as on the side. It has two door elements. You can also make the door a double door, with four door elements.

Reference

Bifold Door Paramters

The topic for each kind of door describes its unique controls and behavior. Most door parameters are common to all kinds of doors,see Doors

In the door's Parameters rollout, the three check box controls below the Frame area are specific to BifoldDoors.

Double Door: Turn this on to make the door a double door.

Flip Swing: Turn this on to make the door swing in the opposite direction from the default.

Flip Hinge: Turn this on to make the door hinged on the opposite side from the default.

This check box is disabled while Double Door is turned on.

How To

For an explanation of how to create a door see Doors


Windows

Windows are useful for architectural models. The Window models let you control details of a Window's appearance. You can also set most kinds of Windows to be open, partially open, or closed.

There are six kinds of windows. Casement Windows have one or two door-like sashes that swing inward or outward. Pivoted Windows pivot at the center of their sash, either vertically or horizontally. Projected Windows have three sashes, two of which open like awnings in opposite directions. Sliding Windows have two sashes, one of which slides either vertically or horizontally. Fixed Windows don't open. Awning Windows have a sash that is hinged at the top.

The topic for each kind of window describes its unique controls and behavior. Most window parameters are common to all kinds of windows, and are described here.

Reference

Creation Method Parameters

Each type of window has the same three items in its Creation Method rollout:

Width/Depth/Height: Sets the mouse to create the first two points defining the width and angle of the base of the window. The second point specifies the width of the window. This lets you align the window with a wall or opening when you place it. The third point specifies the depth of the window, and the fourth specifies the height.

Width/Height/Depth: This option works in the same way as the Width/Depth/Height option, except that the last two points create the Height and then the Depth.

Allow Non-vertical Jambs: When this is checked, and 3D Snap is on (allowing snapping to points off of the construction plane), you can create tilted windows by clicking on points off the construction plane. Since tilted window are not a standard item, this checkbox defaults to clear.

Windows Parameters

Height/Width/Depth: Specifies the overall dimensions of the window.

Frame Area

Horiz. Width: Sets the horizontal width of the window within the frame.

Vert. Width: Sets the vertical width of the window within the frame.

Thickness: Sets the thickness of the frame. This also controls the thickness of casements or railings on the window's sashes.

Glazing Area

Thickness: Specifies the thickness of the glass.

Generate Mapping Coordinates: Creates the object with the appropriate mapping coordinates already applied.

How To

To create a window:

  1. Drag to set the window's length and width.
  2. Release the mouse. You can move the mouse again to change the window's height (that is, its depth), but usually you will want to simply click to set the height at the default value.


Casement

Casement windows have one or two sashes that are hinged like a door.

Reference

Casement Parameters

The topic for each kind of Window describes its unique controls and behavior. Most Window parameters are common to all kinds of Windows,see Windows

Casements Area

Panel Width: Changes the size of the glazed panel within each sash.

One/Two: Specifies the number of window panels, 1 or 2.

Open Window Area

Open: Specifies the percent that the window is open.

Flip Swing: Check this to have the sashes open in the opposite direction.

Generate Mapping Coords: Assigns mapping coordinates to the window.

How To

For an explanation of how to create a Window, see Windows


Sliding

Sliding windows have two sashes -- one fixed, one movable. The sliding part can move either vertically or horizontally.

Reference

Sliding Parameters

The topic for each kind of Window describes its unique controls and behavior. Most Window parameters are common to all kinds of Windows,see Windows

Rail Area

Width: Sets the width of the rails in the sash.

Horiz. Divisions: Sets the number of horizontal divisions in each sash.

Vert Divisions: Sets the number of vertical divisions in each sash.

Chamfered Profile: Check this to chamfer the rails between the glazed panels, as in a conventional wooden window. When not checked, the rails have a rectangular profile.

Pivots Area

Vertical Rotation: Check this to switch from a horizontal pivot to a vertical pivot.

Open Window Area

ung: When selected, the window slides vertically, when clear, the window slides horizontally.

Open: Specifies the percent that the window is open.

Generate Mapping Coords: Assigns mapping coordinates to the window.

How To

For an explanation of how to create a Window, see Windows


Pivoted

A pivoted window has one sash only, hinged at its center. It can swing open either vertically or horizontally.

Reference

Pivoted Parameters

The topic for each kind of Window describes its unique controls and behavior. Most Window parameters are common to all kinds of Windows,see Windows

Rail Area

Width: Sets the width of the rails in the sash.

Pivots Area

Vertical Rotation: Check this to switch from a horizontal pivot to a vertical pivot.

Open Window Area:

Open: Specifies the percent that the window is open.

Generate Mapping Coords: Assigns mapping coordinates to the window.

How To

For an explanation of how to create a Window, see Windows


Fixed

Fixed windows do not open, and have no Open Window control. In addition to the standard window object parameters, there is only the Rails area.

Reference

Fixed Parameters:

The topic for each kind of Window describes its unique controls and behavior. Most Window parameters are common to all kinds of Windows,see Windows

Rail Area

Width: Sets the width (depth) of the rails in the sashes.

Horiz. Divisions: Sets the number of horizontal divisions in each sash.

Vert Divisions: Sets the number of vertical divisions in each sash.

Chamfered Profile: Check this to chamfer the rails between the glazed panels, as in a conventional wooden window. When not checked, the rails have a rectangular profile.

Generate Mapping Coords: Assigns mapping coordinates to the window.

How To

For an explanation of how to create a Window, see Windows


Projected

Projected windows have three sashes. The top sash doesn't move. The bottom two sashes swing open like awning windows, but in opposite directions.

Reference

Projected Parameters

The topic for each kind of Window describes its unique controls and behavior. Most Window parameters are common to all kinds of Windows,see Windows

Rails and Panels Area

Width: Sets the width of the rails and panels in the sashes.

Middle Height: Sets the height of the middle sash, relative to the window’s frame.

Bottom Height: Sets the height of the bottom sash, relative to the window’s frame.

Open Window Area

Open: Specifies the percent that the window is open.

Generate Mapping Coords: Assigns mapping coordinates to the window.

How To

For an explanation of how to create a Window, see Windows


Awning

Awning windows have one or more sashes that are hinged at the top.

Reference

Awning Parameters

The topic for each kind of window describes its unique controls and behavior. Some window parameters are common to all kinds of windows, see Windows

Rail Area

Width: Sets the width (depth) of the rails in the sashes.

Panel Count: Sets the number of sashes in the window. Can range from 1 to 10.

Open Window Area

Open: Specifies the percent that the window is open.

Generate Mapping Coords: Assigns mapping coordinates to the window.

How To

For an explanation of how to create a Window, see Windows


Compound Objects

Compound objects generally combine two or more existing objects into a single object.

Compound Objects include the following object types:

Morph

Boolean

Scatter

Conform

Connect

Shape Merge


Morph

Seed object, target objects

The resulting animation

A morph object combines two or more objects by interpolating the vertices of the first object to match the vertex positions of another object. (This operation is similar to tweening in 2D animation.) Morphing is an animation technique.

The original object is known as the seed object. The object into which the seed object morphs is known as the target object.

You can morph one seed into multiple targets; the seed object's form changes successively to match target objects' forms as the animation plays.

Before you can create a morph, the seed and target objects must meet these conditions:

  • Both objects must be mesh objects.
  • Both objects must have an equal number of vertices.

If these conditions don't apply, the Morph button is grayed out.

You can use any kind of object as a morph target, including an animated object or another morph object, as long as the target is a mesh that has an equal number of vertices to the seed object.

You create morphs in the Create command panel. The Geometry button must be active and you must choose Compound Objects from the object category dropdown list. The Morph button is enabled if the scene geometry allows you to create a morph.

Reference

Pick Targets parameters

When you pick target objects, you designate each target as a Reference, Move (the object itself), Copy, or Instance, according to the radio button selection in the Pick Targets rollout for morph objects.

This choice specifies how the morph object uses the target object. Base your selection on how you want to use the scene geometry after you create the morph.

Copy: When selected, the morph object uses a copy of the target. The original target object is unchanged.

Use Copy when you want to reuse the target geometry for other purposes in the scene.

Move: When selected, the morph object uses the target object itself, moving it into the morph. The original target object disappears and is no longer available after the morph is created.

Use Move if you've created the target geometry to be only a morph target, and have no other use for it.

Instance: When selected, the morph object uses an instance of the target object. If you later change the original target object, the morph object changes as well; and if you change the morph target, the original object changes.

Use Instance to synchronize morphing with animated changes to the original target object.

Reference: When selected, the morph object uses a reference to the target object. If you later change the original target object, the morph object changes as well; but if you change the morph target, the original object does not change.

As previously mentioned, you can use an animated object or another morph as the target of a morph.

Current Targets Parameters

Morph Targets Display: Displays a list of the the current morph targets.

Morph Target Name: Use this field to change the name of the selected morph target in the Morph Targets Display.

Create Morph Key: Adds a morph key for the target at the current frame.

Delete Morph Target: Deletes the currently highlighted morph target. If there are morph keys that reference the target that was deleted, then those keys are deleted as well.

How To

Creating a morph involves the following overall steps:

  • Set up the geometry to use in the morph.
  • Select the morph seed.
  • Select the morph target objects at keyframes.

To set up the morph geometry:

  • Make sure that the objects you want to use as the seed and targets all have the same number of vertices.

Tip: When you create lofts that you want to use as morph seeds and targets, make sure that Morph capping is on and Adaptive Path Steps is off. All shapes in the loft object must have the same number of vertices, and each shape should have both Adaptive and Optimize set to off.

Other shape-based objects, such as those with Extrude or Lathe modifiers, should also have Adaptive and Optimize set to off.

To select a seed for the morph:

  • Select the object to use as the seed object.
  • The seed should be the only object selected.
  • The Morph button is grayed out unless the scene contains morphable geometry and a single seed object is selected.

Warning: The selected object is permanently converted to a morph object as soon as you click Morph, whether or not you proceed to select a target object. The only way to restore the original object is to undo the Morph click.

To select the targets for a morph:

  1. Go to the Create command panel for Geometry and Compound Objects, and select the morph seed, as described above.
  2. Click Morph.

    3. The name of the seed object appears at the top of the Morph Targets list in the Current Targets rollout.

  3. In the Pick Targets rollout, choose the method for creating targets: Reference, Move, Copy, or Instance.

    4. The following topic explains the purpose of each method.

  4. Click Pick Target.
  5. Click to select one or more target objects in the viewports.

    6. As you select each target, its name is added to the Morph Targets list. If an object cannot be a target, for example, it has a different number of vertices than the morph seed, 3DS MAX doesn't let you select it.

    If you select a target object while you are not at frame 0, creating the target also creates a morph key. You can create additional morph keys from targets you've already selected, as the following steps describe.

To create morph keys from existing targets:

  1. Drag the Time Slider to the frame where you want to place the morph key.

    2. The Animate button does not have to be on to set morph keys.

  2. Highlight the name of a target object in the Morph Targets list.

    3. The Create Morph Key button is enabled when a target object name is selected.

  3. Click Create Morph Key.

    4. 3DS MAX places a morph key at the active frame.

    To preview the effect of the morph, you can drag the Time Slider back and forth. You can view and edit the morph keys in Track View, which also lets you view the morph's target object parameters.


Creating Morphs

A morph object combines two or more objects by interpolating the vertices of the first object to match the vertex positions of another object. (This operation is similar to tweening in 2D animation.) Morphing is an animation technique.

The original object is known as the seed object. The object into which the seed object morphs is known as the target object.

You can morph one seed into multiple targets; the seed object's form changes successively to match target objects' forms as the animation plays.

Before you can create a morph, the seed and target objects must meet these conditions:

  • Both objects must be mesh objects.
  • Both objects must have an equal number of vertices.

If these conditions don't apply, the Morph button is grayed out.

You can use any kind of object as a morph target, including an animated object or another morph object, as long as the target is a mesh that has an equal number of vertices to the seed object.

You create morphs in the Create command panel. The Geometry button must be active and you must choose Compound Objects from the object category dropdown list. The Morph button is enabled if the scene geometry allows you to create a morph.

How To

Creating a morph involves the following overall steps:

  • Set up the geometry to use in the morph.
  • Select the morph seed.
  • Select the morph target objects at keyframes.

To set up the morph geometry:

  • Make sure that the objects you want to use as the seed and targets all have the same number of vertices.

Tip: When you create lofts that you want to use as morph seeds and targets, make sure that Morph capping is on and Adaptive Path Steps is off. All shapes in the loft object must have the same number of vertices, and each shape should have both Adaptive and Optimize set to off.

Other shape-based objects, such as those with Extrude or Lathe modifiers, should also have Adaptive and Optimize set to off.

To select a seed for the morph:

  • Select the object to use as the seed object.
  • The seed should be the only object selected.
  • The Morph button is grayed out unless the scene contains morphable geometry and a single seed object is selected.

Warning: The selected object is permanently converted to a morph object as soon as you click Morph, whether or not you proceed to select a target object. The only way to restore the original object is to undo the Morph click.

To select the targets for a morph:

  1. Go to the Create command panel for Geometry and Compound Objects, and select the morph seed, as described above.
  2. Click Morph.

    3. The name of the seed object appears at the top of the Morph Targets list in the Current Targets rollout.

  3. In the Pick Targets rollout, choose the method for creating targets: Reference, Move, Copy, or Instance.

    4. The following topic explains the purpose of each method.

  4. Click Pick Target.
  5. Click to select one or more target objects in the viewports.

    6. As you select each target, its name is added to the Morph Targets list. If an object cannot be a target, for example, it has a different number of vertices than the morph seed, 3DS MAX doesn't let you select it.

    If you select a target object while you are not at frame 0, creating the target also creates a morph key. You can create additional morph keys from targets you've already selected, as the following steps describe.

To create morph keys from existing targets:

  1. Drag the Time Slider to the frame where you want to place the morph key.

    2. The Animate button does not have to be on to set morph keys.

  2. Highlight the name of a target object in the Morph Targets list.

    3. The Create Morph Key button is enabled when a target object name is selected.

  3. Click Create Morph Key.

    4. 3DS MAX places a morph key at the active frame.

    To preview the effect of the morph, you can drag the Time Slider back and forth. You can view and edit the morph keys in Track View, which also lets you view the morph's target object parameters.


Pick Targets

Target Objects

When you pick target objects, you designate each target as a Reference, Move (the object itself), Copy, or Instance, according to the radio button selection in the Pick Targets rollout for morph objects.

This choice specifies how the morph object uses the target object. Base your selection on how you want to use the scene geometry after you create the morph.

Reference

Copy: The morph object uses a copy of the target. The original target object is unchanged.

Use Copy when you want to reuse the target geometry for other purposes in the scene.

Move: The morph object uses the target object itself, moving it into the morph. The original target object disappears and is no longer available after the morph is created.

Use Move if you've created the target geometry to be only a morph target, and have no other use for it.

Instance: The morph object uses an instance of the target object. If you later change the original target object, the morph object changes as well; and if you change the morph target, the original object changes.

Use Instance to synchronize morphing with animated changes to the original target object.

Reference: The morph object uses a reference to the target object. If you later change the original target object, the morph object changes as well; but if you change the morph target, the original object does not change.

As previously mentioned, you can use an animated object or another morph as the target of a morph.


Boolean

A boolean object combines two other objects by performing a Boolean operation on them. For geometry, the Boolean operations are:

  • Union. The boolean object contains the volume of both original objects. The intersecting or overlapping portion of the geometry is removed.
  • Intersection. The boolean object contains only the volume that was common to both original objects (in other words, where they overlapped).
  • Subtraction (or difference). The boolean object contains the volume of one original object with the intersection volume subtracted from it.

The two original objects are called the operands. The first is designated as operand A, the second as operand B.

You create booleans in the Create control panel. The Geometry button must be active and you must choose Compound Objects from the object category dropdown list. The Boolean button is enabled if an object is selected.

Reference

Pick Boolean Parameters

When you pick operand B, you designate it as a Reference, Move (the object itself), Copy, or Instance, according to the radio button selection in the Pick Boolean rollout for boolean objects.

This choice specifies how the boolean object uses the object B geometry. Base your selection on how you want to use the scene geometry after you create the boolean.

Copy: The boolean object uses a copy of the operand B object. The original B object is unchanged.

Use Copy when you want to reuse the operand B geometry for other purposes in the scene.

Move: The boolean object uses the operand B object itself. The original B object disappears and is no longer available after the boolean is created.

Use Move if you've created the operand B geometry only to create a boolean, and have no other use for it.

Instance: The boolean object uses an instance of the operand B object. If you later change the original B object, the boolean object also changes; and if you change the boolean object's B operand, the original B object changes.

Use Instance to synchronize animation of the boolean object with animated changes to the original B object.

Reference: The boolean object uses a reference to the operand B object. If you later change the original B object, the boolean object changes as well; but if you change the boolean object's B operand, the original B object does not change.

Object B geometry becomes part of the boolean object regardless of which copy method you use.

Boolean Parameters

Operands Area

Operands list field: Displays the current operands

Operand A Name: Edit this field to change the name of Operand A

Opernad B Name: Edit this field to change the name of Operand B

Extract Operand: Extracts a copy of the selected operand. Simply choose one of the operands in the list window to enable the button, and then click the Extract Operand button to make a copy or an instance of the original operand.

Note: This button is only enabled in the Modify panel. You cannot extract an operand while in the Create panel.

Operation Area

Union. When selected, the boolean object contains the volume of both original objects. The intersecting or overlapping portion of the geometry is removed.

Intersection. When selected, the boolean object contains only the volume that was common to both original objects (in other words, where they overlapped).

Subtraction (or difference). When selected, the boolean object contains the volume of one original object with the intersection volume subtracted from it.

Boolean objects: union,intersection and subtraction

Display Area

Visualizing the result of a boolean can be tricky, especially if you want to modify or animate it. The Display area in the boolean Parameters rollout helps you visualize how the boolean is put together.

The display controls have no effect until you've created the boolean.

Result: Choose to view the result of the Boolean operation -- that is, the boolean object itself.

Because you usually create boolean objects from overlapping objects, if the B object isn't removed (you don't use the Move option), it often obstructs your view of the completed boolean, or vice versa. You can also move the boolean or the B object to better see the result.

Operands: Choose to view the operands instead of the boolean result.

Show Hidden Ops: Check to view the "hidden" operands in shaded viewports.

Operand geometry remains part of the compound boolean object, although it isn't visible or renderable. When this parameter is checked, 3D Studio MAX displays the operand geometry as wireframes in shaded viewports.

This parameter has no effect if the viewport is not shaded, or if operands are displayed.

Tip: When operands are hard to see in a viewport, you can use the Operand list to select one or the other. Click the name of the A or B operand to select it.

Displaying operands or result

Hidden operands

Update Area

By default, booleans are updated whenever you change the operands. When your scene contains a complicated, animated boolean -- or more than one -- this can impede performance. The update parameters provide some alternate methods that can help performance.

Always: Updates booleans immediately whenever you change an operand, including the original object of an instanced or referenced B operand. This is the default behavior.

When Selected: Updates booleans only when you select them.

If your scene contains multiple boolean objects that you need to update, select all objects to update the booleans, then select none.

When Rendering: Updates booleans only when you render the scene. With this option, viewports won't show current geometry. If in doubt, update booleans manually.

Manually: Updates booleans when you click Update. The Update button is enabled only when Manually is the active option.

Update: Updates the boolean

Optimize Result: When checked, 3D Studio MAX removes co-planar faces when it updates boolean geometry. (The edge between co-planar faces can be visible in renderings.)

How To

To create a boolean:

  1. Select an object.

    2. This object is operand A. Operand A becomes the boolean object; it loses its original type even if you don't perform a Boolean operation on it.

  2. Click Boolean.

    3. The name of operand A appears in the Operands list in the Parameters rollout.

  3. In the Pick Boolean rollout, choose the copy method for operand B: Reference, Move, Copy, or Instance.

    4. These methods are described in the following topic.

  4. In the Parameters rollout, choose the Boolean operation to perform: Union, Intersection, Subtraction (AÐB), or Subtraction (BÐA).
  5. In the Pick Boolean rollout, click Pick Operand B.
  6. Click in a viewport to select the B operand.

    7. 3D Studio MAX performs the Boolean operation.

    The operand objects remain as sub-objects of the boolean object. By modifying the creation parameters of the boolean's operand sub-objects, you can later change operand geometry to change or to animate the boolean result.

    Note: Occasionally the boolean result can have face normals that point the wrong way. You can adjust normals by using the Normal or Edit Mesh modifiers. You can also use the Normal Align command.


Scatter

Scatter is a form of compound object that randomly scatters the selected source object either as an array, or over the surface of a distribution object.

Reference

Pick Distribution Object Parameters

Contains the items necessary to select a distribution object.

Object: Displays the name of the distribution object selected using the Pick button.

Pick Distribution Object: Click this button, then click an object in the scene to specify it as a distribution object.

Reference: Choose this to make the distribution object a reference of the picked object.

Copy: Choose this to make the distribution object an independent copy of the picked object.

Move: Choose this to move the picked object into the distribution object, thus deleting the picked object.

Instance: Choose this to make the distribution object an instance of the picked object.

Scatter Objects Parameters

The items in this rollout let you specify how the source object is scattered, and let you access the objects that make up the compound Scatter object.

Distribution Area

The two options here let you choose the basic method of scattering the source object.

Use Distribution Object: Choose this when you want to scatter the source object based on the geometry of the distribution object.

Use Transforms Only: When selected, a distribution object is not needed. Instead, duplicates of the source object are positioned using the offset values in the Transforms rollout. Note that, if all of the Transform offsets remain at 0, you won’t see the array because all of the duplicates will occupy the same space.

Objects Area

This area contains a list window showing the objects that make up the Scatter object.

List Window: Click to select an object in the window so that you can access it in the Stack. For example, if your distribution object is a sphere, you can click Distribution: D_Sphere01, and then open the Stack list and select Sphere to access the sphere’s parameters.

Source Name: This editable field lets you rename the source object within the compound Scatter object.

Distribution Name: This editable field lets you rename the distribution object.

Source Object Parameters

The parameters in this area affect the source object locally.

Duplicates: Specifies the number of scattered duplicates of the source object. This number is set to 1 as a default, but you can set it to 0 if you want to animate the number of duplicates, beginning with none. Note that the Duplicates number is ignored if you’re distributing the duplicates using either Face Centers or Vertices. In these cases, one duplicate is placed at each vertex or face center, depending on your choice.

Base Scale: Alters the scale of the source object, affecting each of the duplicates identically. This scale occurs before any other transforms.

Vertex Chaos: Applies a random perturbation to the vertices of the source object.

Distribution Object Area

The items in this area affect how the duplicates of the source object are arranged, relative to the distribution object. These options have an effect only when a distribution object is used.

Perpendicular: When selected, each of the duplicate objects is oriented perpendicular to its associate face, vertex, or edge in the distribution object. When clear, the duplicates maintain the same orientation as the original source object.

Use Selected Faces Only: When selected, the distribution is limited to the selected faces passed up the Stack. Perhaps the easiest way to do this is to use the Instance option when picking the distribution object. You can then apply a Mesh Select modifier to the original picked object and select only those faces you want used for the distribution of the duplicates.

Distribute Using: The options below let you specify how the geometry of the distribution object determines the distribution of the source object. These options are ignored if you’re not using a distribution object.

Area: When selected, the duplicate objects are distributed evenly over the total available area of the distribution object.

Even: When selected, Scatter divides the number of faces in the distribution object by the number of duplicates, and skips the appropriate number of faces in the distribution object when placing the duplicates.

Skip N: When selected, the Nth number of faces is skipped when placing the duplicates. The editable field specifies how many faces to skip before when placing the next duplicates. When set to 0, no faces are skipped. When set to 1, every other face is skipped, and so on.

Random Faces: When selected, the duplicates are applied randomly over the surface of the distribution object.

Along Edges: When selected, duplicates are assigned randomly to the edges of the distribution object.

All Vertices: When selected, a duplicate object is placed at each vertex in the distribution object. The Duplicates value is ignored.

All Edge Midpoints: When selected, a duplicate is placed at the midpoint of each segment edge.

All Face Centers: When selected, a duplicate object is placed at each triangular face on the distribution object. The Duplicates value is ignored.

Transforms Parameters

The items in the Transforms rollout let you apply random transform offsets to each of the duplicate objects. The values in the transform fields specify a maximum offset value that’s generated randomlyplus or minusto each duplicate. Thus, if you set a rotation angle of 15 degrees, duplicates are rotated randomly a number of degrees that can range from -15 to 15. For example, one duplicate might be rotated 8 degrees, another -13, another 5, and so on. The Transform settings can be used either with or without a distribution object. Note that, when there is no distribution object, you must adjust the Transform settings in order to see the duplicates.

Rotation Area

Specifies random rotation offsets.

X, Y, Z deg: Enter the maximum amount of random rotational offset you want about the local X, Y, or Z axis of each duplicate.

Use Maximum Range: Check this to force all three spinners to match the maximum value in one of the three. The other two spinners become disabled, and the spinner containing the maximum value remains enabled. If you turn this off, the original values in the two disable spinners are restored.

Local Translation Area

Lets you specify translation of the duplicates along their local axes.

X, Y, Z: Enter the maximum amount of random movement you want along the X, Y, or Z axis of each duplicate.

Use Maximum Range: Check this to force all three spinners to match the maximum value in one of the three. The other two spinners become disabled, and the spinner containing the maximum value remains enabled. If you turn this off, the original values in the two disable spinners are restored.

Translation on Face Area

Lets you specify the translation of the duplicates along barycentric face coordinates of the associate face in the distribution object. These settings have no effect if you’re not using a distribution object.

A, B, N: The first two spinners specify the barycentric coordinates on the surface of the face, while the N spinner sets the offset along the normal of the face.

Use Maximum Range: Check this to force all three spinners to match the maximum value in one of the three. The other two spinners become disabled, and the spinner containing the maximum value remains enabled. If you turn this off, the original values in the two disable spinners are restored.

Scaling Area

Lets you specify the scaling of the duplicates along their local axes.

X, Y, Z %: Specifies the percent of random scaling along the X, Y, or Z axis of each duplicate.

Use Maximum Range: Check this to force all three spinners to match the maximum value in one of the three. The other two spinners become disabled, and the spinner containing the maximum value remains enabled. If you turn this off, the original values in the two disable spinners are restored.

Lock Aspect Ratio: When this is checked, the original aspect ratio of the source object is maintained. Typically, this provide uniform scaling of the duplicates. Note that, when this item is not checked, and any of the X, Y, and Z spinners contain values greater than 0, the result will be non-uniform scaling of the duplicates because the values represent random scaling offsets in both positive and negative directions.

Display Parameters

Provides options that affect the display of the Scatter object.

Display Options Area

These options affect the display of the source and destination objects.

Proxy: Choose this to display the source duplicates as simple wedges. Use this option to speed up viewport redraws when manipulating a complex Scatter object. Note that this has no effect on the rendered image, which always displays the mesh duplicates.

Mesh: Choose this option to display the full geometry of the duplicates.

Display %: Specifies the percentage of the total duplicate objects that appear in the viewports. This has no effect on the rendered scene.

Hide Distribution Object: Check this to hide the distribution object. Note that the hidden object does not appear in the viewport or in the rendered scene.

Uniqueness Area

Lets you set a seed number upon which all of the random values are based. Thus, altering this value changes the overall effect of the scattering.

Seed: Holds the seed number.

Load/Save Presets Parameters

Lets you store preset values that can be used in other Scatter objects. For example, after setting all of your parameters for a specific Scatter object and saving it under a specific name, you can then select another Scatter object, and load the preset values into the new object.

Preset Name: An editable field in which you can define a name for your settings. Click the Save button to save the preset name.

Saved Presets Area

A list window containing all the saved preset names.

Load: Loads the preset currently highlighted in the Saved Presets list.

Save: Saves the current name in the Preset Name field and places it in the Saved Presets window.

Delete: Deletes the selected items in the Save Presets window.

Note: Animated parameter values subsequent to frame 0 are not stored.

How To

Generally, you create a Scatter object as follows:

  1. Create an object to be used as a source object..
  2. Optionally, create an object to be used as a distribution object.
  3. Select the source object, and then click the Scatter button in the Compound Objects panel.

    4. Note: The source object must be either a mesh object or an object that can be converted to a mesh object. If the currently selected object is invalid, the Scatter button will be disabled.

    You now have two basic choices. You can either scatter the source object as an array without using a distribution object, or use a distribution object to scatter the object.

To scatter the source object without a distribution object:

  1. Choose Use Transforms Only in the Distribution area of the Scatter Objects rollout.
  2. Set the Duplicates spinner to specify the total number of duplicates you want of the source object.
  3. Adjust the spinners in the Transforms rollout to set random transformation offsets of the source object.

To scatter the source object using a distribution object:

  1. Make sure the source object is selected.
  2. Chose the option by which you want the distribution object cloned (Reference, Copy, Move, or Instance.)
  3. Click the Pick Distribution Object button, and then click the object you want to use as a distribution object.
  4. Make sure that Use Distribution Object in the Scatter Object rollout is chosen.
  5. Use the Duplicates spinner to specify the number of duplicates. (This is not necessary if you’re using the Face Centers or Vertices distribution method.)
  6. Choose the Distribute Using option in the Distribute Object Parameters area.
  7. Optionally, adjust the various Transform spinners to randomly transform the duplicates.
  8. If the display is too slow, or the meshes too complicated, consider choosing Proxy in the Display rollout, or decreasing the percentage of displayed duplicates by reducing the Display percentage.

    9. Most of the spinner values are animatable, so you can things like the number of duplicates, their transformations, and so on.


Conform (Compound Objects)

Conform

This is a compound object created by projecting the vertices of one object (called the Wrapper) onto the surface of another object (called the Wrap-To). There is also a space-warp version of this function.

Since the space-warp version is somewhat easier to use, we recommend you read through that description first, trying the included example, and then return here to examine this version, which provides additional methods of projecting the wrapper vertices.

Note: This tool gives you the ability to morph between any two objects, regardless of the number of vertices in each object. See the Vertex Projection Direction controls for more information.

Reference

Pick Wrap-To Object

Object: Displays the name of the selected Wrap-To object.

Pick Wrap-To Object: Click this, and then select the object to which you want the current (Wrapper) object to wrap.

Reference: This is one of four options that determine what happens to the Wrap-To object. Choose this option to make the Wrap-To a reference of the original object.

Copy: Pick this to make the Wrap-To object a copy of the picked object.

Move: Choose this to move the picked object into the compound object, leaving no copy behind.

Instance: Choose this to make an instance of the Wrap-To and the picked object.

Conform Parameters

Contains all parameters for the compound object.

Object Area

Provides a list window and two edit fields that let you navigate the compound object, and rename it’s components.

List Window: Lists the Wrapper and the Wrap-To objects. Click to select an object in the window so that you can access it in the Stack.

Wrapper Name: This editable field lets you rename the wrapper object within the compound Conform object.

Wrap-To Object Name: This editable field lets you rename the Wrap-To object.

Vertex Projection Direction Area

Use Active Viewport: One of seven options that determine how the direction of the vertices is determined. When using this option, the vertices are projected away (inward) from the active viewport.

Recalculate Projection: Click this button to recalculate the projection direction for the currently active viewport. Because the direction is initially assigned when you pick the Wrap-To object., if you want to change viewports after assignment, click this button to recalculate the direction based on the new active viewport.

Use Any Object’s Z Axis: Let’s you use the local Z axis of any object in the scene as a direction. Once an object is assigned, you can alter the direction of vertex projection by rotating the direction object.

Pick Z-Axis Object: Click this, and then click the object you want to use to indicate the direction of the projection source.

Object: Displays the name of the direction object.

Along Vertex Normals: Projects the vertices of the Wrapper object inward along the reverse direction of its vertex normals. A vertex normal is a vector produced by averaging the normals of all faces attached to that vertex. If the Wrapper object encloses the Wrap-To object, the Wrapper will effectively take on the form of the Wrap-To object.

Towards Wrapper Center: Projects the vertices toward the bounding center of the Wrapper object.

Towards Wrapper Pivot: Projects the vertices toward the original pivot center of the Wrapper object.

Note: This and the Towards the Wrap-To Pivot options both operate on the position of the original pivot point of the object before the Conform object is created. Once you create the Conform object, it’s a new compound object with a single pivot point.

Towards Wrap-To Center: Projects the vertices toward the bounding center of the Wrap-To object.

Towards the Wrap-To Pivot: Projects the vertices toward the pivot center of the Wrap-To object.

Tip: You can animate the conforming effect by morphing between the compound object and a previously made copy of the original wrapper object. To do this, however, you must check Hide Wrap-To Object in the Updates area so that the original object and the compound object have the same number of vertices. Using this technique, you can effectively morph between two objects with a different number of vertices.

Wrapper Parameters Area

Provides controls that determine how far the vertices are projected.

Default Projection Distance: The distance a vertex in the Wrapper object will move from its original location if it does not intersect the Wrap-To object.

Standoff Distance: The distance maintained between the vertex of the Wrapper object and the surface of the Wrap-To object. For example, if this is set to 5, the vertices can be pushed no closer than 5 units from the surface of the Wrap-To object.

Use Selected Vertices: When this is checked, only the sub-object selection of the vertices of the Wrapper object are pushed, when this is unchecked, all vertices in the object are pushed, regardless of the Stack selection. To access the Stack of the Wrapper object, select the Wrapper object in the list window, and then open the Stack and select the base object name. At this point, you can apply a Mesh Select modifier, for example, and select the vertices you want to affect.

Update Area

The items in this area determine when the projection for the compound object is recalculated. Because complex compound objects can slow things down, you can use these options to avoid constant calculation.

Always: The object is updated constantly.

When Rendering: The object is only recalculated when the scene is rendered.

Manually: When this is chosen, the Update button becomes active for manual recalculation.

Update: Click this button to recalculate the projection.

Hide Wrap-To Object: Click this to hide the Wrap-To object.

Display Area

Determines whether or not the shape operands are displayed.

Result: Displays the result of the operation

Operands: Displays the operands.

How To

To create a compound Conform object, do this:

  1. Position two objects, one of which will be the Wrapper, and the other the Wrap-To. (For this example, create a box as the Wrap-To object, and then create a larger sphere that completely surrounds it. The sphere will be the Wrapper.)
  2. Select the Wrapper object (the sphere), and click the Conform button.

    3. Note: Both objects used in Conform must be either mesh objects or objects that can be converted to mesh objects. If the selected Wrapper object is invalid, the Conform button will be disabled.

  3. Specify the method of vertex projection in the Vertex Projection Direction area. (Choose Along Vertex Normals for this example.)

    4. Note: If you were to choose the Use Active Viewport option, you would next activate whichever viewport looks in the direction that you want to project the vertices. For example, if the Wrapper hovered over a Wrap-To terrain on the home plain, you’d activate the Top viewport.

  4. Choose Reference, Copy, Move, or Instance to specify the type of cloning you want performed on the Wrap-To object. (Choose Instance for this example.)
  5. Click the Pick Wrap-To Object button, and then click the object you want the vertices projected upon. (You can press the H key and use the Select by Name dialog to select the box.)

    6. The list windows display the two objects, and the compound object is created with the Wrapper object conforming to the Wrap-To object. (In the example, the sphere is wrapped into the shape of the box.)

  6. Use the various parameters and settings to alter the vertex projection direction, or adjust the vertices that are being projected.


Connect

The Connect compound object lets you connect two or more objects between “holes” in their surfaces. To do this, you delete faces in each object to create one or more holes in their surfaces, position them so that the holes “face” one another, and then apply Connect.

Note:Connect doesn't work very well with NURBS objects, because they convert into many separate meshes instead of one big mesh. The workaround is simple: apply a Weld modifier to the NURBS object (thus converting it to a mesh and zipping up its seams) before using it as part of a connect.

Connect generates the best mapping coordinates it can for the bridges between the various holes in the meshes. Unfortunately this often isn't saying a lot. While some ideal cases, such as a cylinder above another cylinder, can generate good UVW map interpolations, most cases will not. It is essentially the user's responsibility to apply the sort of mapping they want to the bridge faces with a UVW map modifier.

Vertex colors, on the other hand, should interpolate smoothly.

Reference

Pick Operand Parameters

Pick Operand: Click this button each time you want to connect an additional operand to the original object. Thus, if you begin with a single object with two “holes,” and arrange two additional objects outside of those holes, you click the Pick Operand button and select one of the objects, which is connected, then click Pick Operand again and select the other object, which is connected. Both connected objects are added to the Operands list.

Note: Connect works only with objects that are capable of being converted into Editable Meshes.

Connect Parameters

Operands Area

Editable field: Displays the current operands

Delete Operand: Select an operand in the Operands list, and click this button to delete that operand from the list.

Interpolation Area

Segments: Sets the number of segments in the connecting bridge.

Tension: Controls the curvature in the connecting bridge. A value of 0 provides no curvature, while higher values create curves that attempt to more smoothly match the surface normals on either end of the connecting bridge. Note that this spinner has no apparent effect when Segments is set to 0.

Smoothing Area

Bridge: When this is checked, smoothing is applied between the faces in the connecting bridge.

Ends: When this is checked, smoothing is applied between the faces that border the old and new surfaces of the connecting bridge and the original objects. In addition, when this is unchecked, a new material ID number is assigned to the bridge that is one higher than the highest ID number assigned to either of the original objects. When checked, the ID number is taken from one of the original objects.

Note: If both Bridge and Ends are checked, but the original objects contain no smoothing groups, then smoothing is assigned to the bridge and to the faces bordering the bridge.

Display Area

Determines whether or not the shape operands are displayed.

Result: Displays the result of the operation

Operands: Displays the operands.

Update Area

The items in this area determine when the projection for the compound object is recalculated. Because complex compound objects can slow things down, you can use these options to avoid constant calculation.

Always: The object is updated constantly.

When Rendering: The object is only recalculated when the scene is rendered.

Manually: When this is chosen, the Update button becomes active for manual recalculation.

Update: Click this button to recalculate the projection.

How To

The general use is as follows:

  1. Create two mesh objects, and delete faces on each to create holes where you want to bridge the objects. Generally, the objects should be positioned so that the normals of the deleted faces of one object are pointing toward the normals of the deleted faces of the other object. (Assuming, of course, that deleted faces could have normals.)
  2. Select one of the two objects, and select Connect from the Compound branch of the Create command panel.
  3. Click the Pick Operand button, and then select the other object.
  4. Faces are generated connecting the holes in the two objects.
  5. Adjust the various options to adjust the connection.

The following outline describes only those parts of the Connect compound object that are different than the Boolean compound object.

To connect two cylinders

  1. Create a cylinder with a radius of 15, a height of 30, and default settings for everything else.
  2. Create a second cylinder centered in the first with a radius of 30, a height of 30, and 13 sides. (The fewer sides are to demonstrate the mesh interpolation in the connection.)
  3. Move the first, narrower cylinder straight up along Z so it’s bottom cap is about 15 units above the top cap of the larger cylinder.
  4. Delete the lower cap of the upper cylinder. (Either collapse it to an editable mesh, and select the lower cap faces and delete them, or apply a Mesh Select modifier, select the cap faces, and then apply a DeleteMesh modifier.)
  5. Delete the upper cap of the bottom cylinder.
  6. With the bottom cylinder selected, apply Collapse.
  7. Click the Pick Operand B button, and then click the upper cylinder.

New faces are created that span the openings in the two cylinders.

At this point, you can try out some of the options, and create some interesting animation.

  1. Go to the Modify panel.
  2. Increase the Segments spinner to 5

As the segments increase, the connection becomes curved.

  1. Set the Tension spinner to 0 to straighten the connecting surface, then increase it 1, then return it to 0.5.
  2. Try different combinations of the Bridge and Ends checkboxes.
  3. Click the Sub-Object button.
  4. Select the upper cylinder, turn on the Animate button, and apply various transforms to see the effect.
  5. Play the animation.

    6. Note: Observe the following:

    • You can use Connect on objects that have multiple sets of holes. Connect will do its best to match up the holes between the two objects.
    • The mapping coordinates assigned to the original two objects are maintained as much as possible. There might be some irregularities in the bridged area, depending on the complexity and difference between the two original sets of mapping coordinates and the types of geometry.


Shape Merge

ShapeMerge creates a compound object consisting of a mesh object and one or more shapes. The chosen shapes are either embedded in the mesh, altering the edge and face patterns, or subtracted from the mesh.

Reference

Pick Operand Parameters

Pick Shape: Click this button, and then click the shape you want embedded in the mesh object. The shape is projected onto the mesh object in the direction of the shape’s local negative Z axis. For example, if you create a box, and then create a shape in the Top viewport, the shape is projected onto the top of the box. Note that you can repeat this process to add additional shapes, and the shapes can be projected in different directions. Just click Pick Shape again, and then pick another shape.

Reference/Copy/Move/Instance: These options specify how the shape is transferred to the compound object. It can be transferred either as a reference, a copy, an instance, or moved, in which case the original shape is not left behind.

ShapeMerge Parameters

Operands Area

List field: Lists all the operands in the compound object. The first operand is the mesh object, and there can follow any number of shape-based operands

Delete Shape: Select one or more of the shapes in the list window, and click Delete Shape to remove the selection from the compound object.

Operation Area

The options in this area determine how the shape is applied to the mesh.

Cookie Cutter: Cuts the shape out of the mesh object’s surface.

Merge: Merges the shape with the surface of the mesh object.

Invert: Reverses the effect of either Cookie Cutter or Merge. With the Cookie Cutter option, the effect is obvious. Unchecked, the shape is a hole in the mesh object, and checked, the shape is solid and the mesh is missing. When you’re using Merge, Invert reverses the sub-object mesh selection. As an example, if you merge a circle shape, and apply a Face Extrude, the circular area is extruded when Invert is not checked, and all but the circular area is extruded when Invert is checked.

Output Sub-Mesh Selection Area

Provides options that let you specify what selection level is passed up the Stack. Note that the ShapeMerge object stores all selection levels. That is, the vertices, faces, and edges of the merged shape are all stored with the object. (If you apply a Mesh Select modifier and go to the various sub-object levels, you’ll see the merged shape is selected.) Thus, if you follow the ShapeMerge with a modifier that acts on a specific level, such as Face Extrude, that modifier will work properly. However, if you apply a modifier that can work on any selection level, such as Volume Select or Xform, the options here will specify which selection level is passed to that modifier. Note also that, although you can use a Mesh Select modifier to specify a selection level, the Mesh Select modifier only considers the selection at frame 0. Thus, if you’ve animated the shape operand, that animation will only be passed up the Stack for all frames by use of the Output Sub-Mesh Selection options.

None: Check this to output the full object.

Edge: Outputs the edge of the merged shape.

Vertex: Outputs the vertices defined by the spline of the shape.

Face: Outputs the faces within the merged shape.

Display Area

Determines whether or not the shape operands are displayed.

Result: Displays the result of the operation

Operands: Displays the operands.

Update Area

These options specify when the display of the merge is updated. Typically, these are used when you’ve animated the merged shape operands and it’s slowing down the viewport display.

Always: Update the display at all times.

When Rendering: Update the display only when the scene is rendered.

Manually: Update the display only when the Update button is pushed.

Update: Use this to update the display when any option except Always is chosen.

How To

Generally, you create a ShapeMerge object in the following way:

  1. Create a mesh object and one or more shapes, and align the shapes in the viewport so they can be projected toward the surface of the mesh object.
  2. Select the mesh object, and click the ShapeMerge button.
  3. Specify the direction of projection in the Projection area. (For example, if you want the shape merged on the top of the mesh as seen from the Top viewport, then choose Top.)
  4. Click Pick Shape, and then select the shape.

    5. The geometry of the surface of the mesh object is altered to embed a pattern matching that of the selected shape.


Loft Object

Spline shapes, Path shape created, Lofted shape in wireframe

Loft objects are two dimensional shapes extruded along a third axis. You create loft objects by creating two or more spline objects. One of these splines will be the path. The rest of the splines are the cross sections of your object which are called shapes. As you arrange your shapes along the path, 3DS MAX generates a surface between the shapes.

If there is only one shape on the path, 3DS MAX assumes an identical shape is located at each end of the path. The surface is then generated between the shapes.

3D Studio MAX places few restrictions on how you create your loft object, unlike the traditional shipbuilding and model-building examples above. Using 3DS MAX you can create curved, three-dimensional paths and even three-dimensional cross sections.

You create shape objects to serve as a path for any number of cross-section shapes. The path becomes the framework that holds the cross sections forming your object.

Once you create a loft object you can change and animate its parameters and sub-objects:

  • Add and replace cross-section shapes or replace the path.
  • Change or animate the parameters of the path and shapes.
  • Change or animate the surface parameters of the loft object.

The lofting process first requires that you create shape objects to serve as the path and cross sections of your loft object.

Basic Lofting Process

Creating loft objects is detailed and offers many choices, but the basic process is quite simple. The basic process for creating a loft object is as follows:

  • Create a shape to be the loft path.
  • Create one or more shapes to be loft cross sections.
  • Do one of the following:
  • Select the path shape and use Get Shape to add the cross sections to the loft.
  • Select a shape and use Get Path to assign a path to the loft. Use Get Shape to add additional shapes.

You can use the loft display settings to view the skin generated by your loft in both wireframe and shaded views.

Reference

Creation Method Parameters

Creating loft objects is detailed and offers many choices, but the basic process is quite simple.

Get Path: Assigns a path to the selected shape or changes the current assigned path.

Get Path is located in the Creation Method rollout with Get Shape. The rollout has three options that control what happens to the shape you get as a path:

Move: The path shape becomes part of the loft and no longer exists as an object in the scene.

Copy: A copy of the path shape is used in the loft object. The original shape and the copy in the loft are independent. Changing one has no effect on the other.

Instance: An instance of the path shape is used in the loft. The original shape and the instance represent the same object. Changing one also changes the other.

Tip: You might find it easier to use the Instance option if you expect to edit or modify the path after the loft is created.

Get Shape: Selects a path shape and then place a cross section on the path. You can also use Get Shape to add or replace shapes along a loft object's path.

Get Shape is located in the Creation Method rollout with Get Path. The rollout has three options that control what happens to the shape you get as a path:

Move: The shape becomes part of the loft and no longer exists as an object in the scene.

Copy: A copy of the shape is used in the loft object. The original shape and the copy in the loft are independent. Changing one has no effect on the other.

Instance: An instance of the shape is used in the loft. The original shape and the instance represent the same object. Changing one also changes the other.

Tip: You might find it easier to use the Instance option if you expect to edit or modify the shapes after the loft is created.

Surface Parameters

Smoothing Area

Smooth Length: Check Smooth Length when you want a smooth surface along the length of the path. This type of smoothing is useful when your path curves or when shapes on the path change size. Default=selected

Smooth Width: Check Smooth Width when you want a smooth surface around the perimeter of the cross-section shapes. This type of smoothing is useful when your shapes change the number of vertices or change form. Default=selected

Mapping Area

Apply Mapping: Toggles the application on lofted mapping coordinates on and off. Apply Mapping must be checked before you can access the remaining items.

Length Repeat: Sets how many times a map repeats along the length of the path. The bottom of the map is placed at the first vertex of the path.

Width Repeat: Sets how many times a map repeats around the perimeter of cross-section shapes. The left edge of a map is aligned with the first vertex of each shape.

Normalize: Toggles how path vertex spacing affects a map along both the path length and shape width. When checked, vertices are ignored. Map coordinates and Repeat values are applied evenly along the length of the path and around the shapes.

When unchecked, major path divisions and shape vertex spacing affects map coordinate spacing. Map coordinates and Repeat values are applied proportionally according to the path division spacing or shape vertex spacing.

Skin Parameters

Capping Area

Cap Start: When selected, the end of a loft at the first vertex of the path is covered, or capped. When unchecked, the end is open, or uncapped. Default=selected.

Cap End: When selected, the end of a loft at the last vertex of the path is covered, or capped. When unchecked, the end is open, or uncapped. Default=selected.

Morph: When selected, cap faces are arranged in a predictable, repeatable pattern necessary for creating morph targets. Morph capping can generate long, thin faces that do not render or deform as well as those created with grid capping.

Grid: When selected, cap faces are arranged in a rectangular grid trimmed at the shape boundaries. This method produces a surface of evenly sized faces that can be easily deformed by other modifiers.

Options Area

Shape Steps: Sets the number of steps between each vertex of the cross section shapes. This value affects the number of sides around the perimeter of the loft.

Path Steps: Sets the number of steps between each main division of the path. This value affects the number of segments along the length of the loft.

Optimize Shapes: When selected, the Shape Steps setting is ignored for straight segments of cross-section shapes. If multiple shapes are on the path, only straight segments that have a match on all shapes get optimized. Default=clear.

Adaptive Path Steps: When checked, Adaptive Path Steps is turned on. 3D Studio MAX analyzes your loft and adapts the number of path divisions to generate the best skin. Main divisions along the path occur at path vertices. shape locations, and deformation curve vertices. Whenclear, Adaptive Path Steps is turned off, and main divisions along the path only occur at path vertices. Default=selected

Contour: When selected, each shape follows the curvature of the path. The positive Z axis of each shape is aligned with the tangent to the path at the shape's level. When clear, all shapes remain parallel and have the same orientation as a shape placed at level 0. Default=selected.

Banking: When selected, shapes rotate about the path whenever the path bends and changes height in the path's local Z axis. The bank amount is controlled automatically by 3DS MAX. Banking is ignored if the path is 2D. When clear, shapes do not rotate about their Z axis as they traverse a 3D path. Default=selected.

Constant Cross Section: When selected, the cross-sections are scaled at angles in the path to maintain uniform path width. When this is clear, the cross sections maintain their original local dimensions, which causes pinching at path angles.

Linear Interpolation : When selected, generates a loft skin with straight edges between each shape. When clear, generates a loft skin with smooth curves between each shape. Default=clear.

Display Area

Skin: When selected, displays a loft's skin in all views using any shading level. When Skin is checked the setting of Skin in Shaded is ignored. When unchecked, displays only the loft sub-objects. Default=clear.

Skin in Shaded: When selected, always displays a loft's skin in shaded views regardless of the Skin setting. When unchecked, skin display is controlled by the Skin setting. Default=selected.

Path Parameters

Path: Use the Path field to set a path level by entering a value or dragging the spinner. If Snap is on, the value will jump to the previous snap increment. The Path value depends on the selected measuring method. Changing the measuring method causes the Path value to change.

Snap: Enter a snap-spacing value in the field. The Snap value depends on the selected measuring method. Changing the measuring method also changes the Snap value to keep snap spacing constant.

On: When selected, Snap is active. Default is clear

Percentage: Expresses the path level as a percentage of the total path length.

Distance: Expresses the path level as an absolute distance from the first vertex of the path.

Path Steps: When this option is chosen, shapes are placed on path steps and vertices, rather than as a percentage or a distance along the path.

When Path Steps is chosen, the following takes place:

  • The Path spinner specifies the step along the path. The first step, at 0, is the first vertex.
  • The total number of steps, including vertices, appears in parenthesis beside the Path spinner.
  • The current path level is indicated by the standard yellow X when it’s a step, and by a small boxed X when it’s a vertex.
  • Get Shape places a selected shape on the specified step or a vertex of the path.
  • Adaptive Path Steps in the Skin Parameters rollout is disabled because, to do otherwise would cause the path steps, and therefore the shapes, to change positions along the path depending on the result of the adaptive algorithm.

Caution: Please note the following when using the Path Steps option:

  • When you switch to Path Steps on a loft object that already contains one or more shapes, an alert appears telling you that this may relocate shapes. This is because there are a limited number of path steps, and only one shape can be on any single step or vertex. The Percentage or Distance options, on the other hand, provide an almost unlimited number of levels on which to place a shape. Thus, if you change from Percentage or Distance to Path Steps, the shapes must be moved to existing steps. If there are more shapes than can be moved to nearby steps, you could wind up with more than one shape on a step. Switching from Path Steps to either Percentage or Distance, however, can always be done without loss of data.
  • If you alter the Path Steps spinner while in Path Steps mode, the location of your shapes might change. An alert message appears warning you of this.
  • If you animate the topology of the path while in Path Steps mode (such as animating the number of sides of an NGon), your shapes might jump around trying to find a legitimate position, and you could end up with more than one shape on the same path level, in some cases.

Pick Shape: Click this button to set the current level at any shape on the path. When you pick a shape on the path, Snap is turned off and Path is set to the level of the picked shape. The pick shape highlights in green.

Use the Previous Shape and Next Shape buttons to jump the current level to the previous or next shape on the path, highlighting the shape in green. Clicking these button also turns Snap off.

Previous Shape: Jumps the path level from its current location to the previous shape along the path.

Next Shape: Jumps the path level from its current location to the next shape along the path.

How To

To create a loft with Get Path:

  1. Select a shape as the first cross section shape.
  2. Click the Geometry button in the Create panel then choose Loft Object from the category list.
  3. Click Loft in the Object Type rollout.
  4. Click Get Path in the Creation Method rollout.
  5. Choose Move, Copy, or Instance.
  6. Click a shape for the path.

    7. The cursor changes to the Get Path cursor as you drag it over potential valid path shapes. If the cursor does not change over a shape, that shape is not a valid path shape and cannot be selected. The first vertex of the selected path is placed at the first shape's pivot and the path tangent is aligned with the shape's local Z axis.

To create a loft with Get Shape:

  1. Select a a valid path shape as the path.

    2. If the selected shape is not a valid path, the Get Shape button will be disabled.

  2. Click the Geometry button in the Create panel then choose Loft Object from the category list.
  3. Click Loft in the Object Type rollout.
  4. Click Get Shape in the Creation Method rollout.
  5. Choose Move, Copy, or Instance.
  6. Click a shape.

    7. The cursor changes to the Get Shape cursor as you drag it over potential shapes. The selected shape is placed at the first vertex of the path.

    #ENDNUMBLOCK#


Constant Cross Section

In the Options area of the Skin Parameters rollout is a new checkbox, labeled Constant Cross-Section. When this is checked (the default), the cross-sections are scaled at angles in the path to maintain uniform path width. When this is not checked, the cross sections maintain their original local dimensions, which causes pinching at path angles. The unchecked method is the way cross-sections were handled originally. Note that acute (small) angles of the path can cause problems when this item is checked.

How To

To use Constant Cross-Section

  1. Enlarge the Front viewport to full screen, and the use the Rectangle tool with CTRL held down to create a square approximately 20 x 20 units.
  2. Create another rectangle beside it that’s 200 x 100 units.
  3. Apply a Skew modifier to the large rectangle, but don’t alter the Skew parameters.
  4. Create a loft object in which the larger rectangle is the path and the square is the shape.
  5. In the Modify panel, open the Skin Parameters rollout, and check Skin in the Display area.

    6. You can now see the wireframe structure of the lofted rectangle, whose cross-sectional sides remain parallel right up to its corners.

    Note: Make sure the color assigned the loft object is easily visible. Change it, if necessary.

  6. Uncheck Constant Cross-Section, observe the corners

    7. When Constant Cross-Section is unchecked, the corners become pinched.

  7. Check Constant Cross-Section again to restore the corners.

    8. Acute angles can cause problems when the cross-sections formed by the path steps intersect at the corners. You can mitigate this either by avoiding acute angles, or by reducing the path steps.

  8. Press H (Select by Name), and choose Rectangle 2 (or whichever name was given to the larger rectangle used as the path).
  9. In the Skew panel, change the Skew Axis to Y, and then set the Amount spinner to about 95.
  10. Use Region Zoom to zoom in on the upper-left corner of the rectangle so you can see the mesh in detail.

    11. At a skew of less than 100, the acute angle still works because the path cross-sections haven’t intersected.

  11. Set the Skew Amount to about 300, and examine the same corner.

    12. At this angle, the path cross-sections intersect, causing problems in the mesh.

  12. Select the loft object, and set the Path Steps to 1.

    13. The cross-sections no longer intersect, and the corner is clean.

    You can see that, when creating straight-edge molding for architectural modeling, and such, you can avoid mangled corners by simply reducing the path steps to 0.


Path Steps

A third option button, called Path Steps, has been added to the Path Parameters rollout. When this option is chosen, shapes are placed on path steps and vertices, rather than as a percentage or a distance along the path. This provides similar functionality to the way 3DS R4 placed shapes.

When Path Steps is chosen, the following takes place:

  • The Path spinner specifies the step along the path. The first step, at 0, is the first vertex.
  • The total number of steps, including vertices, appears in parenthesis beside the Path spinner.
  • The current path level is indicated by the standard yellow X when it’s a step, and by a small boxed X when it’s a vertex.
  • Get Shape places a selected shape on the specified step or a vertex of the path.
  • Adaptive Path Steps in the Skin Parameters rollout is disabled because, to do otherwise would cause the path steps, and therefore the shapes, to change positions along the path depending on the result of the adaptive algorithm.

Caution: Please note the following when using the Path Steps option:

  • When you switch to Path Steps on a loft object that already contains one or more shapes, an alert appears telling you that this may relocate shapes. This is because there are a limited number of path steps, and only one shape can be on any single step or vertex. The Percentage or Distance options, on the other hand, provide an almost unlimited number of levels on which to place a shape. Thus, if you change from Percentage or Distance to Path Steps, the shapes must be moved to existing steps. If there are more shapes than can be moved to nearby steps, you could wind up with more than one shape on a step. Switching from Path Steps to either Percentage or Distance, however, can always be done without loss of data.
  • If you alter the Path Steps spinner while in Path Steps mode, the location of your shapes might change. An alert message appears warning you of this.
  • If you animate the topology of the path while in Path Steps mode (such as animating the number of sides of an NGon), your shapes might jump around trying to find a legitimate position, and you could end up with more than one shape on the same path level, in some cases.


Particle Systems (Particle Patch)

Particle Systems

Particle systems are objects that generate sub-objects called particles, for the purpose of simulating snow, rain, dust, and so on. The particle system object generates the particles over time -- you use particle systems primarily in animations.

3D Studio MAX provides six built-in particle systems:

Spray

Snow

Super Spray

Blizzard

PArray

PCloud

Snowstorm created as a particle system

Other plug-in particle systems might be available in your configuration. This topic describes general properties of particle systems, and the topics that follow describe only the built-in particle systems.

Note: The Deflector, Gravity, and Wind space warps are specifically for use with particle systems.

The built-in particle systems share some characteristics:

Emitter: Specifies where in the scene the particles are generated. Particles appear on the surface of the emitter and fall (drift, drop, flurry, spray) from the emitter in a particular direction.

Emitter in a viewport

Timing: The timing parameters control the dynamics of particles in the system -- how quickly particles appear, how quickly they disappear, and whether the base rate is constant.

Particle parameters: For example, particle size and speed. These parameters are specific to the kind of particle system.

Rendering properties: These parameters are also specific to the kind of particle system. In general, there are options for how to display particles in viewports and how to render them in scenes and animations, but the particles do not appear the same in renderings as they do in viewports.

You can modify and animate particle system parameters.

You create particle systems in the Create control panel. The Geometry button must be active and you must choose Particle Systems from the object category dropdown list.


Spray

Spray simulates water drops such as rain, a fountain, the rain from a garden hose, and so on.

Kinds of Spray

Reference

Spray Parameters

The particle parameters for Spray appear in the Particles area of the Parameters rollout.

Particle Area

Viewport Count: Maximum number of particles displayed in viewports at any given frame.

Render Count: Maximum number of particles that can appear in a single frame when you render it. Works in combination with the particle system's timing parameters.

Drop Size: Size of a particle in the active units.

Speed: Iinitial velocity of each particle as it leaves the emitter. Particles travel at this speed unless they are affected by a particle system space warp.

Variation: Varies the initial speed and direction of particles. The greater the Variation, the stronger and broader the spray.

Drops, Dots, or Ticks: Select how particles are displayed in viewports. The display setting does not affect how particles are rendered. Drops are streaks that appear like raindrops, dots are points, ticks are small plus signs.

Render Area

The rendering parameters for Spray appear in the Rendering area of the Parameters rollout.

Tetrahedron: Particles are rendered as long tetrahedrons, with the length you specify in the Size parameter. Tetrahedron is the default setting for rendering. It provides a basic simulation of water drops.

Facing: Particles are rendered as square faces whose width and height equals Size. Facing particles are provided especially for use with material maps.

Timing Area

Timing parameters control the "birth and death" rates of emitted particles.

You set timing parameters in the Timing area of the particle system's Parameters rollout.

A particle system's Render Count is a creation parameter. It sets the maximum number of particles visible in the scene at any rendered frame. (Render Count is described in the topics that follow.)

At the bottom of the Timing area is a line that displays the maximum sustainable rate. This value is based on the Render Count and the lifetime of each particle. To be precise:

maximum sustainable rate=Render Count/Life

Because the number of particles in a frame never exceeds Render Count, if the Birth Rate exceeds the maximum rate, the system will run out of particles, pause until some die off, and then start again, generating bursts or spurts of particles.

Start: Number of the first frame where particles appear.

Life: The lifetime of a particle, in number of frames.

Birth Rate: The number of new particles born per frame. If this is less than or equal to the maximum sustainable rate, the particle system generates an even flow of particles. If it is greater than the maximum rate, the particle system generates particles in bursts. You can animate the Birth Rate parameter.

Constant: When checked, the Birth Rate parameter is disabled and the birth rate used equals the maximum sustainable rate. When Constant is unchecked, Birth Rate is enabled. Unchecking Constant does not mean that the birth rate varies automatically -- the birth rate remains constant at the Birth Rate setting unless you animate the Birth Rate parameter.

Emitter Area

The emitter specifies the area where particles appear in the scene. It has a geometry you can display in viewports, but it isn't renderable.

The emitter is displayed as a rectangle with a vector pointing out of one side. The vector shows the direction in which the system emits particles.

You set emitter parameters in the Emitter area of the particle system's Parameters rollout.

Width and Length: You implicitly set the initial value of these parameters when you drag in a viewport to create the emitter. You can adjust the values in the rollout.

The height of the particle system is not specified by the emitter. It is implicitly specified by a combination of particle speed, set in the parameters specific to the kind of particle system, and particle lifetime, set in the timing parameters as described below.

Hide: Check to hide the emitter in viewports. When Hide is unchecked, the emitter is displayed in viewports. The emitter is never rendered.

How To

To create spray:

  1. In the Create control panel, make sure the Geometry button is active and Particle Systems is selected from the object category dropdown list, and then click Spray.
  2. Drag in a viewport to create the Spray emitter.

    3. The emitter's direction vector points in the negative Z direction of the active construction plane.


Snow

Snow simulates falling snow or confetti. The snow system is similar to spray -- there are additional parameters to generate tumbling snowflakes, and different rendering options.

Kinds of Snow

Reference

Snow Parameters

The particle parameters for Snow appear in the Particles area of the Parameters rollout.

Particles Area

Viewport Count: Maximum number of particles displayed in viewports at any given frame.

Render Count: Maximum number of particles that can appear in a single frame when you render it. Works in combination with the particle system's timing parameters.

Flake Size: Size of a particle in the active units.

Speed: Initial velocity of each particle as it leaves the emitter. Particles travel at this speed unless they are affected by a particle system space warp.

Variation: Varies the initial speed and direction of particles. The greater the Variation, the broader the area of snowfall.

Tumble: Amount of random rotation for snowflake particles. This parameter can range from 0 to 1. At 0, flakes do not rotate; at 1, they rotate the most. The axis of rotation is generated randomly for each particle.

Tumble Rate: Speed at which snowflakes rotate. The greater the Tumble Rate, the faster the rotation.

Flakes, Dots, or Ticks: Select how particles are displayed in viewports. The display setting does not affect how particles are rendered. Flakes are star-shaped snowflakes, dots are points, ticks are small plus signs.

Render Area

The rendering parameters for Snow appear in the Rendering area of the Parameters rollout.

Six Point: Each particle is rendered as a six-pointed star. Each side of the star is a face to which you can assign a material. This is the default setting for rendering.

Triangle: Each particle is rendered as a triangle. Only one side of the triangle is a face to which you can assign a material.

Facing: Particles are rendered as square faces whose width and height equals Size. Facing particles are provided especially for use with material maps

Note: Facing only works correctly in a perspective or camera view.

Timing Area

Timing parameters control the "birth and death" rates of emitted particles.

You set timing parameters in the Timing area of the particle system's Parameters rollout.

A particle system's Render Count is a creation parameter. It sets the maximum number of particles visible in the scene at any rendered frame. (Render Count is described in the topics that follow.)

At the bottom of the Timing area is a line that displays the maximum sustainable rate. This value is based on the Render Count and the lifetime of each particle. To be precise:

maximum sustainable rate=Render Count/Life

Because the number of particles in a frame never exceeds Render Count, if the Birth Rate exceeds the maximum rate, the system will run out of particles, pause until some die off, and then start again, generating bursts or spurts of particles.

Start: Number of the first frame where particles appear.

Life: The lifetime of a particle, in number of frames.

Birth Rate: The number of new particles born per frame. If this is less than or equal to the maximum sustainable rate, the particle system generates an even flow of particles. If it is greater than the maximum rate, the particle system generates particles in bursts. You can animate the Birth Rate parameter.

Constant: When checked, the Birth Rate parameter is disabled and the birth rate used equals the maximum sustainable rate. When Constant is unchecked, Birth Rate is enabled. Unchecking Constant does not mean that the birth rate varies automatically -- the birth rate remains constant at the Birth Rate setting unless you animate the Birth Rate parameter.

Emitter Area

The emitter specifies the area where particles appear in the scene. It has a geometry you can display in viewports, but it isn't renderable.

The emitter is displayed as a rectangle with a vector pointing out of one side. The vector shows the direction in which the system emits particles.

You set emitter parameters in the Emitter area of the particle system's Parameters rollout.

Width and Length: You implicitly set the initial value of these parameters when you drag in a viewport to create the emitter. You can adjust the values in the rollout.

The height of the particle system is not specified by the emitter. It is implicitly specified by a combination of particle speed, set in the parameters specific to the kind of particle system, and particle lifetime, set in the timing parameters as described below.

Hide: Check to hide the emitter in viewports. When Hide is unchecked, the emitter is displayed in viewports. The emitter is never rendered.

How To

To create snow:

  1. In the Create control panel, make sure the Geometry button is active and Particle Systems is selected from the object category dropdown list, and then click Snow.
  2. Drag in a viewport to create the Snow emitter.

    3. The emitter's direction vector points in the negative Z direction of the active construction plane.


Super Spray

Emits a controlled spray of particles. This particle systems is like the old Spray particle system with the added power provided by all of the new particle systems.

Reference

Basic Parameters

The controls in this rollout determine how the particles form on leaving the emitter.

Particle Formation Area

These items control the direction and the spread of the particles.

Off Axis: Affects the angle of the particle stream off of the Z axis (along the plane of the X axis).

Spread: Affects the spread of the particles away from the emission vector, along the plane of the X axis).

Off Plane: Affects the angle of emission about the Z axis. Note that this has no effect if the Off Axis value is zero.

Spread: Affects the spread of the particles about the Off Plane axis. This has no effect if Off Axis is set to zero.

Particle Motion Area

Speed: The speed of the particle at birth, in units per frame.

Variation: Applies a percentage of variation to the speed of emission for each particle.

The rest of the Super Spray rollouts and their contents are identical with those in Particle Array, except that Object Fragments and their associated settings are not available in the Particle Type rollout.

The remaining Blizzard parameters are identical to parameters found in PArray. See PArray for details.

How To

To create a Super Spray particle system, do this:

  1. Click the Super Spray button in the Particle System branch of the Create command panel.
  2. Drag in any viewport to create the Super Spray emitter icon.

    3. The icon appears as an intersecting plane and circle with an arrow. The initial direction of the spray (based on the orientation of the emitter icon and indicated by the icon arrow) is dependent on the viewport in which you create the icon. Generally, the particles spray toward you when created in an orthographic viewport, or spray up when created in a Perspective viewport.

  3. Adjust the various parameters to alter the spray effect.


Blizzard

This is an advanced version of the original Snow particle system.

Reference

Blizzard Parameters

The emitter specifies the location where particles are generated in the scene. It has a geometry you can display in viewports, but it isn't renderable.

The emitter is displayed as a rectangle with a vector pointing out of one side. The vector shows the direction in which the system emits particles.

You set emitter parameters in the Display Icon area of the particle system's Parameters rollout.

Display Icon Area

Width and Length: You implicitly set the initial value of these parameters when you drag in a viewport to create the emitter. You can adjust the values in the rollout.

The height of the particle system is not specified by the emitter. It is implicitly specified by a combination of particle speed, set in the parameters specific to the kind of particle system, and particle lifetime, set in the timing parameters as described below.

Emitter hidden: Check to hide the emitter in viewports. When Emitter Hidden is unchecked, the emitter is displayed in viewports. The emitter is never rendered.

Particle Generation Parameters

Specifies the number, size, and motion of the particles.

Particle Motion Area

Speed: The speed of the particle at birth, in units per frame.

Variation: Applies a percentage of variation to the speed of emission for each particle.

Tumble: Amount of random rotation of the particles.

Tumble Rate: Speed at which the particles rotate.

Particle Type Parameters

Mat’l Mapping and Source Area

Emitter Fit Planar: When this is chosen, the particles are mapped, at birth, based on their point of emission from the rectangular Blizzard emitter icon. The UV range of the mapped material runs from 0 to 1 over the width and length of the emitter.

The remaining Blizzard parameters are identical to parameters found in PArray. See PArray for details.

How To

To create a Blizzard particle system, do this:

  1. Click the Blizzard button in the Particle System branch of the Create command panel.
  2. Drag in a viewport to create the Blizzard emitter. The icon appears as a plane with a perpendicular line pointing in the direction of emission.
  3. Adjust the various parameters in the command panel.


PArray

The Particle Array tool provides two types of particle effects:

  • You can use it to emit particles using a selected geometric object as the emitter templateor patternfor the emission. This object is referred to here as the distribution object.

You can use it to create sophisticated object explosions.

Using Materials with Particle Array

Using Multi/Sub-Object Materials

Using Mapped Materials

Achieving Particle Motion Blur

Using Spawned Particles

Reference

Basic Parameters

The items in the Basic Parameters rollout let you create and adjust the size of the particle-system, and pick the distribution object. In addition, they let you specify the initial distribution of the particles in relation to the geometry of the distribution object, and the initial velocity of the particles from the distribution object. From here, you can also specify how the particles appear in the viewport.

Object-Based Emitter Area

Pick Object: After you create your particle-system object, the Pick Object button becomes available. Click this button, and then click to select an object in your scene. The selected object becomes the object-based emitter, and is used either as the source geometry over which particles form, or the source geometry used to create particles that appear to be fragments of the object.

Object (text): Displays the name of the picked object.

Particle Formation Area

The options in this section determine how standard particles are initially distributed over the surface of the object-based emitter. These controls are only available when the picked object is used as a distribution grid for standard particles or MetaParticles. When Object Fragments is chosen in the Particle Type rollout, these controls are disabled.

Over Entire Surface: Emits particles randomly over the entire surface of the object-based emitter.

Along Visible Edge: Emits particles randomly from the visible edges of the object.

At All Vertices: Emits particles from the vertices of the object.

At Distinct Points: Places a specified number of emitter points randomly over the surface of the object.

Total: Specifies the number of emitter points used when At Distinct Points is chosen.

At Face Centers: Emits particles from the center of each triangular face.

Note: You can best see the emission patterns by first setting the three spinners in the Particle Motion area to zero. Move to a frame in which the particles appear, and then choose the various Particle Formation options.

Display Icon Area

Adjusts the display of the particle-system icon in the viewports. (The particle-system icon is usually called the "emitter" for most particle systems. In this case, however, it doesn’t actually emit particles, so we’re avoiding the term.)

Icon Size: Sets the overall size of the icon, in units.

Icon Hidden: When checked, the PArray icon is hidden in the viewports. Note that the icon does not render, in any case.

Viewport Display Area

Specifies how the particles are displayed in the viewports.

Dots: Choose this to display the particles as dots.

Ticks: Display the particles as crosses.

Mesh: Display the particles as mesh objects,. Note that this result in slower viewport redraws. Note also that Constant and Facing particle types cannot be displayed in the viewports as meshes. If you choose either of these particle types, the Mesh option becomes disabled, and the Ticks option is automatically chosen.

BBox: For instanced geometry only, this displays each instanced particle, whether a single object, a hierarchy, or a group, as a bounding box.

Percentage of Particles: Set this spinner to specify the number particles displayed in the viewports as a percentage of the number of rendered particles.

Particle Generation Parameters

Many of the items in this rollout control when, and how quickly particles form, as well as the size of the particles over time.

Particle Quantity Area

In this area, you can choose two methods by which the number of particles is determined over time. These settings are not used when you fragment the object-based emitter.

Use Rate: When chosen, the value in the spinner below this specifies the number of particles formed per frame.

Use Total: When chosen, the value in the spinner below specifies the number of particles formed over the life of the system. The life of the system, in frames, is specified by the Life spinner in the Particle Timing area, described in the next section.

Tip: Generally, Use Rate is best for a continuous flow of particles, like a trail of pixie dust, while Use Total is better for bursts of particles over a short period of time.

Particle Motion Area

The three spinners here control the initial particle velocity, which is directed along the surface, edge, or vertex normals (interpolated for each emitter point).

Speed: The speed of the particle at birthalong the normalin units traveled per frame.

Variation: Applies a percentage of variation to the speed of emission for each particle.

Divergence: Applies an angular degree of variation by which each particle's velocity may vary from the emitter normal.

Note: The initial direction for fragment clusters is the normal of the cluster’s seed face. Clusters are created by choosing a single face (the seed face), and then creating a cluster outward from that face, depending on the method chosen in the Object Fragment Controls area.

Particle Timing

The items in this area specify when the particles first begin to be emitted, when they’re no longer emitted, and the lifespan of the individual particles.

Emit Start: Sets the frame at which particles begin to exist in the scene.

Emit Stop: Sets the last frame at which particles are emitted. This setting has no effect if an object is fragmented.

Display Until: Specifies a time at which all particles will disappear, regardless of other settings.

Life: Sets the lifespan of each particle from the time of creation.

Variation: Specifies the number of frames by which the life of each particle can vary from the norm.

Subframe Sampling: Checking any of the three checkboxes below helps avoid particle "puffing" by sampling particles at a much higher subframe resolution, instead of the relatively coarse frame resolution. Depending on your needs, you can do this over time, over motion, or over rotation.

Creation Time: This option, when checked, enables the addition of a time offset to the equations of motion that prevents puffing in time. This setting has no effect if an object is fragmenting.

Emitter Translation: If the object-based emitter is moving in space, particles are created at integral times at positions along the geometry's path between renderable positions. This prevents puffing in space. This setting has no effect if an object is fragmenting.

Emitter Rotation: If the emitter is rotating, check this to avoid puffing and produce smooth spiral effects.

Important: Each additional checkbox that you turn on progressively increases the necessary computation. In addition, the methods are listed in order of least amount of computation to most. Thus, Emitter Rotation is more costly than Emitter Translation, which is more costly than Creation Time.

Particle Size

Area The four spinners in this area specify the size of the particles.

Size: This animatable parameter specifies the target size for all particles in the system, depending on the type of particle:

Standard Particles: The major dimension of the particle.

Constant: The dimension, in rendered pixels, of a Constant type of particle.

Object Fragments: No effect.

Variation: The percentage by which the size of each particle may vary from the norm. This is applied to the Size value.

Grow For: The number of intervals over which the particle grows from being very small (0.1a system constant) to the Size value. The result is subject to the Size/Variation value, since Grow For is applied after Variation.

Fade For: The number of intervals over which the particle will shrink to 1/10th its Size setting prior to its death. This is also applied after Variation.

Uniqueness Area

By changing the Seed value in this spinner, you achieve different results using otherwise identical particle settings.

New: Click this to randomly generate a new seed value.

Seed: Use this spinner to set a specific seed value.

Particle Type Parameters

The controls in this rollout let you specify the type of particle used and the type of mapping performed on the particles.

Particle Types Area

The option buttons in this area specify one of four categories of particle type. Depending on which option you choose, controls become enabled in the lower portion of the Particle Type rollout. Broadly, there are four categories of particle type.

Standard Particles: Select this to use one of several standard particle types, such as triangles, cubes, tetras, and so on.

MetaParticles: Choose this to use Metaball particles.

Object Fragments: Choose this to create particles out of fragments of the object.

Instanced Geometry: Choose this to generate particles that are instances of either an object, a linked hierarchy of objects, or a group. The object is selected in the Instancing Parameters area further down in the Particle Types rollout.

Note: Only one type of particle can be used for the particle system. However, you can have more than one particle array bound to a single object, and each particle array can emit a different type of particle.

Standard Particles Area

When the Standard Particles option button in the Particle Types area is chosen, the option buttons in this area become enabled. Choose from one of the following option buttons to specify a type of particle:

Triangle: Renders each particle as a triangle.

Cube: Renders each particle as a cube.

Special: Each particle consists of three intersecting 2D squares. These are effective when a Face-Mapped material is used along with (optionally) an opacity map to create the effect of a three-dimensional particle.

Facing: Renders each particle as a square that always faces the view. Note that this particle type can only be displayed in the viewports as a dot or a tick. If you choose this option while Mesh is selected, the viewport display is automatically switched to Ticks.

Constant: Provides a particle that remains the size, in pixels, specified in the Size spinner. This size never changes, regardless of its distance from the camera. Note that this particle type can only be displayed in the viewports as a dot or a tick. If you choose this option while Mesh is selected, the viewport display is automatically switched to Ticks.

Important: You must render either a camera or a perspective view for Constant particles to render correctly.

Tetra: Renders each particle as a mapped tetrahedron, whose tail points toward the normal vector of the emission, and whose head points away.

SixPoint: Renders each particle as a six-pointed, two-dimensional star.

Sphere: renders each particle as a sphere

MetaParticle Parameters Area

When the MetaParticles option button in the Particle Types rollout is chosen, the items in this area become enabled, and metaballs are used as particles. Metaparticles are excellent for creating liquid effects.

Tension: This spinner determines the tightness of the particles, with regard to their tendency to blend with other particles. The higher the Tension, the harder the blobs, and the harder it is for them to merge.

Variation: This spinner affects the percent of variation of the Tension effect.

Evaluation Coarsenes: The values below specify how accurately the metaparticle solution is calculated. The higher the coarseness values, the less calculation. However, if the coarseness is too high, there may be little or no metaparticle effect at all. Conversely, if the coarseness is set too low, the time for calculation can become extremely long.

Render: Sets the coarseness for metaparticles in the rendered scene. This option is disabled when Automatic Coarseness is checked.

Viewport: Sets the coarseness for the viewport display. This option is disabled when Automatic Coarseness is checked.

Automatic Coarseness: A general rule is to set the Coarseness value between 1/4 and 1/2 the size of the particles. When this item is checked, the rendering coarseness is automatically set, based on the size of the particles, and the viewport coarseness is set to about twice that of the rendering coarseness.

Object Fragment Controls Area

When the Object Fragments option button in the Particle Types rollout is chosen, the items in this area become enabled, and the object-based emitter is exploded into fragments, rather than being used to distribute particles.

Note: To see the fragments in the viewports, choose Mesh in the Viewport display area near the bottom of this rollout.

The items in this area include a Thickness spinner, along with three option buttons that determine how the fragments are formed.

Thickness: This spinner sets the thickness of the fragments. At zero, the fragments are single-sided with no thickness. When greater than zero, the fragments are extruded, at fragmentation-time, by the amount specified. The outer and inner surfaces of the fragment use identical smoothing, which is picked up from the object-based emitter. The edges of the fragments are not smoothed.

The three option buttons that follow specify how the object fragments.

All Faces: When this is chosen, each face of the object becomes a particle. This results in triangular particles.

Number of Chunks: When this is chosen, the object breaks into irregular fragments. The Minimum spinner, below, specifies the minimum number of fragments that will appear. The method of calculating the chunks may result in more fragments than specified.

Minimum: Determines a number of "seed" faces in the geometry. Each seed face collects connecting faces surrounding it until all available faces are exhausted. Leftover faces, if any, become unique particles, thus increasing the minimum number of fragments.

Smoothing Angle: When this option is chosen, the fragments are broken based on the angles between face normals, as specified in the Angle spinner. Generally, the higher the Angle value, the fewer the number of fragments.

Angle: Sets the amount of smoothing angle

Instancing Parameters Area

The controls in this area are used when you specify Instanced Geometry in the Particle Types area. This lets you generate each particle as an instance of either an object, a linked hierarchy of objects, or a group.

Object: Displays the name of the picked object.

Pick Object: Click this, and then select an object in the viewport to be used as a particle. If you select an object that’s part of a hierarchy and Use Subtree Also is checked, then the picked object and all of its children become a particle.

If you pick a group, all objects in the group are used as a particle.

Use Subtree Also: Check this when you want to include the linked children of the picked object in the particle. If the picked object is a group, all children of the group are included. Note that you can turn this on or off at any time to alter the particles.

Animation Offset Keying: Since the instanced objects can be animated, the options here let you specify the timing of the animations for the particles.

None: When this is chosen, each particle duplicates the timing of the original object. As a result, the animation of all particles will be identically timed.

Birth: When this is chosen, the firstborn particle takes is an instance of the current animation of the source object at the moment of that particle’s birth. Each subsequent particle then use the same start time for the animation. For example, if the animation of the source object is a bend from 0 to 180 degrees, and the first particle is born at frame 30, when the object is at 45 degrees, then that particle, and all subsequent particles will be born starting at a bend of 45 degrees.

Random: This option is the same as None when the Frame Offset spinner is set to 0. Otherwise, each particle is born using the same animation as the source object at the time of birth, but with a random offset of frames, based on the value in the Frame Offset spinner.

Frame Offset: Specifies an offset value from the current timing of the source object.

Mat’l Mapping and Source Area

Specifies how a mapped material affects the particles, and lets you specify the source of the material assigned to the particles. A detailed description of how materials affect particles is in the section that follows.

Time: When the Time option is chosen, the spinner value specifies the number of frames from the birth of the particle, it takes to complete one mapping of the particle.

Distance: When the Distance option is chosen, the spinner value specifies the distance, in units, from the birth of the particle that it takes to complete one mapping of the particle.

Note: Tetra particles are an exception. They always have their own local mapping from head to tail, as described in the following section.

Get Material From: Click this button to update the material carried by the particle system, using the source specified by the option buttons below this button.

Important: Remember to click the Get Material From button whenever you choose a different source option button, or whenever you assign a new material to the specified source. Only a single material (or multi/sub-object material) is carried by the particle-system object at any time. Thus, when you change sources, you actually overwrite the currently assigned material with an instance of the source material.

Icon: The particles use the material currently assigned to the particle system icon.

Note: The Time and Distance options are only enabled when this option is chosen.

Picked Emitter: The particles use the material assigned to the distribution object.

Instanced Geometry: The particles use the material assigned to the instanced geometry. This option is only enabled when the Instanced Geometry option is chosen in the Particle Types area.

Important: When you choose either Picked Emitter or Instanced Geometry, an instance of the material from the chosen source is copied to the emitter icon, overwriting the material originally assigned to the icon. Thus, if you’ve assigned a material to the particle emitter, and then switch to Picked Emitter, the material originally assigned to the icon is replaced by an instance of the material carried by the pick object. If you then return to the Icon option, the particle system does not revert to the material that was assigned the icon, but retains the material taken from the pick object.

Fragment Materials Area

The three spinners in this area let you assign different material ID numbers to outside surfaces, the edges and the back sides of fragment particles. You can then assign different materials to the front, edge and back of the fragments by using a multi/subobject material.

Outside ID: Specifies which face ID number is assigned to the outside faces of the fragments. This spinner defaults to 0, which is not a valid ID number, forcing the outside of the particle fragments to use whatever material is currently assigned to the associated faces. Thus, if your distribution object already has several submaterials assigned to its outer faces, these materials are retained by using ID 0. If you want a single, specific submaterial, you can assign it by changing the Outside ID number.

Edge ID: Specifies which submaterial ID number is assigned to the edges of the fragments.

Backside ID: Specifies which submaterial ID number is assigned to the back sides of the fragments.

Particle Rotation Parameters

The controls in this rollout affect the rotation of the particles and also provide motion blur effects.

Spin Speed Controls Area

Spin Time: The number of frames for one rotation of a particle. If this is set to 0, no rotation takes place.

Variation: The percent of variation of the Spin Time.

Phase: Sets the initial particle rotation, in degrees. This has no meaning for fragments, which always begin with zero rotation.

Variation: The percent of variation of the Phase.

Spin Axis Controls Area

Controls in this area determine the spin axis for the particles, and provide a partial method of applying motion blur to the particles.

Random: The spin axis for each of the particles is random.

Direction of Travel/Mblur: Rotates the particles about a vector formed by the direction in which they’re moving. This mode also provides a method of applying a form of motion blur to the particles by using the Stretch spinner.

Stretch: When this value is greater than 0, the particles stretch along the travel axis, depending on their speed. Specifically, the Stretch value specifies the percent of their length per each unit of the Speed setting (in the Particle Motion area). Thus, if you set this to 2 while Speed is set at 10, the particles are stretched 20 percent longer than their original size along the axis of their travel. This spinner is only enabled when Direction of Travel is chosen.

User Defined: Uses a vector defined in the three X, Y, and Z axis spinners.

X/Y/Z Axis: Specifies the spin vector of the X, Y, or Z axis, respectively. These spinners and the Variation spinner are only enabled when User Defined is chosen.

Variation: The amount, in degrees, by which the spin axis of each particle may vary from the specified X Axis, Y Axis, and Z Axis settings.

Object Motion Inheritance Parameters

These control determine how the motion of the particles is affected by the motion of the object.

Influence: The percent of particles that inherit the motion of the object-based emitter at the moment of particle formation. For example, when this is set at 100, the particles travel along with a moving object; when it’s set at 0, the particles are not affected by the translation of the object and fall behind its movement.

Multiplier: Modifies the Influence value. This can be a positive or negative number. You can use this value to tweak the influence effect.

Variation: Provides a percentage of variation of the Multiplier value.

Bubble Motion Parameters

Bubble Motion provides the wobbling effect you see in bubbles rising underwater. Typically, it’s used when the particles are set to rise in thin streams. Bubble motion is similar to a waveform, and the Bubble Motion parameters let you adjust the amplitude, period, and phase of the bubble "wave."

Note: The bubble motion is not affected by Space Warps. This is so you can use a Space Warp to control the direction of the particle flow without altering the local, wobbling bubble effect.

Amplitude: The distance the particle moves off of its usual velocity vector as it travels.

Variation: The percent of Amplitude variation applied to each particle.

Period: The cycle time for one complete oscillation of a particle through the bubble "wave." A recommended value might be 20-30 intervals.

Note: Bubble Motion is measured in TIME, and not in RATE, so a very large number means the motion takes a long time to complete. Thus, if the bubble motion value is very large, any single bubble oscillation takes a very long time to happen. Thus, there is no motion, effectively. These two values (bubble time and spin time) are thus set to very large default values so that the default motion of this type is NONE.

Variation: The percent of Period variation for each particle.

Phase: The initial displacement of the bubble pattern along the vector.

Variation: The percent of Phase variation for each particle.

Particle Spawn Parameters

The items in the Particle Spawn rollout let you specify what happens to particles when they die, or when they collide with a particle deflector. Using the controls in this rollout, you can have particles generate additional generations of particles upon collision or death.

Particle Spawning Effects Area

Choose one of these options to determine what happens to the particles at either collision or at death.

None: When this is chosen, none of the spawning controls is used, and the particles act as they normally would. That is, upon collision, they either bounce or stick, depending on Particle Bounce settings in the deflector, and on death they disappear.

Die on Collision: Particles disappear when they strike a deflector to which they’re bound, such as the SDeflector.

Spawn on Collision: Spawn effects take place upon collision with a bound deflector.

Spawn on Death: Spawn effects take place at the end of each particle’s life.

Spawn Trails: When chosen, particles are spawned from existing particles at each frame of that particle’s life. The Multiplier spinner specifies the number of particles that are spawned from each particle. The base direction of the spawned particles is opposite that of the parent’s velocity. The Scale, Direction, and Speed Chaos factors are applied to that base direction.

Note: If the Multiplier is greater than 1, at least one of the three Chaos factors must be greater than 0 in order to see the additional spawned particles, otherwise, the multiples will occupy the same space.

Caution: This option can produce many particles. For best results, begin by setting the Particle Quantity in the Particle Generation rollout to Use Rate and to 1.

Spawns: The number of spawns beyond the original particle generation. For example, if this is set to 1, and you’re spawning at death, one spawning will occur beyond the original lifespan of each particle.

Affects : Specifies the percentage of particles that will spawn. Reducing this reduces the number of particles that produce spawned particles.

Multiplier: Multiplies the number of particles spawned at each spawning event.

Variation: Specifies a percentage range by which the Multiplier value will vary, frame by frame.

Direction Chaos Area

Chaos: Specifies the amount by which the direction of the spawned particle can vary from the direction of the parent particle. A setting of 0 means no variance, a setting of 100 causes the spawned particle to travel in any random direction. A setting of 50 causes the spawned particle to deviate from its parent’s path by up to 90 degrees.

Speed Chaos Area

These controls let you apply a random speed factor to the spawned particles in relation to their parent’s speed.

Factor: This is the range of a percentage of change in the speed of the spawned particle relative to its parent. A value of zero means no change.

Slow: When this is chosen, the speed factor is applied randomly to slow the speed of the spawned particles.

Fast: When this is chosen, the particles are randomly sped up based on the speed factor.

Both: Some particles speed up, while others slow down, based on the speed factor.

Inherit Parent Velocity: When this is checked, the spawned particles inherit the speed of their parents, in addition to the effect of the speed factor.

Use Fixed Value: When this is checked, the Factor value is used as a set value, rather than as a range applied randomly to each particle.

Scale Chaos Area

These controls apply random scaling to the particles.

Factor: This value determines a random, percentage range of scaling of the spawned particles relative to their parents, and dependent on the options below.

Down: The spawned particles are randomly scaled down to by smaller than their parents, based on the Factor value.

Up: The spawned particles are randomly scaled up to be larger than their parents.

Both: The spawned particles are both larger and smaller than their parents.

Use Fixed Value: When checked, the Factor value is used as a fixed value, rather than a range of values.

Lifespan Value Queue Area

The controls in this area let you specify a list of alternative lifespan values for each of the spawned generations of particles. In this case, the spawned particles use these lifespans rather than the lifespan specified for the original particles in the Life spinner in the Particle Generation rollout.

List window: Displays a list of lifespan values. The first value on the list is used for the first generation of spawned particles, the next value is used for the next generation, and so on. If there are fewer values on the list than their are spawnings, then the last value is used repeatedly for all remaining spawnings.

Add: Click this to add the value in the Lifespan spinner to the list window.

Delete: Click this to delete the currently highlighted value in the list window.

Replace: This button lets you replace a value in the queue with a value in the Lifespan spinner. To use, first place a new value in the Lifespan spinner, then select the value in the queue you want replaced, and click the Replace button.

Lifespan: Use this to set a value, and then click the Add button to add the value to the list window.

Object Mutation Queue Area

The controls in this area let you switch between instanced-object particles with each spawning (as set with the Spawns spinner). These controls are only effective if Instanced Geometry is the current particle type.

List window: Displays a list of objects to be instanced as particles. The first object on the list is used for the first spawning, the second for the second spawning, and so on. If there are fewer objects on the list than there are spawnings, then the last object on the list is used for all remaining spawnings.

Pick: Click this, and then select an object in the viewport to add to the list. Note that the type of object you use is based on the settings in the Instancing Parameters area of the Particle Type rollout. For example, if you’ve checked Subtree in that area, you can pick object hierarchies. Likewise, if you’ve picked a group, you can use groups as your spawned particles.

Delete: Click this to delete the currently highlighted object in the list window.

Replace: Use this to replace an object in the queue with a different object. Select an object in the queue to enable the Replace button. Click Replace, and then pick an object in the scene to replace the highlighted item in the queue.

Load/Save Presets Parameters

Lets you store preset values that can be used in other, like particle systems. For example, after setting all of your parameters for a specific PArray, and saving it under a specific name, you can then select another PArray system, and load the preset values into the new system.

Preset Name: An editable field in which you can define a name for your settings. Click the Save button to save the preset name.

Saved Presets: Contains all the saved preset names.

Load: Loads the preset currently highlighted in the Saved Presets list.

Save: Saves the current name in the Preset Name field and places it in the Saved Presets window.

Delete: Deletes the selected items in the Save Presets window.

Note: Animated parameter values subsequent to frame 0 are not stored.

How To

Using Materials with Particle Array

Using Multi/Sub-Object Materials

Using Mapped Materials

Achieving Particle Motion Blur

Using Spawned Particles

To set up a particle array:

  1. Create an object that will become the distribution object, providing the emitter pattern (or exploded object) for the particle array.
  2. Select Particle Systems in the Create panel, and then click the PArray button.
  3. Drag anywhere in a viewport to create the particle-system object.
  4. In the Command Panel, Click the Pick Object button in the Basic Parameters section, and then click the object you want to use as the distribution object.
  5. Adjust the various options in the Particle Array rollouts to achieve the effect you want.

    6. The distribution object can be any object containing renderable faces.

    The particle-system object does not appear in the rendered scene. Its placement, orientation or size in the scene has no influence on the particle effect. To access the Particle Array parameters after creation, open the Modify panel, and select the particle-system object (or click on any visible particles in the viewport). To transform or otherwise modify the distribution object, select the distribution object itself.

    Note also that you can share a single distribution object among more than one particle-system object. The distribution object merely provides the template for the particles, which are actually generated by the particle system.

    Because of the large number of rollouts in PArray, rather than attempt one long outline of the entire system, we’ll outline each rollout section separately.

To assign three different mapped materials to fragments, do this:

  1. Apply mapping coordinates to the distribution object (either by turning on Generate Mapping Coords, or by applying a UVW Map modifier).
  2. Assign a multi/subobject material to the distribution object.
  3. Set up the first three submaterials to be mapped materials.
  4. Select the Parray icon.
  5. In the Mat’l Mapping and Source area of the Particle Type rollout, chose Picked Emitter.
  6. Make sure the three spinners in the Fragment Materials rollout are set to 1, 2, and 3, respectively. (Or, match the numbers with the submaterials you’ve assigned in your multi/subobject material.)

    7. Tip: Using a complex distribution object for object-fragment particles can really slow down viewport interactivity. You can use a simple stand-in object as the distribution object, and then later use the File/Replace command to replace the distribution object with a more complex object of the same name.


Pcloud

The PCloud (or Particle Cloud) particle system is used when you want a “cloud” of particles that fill a specific volume. Used creatively, it can provide a flock of birds, a starfield, or a troup of soldiers marching over terrain. You can confine the particles using basic supplied volumes of a box, sphere, or cylinder, or you can use any renderable object in the scene as a volume as long as that object has some depth. Two-dimensional objects do not work with PCloud.

Reference

Basic Parameters

Object-Based Emitter Area

Items here let you select a renderable mesh object to be used as a particle emitter. This object is used only when the Object-Based Emitter option is chosen in the Particle Formation area.

Pick Object: Click this, and then select a renderable mesh object to be used as a custom emitter.

Object: Displays the name of the picked object.

Particle Formation Area

The options in this area let you specify the shape of the emitter.

Box Emitter: When this option is chosen, the emitter is box-shaped.

Sphere Emitter: Chooses a sphere-shaped emitter.

Cylinder Emitter: Chooses a cylindrical emitter.

Object-Based Emitter: Chooses the object selected in the Object-Based Emitter area.

Note: With regard to animation of the object-based emitter, the particles will properly fill a deformed object at frame 0, and will move along with an object whose position is animated, but they won’t adapt to animated rotations, scales, space warps, or animated modifiers.

Display Icon Area

Provides controls that let you adjust the dimensions of the emitter icon, when a custom object is not used as an emitter. When a custom object is used you can still resize the “Fill” icon using these parameters.

Rad/Len: Adjusts the radius of a spherical or cylindrical icon, and the length of a box icon.

Width: Sets the width of a box emitter.

Height: Sets the height of a box or cylindrical emitter.

Emitter Hidden: Check this to hide the emitter.

Particle Generation Parameters

Particle Motion Area

Speed: The speed of the particle at birthalong the normalin units per frame.

Note: For the correct volume effect, Speed should be set to 0.

Variation: Applies a percentage of variation to the speed of emission for each particle.

Random Direction: One of three options that affect the direction of the particles. When this is chosen, the particles are emitted in random directions.

Enter Vector: When this is chosen, the direction of the particles is specified by a vector defined by the three X, Y, and Z spinners.

X/Y/Z: Displays the particle direction vectors

Reference Object: When this is chosen, particles are emitted in the direction of the local Z axis of a specified object.

Object: Displays the name of the picked object.

Pick Object: Click this, and then select an object in the scene to use as a reference object. Note that this button is only enabled when the Reference Object option has been chosen.

Variation: Applies a percentage of variation to the direction when either the Enter Vector or Reference Object options are used. This spinner is disabled and has no effect when the Enter Vector option is chosen.

The rest of the Pcloud rollouts and their contents are identical with those in Particle Array, except that Object Fragments and their associated settings are not available in the Particle Type rollout. See PArray for details.

How To

To create a Pcloud Particle System, do this:

  1. Click the Pcloud button in the Particle System branch of the Create command panel.
  2. Drag in a viewport to create the Pcloud emitter. The icon appears as the chosen emitter type with a c representing the particle cloud.
  3. Adjust the various parameters in the command panel.


Patch Grids

In 3D Studio MAX, you can create two kinds of patch surfaces in grid form: Quad Patch and Tri Patch. Patch grids begin as 2D objects but can be transformed into arbitrary 3D surfaces. They provide convenient "building material" for custom surfaces and objects, or for adding to existing objects.

Reference

Quad Patch

Tri Patch

How To

To create a patch grid:

  1. On the create panel, choose geometry, patch grids, then Click either Quad Patch or Tri Patch on the Object Type rollout.
  2. Drag in any viewport to define a length and width, then release to create the grid.


Quad Patch

Quad Patch creates a flat grid with 36 visible rectangular facets. A hidden line divides each facet into two triangular faces, for a total of 72 faces.

Quad and Tri Patch

Reference

Length, Width: Sets dimensions of grid in current unit.

Length, Width Segments: Determines the number of facets along the length and width of the grid. Defaults=1.

The density of a Quad Patch goes up sharply as you increase the segments. A Quad Patch of 2 segments on a side produces 288 faces. The maximum is 25 segments, producing over 40,000 faces. High segment values can slow performance.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to an object. Default=unchecked.

How To

To create a Quad Patch:

  1. On the create panel, choose geometry, patch grids, then Click Quad Patch on the Object Type rollout.
  2. Drag in any viewport to define a length and width, then release to create the grid.


Tri Patch

Tri Patch creates a flat grid with 72 triangular faces. The face count remains at 72, regardless of its size. The faces become larger to fill the area as you increase the size of the grid.

Quad and Tri Patch

Reference

Length, Width: Sets dimensions of grid in current unit.

Generate Mapping Coordinates: Sets up required coordinates for applying mapped materials to an object. Default=unchecked.

How To

To create a Tri Patch:

  1. On the create panel, choose geometry, patch grids, then Click Tri Patch on the Object Type rollout.
  2. Drag in any viewport to define a length and width, then release to create the grid.


Shapes

3D Studio MAX includes the following shapes:

Splines

NURBS Curves

Create Shape

At Edge selection level, in the Miscellaneous area is a new button, called Create Shape that creates a spline shape based on selected edges

Renderable Shapes

You can now render shapes without first lofting them. There are three basic steps to rendering a shape:

  • Check the Renderable checkbox in the General rollout of the shape’s creation parameters.
  • Specify the thickness for the spline using the Thickness spinner in the General rollout.
  • Check Generate Mapping Coords if you plan on assigning a mapped material to the spline.

When Renderable is checked, the shape is rendered using a 12-sided circle as a cross section. Mapping coordinates are generated with U mapped once around the perimeter, and V mapped once along the length. Note that the thickness is not displayed in the viewports.

The Steps settings affect the number of cross sections in the renderable shape.

Note: Please observe the following:

  • When you apply a modifier that converts a shape into a mesh (such as Extrude or Lathe), the object automatically becomes renderable, regardless of the state of the Renderable checkbox. You only need turn on the Renderable checkbox when you want a spline-shape to be rendered in the scene.
  • There is also a "Renderable" checkbox in the object Properties dialog. Both this checkbox and the Renderable checkbox in the command panel must be checked in order to render a shape. The checkbox in the Properties dialog takes precedence.

In order to add the rendering controls, the original "Interpolation" rollout in the shape creation parameters has been renamed "General," and organized, as follows.

Shapes are 2D and 3D objects that you use as components of other objects. All of the default shapes in 3D Studio MAX are made from splines. You use these spline shapes to do the following:

  • Generate planar and thin 3D surfaces
  • Define loft components such as paths, shapes, and fit curves
  • Generate surfaces of revolution
  • Generate extrusions
  • Define motion paths

3D Studio MAX supplies 11 basic shape objects. You can quickly create these shapes using mouse or keyboard entry and the shapes can be combined to form compound shapes. The Splines topic describes the methods and parameters used to create these shapes.

The primary use for shape objects is as building blocks to help create or control something else. In that role shapes have many uses.

Shapes as Planar Objects

A straightforward use for shapes is as 2D cutouts or as planar objects. Examples include ground planes, text to form signs, and cutout billboards. You create planar objects by applying an Edit Mesh modifier to a closed shape.

You can also apply an Edit Mesh modifier to a 3D shape to create a curved surface. The resulting 3D surface often requires manual editing of faces and edges to smooth surface ridges.

Extruded and Lathed Shapes

You can apply modifiers to a shape to create a 3D object. Two of these modifiers are Extrude and Lathe. Extrude creates a 3D object by adding height to a shape. Lathe creates a 3D object by rotating a shape around an axis.

Lofting Shapes

Lofts are created by combining two or more splines in special ways. Shapes form the lofting path, loft cross-sections, and loft fit curves.

Shapes as Animation Paths

Shapes can be used to define the position of an animated object. You create a shape and use it to define a path that some other object follows.

Two possible ways for a shape to control animated position are:

  • A Path controller can read a shape to control object motion.
  • A shape can be converted into position keys using the Trajectory/Convert From function in the Modify panel.

Creating Shapes

Click the Shapes button in the Create command panel to gain access to the shape creation tools. The 3D Studio MAX standard shapes are found under Splines in the category list. As you add more plug-ins to 3DS MAX, other shape categories might appear in this list.

The Object Type rollout contains the spline creation buttons. One or more of these spline types can be combined into a single shape.


Splines

3D Studio MAX Splines include the following object types:

Line

Rectangle

Circle

Ellipse

Arc

Donut

NGon

Star

Text

Helix

Section

Reference

Spline Object Type Parameters

Start New Shape: A shape can contain a single spline or it can be a compound shape containing multiple splines. You control how many splines are in a shape using the Start New Shape controls in the Object Type rollout The check box next to the Start New Shape button determines when new shapes are created. When the box is checked, the program creates a new shape object for every spline you create. When the box is unchecked, splines are added to the current shape until you click the Start New Shape button.

Shape Selection Buttons: Click on these to specify the type of shape you wish to create.

Creation Method Parameters

Many of the spline tools use the Creation Methods rollout.This rollout sets whether you define splines by their center point or by their diagonal.

Center: Your first mouse press defines the center of the shape and you drag out a radius or corner point.

Edge : Your first mouse press defines a point on the side or at a corner of the shape and you drag out a diameter or the diagonal corner.

Text and Star do not have a Creation Methods rollout.

Line and Arc have unique Creation Methods rollouts that are discussed in their respective topics.

General Parameters

Interpolation Area

The Interpolation rollout sets how 3DS MAX generates a spline. All spline curves are divided into small straight lines that approximate the true curve. The number divisions between each vertex on the spline are called steps. The more steps used the smoother the curve appears.

Spline steps can be either adaptive or manually specified. The method used is set by the state of the Adaptive check box.

Adaptive: When checked, automatically sets the number of steps for each spline to produce a smooth curve. Straight segments always receive 0 steps.

When unchecked, enables manual interpolation control using Optimize and Steps. You use the Steps field to set the number of divisions 3DS MAX uses between each vertex. The valid range is 0 to 100 steps. Splines with tight curves require many steps to look smooth while gentle curves require fewer steps.

Default=unchecked.

Optimize: When checked, removes unneeded steps from straight segments in the spline. Default=checked.

Note: Optimize is not available when Adaptive is checked.

The main use for manual interpolation is to create splines for morphing or other operations where you must have exact control over the number of vertices created.

Rendering Area

Renderable: When checked, the shape is rendered using a 12-sided circle as a cross section. Mapping coordinates are generated with U mapped once around the perimeter, and V mapped once along the length. Note that the thickness is not displayed in the viewports.

Thickness : Set this to specify the diameter of the rendered spline when Renderable is checked in the Properties dialog. (Spinner Value: float, 0.001 to 1.0E30)

Generate Mapping Coords : Check this to apply mapping coordinates. The U coordinate wraps once around the thickness of the spline, while the V coordinate is mapped once along the length of the spline. Tiling is achieved via the tiling parameters in the material itself.

Creating Splines with Keyboard Entry

You can create most splines solely using keyboard entry. The process is generally the same for all splines and the parameters are found under the Keyboard Entry rollout. Keyboard entry for each spline varies primarily in the number of optional parameters. The image above shows a sample Keyboard Entry Rollout for the Circle shape.

The keyboard entry rollout contains three fields for the X, Y, and Z coordinates of the initial creation point plus a variable number of parameters used to complete the spline. Enter values in each field and click the Create button to create the spline.

How To

To manually control starting new shapes:

  1. Uncheck the Start New Shape box.
  2. Click Start New Shape.
  3. Begin creating splines.

    4. Each spline is added to the compound shape. You can tell you are creating a compound shape because all the splines remain selected.

  4. Click Start New Shape to complete the current shape and prepare to start another.

    5. Issues to remember about creating shapes are:

    • You can go back and change the parameters of a shape containing a single spline after the shape is created.
    • You cannot change the parameters of a compound shape. For example, create a compound shape by creating a circle and then adding an arc. Once you create the arc, you cannot change the circle parameters.
    • You can add splines to a shape by selecting the shape and then creating splines with the Start New Shape box unchecked.

To create a spline using keyboard entry:

  1. Click a spline creation button.
  2. Expand the Keyboard Entry rollout.
  3. Enter X, Y, and Z values for the first point.
  4. Enter values in any remaining parameter fields.
  5. Click Create.


Line

Use Line to create a free-form spline made of multiple segments.

Reference

Converting to an Editable Spline

Because the Line tool has no dimension parameters that need be carried over to the Modify panel, it now automatically converts to an editable spline when you move from the Create panel to the Modify panel. So, while creating the line, the Create panel displays the original controls, such as Interpolation, Rendering, Creation Method, and Keyboard Entry. After creating the line, when you go to the Modify Panel, the Creation Method and Keyboard Entry rollouts are gone, but all of the editable spline options are there so you can edit the vertices, or any part of the shape.

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Creation Method Parameters

Creation method options for Lines are different from other spline tools. You choose options to control the type of vertex created when clicking or dragging vertices.

During creation, spline vertices can be set to one of the following types:

Initial Type Area

Sets what type of vertex you get when you click a vertex location.

Corner: When selected produces a sharp point. The spline is linear to either side of the vertex.

Smooth: When selected produces a smooth, non-adjustable curve through the vertex. The amount of curvature is automatically set by the spacing of the vertices.

Drag Type

Sets what type of vertex you get when you drag a vertex location. The vertex is located at the cursor position where you first press the mouse button. The direction and distance that you drag before releasing is only used when creating Bezier vertices.

Corner: When selected produces a sharp point. The spline is linear to either side of the vertex.

Smooth: When selected produces a smooth, non-adjustable curve through the vertex. The amount of curvature is automatically set by the spacing of the vertices.

Bezier: When selected produces a smooth, adjustable curve through the vertex. The amount of curvature and direction of the curve is set by dragging the mouse at each vertex.

Keyboard Entry Parameters

Keyboard entry for Lines is different from keyboard entry for other splines. Entering keyboard values continues to add vertices to the existing line until you click Close or Finish.

How To

To create a Line do the following:

  1. Choose a creation method.
  2. Click or drag the start point.
  3. Click or drag additional points.
  4. Do one of the following:
    • Right-click to create an open spline.
    • Click the first vertex and respond Yes to the Close polygon? dialog to create a closed spline.

To create a Line from the keyboard:

  1. Enter values in the X, Y, and Z fields to specify a vertex coordinate.
  2. Click Add Point to add a vertex to the current line at the specified coordinate.
  3. Do one of the following:
  4. Click Finish to create an open spline.
  5. Click Close to connect the current vertex to the first vertex and create a closed spline.


Rectangle

Use Rectangle to create square and rectangular splines.

Reference:

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Creation Method

The Rectangle shape uses the standard creation methods of Center or Edge. Most spline based shapes share the same Creation Method parameters. See Splines for an explanation of these parameters.

Rectangle Parameters

Once you have created a Rectangle, you can make changes using the following parameters:

Length: Set this to specify the size of the Rectangle along the local Y axis.

Width: Set this to specify the size of the Rectangle along the local X axis

Corner Radius: Set this to create rounded corners. When it is set at 0, the Rectangle shape contains 90-degree corners.

How To:

To create a Rectangle:

  1. Click Rectangle.
  2. Choose a creation method.
  3. Press to define the first point.
  4. Do one of the following:
    • Drag to define the second point.
    • Press CTRL while dragging to constrain the spline to a square.


Circle

Use Circle to create closed circular splines made of four vertices.

Reference:

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Creation Method

The Circle uses the standard creation methods of Center or Edge. Most spline based shapes share the same Creation Method parameters. See Splines for an explanation of these parameters.

Circle Parameters

Once you have created a Circle, you can make changes using the following parameter:

Radius: Set this to specify the radius of the Circle.

How To:

To create a Circle:

  1. Click Circle.
  2. Choose a creation method.
  3. Press to define the first point of the Circle
  4. Drag to define the second point


Ellipse

Use Ellipse to create elliptical and circular splines.

Reference

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Creation Method

The Ellipse shape uses the standard creation methods of Center or Edge. Most spline based shapes share the same Creation Method parameters. See Splines for an explanation of these parameters.

Ellipse Parameters

Once you have created an Ellipse, you can make changes using the following parameters:

Length: Set this to specify the size of the Ellipse along the local Y axis.

Width: Set this to specify the size of the Ellipse local X axis.

How To

To create an Ellipse:

  1. Click Ellipse.
  2. Choose a creation method.
  3. Press to define the first point.
  4. Do one of the following:
    • Drag to define the second point.
    • Press CTRL while dragging to constrain the spline to a circle.


Arc

Use Arc to create open and closed circular arcs made of four vertices.

Reference

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Creation Method Parameters

End-End-Middle/Center-End-End: These options determine the order of the sequence of mouse clicks involved in the creation of the arc. With End-End-Middle selected, the first mouse click specifies an end point of the arc, the second mouse click specifies the other end point of the arc, and the last mouse click specifies the third point between the two endponts. See the How To section below for procedures for both creation methods.

Arc Parameters

Once you have created an Arc, you can make changes using the following parameters:

Radius: Set this to specify the arc radius.

From: Set this to specify the location of the start point as an angle measured from the local positive X axis.

To: Set this to specify the location of the end point as an angle measured from the local positive X axis.

Pie Slice: Check this to create a closed spline in the form of a pie. The start point and end point are connected to the center with straight segments.

Reverse: When this checkbox is on, the direction of the arc spline is reversed, and the first vertex is placed at the opposite end of an open arc. As long as the shape remains an original shape (and not an editable spline), you can switch its direction by toggling the Reverse checkbox. Once the arc is converted to an editable spline, you can use the Reverse button in subobject spline mode to reverse direction.

How To

To create an arc using End-End-Middle:

  1. Click Arc.
  2. Choose the End-End-Middle creation method.
  3. Press the mouse button to specify the start point of the arc.
  4. Drag to specify the other end of the arc.
  5. Move the mouse and click to specify a third point on the arc between the two endpoints.

To create an Arc using Center-End-End:

  1. Click Arc.
  2. Choose the Center-End-End creation method.
  3. Press to define the center of the arc.
  4. Drag to specify the start point of the arc.
  5. Click to specify the other end of the arc.


Donut

Use Donut to create closed shapes made of two concentric circles. Each circle is made of four vertices.

Reference

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Creation Method

The Donut uses the standard creation methods of Center or Edge. Most spline based shapes share the same Creation Method parameters. See Splines for an explanation of these parameters.

Donut Parameters

Once you have created a Donut, you can make changes using the following parameters:

Radius 1: Sets the radius of the first circle.

Radius 2: Sets the radius of the second circle.

How To

To create a Donut:

  1. Click Donut.
  2. Choose a creation method.
  3. Press to define the first point of the first Donut circle.
  4. Drag to define the second point of the first Donut circle.
  5. Move the mouse and click to define the radius of the second concentric Donut circle.

    6. The second circle can be larger or smaller than the first.


NGon

Use NGon to create closed flat-sided or circular splines with any number (N) of sides or vertices.

Reference

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Creation Method

The NGon uses the standard creation methods of Center or Edge. Most spline based shapes share the same Creation Method parameters. See Splines for an explanation of these parameters.

NGon Parameters

Once you have created an NGon, you can make changes using the following parameters:

Radius: Set this to specify the NGon radius.

Inscribed: When selected, the radius is measured from the center to the corners of the NGon

Circumscribed Radius: When selected, the radius is measured from the center to the sides of the NGon.

Sides: Set this to specify the number of sides and vertices used by the NGon. The range for the number of NGon sides is 3 to 100.

Corner Radius: Set this to specify degree of rounding to apply to the corners of the NGon. A setting of 0 specifies a standard unrounded corner.

Circular: Check this to specify a circular NGon.

How To

To create an NGon:

  1. Click NGon.
  2. Choose a creation method.
  3. Press to define the first point of the NGon.
  4. Drag to define the second point of the NGon.


Star

Use Star to create closed star-shaped splines with any number of points. Star splines use two radii to set the distance between the outer points and inner valleys.

Reference

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Star Parameters

Once you have created a Star, you can make changes using the following parameters:

Radius 1: Set this to specify the radius of the inner vertices (the valley) of the star..

Radius 2: Set this to specify the radius of the outer vertices (the points) of the star..

Points: Set this to specify the number of points on the star. The valid range is from 3 to 100.

A star has twice as many vertices as the specified number of points. Half the vertices lie on one radius, forming points, and the remaining vertices lie on the other radius, forming valleys.

Distortion: Set this to rotate the outer vertices (the points) about the center of the star. This produces a saw-tooth affect.

Fillet Radius 1: Set this to round the inner vertices (the valleys) of the star.

Fillet Radius 2: Set this to round the outer vertices (the points) of the star.

How To

To create a Star:

  1. Click Star.
  2. Press to define the center of the star.
  3. Drag to define the first star radius.
  4. Click to define the second star radius.


Text

Use Text to create editable text splines using Type 1 PostScript¨ fonts or any font installed in your Windows NT system.

Reference

The Text tool has several additions, including kerning, leading, justification, multiple lines, and a manual update.

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Text Parameters

Once you have created text, you can make changes using the following parameters:

Font list: Choose from a list of all fonts available to 3DS MAX. Available fonts include:

  • Fonts installed in Windows NT.
  • Type 1 PostScript fonts located in the directory pointed to by the Fonts path in the Configure Paths dialog.

Italic style button: Press this button on to generate italicized Text.

Underline style button: Press this button on to generate underlined Text.

Align Left : Press this button to align text to the left side of its bounding box.

Note: The four text alignment buttons require multiple lines of text for effect because they act on the text in relation to its bounding box. If there’s only one line of text, it’s the same size as its bounding box and has nowhere to go.

Center: Press this button to align text to the center of its bounding box.

Align Right: Press this button to align text to the right side of its bounding box.

Justify: Press this button to space all lines of text to fill the extents of the bounding box.

Size: Sets the text height where the height measuring method is defined by the active font. The first time you enter text, the default is 100 units.

Kerning: Set this to adjust the kerning (the distance between the letters).

Leading: Set this to adjust the leading (the distance between the lines). This only has affect when multiple lines of text are included in the shape.

Text edit box: The Text edit box allows for multiple lines of text. Press Enter after each line of text to start the next line.

  • First time default is "MAX Text".
  • Does not use word wrap.
  • Can cut and paste single line text from the Windows Clipboard.

Update

The controls in this area let the user select a manual update option, for situations where the complexity of the text shape is too high for automatic updates.

Update: Click this to update the text in the viewport to match the current settings in the Text display window. This button is only enabled when the Manual Update checkbox is checked.

Manual Update: Check this to turn on manual updating. When manual updating is selected, the text that is typed into the Text display window will not be shown in the viewport until the Update button is pressed.

Using Text Shapes

Text shapes maintain editable text as a parameter so you can go back and change the Text at any time. If the font used by your Text gets deleted form the system, 3DS MAX still properly displays the Text shape. However, you cannot edit the text string in the Text edit box until you choose a new available font.

The Text in your scene is just a shape where each letter and possibly pieces of each letter are individual splines. You can apply modifiers like Extrude, Bend, and Edit Shape to Text shapes just like any other shape.

How To

To create text:

  1. Click Text.
  2. Enter text in the Text edit box.
  3. Do the following to define an insertion point:
    • Press the mouse button to see the text in the scene.
    • Drag the text into position and release.


Helix

Use Helix to create open flat or 3D spirals.

Reference

General Parameters

The Helix differs from other spline based shapes in that it always uses adaptive interpolation. The number of vertices in a helix is determined by the number of turns. See Splines for detailed explanation of these parameters.

Creation Method

The Helix uses the standard creation methods of Center or Edge. Most spline based shapes share the same Creation Method parameters. See Splines for an explanation of these parameters.

Helix Parameters

Once you have created a Helix, you can make changes using the following parameters:

Radius 1: Set this to specify the radius for the Helix start.

Radius 2: Set this to specify the radius for the Helix end.

Height: Set this to specify the height of the Helix.

Turns: Set this to specify the number of turns the Helix makes between its start and end points.

Bias: This setting forces the turns to accumulate at one end of the Helix. Bias has no visible affect when the height is 0.0.

  • A Bias of-1.0 forces the turns towards the start of the Helix.
  • A Bias of 0.0 evenly distributes the turns between the ends.
  • A Bias of 1.0 forces the turns towards the end of the Helix.

CW/CCW: Choose one of the direction buttons to set whether the Helix turns clockwise (CW) or counter-clockwise (CCW).

How To

To create a helix:

  1. Click Helix.
  2. Choose a creation method.
  3. Press to define the first point of the Helix start circle.
  4. Drag to define the second point of the Helix start circle.
  5. Move the mouse and click to define the height of the Helix.
  6. Move the mouse and click to define the radius of the Helix end.


Section

This is a special type of shape that generates other shapes based on a cross-sectional slice through a mesh object. The Section shape appears as a bisected rectangle. You simply move and rotate it to slice through one or more mesh objects, and then click a button to generate a shape based on the 2D intersection.

Reference

General Parameters

All spline based shapes share the same General Parameters. See Splines for an explanation of these parameters.

Section Parameters

Create Shape: Click to create a shape based on the currently displayed intersection lines. A dialog appears in which you can name the new object. The resulting shape is an editable spline consisting of curve segments and corner vertices, based on all of the intersected meshes in the scene.

Update Area

Provides options that let you specify when the intersection line is updated.

When Section Moves: When selected, the intersection line is updated when you move or resize the Section shape.

When Section Selected: When selected, the intersection line is updated when you select the section shape, but not while you move it. Click the Update Section button to update the intersection.

Manually: When selected updates the intersection line only when you click the Update Section button.

Update Section: Click this to update the intersection to match that of the current placement of the Section object when using either of the latter two options listed above.

Note: When using the When Section Selected or Manually options, you can offset the generated cross section from the position of the intersected geometry. (As you move the section object, the yellow cross-section lines move with it, leaving the geometry behind.) When you click Create Shape, the new shape is generated at the displayed cross-section lines in the offset position.

Section Extents Area

Specifies the extents of the cross-section generated by the section object.

Infinite: When selected the section plane is infinite in all directions, resulting in a cross section at any mesh geometry in its plane.

Section Boundary: When selected, the cross-section is generated only in objects that are within or touched by the boundary of the section shape.

Off: When selected no cross section is displayed or generated. When this option is chosen, the Create Shape button is disabled.

(color swatch): Click this to set the display color of the intersection.

Section Size Parameters:

Provides spinners that let you adjust the length and width for the displayed section rectangle. This has no effect on the cross section itself, which extends infinitely along its 2D plane.

Length/Width: Set this to adjust the length and width for the displayed section rectangle. This has no effect on the cross section itself, which extends infinitely along its 2D plane.

Note: If you convert the section grid to an editable spline, it’s converted to a shape based on the current cross section.

How to

To create and use the Section shape:

  1. Click the Section button in the Create/Shapes/Spline branch.
  2. Drag out a rectangle in the viewport in which you want the plane oriented. (For example, create it in the Top viewport to place the Section object parallel with the XY home grid.)

    3. The Section object appears as a simple rectangle with crossed lines indicating its center. With the default settings, the rectangle is for display purposes only, because the effect of the Section object extends along its plane to the full extents of the scene.

  3. Move and rotate the Section so that its plane intersects mesh objects in the scene.

    4. Yellow lines appear where the sectional plane intersects objects.

  4. Click Create Shape, enter a name in the resulting dialog, and click OK.

    5. A linear shape is created based on the displayed cross sections.


NURBS Curves

NURBS curves are Shape objects. The Extrude and Lathe modifiers can generate a 3D surface based on a NURBS curve. A NURBS curve can be the path or the shape of a Loft. (Lofts created using NURBS curves are loft objects, not NURBS objects.) You can also use NURBS curves as Path Controller paths or motion trajectories.

You can give a NURBS curve a thickness so it renders as a cylindrical object.

There are two kinds of NURBS curves:

Point Curve

CV Curve

Like other Shape objects, NURBS curves can contain multiple sub-objects. NURBS curve sub-objects are either NURBS curves or NURBS points. These sub-objects are either dependent or independent.

Creating Dependent Curves

Creating and Editing Point Sub-Objects

Common Sub-Object Controls

Editing Point and CV Sub-Objects

Editing Curve Sub-Objects

Note: A NURBS model can include NURBS curve sub-objects. You create and edit these the same way you create object-level NURBS curves. The only difference is that NURBS curve sub-objects can’t have a renderable width.

You can turn a curve object into a surface either by using modifiers, or by using the Edit Stack button.

Creating Independent Surfaces from Curve Objects

You can also create NURBS curve sub-objects by attaching or importing other 3DS MAX objects such as other NURBS curves or spline shapes.

Attaching and Importing 3D Studio MAX Objects

Both NURBS curves and NURBS surfaces have a Display area in their Modify panel. These controls affect which portions of the NURBS geometry 3DS MAX displays. Next to the Display area is the button that turns on the toolbox for creating sub-objects.

Display Controls for NURBS Models


Point Curve

Point curves are NURBS curves whose points are constrained to lie on the curve.

Tip: Object-level NURBS curves can’t contain surface sub-objects, so you can’t use them as the basis for a full NURBS model. But you can convert the curve object to a NURBS surface object using the Edit Stack button in the Modify panel.

Reference

These creation parameters are the same for both Point Curves and CV Curves.

Interpolation

The controls in this area change the accuracy and kind of curve approximation used to generate and display the curve.

Rendering Controls

You can make curves renderable by assigning them a thickness with these controls. The curve renders as a cylindrical object. Renderable NURBS curves appear when you render a scene using Render; they are not rendered in shaded viewports.surface

Renderable: Turn on to make the curve renderable.

Thickness: Sets the renderable thickness of the curveits circular diameterusing the current 3DS MAX units.

Generate Mapping Coordinates: Generates mapping coordinates so you can apply mapped materials to the renderable curve.

Keyboard Entry for Curves

The Keyboard Entry rollout lets you create a NURBS curve by typing. Use the TAB key to move between the controls in this rollout. To press a button, use ENTER while the button is active.

X, Y, and Z: Enter the coordinates of the next point to add.

Add Point: Adds the point to the curve.

Close: Ends creation of the curve and creates a segment between the last point and the initial point, to make the curve a closed curve.

Finish: Ends creation of the curve, leaving it open ended.

How To

To create a NURBS curve:

  1. Go to the Create command panel and turn on Shapes.
  2. Choose NURBS Curves from the dropdown list.
  3. Turn on Point Curve.
  4. In a viewport, click and drag to create the first point, as well as the first curve segment. Release the mouse to add the second point. Each subsequent location you click adds a new point to the curve. Right-click to end curve creation.

    5. Note: If you begin the curve by clicking without dragging, this also creates the curve’s first point. However, if you release the mouse more than five pixels away from where you initially pressed it, this creates an additional point.

    While you are creating a NURBS curve of either type, you can press BACKSPACE to remove the last point you created, and then previous points in reverse order.

    As with splines, if you click over the curve’s initial point, a dialog appears asking whether you want the curve to be closed. Click No to leave the curve open, Yes to close the curve. (You can also close a curve when you edit it at the Curve sub-object level.) When a closed curve is displayed at the Curve sub-object level, the initial point is displayed as a green circle, and a green tick mark indicates the curve’s direction.

  5. Adjust the curve’s creation parameters.
  6. (Optional.) To add a new NURBS curve sub-object, you can turn off the Start New Shape check box, and then repeat the preceding steps.


CV Curve

CV curves are NURBS curves controlled by control vertices (CVs). The CVs don’t lie on the curve. They define a control lattice that encloses the curve. Each CV has a weight that you can adjust to change the curve.

While you’re creating a CV Curve you can click to create more than one CV at the same location (or close to it), increasing the influence of the CVs in that region of the curve. Creating two coincident CVs sharpens the curvature. Creating three coincident CVs creates an angular corner in the curve. This technique can help you shape the curvehowever, if you later move the CVs individually, you lose this effect. (You can also obtain the influence of multiple CVs by fusing CVs.)

Tip: Object-level NURBS curves can’t contain surface sub-objects, so you can’t use them as the basis for a full NURBS model. But you can convert the curve object to a NURBS surface object using the Edit Stack button in the Modify panel.

Reference

The creation parameters are the same for both Point Curves and CV Curves.

Interpolation

The controls in this area change the accuracy and kind of curve approximation used to generate and display the curve.

Rendering Controls

You can make curves renderable by assigning them a thickness with these controls. The curve renders as a cylindrical object. Renderable NURBS curves appear when you render a scene using Render; they are not rendered in shaded viewports.

Renderable: Turn on to make the curve renderable.

Thickness: Sets the renderable thickness of the curveits circular diameterusing the current 3DS MAX units.

Generate Mapping Coordinates: Generates mapping coordinates so you can apply mapped materials to the renderable curve.

Keyboard Entry for Curves

The Keyboard Entry rollout lets you create a NURBS curve by typing. Use the TAB key to move between the controls in this rollout. To press a button, use ENTER while the button is active.

X, Y, and Z: Enter the coordinates of the next CV to add.

Weight: Enter the weight of the CV.

Add Point: Adds the CV to the curve.

Close: Ends creation of the curve and creates a segment between the last CV and the initial CV, to make the curve a closed curve.

Finish: Ends creation of the curve, leaving it open ended.

How To

To create a NURBS curve:

  1. Go to the Create command panel and turn on Shapes.
  2. Choose NURBS Curves from the dropdown list.
  3. Turn on Point Curve or CV Curve.
  4. In a viewport, click and drag to create the first point or CV, as well as the first curve segment. Release the mouse to add the second point or CV. Each subsequent location you click adds a new point or CV to the curve. Right-click to end curve creation.

    5. Note: If you begin the curve by clicking without dragging, this also creates the curve’s first point or CV. However, if you release the mouse more than five pixels away from where you initially pressed it, this creates an additional point or CV.

    While you are creating a NURBS curve of either type, you can press BACKSPACE to remove the last point or CV you created, and then previous points or CVs in reverse order.

    As with splines, if you click over the curve’s initial point or CV, a dialog appears asking whether you want the curve to be closed. Click No to leave the curve open, Yes to close the curve. (You can also close a curve when you edit it at the Curve sub-object level.) When a closed curve is displayed at the Curve sub-object level, the initial point or CV is displayed as a green circle, and a green tick mark indicates the curve’s direction.

  5. Adjust the curve’s creation parameters.
  6. (Optional.) To add a new NURBS curve sub-object, you can turn off the Start New Shape check box, and then repeat the preceding steps.


Curve Approximation

Although NURBS curves and surfaces are analytically generated, to generate and display them requires curves to be approximated by line segments, and surfaces by faces.

Curve approximation controls appear in the creation parameters for curve objects, and in a Curve Approximation rollout for NURBS models (top-level NURBS surface objects). At the model level, the approximation controls affect all curve sub-objects in the model.

Curve approximation is done by segments. A segment of a curve is the portion of the curve between one point or CV point and the next. (For a CV, which doesn’t lie on the curve, the segment is determined by the CV’s parametric knot. The transition from one CV curve segment to another isn’t visible in viewports.) One or more line segments, or steps, are used to approximate each segment of the curve.

Curve approximation parameters aren’t animatable.

Steps: The maximum number of line segments used to approximate each curve segment. If 3DS MAX displays or renders the curve with angles, increase this value. This control is disabled unless you turn off Adaptive. The Steps value can range from 1 to 100.

Optimize: Turn on this check box to optimize the curve. When on, interpolation uses the specified Steps value unless two segments are collinear, in which case they are converted to a single segment.

Adaptive: (The default.) Segments the curve adaptively, based on its curvature. In other words, 3DS MAX assigns the curve more segments points or CVs where its curvature is greatest, fewer points or CVs where its curvature is less.


Creating Dependent Curves

Dependent curves are curve sub-objects whose geometry depends on other curvesor pointsin the NURBS object. When you change the geometry of the original, parent sub-objects, the dependent curve changes as well.

You create dependent curves using the Create Curves rollout in the Modify command panel for a NURBS curve. (The Point Curve and CV Curve buttons create independent curve sub-objects. Use these as previously described in "Creating NURBS Curves.") The remaining buttons create dependent curves, as described in the sections below.

Tip: Lathe and extrude surface sub-objects can be based on only a single curve (see "Creating Dependent Surfaces," below). If you create dependent curves and then want to use the set of curves (for example, two parents and a fillet between them) as the basis of an extrude or lath surface, first go to the Curve sub-object level and use Join to connect the curves.

Toolbox Buttons for Creating Curves

These are the toolbox buttons for creating curve sub-objects:

Create an independent CV curve.

Create an independent point curve.

Create a dependent fit curve (as with the Curve Fit button).

Create a dependent transform curve.

Create a dependent blend curve.

Create a dependent offset curve.

Create a dependent mirror curve.

Create a dependent fillet curve.

Create a dependent chamfer curve.

Create a dependent U iso curve.

Create a dependent V iso curve.


Using the NURBS Toolbox to Create Sub-Objects

Besides the rollouts at the NURBS object level, you can use the NURBS toolbox to create sub-objects.

Toolbox for NURBS curve objects

Toolbox for NURBS surface objects

The toolbox contains buttons for creating NURBS sub-objects. From a curve object, you can create points or other curves. From a surface object, you can create points, curves, or other surfaces.

Reference

In general, the toolbox behaves like this:

  • While the button is turned on, the toolbox is visible whenever a NURBS object or sub-object is selected and you are in the Modify panel. It disappears whenever you deselect the NURBS object or make a different panel active. When you return to the Modify panel and select a NURBS object, it reappears.
  • The toolbox’s on/off state is saved in the 3dsmax.ini file.
  • You can use the toolbox to create sub-objects either at the top, object level or at any NURBS sub-object level.
  • When you turn on a toolbox button, you go into creation mode, and the Modify panel changes to show the parameters (if there are any) for the kind of sub-object you are creating.
  • If you are at the top, object level and use the toolbox to create an object, you must then turn on Sub-Object to edit the new sub-object. (This is no different from using the buttons in the rollouts.)
  • If you are at a sub-object level and use the toolbox to create an object of the same sub-object type, you can edit it immediately after you turn off the create button (or right-click).
  • If you are at a sub-object level and use the toolbox to create an object of a different sub-object type, you must use the drop-down to change the sub-object level before you can edit the new sub-object.

How To

To see the toolbox:

  1. With the NURBS object selected, go to the [image] Modify panel’s Display area.
  2. Turn on NURBS Creation Toolbox.


Curve Fit

Creates a Point Curve fitted to points you select. The points can be part of previously created Point Curve and Point Surface objects, or point sub-objects you created explicitly. They can’t be CVs.

How To

To create a Point Curve with Curve Fit:

  1. Turn on Curve Fit.
  2. Click to select two or more points.

    3. 3DS MAX creates a point curve that runs through the points you select, in the order you select them.

    You can use BACKSPACE to undo point selection, in reverse order.

  3. Right-click to end creation.


Transform Curve

A transform curve is a copy of the original curve with a different position, rotation, or scale.

Curve used to create a transform curve

Transform curves have no special Parameters rollout. You can later transform the transform curve as a Curve sub-object, and you can animate Curve sub-object transforms.

How To

To create a transform curve:

  1. In a NURBS object that contains at least one curve, turn on Transform.
  2. To move the transform curve, click and drag the curve you want to duplicate. To rotate or scale the transform curve, click the parent curve, click to turn on Sub-Object in the Modifier Stack rollout, choose Curve from the dropdown list, and then use a transform to rotate or scale the transform curve.

    3. When you use Move to create the transform curve, it simply copies the parent (it doesn’t exaggerate curvature as an offset curve does.)


Blend Curve

A blend curve connects the end of one curve to the end of another, blending the curvature of the parents to create a smooth curve between them. You can blend curves of the same type, or a Point Curve with a CV curve (and vice versa).

Connecting two curves with a blend curve

Reference

When you turn on the Blend button, or while a blend curve sub-object is selected, a rollout with the blend parameters appears.

"Tension" affects the tangent between a parent curve and the blend curve. The greater the tension value, the more closely the tangent parallels the parent curve, and the smoother the transition. The lower the tension, the greater the tangent angle and the sharper the transition between parent and blend.

Tension 1: Controls tension at the edge of the first curve you clicked.

Tension 2: Controls tension at the edge of the second curve you clicked.

How To

To create a blend curve:

  1. In a NURBS object that contains two curves of the same type (Point or CV), turn on Blend.
  2. Click one curve near the end that you want to connect. The end that will be connected highlights. Without releasing the mouse, drag to the end of the other curve that you want to connect. The other end highlights as well. When the end that you want to connect is highlighted, release the mouse.

    3. After the blend curve is created, changing the position or the curvature of either parent curve changes the blend curve as well.

  3. Adjust the blend parameters.


Offset Curve

An Offset is offset from the original, parent curve. It lies in the same plane as its parent, and is normal to the original.

Curve used to create an offset curve

Reference

When you turn on the Offset button, or while an offset curve sub-object is selected, a rollout with the offset Distance parameter appears.

Distance: The distance between the parent curve and the offset curve, in 3DS MAX units.

How To

To create an offset curve:

  1. In a NURBS object that contains at least one curve, turn on Offset.
  2. Click the curve you want to offset, and drag to set the initial distance.

    3. 3DS MAX creates the offset curve.

    The parent curve must define a plane. If the parent is in three dimensions, or if it is linear, 3DS MAX doesn’t create the offset.

  3. Adjust the Distance parameter.

    4. If the parent curve is not linear, increasing the distance increasingly exaggerates the curvature of the offset curve.

Note: You can't create an offset curve if the degree of the original curve is 4 or greater.


Mirror Curve

A mirror curve is a mirror-image of the original curve.

Curve used to create a mirror curve

Reference

When you turn on the Mirror button, or while a mirror curve sub-object is selected, a rollout with the mirror parameters appears. Also, a gizmo (yellow by default) indicates the mirror axis.

The Mirror Axis buttons control the direction in which the original curve is mirrored. The Offset controls the mirror’s distance from the original curve. This parameter is animatable.

You can't transform the mirror curve directly (this simply transforms the mirror curve and its parent curve at the same time). You transform it by transforming its gizmo. By using transforms you can mirror about an arbitrary axis, rather than one of the Mirror Axis presets. When you transform a mirror curve, you are actually transforming the mirror plane, so Rotate has the effect of rotating the plane about which the curve is mirrored. (This is like rotating the mirror gizmo in the Mirror modifier.)

How To

To create a mirror curve:

  1. In a NURBS object that contains at least one curve, turn on Mirror.
  2. In the Mirror Curve rollout (see below), choose the axis or plane you want to use.
  3. Click the curve you want to mirror, and drag to set the initial distance.

    4. 3DS MAX creates the mirror curve. A gizmo (yellow by default) indicates the direction of mirroring. Transforming the mirror curve’s gizmo changes the orientation of the mirror, letting you mirror along an axis that isn’t aligned with a local coordinate axis.

  4. Adjust the Mirror parameters.


U and V Iso Curves

U and V iso curves are dependent curves created from the iso (isoparametric) lines of a NURBS surface.

Reference

When you turn on the U Iso or V Iso button, or while an iso curve sub-object is selected, a rollout with the Iso Curve parameters appears.

Position: Sets the iso curve’s position along the U or V axis of the surface. This parameter is animatable.

How To

To create an iso curve:

  1. Turn on U Iso Curve or V Iso Curve, then drag over the surface.

    2. The iso lines highlight in blue as you drag.

  2. Click to create the curve from the highlighted iso line.


Creating and Editing Point Sub-Objects

In addition to the points that are an integral part of Point Curve and Point Surface objects, you can create "free-standing" points. Such points can help you construct Point Curves by using the Curve Fit button in one of the Create Curves rollouts. You also use dependent points to trim curves.

You create individual points as NURBS sub-objects, while you are modifying a NURBS curve or NURBS surface. To create points individually, you use the Create Points rollout.

Toolbox Buttons for Creating Points

These are the toolbox buttons for creating Point sub-objects:

Create an independent point.

Create a dependent point point.

Create a dependent curve point.

Create a dependent curve-curve intersection point.

Create a dependent surface point.


Point Point

Creates a dependent point that lies at a point or relative to it.

Reference

When you turn on the Point Point button, or while a point point sub-object is selected, the Offset Point rollout appears.

At Point: When chosen, the dependent point has the same location as the original, parent point.

Offset: When chosen, moves the point according to the X,Y,Z values, which are relative to the parent point (they are object space coordinates).

How To

To create a dependent point point:

  • Turn on Point Point, click in a viewport to position the point, and then adjust the point’s position relative to the original point by adjusting the Point Point parameters.


Curve Point

Creates a dependent point that lies on a curve or relative to it.

Reference

The point can either be on the curve or off the curve. If it is on the curve, the U Position is the only control of its location. The U Position specifies a location along the curve (based on the curve’s local U axis). There are three ways to displace the point’s location relative to the U position:

Offset moves the point according to a relative (object space) X,Y,Z location.

Normal moves the point along the direction of the curve’s normal. (Negative values move it opposite to the normal.)

Tangent moves the point along the tangent of the U Position.

Offset, normal, and tangent displacement of a curve point

Trimming

This area lets you trim the parent curve.

Trim Curve: When on, trims the parent curve against the curve point’s U position. When off (the default), the parent isn’t trimmed.

Flip Trim: When on, trims in the opposite direction.

How To

To create a dependent curve point:

  • Turn on Curve Point, click a curve to position the point, and then adjust the point’s position relative to the curve by adjusting the Curve Point parameters.

When you turn on the Curve Point button, or while a curve point sub-object is selected, the Curve Point rollout appears.


Curve-Curve

Creates a dependent point at the intersection of two curves.

Reference

When you turn on the Curve-Curve button, or while a curve-curve point sub-object is selected, the Curve-Curve Intersection rollout appears.

Trim First Curve and Trim Second Curve

These two areas let you control how the parent curves are trimmed. The controls are the same in each. "First" and "second" refer to the order in which you picked the parent curves.

Trim Curve: When on, trims the parent curve against the curve-curve point. When off (the default), the parent isn’t trimmed.

Flip Trim: When on, trims in the opposite direction.

How To

To create a dependent curve-curve point:

Do one of the following:

  • Turn on Curve-Curve, then click an intersection.
  • Turn on Curve-Curve, then drag from the first curve to the second.

3DS MAX creates the point at the nearest intersection between the two curves. You can use the curve-curve parameters to trim the parent curves.


Surf Point

Creates a dependent point that lies on a surface or relative to it. (This is available only in Surface objects, not Curves.)

Reference

When you turn on the Surf Point button, or while a surface point sub-object is selected, the Surface Point rollout appears. These controls are similar to the Curve Point controls.

The point can either be on the surface or off the surface. If it is on the curve, the U Position and V Position control its location. This is a location on the surface, based on the surface’s local UV coordinates). There are three ways to displace the point’s location relative to its UV position:

Offset moves the point according to a relative (object space) X,Y,Z location.

Normal moves the point along the direction of the curve’s normal. (Negative values move it opposite to the normal.)

Tangent moves the point along the tangent of the UV position.

How To

To create a dependent surf point:

  • Turn on Surf Point, click a surface to position the point, and then adjust the point’s position relative to the surface by adjusting the Surface Point parameters.


Common Sub-Object Controls

Reference

Many controls are common to the various kinds of sub-objects in NURBS models (with the exception of Imports, as previously described). This topic describes these common controls.

Transforming Sub-Objects

One way to alter a NURBS model is to transform its sub-objects. This lets you interactively change the model’s curvature and shape. Transforming points or CVs is especially useful for adjusting the shape of a NURBS curve or surface.

Tips:

  • The Lock Selection Set button is useful when you transform NURBS sub-objects. You can make a selection in one viewport, click Lock Selection Set (or press the SPACE BAR), then transform the selection in a different viewport.
  • When you move point and CV sub-objects, move them as systematically as possible to avoid "getting lost."
  • Avoid moving points or CVs so they cross over or under adjacent points. This can create odd-looking warps or overlaps in the surface.

Selection Controls

There is a Selection area of the rollout for all NURBS sub-objects except Imports. These buttons let you control just which sub-objects to select. They differ depending on the kind of sub-object, and they are described in the sections that follow.

Note: There is no delete modifier for NURBS curves, as there is for splines. There are two NURBS selection modifiers, NCurve Sel and NSurf Sel, described below under "NURBS and Modifiers."

Name: The Name field shows the name of the currently selected sub-object. It is blank if multiple sub-objects are selected.

By default, the name is the name of the sub-object type ("CV," "Point," "CV Curve," "Point Curve," "CV Surf,"or "Point Surf") followed by a sequence number. You can use this field to give the sub-object a name that you choose.

Import sub-objects have a Name field, but no other selection controls.

Point and CV Selection Buttons

The selection controls for point and CV sub-objects are the same except for their tool-tip labels.

For Curve CVs, you can choose to select either individual CVs (or groups, by dragging), or all the CVs in the curve at once.

For CV Surfaces, the selection buttons are as follows:

Single CVs: (The default.) When on, you can select individual CVs by clicking, or groups of CVs by dragging a region.

Row of CVs: When on, clicking a CV selects the entire row the CV belongs to. Dragging selects all rows in the region.

Column of CVs: When on, clicking a CV selects the entire column the CV belongs to. Dragging selects all columns in the region.

Row and Column of CVs: When on, clicking a CV selects both the row and column the CV belongs to. Dragging selects all rows and columns in the region.

All CVs: When on, clicking or dragging selects all the CVs in the surface.

Remember that when all CVs are selected, adjusting the rational Weight value has no effect.

Note: Rows and columns are easily visible when the NURBS surface is planar, or nearly so. When the surface has a complicated curvature, rows and columns can be harder to see. The Row, Column, and Row/Column buttons can be especially useful in this situation.

Curve Selection Buttons

The selection buttons for Curve sub-objects let you select either individual curves, or curves that are connected in space.

Single Curve: Clicking or transforming a curve selects only a single independent curve sub-object.

All Connected Curves: Clicking or transforming a curve selects all curve sub-objects that are connected within the NURBS object. To be connected, two curves must have fused points, or one curve must be a connected dependent (a blend, fillet, or chamfer) of the other.

Surface Selection Buttons

The selection buttons for Surface sub-objects let you select either individual surfaces, or surfaces that are connected in space.

Single Surface: Selecting a surface selects only that surface sub-object.

All Connected Surfaces: Selecting a surface selects all surface sub-objects that are connected within the NURBS surface object. To be connected, two surfaces must have fused points, or one surface must be a connected dependent (a blend) of the other.

Using the Keyboard to Select Sub-Objects

With the CTRL key and the arrow keys, you can select sub-objects by using the keyboard. The arrows traverse the sub-objects. To do so, follow these steps:

  1. Turn on the Plug-In Keyboard Shortcut Toggle.
  2. At the sub-object level, set the selection controls to select a single sub-object.
  3. Click to select one sub-object.
  4. Hold down CTRL and use the arrow keys to move among the sub-objects at the current level.

    5. At the Curve and Surface sub-object levels, the left and right arrow keys move forward and backward through individual sub-objects in the order they were created. The up and down arrows are simply equivalent to left and right.

    For curves at the Point and CV Curve levels, the arrow keys traverse points or CVs along the length of the curve you selected in step 3. The arrow keys don’t move between curve sub-objects.

    For surfaces at the Point and CV Surface levels, the left and right arrow keys traverse the U dimension of a surface, while the up and down arrow keys traverse the V dimension of the surface. The arrow keys don’t move between surface sub-objectsthey traverse only the surface you selected in step 3.

    The arrow keys don’t traverse individually created points that aren’t part of a curve or surface.

Visibility

You can hide or unhide NURBS sub-objects as you do 3DS MAX objects. Hidden sub-objects are invisible in viewports. They remain renderable (at the sub-object level, hiding doesn’t affect the renderer). You can’t select hidden sub-objects.

Hide: Click to hide the current sub-object selection.

Unhide All: Click to unhide all hidden sub-objects at the current sub-object level.

Make Independent

You can make a dependent point, curve, or surface sub-object independent.

Caution: When you make an object independent, you lose the animation controllers for all objects that depend on it in turn. When you make point objects independent, you lose the animation controllers for all points on the curve or surface.

You can’t make CV sub-objects independent. CVs are always part of a curve or surface.

You can also use Make Independent to convert a point curve or point surface into a CV curve or CV surface. The original points are deleted from the scenein this respect, using Make Independent on a point curve or surface differs from using it on other kinds of dependent sub-objects.

Detach and Copy

You can create a new curve or surface object by detaching a curve or surface sub-object from a NURBS model. To do so, select the curve or surface and then click Detach. 3DS MAX displays a dialog to let you enter a name for the new NURBS object (the default name is "Curve" or "Surface" followed by a sequence number). The new object is no longer part of the original NURBS object.

You can also use the Detach button to create a new NURBS object that is a copy of a curve or surface sub-object. To do so, select the curve or surface, and click to turn on Copy before you click Detach. 3DS MAX displays a dialog to let you enter a name for the new object. The original curve or surface sub-object remains part of the NURBS object you were editing, but the copied curve or surface is now a NURBS object of its own.

How To

To transform sub-objects:

  1. Select the NURBS object.
  2. Go to the Modify command panel.
  3. In the Modifier Stack rollout, turn on Sub-Object, then choose the sub-object level you want.

    4. If you choose Point as the sub-object level, points become visible in viewports. If you choose Curve CV or Surface CV, both the CVs for curves or surfaces and their control lattices become visible.

  4. Select one or more sub-objects.

    5. The sub-object selection tools are the same as for other kinds of 3DS MAX sub-objects. This includes using the "H" key in conjunction with the status bar’s Plug-In Keyboard Shortcut Toggle, as previously described in "Sub-Object Selection."

    See the next section, "Selection Controls," for more detail about the selection controls provided in the Modify command panel for different kinds of NURBS sub-objects.

    If you choose Imports, then when you select an imported object it is highlighted in shaded viewports as well as wireframe viewports.

  5. Turn on Move or another transform and then drag in a viewport to transform the selection.

    6. The shape of the model changes as you interactively transform the sub-objects.

To make a dependent sub-object independent:

  • Select the dependent object, and then click Make Independent.

The sub-object no longer depends on its parent objects, and editing them has no effect on the newly independent sub-object, which retains its shape unless you edit it explicitly.


Editing Point and CV Sub-Objects

Reference

This topic describes the controls for point and CV sub-objects. A rollout labeled CV or Point contains the CV or point sub-object controls for NURBS curve and surface objects.

The selection controls and other common controls are described in Common Sub-Object Controls. There are differences between the controls for CVs and points. These differences are described as they arise in the sections that follow.

Caution: When you move CV sub-objects, 3DS MAX must calculate the effect over a region of the surface. Although the calculations are optimized, this is a more involved process than simply moving vertices in an editable mesh. Because of this, if you manipulate large numbers of a NURBS surface's CVs -- by transforming, animating, applying modifiers, and so on -- you will notice a drop in interactive performance.

CV Weights

Each CV has a weight, which you can use to adjust the CV’s effect on the curve or surface. Increasing the weight pulls the surface towards the CV. Decreasing the weight relaxes the surface away from the CV.

For CV Curves and Surfaces (but not Point Curves or Surfaces), you adjust the rational weights of the sub-object selection by using the Weight field and spinner.

Increasing weight is a way to harden a curve -- that is, to sharpen its curvature at a particular location.

By default, the weight is 1.0 for the CVs of NURBS objects you create in the Create command panel or the NURBS sub-object creation rollouts. The weight of CVs in 3DS MAX geometry that you convert to NURBS can vary, depending on the object’s original shape.

You can change the Weight when multiple CVs are selected. Using the Weight field or spinner while multiple CVs are selected assigns all of them the value you choose. Because weights are relative to each other (rational), using the Weight control when all CVs are selected has no visible effect.

Tip: You can increase the curvature of an indentation in a surface by increasing the weight of the CVs surrounding the indented area. This is easier and often more effective than trying to move the indented area’s CVs.

Adding and Deleting Points or CVs

You can add points or CVs to a curve or surface, or remove them. (You can also add or remove points or CVs, and otherwise edit a NURBS surface, by using the surface sub-object rollout, as described in Editing Surface Sub-Objects.)

Caution: When you add points (with Refine or Extend) or delete points or CVs, you lose the animation controllers for all points or CVs on the curve or surface.

When you refine a CV surface, as you move the mouse over the surface, a preview of the CVs that will be added, and their locations, appears in blue.

The controls for deleting points or CVs differ slightly between Point Surfaces and CV Surfaces.

Note: A point curve must have at least two endpoints. A CV curve must have at least one more CV than the degree of the curve.

For surfaces, the controls for adding points differ between CV Surfaces and Point Surfaces.

If a Point Curve sub-object is present in the NURBS object, you can use the Curve button to add points to it as well as to the surface.

Fusing Points or CVs

You can connect a point to a point or a CV to a CV. (You can’t fuse a CV to a point, or vice versa.) This is one way to connect two curves or surfaces. It is also a way to change the shape of curves and surface.

Fusing points does not combine the two point sub-objects. They are connected but remain distinct sub-objects that you can unfuse at a later time.

Fused points behave as a single point until you unfuse them. Fused CVs behave much like a single point, but the property of multiplicity for coincident CVs also applies. (See "NURBS Concepts" and "Creating NURBS Curves," above.) The fused CVs have proportionally more influence on the curve, which can become more sharply curved in the fused CVs’ vicinity, or even angular if more than two CVs are fused together.

Affect Region

The Affect Region controls for NURBS curves and surfaces are like the Affect Region controls for 3DS MAX Editable Mesh objects. Affect Region controls make a point or CV behave as if surrounded by a "magnetic field." Unselected points or CVs within the field are drawn along smoothly while you move the selected one.

With this feature, you can sculpt the points or CVs of a curve or surface—for example, drawing a sphere into an egg, or gently curving a flat surface into hills and valleys.

Using Affect Region

The Affect Region area of the CV or Point rollout contains the controls for this feature. The Affect Region check box is turned off by default.

Before you begin, you might need to increase the number of CVs or points on the surface. This allows smoother and more complex reshaping effects. See the earlier section on "Adding and Deleting Points and CVs."

A single point or CV works well for many purposes. Moving a point or CV along a single axis is the most useful for smoothly raising and lowering surfaces. For multiple points or CVs, you can also use Rotate or Scale.

Move is the most common transform. Rotate and Scale can be used with a non-local transform center.

Tip: If Affect Region appears not to be working, the Falloff value might be too small for the size of your surface. Click Edit Curve, and in the Edit Affect Region Curve dialog (described below), increase the value of Falloff so it encompasses other points or CVs.

These are the Affect Region controls:

Affect Region: Turn on this check box to make point or CV transforms affect a region of the curve or surface.

Affect Neighbors: Turn on this check box to have the transform affect not only points or CVs on this curve or surface but all points or CVs within the Falloff region, whether they are on this curve or surface or on other curves and surfaces in the NURBS object.

Same Type Only (only for Point Curves and Surfaces): Turn on this check box to have the transform affect only neighboring points of the same type -- that is, either curve points, surface points, or independent points.

Edit Curve: Click to edit the curve 3DS MAX uses in affecting the region. See the next subsection for a description of the Edit Affect Region Curve dialog.

Editing the Curve

Edit Curve lets you redefine the affected region for subsequent operations. Editing the curve does not change any existing region, only the next one you create. You can experiment with a curve setting, undo it, and try another setting with the same selection.

When you click Edit Curve, the Edit Affect Region Curve dialog appears.

The Edit Affect Region Curve dialog has these controls to reshape the Affect Region curve:

Falloff: Distance in current units from the center to the edge of a sphere defining the affected region. Use higher falloff settings to achieve more gradual slopes, depending on the scale of your geometry. Default = 20.

On the left, Falloff = 20 (the default)
On the right, Falloff = 40

Pinch: Raises and lowers the top point of the curve along the vertical axis. Sets the relative "pointedness" of the region. When negative, a crater is produced instead of a point. At a setting of 0, Pinch produces a smooth transition across this axis. Default = 0.

On the left, Pinch = .5
On the right, Pinch = 2
Falloff and Bubble have their default values.

Bubble: Expands and contracts the curve along the vertical axis. Sets the relative "fullness" of the region. Limited by Pinch, which sets a fixed starting point for Bubble. A setting of 0 for Pinch and 1.0 for Bubble produces a maximum smooth bulge. Negative values for Bubble move the bottom of the curve below the surface, creating a "valley" around the base of the region. Default = 0.

On the left, Bubble = 1
On the right, Bubble = 6
Falloff and Pinch have their default values

How To

To remove points or CVs from a curve:

  1. Select a point or CV.
  2. Click Delete.

    3. Keyboard shortcut: DEL

    3DS MAX deletes the point or CV, and updates the shape of the curve.

To remove points from a surface:

  1. Select a point, row, or column.

    2. The appropriate Delete buttons are enabled.

  2. Click Delete, Delete Row, or Delete Col.

    3. 3DS MAX deletes the point, row, or column.

To remove CVs from a surface:

  1. Select a row, column, or a row and column.

    2. The appropriate Delete buttons are enabled.

  2. Click Delete Row, Delete Col., or Delete Both.

    3. 3DS MAX deletes the row, column, or both.

To add a point or CV to a curve:

  1. Turn on Refine.
  2. Click the curve where you want to add the point or CV.

    3. 3DS MAX adds a point or CV at the location you clicked.

    When you refine a CV curve, neighboring CVs move away from the new CV, in order to preserve the original curvature.

To add CVs to a CV Surface:

  1. Click Refine Row, Refine Col., or Refine Both.
  2. Click the surface.

    3. 3DS MAX adds a row, column, or both close to the point where you clicked the surface. .

    Neighboring CVs move away from the new CVs, in order to preserve the surface’s original curvature.

To add points to a Point Surface:

  1. In the Refine area, click Surf Row, Surf Col., or Surf Row & Col.
  2. Click the surface.

    3. 3DS MAX adds a row, column, or both close to the point where you clicked the surface. The new points are placed on the surface so they preserve the surface’s curvature.

To fuse two points or CVs:

  1. Turn on Fuse.
  2. Click on a point or CV without releasing the mouse. Drag to another point or CV, and then release the mouse.

    3. The point or CV you choose first acquires the position of the second point or CV, and becomes dependent to it. If the first point or CV had an animation controller, the controller is discarded. If the second point or CV has an animation controller, the first point or CV acquires it, too.

To unfuse fused points or CVs:

  1. Select the fused point or CV.
  2. Click Unfuse.

    3. Now you can move and otherwise edit the two points or CVs independently.

To transform a region:

  1. Using sub-object selection, select one or more points or CVs for the center of transformation.
  2. Turn on Affect Region.
  3. Transform the point or CV.

    4. A region around the selected point or CV is transformed accordingly.


Editing Surface Sub-Objects

Reference

This section describes the controls that are common to Point and CV surfaces. A rollout labeled Surface Common contains the surface sub-object controls for NURBS surfaces.

The selection controls and other common controls are described in the previous section, "Common Sub-Object Controls."

Delete

You can delete surface sub-objects by clicking this button.

Make Loft

Converts the surface sub-object to a (dependent) U Loft surface. Can also change the dimension used to construct a U Loft surface.

Tip: Make loft creates a loft with uniformly spaced curves. To make a loft with adaptively spaced iso curves, manually create the curves and then loft them with U Loft or V Loft.

When you click Make Loft, a Make Loft dialog appears, with these controls:

From U Iso Lines: Use curves along the surface’s U dimension to construct the loft.

From V Iso Lines: Use curves along the surface’s V dimension to construct the loft. If the surface was a U Loft to begin with, set this to change the lofting dimension.

Number of Curves: The number of curves used by the loft. Curves are distributed evenly along the appropriate dimension.

Preview: When set, displays a preview of the new loft surface. Clearing this toggle can speed up loft creation.

Delete Original Loft Curves: This is enabled only if the surface was a U Loft to begin with. If set, Make Loft deletes the original loft curves when you click OK. If cleared, the original curves remain where they are. Default = cleared.

Note: You can't use Make Loft if the surface sub-object is in an error condition.

Rendering

These are the controls that affect how the surface sub-object appears when you render it with the renderer. They don’t affect how the surface appears in shaded viewports.

Renderable: When turned on, the surface renders. Turn off to make the surface invisible in renderings. Default = On.

Display Normals: When turned on, 3DS MAX displays the normal for each surface selected There is one normal per surface sub-object. The normal is displayed at the surface’s UV origin, so displaying normals can help you see how materials will be mapped. On the other hand, the normal can be hard to see if you are zoomed out.

Flip Normals: Turn on to reverse the direction of the surface normals.

Tip: The Flip Normals control is useful for viewing a surface that is mostly concave or mostly convex. With more complicated NURBS surfaces, you often want to render both sides of the surface. Turn on Force 2-Sided in the Render Scene dialog to see both sides of the surface. To see both sides of the surfaces in viewports, turn on Force 2-Sided in the Rendering Method panel of the Viewport Configuration dialog.

Material Controls

The controls in this area support materials, including tiling and positioning mapping coordinates on the surface.

Material ID: Use this to change the surface’s material ID number. Multiple material IDs in a single NURBS object let you assign a Multi/Sub-Object material to the NURBS object.

Channel: The radio buttons select the UV coordinates channel, either 1 or 2. Default = 1.

Generate Mapping Coordinates: Generates mapping coordinates so you can apply mapped materials to the surface. Each surface in a NURBS object has its own set of mapping coordinates.

U and V Offset: Offsets mapping coordinates along the surface’s local U axis or V axis. That is, at 0.0 (the default), the map begins at the U or V origin. Increasing an Offset value moves the map forwards along that axis, and decreasing it moves it backwards. These parameters are animatable.

U and V Tiling: Control the tiling of UV mapping coordinatesthat is, the number of time a mapped material’s map is repeated in the surface’s local U axis or V axis. Default = 1.0 for both axes (no tiling). These parameters are animatable.

Breaking a Surface

The buttons Break Row, Break Col., or Break Both let you break a surface into two or four independent surfaces.

Break Row: Breaks the surface into two in the direction of a row (the surface’s U axis).

Break Col.: Breaks the surface into two in the direction of a column (the surface’s V axis).

Break Both: Breaks the surface into four in both directions.

Note: If you break a dependent surface the new, "broken" surfaces are all made independent.

Extend

Extends the surface by changing its length.

Caution: Extending a surface loses all animation controllers for the surface and its points or CVs.

The surface extension is invalid and will disappear if it would cause the surface to intersect itself or if the edge of the surface touches itself but is not closed. For example, you can't extend the top of a cylinder.

Join

Joins two surface sub-objects together. This operation is similar to creating a blend surface, but the new area becomes part of the surface object, not a dependent sub-object.

Caution: When you join two surface sub-objects, you lose the animation controllers for all point or CVs on both surfaces.

Tolerance: A distance in 3DS MAX units. If the gap between the surfaces you are joining is greater than this value, 3DS MAX creates the join by first creating a blend surface. If the gap is less than this value, or if the surfaces are overlapping or coincident, 3DS MAX doesn’t create the blend.

Creating a blend and then joining the three surfaces into a single surface is the better technique. The result matches the parent surfaces well. Without the blend step, the resulting surface can deviate from the parent surfaces, in order to maintain smoothness. (The amount of deviation depends on how far from tangent the two input curves or surfaces were at the join.)

A problem arises when there is a gap but it is too small. In this case, 3DS MAX generates the blend but because there isn’t enough room for it, the resulting surface has a loop in it. To avoid this loop, set the Tolerance higher than the gap distance.

If you set the tolerance to 0.0, 3DS MAX chooses a value to use for the Tolerance.

Close

The close controls let you close a surface. They appear on the Point Surface or CV Surface rollout while an independent surface sub-object is selected. They have no effect if the surface is already closed in that direction.

Close Rows: Closes the surface by joining the ends of its rows.

Close Cols.: Closes the surface by joining the ends of its columns.

How To

To delete a surface:

  • Select the surface and then click Delete.

Keyboard shortcut: DEL

To make a surface a loft:

  1. Select the surface sub-object.
  2. Click Make Loft. This displays a Make Loft dialog.
  3. Use the Make Loft dialog controls to choose the settings for the new surface, and then click OK.

To break a surface:

  1. Turn on Break Row, Break Col., or Break Both, and then drag over the surface.

    2. One or two blue curves appear on the surface to indicate where the break will occur.

  2. When you have dragged to the location you want to break, click the surface.

To extend a surface:

  1. Turn on Extend.
  2. Move the mouse over the surface without depressing the mouse button. The edge that will be extended highlights in blue.
  3. When the edge you want to extend is highlighted, press the mouse button, and then drag vertically to increase the length of the surface, or horizontally to decrease the length.

To join two surfaces:

  1. In a NURBS object that contains two surface sub-objects, turn on Join.
  2. If the gap between the surfaces is smallless than about 30 unitsset the Tolerance value to a value greater than the distance of the gap.
  3. Click one surface near the edge that you want to connect. The edge that will be connected is highlighted in blue. Drag to choose the edge you want to connect. Without releasing the mouse, drag to the other surface. The edge of the other surface is also highlighted in blue. Drag on the other surface to choose the edge to connect, and then release the mouse.

    4. 3DS MAX joins the two original surfaces, creating a single surface that replaces the two original surfaces. (Unlike a blend, the portion between the two original surfaces is part of the new surface, not a dependent surface sub-object.)

To close a surface:

  1. Select the surface sub-object.
  2. Click Close Rows or Close Cols.


Creating Independent Surfaces from Curve Objects

To create independent surfaces out of top-level NURBS curve objects, use the Extrude and Lathe modifiers. Extrude adds height to the curve, creating a shape by sweeping it along the curve’s local Z-axis. Lathe creates a surface of rotation, revolving the shape along a specified axis.

The Extrude and Lathe modifiers treat NURBS curves the same way they treat shapes. The advantage of using NURBS curves instead of shapes is in the different possible shapes that NURBS geometry and editing provide.

Tip: When you create a complicated surface, especially with the Lathe modifier, you often want to render both sides of the surface. Turn on Force 2-Sided in the Render Scene dialog to see both sides of the extruded or lathed surface. To see both sides in viewports, turn on Force 2-Sided in the Viewport Configuration dialog.

By default, an object with Extrude or Lathe collapses to an Editable Mesh object. To have Extrude or Lathe output collapse to a NURBS object, change the setting to NURBS in the Output area of the Extrude or Lathe rollout, and then collapse the modifier stack.

The Edit Stack button also lets you turn a NURBS curve into a NURBS surface object. This doesn’t immediately make the curve a surfaceinstead, the curve becomes a curve sub-object of the surface object, and you can then use NURBS editing to create other sub-objects, including surface sub-objects.


Attaching and Importing 3D Studio MAX Objects

There are two ways to bring other 3DS MAX objects into a NURBS object:

  • Attach, which works like Attach for meshes and splines. It converts the attached object to NURBS format. Once the object is attached, you can edit it as a NURBS surface or curve. However, the attached object’s history is lost.

Note: For NURBS surfaces, you can attach other NURBS objects, 3DS MAX Standard Primitive objects, or Quad Patch and Tri Patch surfaces. The patch is converted to a NURBS surface. Quad patches convert more successfully than Tri Patches. A converted Tri Patch has an internal edge collapsed, which gives irregular results when you manipulate its mesh.

  • Import, which works somewhat like the operand of a Boolean. The object is brought into the NURBS object without losing its history. You can select the imported object as a sub-object.

Attach: Lets you attach another object to the NURBS object. To use, click to turn on this button, and then click the object to attach If the object you’re attaching isn’t already a NURBS object, it is converted to one or more NURBS curves or surfaces that are sub-objects of the object you’re modifying.

Attach Multiple: Lets you attach multiple objects to the NURBS surface. Displays a version of the Select by Name dialog, listing the objects that can be attached. Use the dialog controls to select one or more objects by name, and then click Attach.

Reorient: When turned on, the object you are attaching or importing is moved and rotated so its creation local coordinate system is aligned with the creation local coordinate system of the NURBS object.

Import: Lets you import another object to the NURBS object. Works the same way Attach does, but the imported object retains its parameters and modifiers.

Import Multiple: Lets you import multiple objects. Works the same way Attach Multiple does, but the imported objects retains their parameters and modifiers.

Using Imports

These are the reasons to use Import instead of Attach:

  • To maintain parametric control over primitives.

For example, if you import a sphere, you can change or animate its radius directly, which you can’t do after an attach.

  • To use Bézier Splines as NURBS curves.

For example, If you want to use a 3DS MAX Bézier spline as a curve in a NURBS model, import it. This allows you to edit it as a Bézier Spline, not as a NURBS curve. (You can use only one Bézier segment at a time for purposes of extruding or creating U lofts.)

All the surfaces and curves that are created by an import are available in the NURBS model. For example, if you import a box, you can create a blend surface between one of its faces and another surface in your NURBS object.

Once you have imported an object, you see an "Imports" entry in the list of sub-object levels. On entering the Imports level, all objects that aren’t Imports are displayed in a dimmed color. This lets you know which objects you can select at this level. When you select an import, it is highlighted in red. Import sub-objects have a red highlight even in shaded viewports, unlike other types of 3DS MAX sub-objects.

Note: You can’t apply modifiers to an import sub-object.

Imports are displayed in two different ways. While you work at the NURBS object level or other sub-object levels, they are displayed as NURBS curves or surfaces, and use the NURBS object’s mesh tessellation. (See Surface Approximation.) However, at the Imports sub-object level, 3DS MAX displays the selected import using its native display format. In other words, displays as it would if it were a top-level 3DS MAX object. This is because the display must enable you to edit the imported object. For example, an imported Bézier spline needs to display its tangent handles. This wouldn’t be possible if it were displayed as a converted NURBS curve. Leaving the Imports sub-object level returns to NURBS-style display.

You can extract an imported object. This creates an independent, top-level object again.

How To

To attach or import an object to a NURBS object:

  1. Select the NURBS object, and go to the Modify command panel.
  2. (Optional.) Turn on Reorient if you want the object to be reoriented and aligned with the center of the NURBS object.
  3. Turn on Attach or Import.
  4. Click the object to attach or import.

    5. The mouse cursor changes shape to indicate a valid object. If you are editing a NURBS curve, you can attach only NURBS or spline curves. If you are editing a NURBS surface, you can attach curves, NURBS surfaces, or objects convertible to NURBS.

At step 3, you can click Attach Multiple or Import Multiple instead. These buttons display a select-by-name dialog so you can choose multiple objects to attach or import.

To extract an imported object:

  1. Go to the Imports sub-object level and select the object to extract.
  2. Click Extract Import in the Import sub-object rollout.

    3. If Copy is set (the default), the extracted object is a top-level copy of the imported object. If Instance is set, the extracted object is an instance of the imported object. Initially the extracted object occupies the same space as the imported objectyou must move either it, the import sub-object, or the whole NURBS model before you can see the extracted object.


Display Controls for NURBS Models

The check boxes in the General rollout for a NURBS curve or surface control how the object is displayed in viewports. If all check boxes are turned off, the NURBS object is invisible (except, when selected, for its white bounding-box indicators in shaded viewports).

Lattice: When turned on, displays control lattices, in dashed yellow lines. (You can change the lattice color by using the Colors panel of File/Preferences.) The Curve CV and Surface CV sub-object levels also have a local Display Lattice toggle, which overrides this global setting at the sub-object level. The Curve CV and Surface CV settings are independentin other words, at the sub-object level you can turn on the lattice for an object’s curves but not its surfaces, or vice versa.

Keyboard shortcut (while Plug-In Keyboard Shortcut Toggle is turned on): CTRL + H

At the object level, this shortcut is equivalent to turning Lattice on or off. At the sub-object level, CTRL + H overrides the setting of Lattice, toggling the local Display Lattice setting.

Curves: When turned on, displays curves.

Surfaces: When turned on, displays surfaces

Dependents: When turned on, displays dependent sub-objects.

Keyboard shortcut (while Plug-In Keyboard Shortcut Toggle is turned on): CTRL + D

NURBS Creation Toolbox: Turn on to display the NURBS sub-object creation toolbox.

Keyboard shortcut (while Plug-In Keyboard Shortcut Toggle is turned on): CTRL + T


NURBS Surfaces

NURBS Surface objects are the basis of NURBS models. The initial surface you create using the Create panel is a planar segment with points or CVs. It is meant simply as "raw material," an easy way to begin creating a NURBS model. Once you have created the initial surface, you can modify it in the Modify command panel by moving CVs or NURBS points, attaching other objects, creating sub-objects, and so on.

There are two kinds of NURBS surfaces:

Point Surface

CV Surface

You can also create a NURBS surface from a 3DS MAX geometric primitive.

Creating NURBS Surfaces from Geometric Primitives

NURBS surfaces can contain multiple sub-objects, including NURBS points, NURBS curves, and other NURBS surfaces. These sub-objects are either dependent or independent.

Creating Dependent Curves

Creating Dependent Surfaces

Creating and Editing Point Sub-Objects

Common Sub-Object Controls

Editing Point and CV Sub-Objects

Editing Curve Sub-Objects

Editing Surface Sub-Objects

You can also create NURBS surface sub-objects by attaching or importing other 3DS MAX objects.

Attaching and Importing 3D Studio MAX Objects

Both NURBS curves and NURBS surfaces have a Display area in their Modify panel. These controls affect which portions of the NURBS geometry 3DS MAX displays. Next to the Display area is the button that turns on the toolbox for creating sub-objects.

Display Controls for NURBS Models

Caution: When you move CV sub-objects, 3DS MAX must calculate the effect over a region of the surface. Although the calculations are optimized, this is a more involved process than simply moving vertices in an editable mesh. Because of this, if you manipulate large numbers of a NURBS surface's CVs -- by transforming, animating, applying modifiers, and so on -- you will notice a drop in interactive performance.


Point Surface

Point surfaces are NURBS surfaces whose points are constrained to lie on the curve.

Because an initial NURBS surface is meant to be edited, the surface creation parameters do not appear in the Modify command panel. In this respect, NURBS surface objects are different from other 3DS MAX objects. The Modify command panel provides other ways to change the values you set in the Create panel.

Reference

The creation parameters are the same for both Point Surfaces and CV Surfaces.

Length: The length of the surface, in current 3DS MAX units.

Width: The width of the surface, in current 3DS MAX units.

In the Modify command panel, the Length and Width spinners are no longer available. You can change the length or width of the surface by scaling the surface at the Surface sub-object level. Moving point sub-objects also alters the length and width of the surface.

Length Points: The number of points along the length of the surface. In other words, the initial number of point columns in the surface. Can range from 2 to 50. Default = 4.

Width Points: The number of points along the width of the surface. In other words, the initial number of point rows in the surface. Can range from 2 to 50. Default = 4.

In the Modify command panel, the point Length and Width spinners are no longer available. You can change the number of rows and columns by deleting existing rows and columns, or by adding new rows and columns using the Refine controls at the Point sub-object level.

Generate Mapping Coordinates: Generates mapping coordinates so you can apply mapped materials to the surface.

The Generate Mapping Coordinates control is present in the Modify command panel. It is at the Surface sub-object level.

When you modify a point surface, a rollout lets you change its surface approximation settings.

Keyboard Entry for Point Surfaces

The Keyboard Entry rollout lets you create a point surface by typing. Use the TAB key to move between the controls in this rollout. To press the Create button, use ENTER while the button is active.

X, Y, and Z: Enter the coordinates of the center of the surface.

Length and Width: Enter the dimensions of the surface, in current 3DS MAX units.

Length Points: Enter the number of points along the length of the surface (this is the initial number of point columns).

Width Points: Enter the number of points along the width of the surface (this is the initial number of point rows).

Create: Creates the surface object.

How To

To create a point surface:

  1. Go to the Create command panel and turn on Geometry.
  2. Choose NURBS Surfaces from the dropdown list.
  3. Turn on Point Surf.
  4. In a viewport, drag to specify the area of the planar segment.
  5. Adjust the surface’s creation parameters.


CV Surface

CV surfaces are NURBS surfaces controlled by control vertices (CVs). The CVs don’t lie on the surface. They define a control lattice that encloses the surface. Each CV has a weight that you can adjust to change the shape of the surface.

Because an initial NURBS surface is meant to be edited, the surface creation parameters do not appear in the Modify command panel. In this respect, NURBS surface objects are different from other 3DS MAX objects. The Modify command panel provides other ways to change the values you set in the Create panel.

Note: When you edit a CV surface you can add or move CVs so that more than one CV is at the same location (or close to it). This increases the influence of the CVs in that region of the surface. Two coincident CVs sharpen the curvature. Three coincident CVs create an angular peak in the surface. This technique can help you shape the surface. However, if you later move the CVs individually, you lose this effect. (You can also obtain the influence of multiple CVs by fusing CVs.)

Reference

The creation parameters are the same for both Point Surfaces and CV Surfaces.

Length: The length of the surface, in current 3DS MAX units.

Width: The width of the surface, in current 3DS MAX units.

In the Modify command panel, the Length and Width spinners are no longer available. You can change the length or width of the surface by scaling the surface at the Surface sub-object level. Moving CV sub-objects also alters the length and width of the surface.

Length Points: The number of CVs along the length of the surface. In other words, the initial number of CV columns in the surface. Can range from 4 to 50.

Width CVs or Width Points: The number of CVs along the width of the surface. In other words, the initial number of CV rows in the surface. Can range from 4 to 50.

In the Modify command panel, the CV Length and Width spinners are no longer available. You can change the number of rows and columns by deleting existing rows and columns, or by adding new rows and columns using the Refine controls at the Surface CV sub-object level.

Generate Mapping Coordinates: Generates mapping coordinates so you can apply mapped materials to the surface.

The Generate Mapping Coordinates control is present in the Modify command panel. It is at the Surface sub-object level.

When you modify a CV surface, a rollout lets you change its surface approximation settings.

Keyboard Entry for CV Surfaces

The Keyboard Entry rollout lets you create a CV surface by typing. Use the TAB key to move between the controls in this rollout. To press the Create button, use ENTER while the button is active.

X, Y, and Z: Enter the coordinates of the center of the surface.

Length and Width: Enter the dimensions of the surface, in current 3DS MAX units.

Length CVs: Enter the number of CVs along the length of the surface (this is the initial number of CV columns).

Width CVs: Enter the number of CVs along the width of the surface (this is the initial number of CV rows).

Create: Creates the surface object.

How To

To create a CV surface:

  1. Go to the Create command panel and turn on Geometry.
  2. Choose NURBS Surfaces from the dropdown list.
  3. Turn on CV Surf.
  4. In a viewport, drag to specify the area of the planar segment.
  5. Adjust the surface’s creation parameters.


Surface Approximation

Although NURBS curves and surfaces are analytically generated, to generating and displaying them requires curves to be approximated by line segments, and surfaces by faces. You use the controls described in this section to set approximation parameters, and the kind of approximation used.

The Surface Approximation rollout controls how surface sub-objects in the NURBS model are approximated for the purposes of rendering and viewport display. It is important to know that NURBS can be approximated differently in viewports and in the renderer. Typically you will want to set viewport display to be clear and quick, while you will want rendered display to be smooth, accurate, and "realistic." However, the approximation you choose for viewports creates a mesh, and the kind of mesh you choose can affect the behavior of modifiers that you later apply to the NURBS model.

Surface approximation parameters aren’t animatable.

Note: If the size or shape of a surface changes over time, the tessellation used to approximate it can change as well. This has the advantage of improving render time in animations. It has the disadvantage that you can't apply image motion blur to NURBS objects whose tessellation changes during animation.

Reference

The first two controls in this rollout are radio buttons so you can select which kind of display output, viewport or renderer, these parameters control.

Viewports: When chosen, the rollout affects how surfaces in the NURBS object are displayed interactively in viewports, including shaded viewports, and by the preview renderer.

The Viewports surface settings are also used when you apply a mesh modifier such as Mesh Select to the NURBS object. This is important because it can affect the scene’s geometry.

Renderer: When chosen, the rollout affects how surfaces in the NURBS object are displayed by the renderer, and by the draft renderer for Quick Render.

Iso Parametric Lines

The controls in this area affect the display of the NURBS surface in viewports. They are disabled while Renderer is chosen.

U Lines and V Lines: The number of lines used to approximate the NURBS surface in viewports, along the surface’s local U and V dimensions, respectively. Reducing these values can speed up the display of the surface, but reduce accuracy of the display. Increasing these values increases accuracy at the expense of time. Setting one of these values to 0 displays only the edge of the object in the corresponding dimension.

Iso and mesh displays of a NURBS teapot

Iso Only: When chosen, all viewports display iso line representations of the surface. Iso(parametric) lines are similar to contour lines. The lines show where the NURBS surface has a constant U value or V value or both. Iso line representations can be less crowded and easier to visualize than wire mesh representations.

Iso and Mesh: (The default.) When chosen, wireframe viewports display iso line representations of the surface, and shaded viewports display the shaded surface.

Mesh Only: When chosen, wireframe viewports display the surface as a wire mesh, and shaded viewports display the shaded surface. In wireframe viewports, this option lets you see the surface approximation used for viewports.

Mesh Parameters

The controls in this area affect the display of the NURBS surface in either viewports, if Viewports is chosen, or by the renderer, if Renderer is chosen. You can choose between three algorithms. Each approximates NURBS surfaces by tessellating them in a different way.

Note: When Viewports is chosen, you must also choose Mesh Only in order to see the effect of the Mesh Parameter settings in wireframe viewports.

Tip for Viewports: Use Parametric or Curvature for quick display. The algorithm creates the mesh, so if you modify the NURBS object with Mesh Select, choose the algorithm that gives the result you need. If you use modifiers heavily, Spatial or Parametric are usually better than curvature, because of their regular tessellation. Curvature-dependent tesselation can cause problems with some 3DS MAX modifiers.

Tip for the Renderer: Use either Spatial or Curvature to obtain the most accurate rendering. Curvature can be the more efficient choice for rendering animated surfaces.

Parametric: Generates a fixed tessellation based on U Steps by V Steps. Increasing these parameters increases accuracy at a cost of speed, and vice versa, but in general this is the quickest and least accurate way to approximate a NURBS surface.

Parametric mesh of the NURBS teapot

Spatial: Generates a uniform tessellation made of triangular faces.

The Edge parameter specifies the maximum length of a triangular face in the tesselation, in current 3DS MAX units. Decreasing this value increases accuracy but increases rendering time.

Spatial mesh of the NURBS teapot

Curvature: (The default.) Generates a variable tessellation based on the curvature of the surface. The tessellation has a finer grain where the surface is more curved. Changing surface curvature dynamically changes the curvature tessellation.

The Distance parameter specifies how far the approximation can deviate from the actual NURBS surface. Distance is a percentage of the diagonal of each surface’s bounding box. Each surface in an object is tessellated based on its size, independently of other surfaces, and scaling a surface doesn’t change its tessellation. Decreasing this value increases accuracy but increases rendering time. When you set Distance to 0.0, 3DS MAX ignores this parameter and uses the Angle to control accuracy.

The Angle parameter specifies the maximum angle between faces in the approximation. Decreasing this value increases accuracy but increases rendering time. When you set Angle to 0.0, 3DS MAX ignores this parameter and uses the Distance to control accuracy.

When both Distance and Angle are 0.0, the surfaces degenerate and can become flat surfaces.

Curvature mesh of the NURBS teapot

View-Dependent (for the Renderer only): When turned on, takes the object’s distance from the camera into account while calculating its tessellation. This can improve rendering time by not generating fine-grained tesselations for objects that are in the distance of the rendered scene. The view-dependent effect only works when you render camera or perspective viewsit doesn’t work in orthographic views. This control is disabled while Viewports is active.

Merge: Controls the tessellation of surface sub-objects whose edges are joined or very nearly joined. When input to a modifier -- such as Mesh Select -- requires a mesh, and when NURBS surfaces are tessellated for production rendering, by default 3DS MAX adjusts the tessellation of adjoining surfaces to match each other, in terms of the number of faces along the edges. The Merge parameter controls how this is done. If Merge is zero, adjoining faces are unchanged. Increasing the value of Merge increases the distance 3DS MAX uses to calculate how edges should match, guaranteeing no gaps between the surfaces when they are rendered. Default = 0.01.

In most cases, you don't need to adjust Merge. If rendering shows gaps between nearly adjoining faces, increase Merge to eliminate them.

Technically, the Merge value is one tenth of one percent of the diagonal of the object's bounding box. In other words, a Merge value of 1.0 (higher than necessary for most purposes) is 0.1 percent of the length of the diagonal. Because Merge is based on the object's dimensions, you can scale the NURBS model without affecting the Merge setting.


Creating NURBS Surfaces from Geometric Primitives

You can turn a 3DS MAX Standard Primitive into a NURBS object formed of CV surfaces. (You can’t convert Extended Primitive objects in this way.) Once converted, you can no longer edit the object parametrically, but you can edit it as a NURBS object, moving CVs and so on.

Tips:

  • Sometimes converting the primitive to a NURBS object causes its normals to point the wrong way. You can see this in shaded viewports. If this happens, turn on Flip Normals at the Surface sub-object level.
  • Geospheres are good for creating rounded models with no sharp edges.
  • Boxes are good for creating models that have sharp edges.
  • Flattened cones work well for models whose contours are roughly triangular.

How To

To turn a primitive into a NURBS object:

  1. Create the primitive object.
  2. Go to the Modify command panel.
  3. In the Modifier Stack rollout, click Edit Stack.
  4. Choose NURBS Surface from the pop-up menu that appears.

    5. The object is converted to one or more CV surfaces. The surfaces might be independent surface sub-objects, or they can be dependent surface sub-objects such as Lathe.


Creating Dependent Surfaces

Dependent surfaces are surface sub-objects whose geometry depends on other surfaces or curves in the NURBS model. When you change the geometry of the original, parent surface or curve, the dependent surface changes as well.

You create dependent surfaces using the Create Surfaces rollout in the Modify command panel for a NURBS surface. (The Point Surf and CV Surf buttons create independent surface sub-objects. Click one of these buttons and then drag in a viewport to create the surface, as previously described in "Creating NURBS Surfaces.")

Tip: Loft and extrude surface sub-objects can be based on only a single curve. If you have dependent curves and want to use the set of curves (for example, two parents and a fillet between them) as the basis of an extrude or loft surface, first go to the Curve sub-object level and use Join to connect the curves.

Toolbox Buttons for Creating Surfaces

These are the toolbox buttons for creating surface sub-objects:

Create an independent CV surface.

Create an independent point surface.

Create a dependent transform surface.

Create a dependent blend surface.

Create a dependent offset surface.

Create a dependent mirror surface.

Create a dependent extrude surface.

Create a dependent lathe surface.

Create a dependent ruled surface.

Create a dependent U Loft surface.

Create a dependent cap surface.


Transform Surface

A transform surface is a copy of the original surface with a different position, rotation, or scale.

Surface created as a transform

Reference

There is no special parameter rollout for transform surfaces. You can later transform the transform surface as a Surface sub-object, and you can animate Surface sub-object transforms.

How To

To create a transform surface:

  1. In a NURBS object that contains at least one surface, turn on Transform.
  2. To move the transform surface, click and drag the surface you want to duplicate. To rotate or scale the transform surface, click the parent surface, click to turn on Sub-Object in the Modifier Stack rollout, choose Surface from the dropdown list, and then use a transform to rotate or scale the transform surface.

When you use Move to create the transform surface, it simply copies the parent (it doesn’t exaggerate curvature as an offset surface does).


Blend Surface

A blend surface connects one surface to another, blending the curvature of the parent surfaces to create a smooth surface between them.

Blend surface connecting two other surfaces

Reference

When you turn on the Blend button, and while a blend surface sub-object is selected, a rollout with the blend parameters appears at the bottom of the command panel

"Tension" affects the tangent between a parent surface and the blend surface. The greater the tension value, the more closely the tangent parallels the parent surface, and the smoother the transition. The lower the tension, the greater the tangent angle and the sharper the transition between parent and blend.

Tension 1: Controls tension at the edge of the first surface you clicked.

Tension 2: Controls tension at the edge of the second surface you clicked.

Flip End 1 and Flip End 2: Flip one of the normals used to construct the blend. A blend surface is created using the normals of the parent surfaces. If the two parents have opposing normals, this can lead to a blend surface shaped like a bow tie. To correct the situation, use Flip End 1 or Flip End 2 to have the blend constructed using a normal opposite the corresponding parent surface’s normal.

How To

To create a blend surface:

  1. In a NURBS object that contains two surfaces, turn on Blend.
  2. Click one surface near the edge that you want to connect. The edge that will be connected is highlighted in blue. Drag to choose the edge you want to connect. When the edge you want is highlighted, click and then drag to the other surface. The edge of the other surface is also highlighted in blue. Drag on the other surface to choose the edge to connect, and then release the mouse.

    3. 3DS MAX creates the blend surface. Changing the position or the curvature of either parent surface will change the blend surface as well.

  3. Adjust the blend parameters.


Offset Surface

An Offset surface is offset a specified distance from the original along the parent surface’s normals.

Surface created as an offset

Reference

When you turn on the Offset button, and while an offset surface sub-object is selected, a rollout with the offset Distance parameter appears at the bottom of the command panel.

Distance: The distance between the parent surface and the offset surface, in 3DS MAX units.

How To

To create an offset surface:

  1. In a NURBS object that contains at least one surface, turn on Offset.
  2. Click the surface you want to offset, and drag to set the initial distance.

    3. 3DS MAX creates the offset surface.

  3. Adjust the Distance parameter.

    4. If the parent surface is planar, the appearance of the offset surface doesn’t change with distance. If the parent surface is curved, increasing the distance increasingly exaggerates the curvature of the offset surface.


Mirror Surface

A mirror surface is a mirror-image of the original surface.

Surface created as a mirror (about the Z axis)

Reference

When you turn on the Mirror button, or while a mirror surface sub-object is selected, a rollout with the mirror parameters appears. Also, a gizmo (yellow by default) indicates the mirror axis.

The Mirror Axis buttons control the direction in which the original surface is mirrored. The Offset controls the mirror’s distance from the original surface. This parameter is animatable.

You can't transform the mirror surface directly (this simply transforms the mirror surface and its parent surface at the same time). You transform it by transforming its gizmo.By using transforms you can mirror about an arbitrary axis, rather than one of the Mirror Axis presets. When you transform a mirror surface, you are actually transforming the mirror plane, so Rotate has the effect of rotating the plane about which the surface is mirrored. (This is like rotating the mirror gizmo in the Mirror modifier.)

Tip: A convenient way to guarantee that a surface is symmetrical is to create one side of the surface, mirror that surface, and then create a blend between the two sides.

How To

To create a mirror surface:

  1. In a NURBS object that contains at least one surface, turn on Mirror.
  2. In the Mirror Surface rollout (see below), choose the axis or plane you want to use.
  3. Click the surface you want to mirror, and drag to set the initial distance.

    4. 3DS MAX creates the mirror surface. A black gizmo indicates the direction of mirroringtransforming the mirror surface’s gizmo changes the orientation of the mirror, letting you mirror along an axis that isn’t aligned with a local coordinate axis.

  4. Adjust the Offset parameter.


Extrude

An extrude surface is extruded from a curve sub-object. It is similar to a surface created with the Extrude modifier. The advantage is that an extrude sub-object is part of the NURBS model, so you can use it to construct other curve and surface sub-objects.

Surface extruded from a curve

Reference

When you turn on the Extrude button, or while an extrude sub-object is selected, a rollout with the extrusion parameters appears.

Amount: The distance the surface is extruded from the parent curve, in current 3DS MAX units.

Direction: Click X, Y, or Z to choose the axis of extrusion. Default = Z.

How To

To create an extrude surface:

  1. In a NURBS object that contains at least one curve, turn on Extrude.
  2. Move the cursor over the curve to extrude, and drag to set the initial amount.

    3. By default, the surface extrudes along the NURBS model’s local Z axis. A gizmo (yellow by default) indicates the direction of extrusiontransforming the extrude surface’s gizmo changes the direction of the extrude, letting you extrude along an axis that isn’t aligned with a local coordinate axis.

  3. Adjust the extrusion parameters.


Lathe

A lathe surface is generated from a curve sub-object. It is similar to a surface created with the Lathe modifier. The advantage is that a lathe sub-object is part of the NURBS model, so you can use it to construct other curve and surface sub-objects.

Surface created by lathing a curve

Reference

When you turn on the Lathe button, or while a lathe sub-object is selected, a rollout with the lathe parameters appears.

Degrees: Sets the angle of rotation. At 360 degrees (the default), the surface completely surrounds the axis. At lower values, the surface is a partial rotation.

A partial lathe

Direction: Click X, Y, or Z to choose the axis of rotation. Default = Y.

X, Y, and Z rotations of the same curve

Align: Positions the axis of rotation relative to the curve. Click Min (the default) to locate the lathe axis at the curve’s negative local X-axis boundary. Click Center to locate the lathe axis at the curve’s center. Click Max to locate the lathe axis at the curve’s positive local X-axis boundary.

Min, Center, and Max lathes of the same curve (Y-axis)

How To

To create a lathe surface:

  1. In a NURBS object that contains at least one curve, turn on Lathe.
  2. Click the curve to lathe.

    3. The lathe surface rotates about the NURBS model’s local Y axis. The initial lathe amount is 360 degrees. A gizmo (yellow by default) indicates the axis of the lathetransforming the lathe surface’s gizmo changes the shape of the lathe, and lets you lathe around an axis that isn’t aligned with a local coordinate axis.

  3. Adjust the lathe parameters.


Ruled

A ruled surface is generated from two curve sub-objects. It lets you use curves to design the two opposite borders of a surface.

Using two curves to create a ruled surface

Reference

You can animate the parent curves or their CVs to change the ruled surface.

When you turn on the Ruled button, and while a ruled surface sub-object is selected, a rollout with the ruled surface parameters appears at the bottom of the command panel.

Flip Beginning and Flip End: Flip one of the curve directions used to construct the ruled surface. A ruled surface is created using the directions of the parent curves. If the two parents have opposing directions, this can lead to a ruled surface shaped like a bow tie. To correct the situation, use Flip Beginning or Flip End to have the ruled surface constructed using a direction opposite the corresponding parent curve’s direction. These controls spare you the need to actually reverse the curve.

How To

To create a ruled surface:

  1. In a NURBS object that contains at least two curves, turn on Ruled.
  2. Drag from one curve to the other.

    3. 3DS MAX generates a dependent surface using the two curves as the surface’s opposite edges. It generates the perpendicular edges automatically.


U Loft Surface

A U Loft surface interpolates a surface across multiple curve sub-objects. The curves become U-axis contours of the surface.

Using multiple curves to create a U Loft surface

Tips:

  • U Lofts can be extremely dense surfaces. To improve performance while working with viewports, set the surface approximation for viewports to Curvature Dependent.
  • You can speed up U Loft creation by making sure that the curves you loft all have the same number of CVs in the same order (the curves all point in the same direction). Also, CV curves have a performance advantage over point curves.
  • Turning off display of dependent sub-objects -- including the U Loft itself -- also speeds up interactive performance when you create a U Loft. The default keyboard toggle for dependent sub-object display is CTRL + D (the Plug-In Keyboard Shortcut Toggle must be turned on.)

Reference

When you turn on the U Loft button, or while a U Loft sub-object is selected, a rollout with the U Loft parameters appears. This rollout appears only during U Loft creation, and when one U Loft sub-object is selected. It isn’t possible to edit more than one U Loft at a time, so unlike other NURBS sub-objects, the rollout doesn’t appear when multiple U Loft sub-objects are selected.

Tip: When you edit a U Loft sub-object, close the Surface Common rollout to see the U Loft Surface rollout more readily.

U Curves: This list shows the name of the curves you click, in the order you click them. You can select curves by clicking their names in this list. Viewports display the selected curve in blue. Initially the first curve is the one selected.

Arrow Buttons: Use these to change the order of curves used to construct the U Loft. Select a curve in the list, and then use the arrows to move the selection up or down.

Reverse Curve: When set, reverses the direction of the selected curve.

Insert: Adds a curve to the U Loft surface. Click to turn on Insert, then click the curve. The curve is inserted before the selected curve. To insert a curve at the end, first highlight the "----End-----" marker in the list.

Remove: Removes a curve from the U Loft surface. Select the curve in the list, and then click Remove.

Refine: Refines the U Loft surface. Click to turn on Refine, then click a U-axis iso curve on the surface. (As you drag the mouse over the surface, the available curves are highlighted.) The curve you click is converted to a CV curve and inserted into the loft and the U Curves list. As when you refine a point curve, refining a U Loft can change the curvature of the surface slightly. Once you’ve refined the surface by adding a U curve, you can use Edit Curve to change the curve.

Edit Curve: Lets you edit the currently selected curve without switching to another sub-object level. Click to turn on Edit Curve. The points or CVs of the curve are displayed, as well as the control lattice if the curve is a CV curve. You can now transform or otherwise change the points or CVs as if you were at the Point or Curve CV sub-object level. To finish editing the curve, click to turn off Edit Curve.

Tip: When you edit curves in a U Loft, turning off display of the U Loft itself can make the curves easier to see and improve performance as well. Use CTRL + D (while the Plug-In Keyboard Shortcut Toggle is on) to toggle display of dependent sub-objects, including U Lofts.

The U Loft surface can deviate from the curve if you edit a curve in a U Loft by increasing the weight of the curve CVs. You can work around this by refining the curve at the point where the surface deviates.

Display Iso Curves: When set, 3DS MAX displays the U Loft’s V-axis iso curves as well as the U-axis curves used to construct the loft. The V-axis curves are only for display. You can’t use them for surface construction.

How To

To create a U Loft surface:

  1. In a NURBS object that contains at least two curves, turn on U Loft.
  2. Click the first curve.
  3. Click additional curves in succession.

    4. 3DS MAX creates the U Loft, "stretching" it across the curves you click. The order in which you click the curves can affect the shape of the U Loft surface. The names of the curves appear in the U Loft Surface creation rollout. You can turn off Display While Creating to prevent display of the surface until you’re done. This can speed up creation time.

    While creating a U Loft, you can press BACKSPACE to remove the last curve you clicked from the list of U Loft curves.

  4. Right-click to end U Loft creation.


Cap

Creates a surface that caps a closed curve or the edge of a closed surface. Caps are especially useful with extruded surfaces.

Capping an extrude surface

Reference

Cap surfaces have no parameters rollout.

How To

To create a cap surface:

  1. In a NURBS object, turn on Cap.
  2. Move the mouse over the closed curve or the closed edge of a closed surface.

    3. If 3DS MAX can create the cap, the curve or edge is highlighted in blue.

  3. Click the highlighted curve or edge.


Editing Curve Sub-Objects

Reference

This section describes the controls that are common to Point and CV curves. A rollout labeled Curve Common contains the curve sub-object controls for NURBS models.

The selection controls and other common controls are described in Common Sub-Object Controls.

Delete

You can delete curve sub-objects by clicking this button.

Make Fit

Turns a CV curve into a point curve.

If the selected curve is already a point curve, you can use Make Fit to change the number of points it has.

Make First

For a closed curve, lets you choose a position that becomes the first vertex of the curve.

The first point or CV is significant when you use the NURBS curve like a splineas a Loft path or shape, as a Path Controller path, or as a motion trajectory. For these purposes, the first vertex of the curve is significant. If the curve is a closed curve, you can use Make First to set the curve’s first vertex.

Caution: Using Make First discards any animation controllers for the points or CVs in the curve.

If the curve is open, the first vertex must be one of the endpoints (by default, it is the first you created). The Make First button has no effect, but you can use Reverse to change the curve’s direction.

Reverse

Reverses the order of the CVs or points in a curve, so that the first vertex becomes the last, and the last becomes the first. (See the previous section, "Make First.")

Join

Joins two curve sub-objects together.

Caution: When you join two curve sub-objects, you lose the animation controllers for all point or CVs on both curves.

Tolerance: A distance in 3DS MAX units. If the gap between the curves you are joining is greater than this value, 3DS MAX creates the join by first creating a blend curve and then joining the three parts. If the gap is less than this value, or if the curves are overlapping or coincident, 3DS MAX doesn’t create the blend.

Creating a blend and then joining the three curves into a single curve is the better technique. The result matches the parent curves well. Without the blend step, the resulting curve can deviate from the parent curves, in order to maintain smoothness. (The amount of deviation depends on how far from tangent the two input curves were at the join.)

A problem arises when there is a gap but it is too small. In this case, 3DS MAX generates the blend but because there isn’t enough room for it, the resulting curve has a loop in it. To avoid this loop, set the Tolerance higher than the gap distance.

If you set the tolerance to 0.0, 3DS MAX chooses a value to use for the Tolerance.

Break

Breaks a single curve into two curves.

CV Curve Degrees

While a CV curve sub-object is selected, the CV Curve rollout appears.

The higher the Degree value, the greater the continuity. The lower the degree, the more discontinuous the curve segments become. The degree can’t be less than one or greater than the number allowed by the number of CVs in the curve. Degree 3 curves are adequate to represent continuous curves, and are stable and well behaved. Default = 3.

Setting the degree greater than 3 isn’t recommended, because higher-degree curves are slower to calculate and less stable numerically. Also, you can't create an Offset curve sub-object from a curve whose degree is greater than 3. 3DS MAX supports higher-degree curves primarily to be compatible with models created using other surface modelers.

The number of CVs in a CV curve must be at least one greater than the curve’s degree.

Closing Curves

The CV Curve or Point Curve rollout, visible while an independent curve sub-object is selected, lets you make the curve a closed curve.

Closing a curve does not add points or CVs to the curve. The curve retains its original number of points or CVs, and increases its number of segments by one.

How To

To delete a curve:

  • Select the curve and then click Delete.

Keyboard shortcut: DEL

To turn a CV curve into a point curve:

  1. Select the curve.
  2. Click Make Fit.

    3. 3DS MAX displays a dialog that asks how many points the new point curve should have.

  3. Change the number of points, and then click OK.

    4. Reducing the number of points can change the shape of the curve.

To select a first vertex on the curve:

  • Turn on Make First, and then click a location on the curve.

If the curve is closed and there is a vertex where you click, this vertex becomes the first vertex. If the curve is closed and there is no vertex where you click, a new vertex is created at the location you click. It becomes the new first vertex, and the curve’s points or CVs adapt to maintain the curvature.

If the curve is open, clicking it has no effect.

To reverse a curve:

  • Select a curve sub-object, and then click Reverse.

To join two curves:

  1. In a NURBS object that contains two curve sub-objects, turn on Join.
  2. If the gap between the curves is smallless than about 30 unitsset the Tolerance value to a value greater than the distance of the gap.
  3. Click one curve near the end that you want to connect. Drag to near the end of the other curve, and then release the mouse.

    4. The endpoints of the two curve objects are connected by new segments, and the two original curves are replaced by a single curve. (Unlike a Blend curve, the new segment is part of the curve object, not a dependent sub-object.)

To break a curve:

  • Turn on Break, and then click a curve.

The curve is split into two independent curve sub-objects. Two coincident (but independent) points or CVs are created at the location you clickedeach is the endpoint of one part of the original curve.

If the curve is a closed curve, Break creates a single curve object, with its new start and end points at the location you clicked. The new start and end points are coincident but independent.

To close a curve:

  1. Select the curve.
  2. Click Close.

3DS MAX closes the curve by adding a segment between the curve’s endpoints. The curvature of the new segment blends the curvature of the previous end segments.


Lights

Provides access to tools for creating lights.

Lights are 3D Studio MAX objects that simulate household or office lamps, the light instruments used in stage and film work, the sun itself, and so on. Different kinds of light objects cast light in different ways, simulating different kinds of real-world light sources.

When there are no lights in a scene, 3DStudio MAX shades it or renders it with default lighting. You add lights to give the scene a more realistic appearance. Well-done lighting enhances the clarity and three-dimensionality of a scene.

To give you flexibility in showing the same scene under different lighting conditions--daytime and nighttime, for example--3DSMAX allows you to vary or animate light object parameters, and to turn lights on and off without removing them from the scene.

Light objects replace the default lighting. As soon as you create a light, the default lighting is turned off. If you delete all the lights in the scene, default lighting is turned back on. The default lighting consists of two invisible lights: one is above and to the left of the scene, and the other is below and to the right.

Reference

3DS MAX provides default invisible lights so that your scene is always lit. As soon as you create the first light in a scene, the default lights are turned off. If you delete all lights from your scene, the default lights are turned back on again.

You can turn the display of light objects on and off with an option in the Display panel.

There are five kinds of light objects:

Target Spot

Free Spot

Target Direct

Free Direct

Omni

Note: A scene’s lighting is also affected by the Ambient Light setting in the Environment dialog.

Most of the light parameters are common to all kinds of lights, and are described in the following topics:

General Lighting Parameters

Shadow Parameters

Projection Parameters

Hotspot and falloff controls apply to all kinds of lights except Omni lights:

Hotspot and Falloff Parameters

For parameters specific to a particular kind of light, see that light’s description.

You can use the Place Highlight command to change a light’s position--see the How To's for lights (this topic).

How To

To create a light

  1. Go to the Create panel and click Lights.
  2. In the Object Type rollout, click the button that has the name of the kind of light object you want to create.
  3. Set the creation parameters.

    4. Like all objects, lights have a name and color.

    All lights have a General Parameters rollout.

  4. Click a viewport location to create the light.

    5. This step varies slightly depending on the kind of light.

    Light objects replace the default lighting. As soon as you create a light, the default lighting is turned off. If you delete all lights in the scene, the default lighting is restored.

    Unless you turn on shadow casting, light illuminates each object equally, as if other objects were not there. In other words, shadows are a result of geometry blocking light, and if shadows are turned off, light passes through objects (even though they might be rendered as solid).

To control the display of light objects

  1. Go to the Display control panel.
  2. In the Hide by Category rollout, set or clear Lights.

    3. Light icons appear in viewports if Lights is cleared in this rollout; otherwise they don't appear.

    Light objects can cast light whether or not they are hidden. The Zoom Extents commands are affected by whether light icons are displayed or not.

To change a light's creation parameters

  1. Select the light.
  2. Go to the Modify panel.
  3. Change the light's creation parameters in the General Parameters rollout and other rollouts.

To position a light so it highlights a face

  1. Make sure the viewport you plan to render is active, and that the object you want to highlight is visible in it.

    2. The result of Place Highlight depends on what is visible in the viewport.

  2. Select a light object.
  3. Click Place Highlight.

    4. If the button is not visible on the toolbar, choose it from the Align flyout.

  4. Drag over the object to place the highlight.

    5. When you place an omni, free spot, or free direct light, 3DS MAX displays a face normal for the face the mouse indicates.

    When you place a target spotlight or direct light, 3DS MAX displays the light's target and the base of its cone.

  5. Release the mouse when the normal or target display indicates the face you want to highlight.

    6. The light now has a new position and orientation. You can see the highlight illumination in shaded viewports that show the face you chose, and when you render those views.

    Tip: Place Highlight works with any kind of selected object. You can also use Place Highlight with a selection set that contains more than one object. All objects maintain their initial distance from the face.

    An alternate way to invoke Place Highlight is to choose Edit/Place Highlight in step 2, above.

    Note: For materials in 3DS MAX, highlight rendering depends on the material's specular properties and the type of rendering you use.


Target Spot

Target Spotlight icon

Creates a spotlight with a target. A spotlight casts a focused beam of light like a flashlight, a follow spot in a theater, or a headlight.

Reference

Clicking the line that connects the light and its target selects both objects. However, region selection doesn’t recognize the link line.

When you rename a target spotlight, the target is automatically renamed to match. For example, renaming Light01 to Klieg causes Light01.Target to become Klieg.Target. The target’s name must have the extension .Target. Renaming the target object does not rename the light object.

How To

To create a Target Spotlight

  1. Go to the Create panel and click Lights.
  2. In the Object Type rollout, click Target Spot.
  3. Drag in a viewport. The initial point of the drag is the location of the spotlight, and the point where you release the mouse is the location of the target.

    4. The light is now part of the scene.

  4. Set the creation parameters.

    5. To adjust the light, you can move it with the Move transform. Because the spotlight is always aimed at its target, you can't rotate it about its local X or Y axes. However, you can select and move the target object as well as the light itself. When you move either the light or the target, the light's orientation changes so it always points at the target.

    Tip: Because the target is displayed as a small square, and because it is often in the same area as objects that you want to illuminate, it can be hard to select by clicking. Select the target spotlight itself, right-click it, then choose Select Target from the popup menu. You can also choose Lights from the Selection Filters list on the toolbar, and then click the target. Clicking the line that connects the light and its target selects both objects.

    Another way to adjust a spotlight is to use a spotlight viewport.

To change a viewport to a spotlight view

  1. Right-click the viewport label.

    2. The Viewport Properties menu appears.

  2. Choose Views.

    3. The name of each spotlight appears in the View list.

  3. Choose the name of the spotlight you want.

    4. The viewport now shows the spotlight's point of view.

    The default keyboard shortcut for spotlight viewports is: $


Free Spot

Free Spotlight icon

A spotlight casts a focused beam of light like a flashlight, a follow spot in a theater, or a headlight.

Reference

You aim a free spotlight by adjusting its orientation in a scene using the Rotate tool.

The free spotlight is useful when you want a spotlight to follow a path and either don't want to bother with linking a spotlight and target to a dummy object, or you need banking along the path.

Free Spot Parameter

A free spotlight has this additional parameter.

Target Distance: Sets a point to use as an invisible target about which the free spotlight can orbit.

How To

To create a Free Spotlight

  1. Go to the Create panel and click Lights.
  2. In the Object Type rollout, click Free Spot.
  3. Set the creation parameters.
  4. Click the viewport location where you want the light to be.

    5. The light is now part of the scene. It points away from you in the viewport you clicked.

    To adjust the light's direction, you can rotate it with the Rotate transform.

    Another way to adjust a spotlight is to use a spotlight viewport.

To change a viewport to a spotlight view

  1. Right-click the viewport label.

    2. The Viewport Properties menu appears.

  2. Choose Views.

    3. The name of each spotlight appears in the View list.

  3. Choose the name of the spotlight you want.

    4. The viewport now shows the spotlight's point of view.

    The default keyboard shortcut for spotlight viewports is: $


Target Direct

Target Direct light icon

Directional lights cast parallel light rays in a single direction, as the sun does (for all practical purposes) at the surface of the earth. Directional lights are primarily used to simulate sunlight. You can adjust the color of the light and position and rotate it in 3D space.

Reference

Clicking the line that connects the light and its target selects both objects. However, region selection doesn’t recognize the link line.

When you rename a target directional light, the target is automatically renamed to match. For example, renaming Light01 to Sol causes Light01.Target to become Sol.Target. The target’s name must have the extension .Target. Renaming the target object does not rename the light object.

How To

To create a Target Direct light

  1. Go to the Create panel and click Lights.
  2. In the Object Type rollout, click Target Direct.
  3. Drag in a viewport. The initial point of the drag is the location of the spotlight, and the point where you release the mouse is the location of the target.

    4. The light is now part of the scene.

  4. Set the creation parameters.

    5. To adjust the light's direction, you can move the target object.

    Directional light has a "cone"actually, because directional rays are parallel, this is a beam that has the shape of a circular or rectangular prism.


Free Direct

Free Direct light icon

Directional lights cast parallel light rays in a single direction, as the sun does (for all practical purposes) at the surface of the earth. Directional lights are primarily used to simulate sunlight. You can adjust the color of the light and position and rotate it in 3D space.

Reference

A Free Direct light has this additional parameter.

Target Distance: Sets a point to use as an invisible target about which the free direct light can orbit. This parameter also affects the length of the light’s cone display.

How To

To create a Free Direct light

  1. Go to the Create panel and click Lights.
  2. In the Object Type rollout, click Directional.
  3. Click a viewport.

    4. The light is now part of the scene. It points away from you in the viewport you clicked.

  4. Set the creation parameters.

    5. To adjust the light's direction, you can rotate it with the Rotate transform.

    Directional light has a "cone"actually, because directional rays are parallel, this is a beam that has the shape of a circular or rectangular prism.


Omni

Omni light icon

Casts rays in all directions from a single source.

Reference

To create an omni light, click the Omni button then click in any viewport. If you drag the mouse during creation, you can move the light around before releasing the mouse to fix its position.

Omni lights can cast shadows and projections. A single shadow-casting omni light is the equivalent of six shadow-casting spotlights, pointing outward from the center.

When you set a map projected by an Omni light to be projected using Environment coordinates Spherical or Shrink Wrap, the map is projected in the same way as it would be mapped to the environment. When you use either Environment/Screen or Texture/Explicit, six copies of the map are projected radially.

How To

To create an Omni light

  1. Go to the Create panel and click Lights.
  2. In the Object Type rollout, click Omni.
  3. Click the viewport location where you want the light to be.

    4. The light is now part of the scene.

  4. Set the creation parameters.

    5. To adjust the light's effect, you can move it with the Move transform.


General Lighting Parameters

Reference

These are the general parameters for lights:

Color

On: Turns the light on and off. You can see the effect of this on your geometry in the interactive renderer.

R, G, B / H, S, V: Sets the color of the light by adjusting the red, green, and blue components or by adjusting the hue, saturation, and value. The effect of adjusting the spinners is visible in the color swatch above them. You can also click on the color swatch to display the Color Selector dialog.

Exclude: Excludes selected objects from the effects of the light. Click this button to display the Exclude/Include Dialog.

Multiplier: Amplifies the power of the light by a positive or negative amount. For example, if you set the multiplier to 2, the light will be twice as bright. Multipliers are also useful for subtracting light and selectively placing dark areas in the scene.

Contrast: Lets you adjust the contrast between the diffuse and ambient areas of the surface. Leave this set to 0 for normal contrast. Increase the value to increase the contrast for special effectsfor example, the harsh light of outer space. Default = 0.0.

Soften Diffuse Edge: When on, Soften Diffuse Edge softens the edge between the diffuse and ambient portions of a surface. This helps eliminate edges that can appear on a surface under certain circumstances.

Note: Soften Diffuse Edge reduces the amount of light, slightly. You can counter this, to some extent, by increasing the Multiplier value.

Affect Diffuse: When this is on (the default) the light affects the diffuse properties of an object’s surface. When off, the light has no effect on the diffuse surface.

Affect Specular: When on (the default) the light affects the specular properties of an object’s surface. When off, the light has no effect on the specular properties.

For example, by using these two check boxes you can have one light color the specular highlights of an object, while not coloring its diffuse area, and then have a second light color the diffuse portion of the surface while not creating specular highlights.

Attenuation

Attenuation controls are arranged in two columns. The first column controls near attenuation, and the second controls far attenuation.

Far attenuation determines whether the light cast by the light drops off to zero value over a defined range. When Use is set for Far attenuation but not for near attenuation, the light, at its source, uses the value specified by the color and multiplier controls. It remains at this value from the source to the distance specified by Start, then drops off to zero value at the distance specified by End.

Near attenuation determines whether the light “fades in.” When Use is set for Near attenuation, the light remains at zero value up to the distance specified by Start. From Start to the distance specified by End, its value increases. Beyond End, the light remains at the value specified by the color and multiplier controls, unless far attenuation is also active.

3D Studio MAX doesn’t let you set the Near and Far attenuation distances so they overlap.

Start and End: Set the limits of Near and Far attenuation, as described in the preceding paragraphs.

Use: Enables Near or Far attenuation for the light.

Show: Displays the Near or Far attenuation range settings in viewports. For spotlights, attenuation ranges appear as lens-shaped sections of the cone. For directional lights, the ranges appear as circular sections of the cone. For omni lights and spot or directional lights with Overshoot turned on, the ranges appear as spheres. By default, Near Start is dark blue and Near End is light blue; Far Start is light brown and Far End is dark brown.

Decay

Decay is an additional way to make a light’s intensity reduce over distance. There are three decay options:

None: Choose this to have no decay. The light maintains full strength from its source to infinity, unless you turn on Far attenuation.

Inverse: Choose this to apply inverse decay. The formula is luminance = R0/R, where R0 is the radial source of the light if no Attenuation is used, or the Near End value of the light if Attenuation is used. R is the radial distance of the illuminated surface from R0.

Inverse Square: Choose this to apply inverse-square decay. The formula for this is (R0/R)2. This is actually the “real-world” decay of light, but you might find it too dim in the world of computer graphics.

Tip: If Inverse Square decay makes the scene too dim, try increasing the light’s Multiplier value. You can also try using the Environment dialog to increase the Global Lighting Level value.

The point at which decay begins depends on whether or not you use Attenuation. When Attenuation is not used, decay begins at the source of the light. When Attenuation is used, the decay begins at the Near End position. Far attenuation has no effect on decay. Once the beginning point is established, the decay follows its formula to infinity, or until the light itself is cut off by the Far attenuation settings. In other words, the distance between Near and Far attenuation does not scale, or otherwise affect the apparent ramp of decaying light.

Tip: Because decay continues to calculate dimmer and dimmer values as the distance of the light throw increases, it’s a good idea to attenuate at least the end of the light to eliminate unnecessary calculations.

How To

To turn a light on

  • Set On.

To turn a light off

  • Clear On.

When On is set, shading and rendering use the light to illuminate the scene. When On is cleared, the light is not used in shading or rendering.

To choose the color of a light using a Select Color dialog

  1. Click the color swatch next to the On check box.

    2. A modal Select Color dialog appears.

  2. Use the Select color dialog to choose a new color, and then click OK.

To choose the color of a light using the General Parameters spinners

  • Use the RGB and HSV spinners to change the light's color.

The color swatch now shows the light's new color.

To change a light's intensity

  • Increase or decrease the light's HSV Value in the Color area of the General Parameters rollout.

Shaded viewports are updated to show the new light intensity, which also appears in renderings.

You can animate a light's value.

If the light is not bright enough at full value (255), add another light to the scene. If multiple lights still aren't adequate, you can try increasing the light's Multiplier.

To use attenuation

  1. Set the Start Range and End Range values as you desire.
  2. Check Use.

    3. Attenuation is now in effect for this light when the scene is shaded or rendered.

To see the attenuation range in viewports

  • Set Show for Far or Near attenuation.

You can preview the effect of attenuation in shaded viewports only if you turn this on as an option in viewport preferences.

Note: With no attenuation, an object can paradoxically appear to grow brighter as it moves away from the light source. This is because the angle of incidence more closely approaches 90 degrees for more of the object's faces.


Shadow Parameters

Reference

These are the parameters that control shadows:

Cast Shadows: Determines whether the current light casts shadows or not (off by default).

Use Global Settings: Set to use global settings for shadows cast by this light. Clear to enable individual control of the shadows. If you choose not to use the global settings, you must choose which method the renderer will use to generate shadows for this particular light.

When the Use Global Settings box is checked, the Bias, Size, and Sample Range spinners switch over to show you what the global settings are. This data is shared by every other light of this class. When the Use Global checkbox isn’t checked, the shadow parameters are specific to that particular light.

Use Shadow Maps / Use Ray-Traced Shadows: Determine whether the renderer uses shadow maps or ray-traced shadows to generate shadows for this light.

Map Bias: Map Bias moves the shadow toward or away from the shadow-casting object (or objects). Only used for shadow maps.

Size: Sets the size (in pixels squared) of the shadow map that’s computed for the light.

Smp Range: The sample range determines how much area within the shadow is averaged, which affects how soft the edge of the shadow is.

Absolute Map Bias: When this is on (the default), the bias for the shadow map is computed on an absolute basis, relative to all of the other objects in the scene. When it’s off, the bias is computed relative to the rest of the scene.

Note: This is the opposite of the way this parameter defaulted in 3D Studio Release 4. Defaulting to on should help avoid any shadow flicker problems.

Ray-Trace Bias: Ray-Trace Bias moves the shadow toward or away from the shadow-casting object (or objects). Only used for ray-traced shadows.

How To

To have a light cast shadows

  • Set Cast Shadows.

The light will now cast shadows when you render the scene.

Note: With Overshoot turned on, spotlights cast light in all directions but cast shadows only within the falloff cone; directional lights cast light throughout the scene but cast shadows only within the falloff area.

To have a light use the global settings for shadows

  • Set Use Global Settings.

When Use Global Settings is on, the other shadow controls (except Cast Shadows) are set to the values used by all other shadow-casting lights in the scene that have Use Global Settings set

Changing the affected parameters for one light with Use Global Settings set, changes them for all lights with Use Global Settings set.

To set a light's shadow parameters individually

  • Clear Use Global Settings.

The settings revert to the individual settings for the light.

The default settings for shadow parameters are:

Use Shadow Maps = chosen
Map Bias = 40
Size = 256
Sample Range = 40
Absolute Map Bias = set
Ray Trace Bias = 0.2

You must also choose which method the renderer uses to generate shadows, either for a particular light or for all shadow-casting lights in the scene.

To cast shadow-mapped shadows

  1. Choose Use Shadow Maps.
  2. Use the Size spinner to set the size of the shadow map bitmap.
  3. Use the Map Bias spinner to adjust the shadow offset, if necessary.
  4. Use the Sample Range (Smp Range) spinner to create a soft-edged shadow.

To cast ray-traced shadows

  1. Choose Use Ray-Traced Shadows.
  2. Use the Ray Trace Bias spinner to adjust the shadow offset, if necessary.

To make an object not cast shadows

  1. Select the object.
  2. Right-click the object to pop up the object properties menu.
  3. Choose Properties.

    4. The Object Properties dialog appears.

  4. Clear Cast Shadows, and then click OK.

    5. Now when you render the scene, the object casts no shadows.

To make an object not receive shadows

  1. Select the object.
  2. Right-click the object to pop up the object properties menu.
  3. Choose Properties.

    4. The Object Properties dialog appears.

  4. Clear Receive Shadows, and then click OK.

    5. Now when you render the scene, the object receives no shadows.

    Note: You can also prevent objects from casting shadows by excluding them from a light.


Projection Parameters

A projected map can be a still image or an animation.

Reference

These are the parameters that control projection:

Bitmap Fit: Sets the aspect ratio to a match particular bitmap when you are using the light as a projector light.

Projector: Turn on to project the map selected by the Map button. Turn off to turn off projection.

Map: This button names the map used for the projection. You can drag from any map specified in the Material Editor, or any other map button (as in the Environment dialog), and drop that map on the light’s Map button.Clicking Map displays the Material/Map browser. You can choose the map type using the Browser, then drag the button to the Material Editor and use the Material Editor to select the map.

How To

To make a light a projector

  1. Display the Material Editor

    2. The Material Editor is where you adjust the map’s parameters.

  2. Use an unused sample slot to display a map.
  3. Drag the map from the Material Editor to the light’s Map button. A dialog asks if the projection map should be a copy or an instance. Choose which you prefer.

    4. You can also drag from any other used map button, as in the Environment dialog.

    Assigning the map displays the map name in the button, and turns on the Projector toggle. After you have set up the map, you can turn off Projector to test rendering the scene without the projected image.

    An alternative is to click the Map button. This displays the Material/Map browser, which lets you choose the map type. At this point, the light behaves as a projector, but to assign a map or adjust its parameters, you need to use the Material Editordrag the map to

    Note: Lights project maps only within their cone, even if Overshoot is turned on.

To put the map in the Material Editor

  • Drag from the light’s Map button to an unused sample slot in the Material Editor.

Note: Sample slots with white triangles in the corners indicate materials that are used in the current scene.

The map is now in the Material Editor, where you can adjust it by changing its parameters.

To blur a projection map

  • Increase the value of Blur Offset in the map's Coordinates rollout.

Tip: You can animate Blur Offset to have a projected map go in or out of focus.

To make the shape of the light fit the projected bitmap

  1. Choose a bitmap to project, as described in the preceding topics.
  2. Make sure the light's shape is set to Rectangular, and then click Bitmap Fit.

    3. A file selection dialog appears.

  3. Choose the same bitmap you chose for the standalone map, and then click OK.

    4. 3DS MAX also allows you to choose a bitmap other than the one the light projects.


Hotspot and Falloff Parameters

Reference

These are the parameters that control hotspots and falloff (not applicable to Omni lights):

Hotspot: Adjusts the angle of a light's cone. You can also adjust hotspot and falloff angles in a spotlight viewport (looking at the scene from the point of view of the spotlight).

Falloff: Adjusts the angle of a light's falloff.

Show Cone: Turns display of the cone on or off. Note that the cone is always visible when a light is selected, so clearing this check box has no apparent effect until you deselect the light.

Overshoot: When Overshoot is set, the light casts light in all directions but casts shadows only within its falloff cone.

Circle/Rectangle: Determines the shape of the falloff and hotspot areas. Set Circle when you want a standard, circular light. Set Rectangle when you want a rectangular beam of light, such as that cast through a window or doorway.

Asp: Sets the aspect ratio for the rectangular light beam. The projection parameter Bitmap Fit lets you make the aspect ratio match a specified bitmap.

How To

To see the cone in viewports

  • Check Show Cone.

A wireframe outline of the light's cone appears. The hotspot region is outlined in light blue, and the falloff region is outlined in dark gray.

The cone is always visible while the light is selected.

Tip: The hotspot and falloff borders are not visible in shaded viewports. Use the cone values to adjust hotspot and falloff in the viewport. Render the scene to see the full effect of the light's border.

To adjust the hotspot and falloff

  • Use the Hotspot and Falloff spinners to increase or decrease the size of the hotspot and falloff regions. For spotlights, Hotspot and Falloff are expressed in degrees. For directional lights, Hotspot and Falloff are expressed in units.

By default, 3DS MAX constrains the falloff value always to be at least two degrees or two units greater than the hotspot value. The size of this constraint is a preference that you can change in the Rendering panel of the Preferences dialog. The falloff value can range from 0 to 10,000 units.

When the hotspot and falloff values are equal, the light casts a hard-edged beam.

To set the shape of the light beam

  1. Choose either Rectangle or Circle.

    2. The shape of the light’s cone changes to reflect the shape you chose.

  2. If you chose Circle, you are done. If you chose Rectangle, you can now adjust the aspect ratio of the rectangular light. Use the spinner labeled Asp.

To change a rectangular light's aspect ratio

  1. Choose Rectangle, as described above.
  2. Change the Aspect (Asp) value to the aspect ratio that you want.

    3. The Bitmap Fit button is another way to set the aspect ratio. It is mainly for use with projections.

    The Projector and Assign controls are also for setting up projections. The Overshoot control is mainly for use when the light casts shadows.


Exclude/Include Dialog

Determines which objects are not illuminated by the selected light.

Although light exclusion does not occur in nature, this feature is useful when you need exact control over the lighting in your scene. Sometimes, for example, you'll want to add lights specifically to illuminate a single object but not its surroundings, or you'll want a light to cast shadows from one object but not from another.

Reference

The Exclude/Include dialog contains the following controls:

Exclude/Include: Choose whether the light will exclude or include the objects named in the list on the right.

Illumination: When on, the light will exclude/include illumination of the object’s surface.

Shadow Casting: When on, the light will exclude/include creation of the object’s shadow.

Both: When on, the light will exclude/include both of the above.

Scene Objects: Select objects from the Scene Objects list on the left, then use the arrow buttons to add them to the exclusion list on the right.

The Exclude/Include dialog treats a group as an objectyou can exclude or include all objects in a group by selecting the group’s name in the Scene Objects list. If a group is nested within another group, it isn’t visible in the Scene Objects list. To exclude a nested group or individual objects within the group, you have to ungroup them before you use this dialog.

Search Field: The edit box above the Scene Objects list lets you search for object names by entering names that use wildcards.

Display Subtree: When on, indents the list according to the object hierarchy.

Case Sensitive: When on, uses case sensitivity when searching object names.

Selection Sets: Displays a list of named selection sets. Choosing a selection set from this list selects those objects in the Scene Objects list.

Clear: Clears all entries from the Exclude/Include list on the right.

How To

To exclude objects from a light

  1. In the General Parameters rollout, click Exclude.

    2. An Exclude/Include dialog appears.

  2. Make sure Exclude is on.
  3. Choose to exclude objects from Illumination, Shadow Casting, or Both.
  4. In the list of object names on the left, highlight the objects you want to exclude.
  5. Click the arrow pointing to the right to move the selected object names into the right-hand list.

    6. Objects in the right-hand list will be excluded. To remove an object from this list, highlight its name and click the arrow pointing to the left. To remove all objects from this list, click Clear.

  6. Click OK.

    7. Now when you shade or render the scene, the light will have no effect on the objects you chose.

To include objects that were excluded

  1. Click Exclude.

    2. An Exclude/Include dialog appears.

  2. Move the names of objects from the right-hand list by selecting them and then clicking the arrow pointing to the left.
  3. Click OK.

To include all excluded objects at once.

  1. Click Exclude or Include.

    2. An Exclude/Include dialog appears.

  2. Click Clear.
  3. Click OK.


Cameras

Provides access to tools for creating cameras.

Cameras present a scene from a particular point of view. Cameras in 3DStudio MAX are objects that simulate still-image, motion picture, or video cameras in the real world.

With a camera viewport you can adjust the camera as if you were looking through its lens. Camera viewports can be useful for editing geometry as well as setting up a scene for rendering. Multiple cameras can give different views of the same scene.

If you want to animate the point of view itself—for example, to fly over a landscape or walk through a building—then you create a camera and animate its position. You can animate other camera parameters as well. For example, you can animate the camera’s field of view to give the effect of zooming in on a scene.

The Display panel’s Hide by Category rollout has a toggle that lets you turn the display of camera objects on and off.

There are two kinds of cameras in 3DS MAX:

Free Camera

Target Camera

After you have created a camera, you can change viewports to display the camera’s point of view. While a camera viewport is active, the navigation buttons change to camera navigation buttons. You can use the Modify panel in conjunction with a camera viewport to change the camera’s settings.

While you use the navigation controls for a camera viewport, you can constrain Pan and Orbit to be vertical or horizontal only.

3DS MAX lets you move a selected camera so its view matches that of a perspective, spotlight, or other camera view.

Reference

Most of the camera controls are common to both kinds of cameras.

Lens: Sets the camera's focal length in millimeters. Use the Lens spinner to give the focal length a value other than the preset, "stock" values on the buttons.

FOV: Determines how wide an area the camera views (field of view). The FOV parameter directly sets the arc of the camera's horizon, measured in degrees. You can also adjust the field of view interactively in a camera viewport using the FOV button.

FOV Direction: This is the flyout to the left of the FOV spinner. It lets you change how the FOV angle is displayedhorizontally, vertically, or diagonally, as indicated by the arrows on the flyout buttons. Changing the flyout alters only the value displayed in the FOV spinnerit does not change the view of the camera. Regardless of the flyout setting, 3DS MAX calculates the FOV internally using the horizontal FOV.

When you change the Aperture Width value in the Render Scene dialog, you also change the value in the Lens spinner field. This doesn’t change the view through the camera, but it does change the relationship between the Lens value and the FOV value, as well as the aspect ratio of the camera’s cone.

Orthographic Projection: When this toggle is set, the camera view looks just like a User view. When it is cleared, the camera view is the standard perspective-like view. While Orthographic Projection is in effect, the viewport navigation buttons behave as they ordinarily do, except for Perspective. Perspective function still moves the camera and changes the FOV, but the Orthographic Projection cancels the two out, so you don’t see any change until you turn off Orthographic Projection.

Show Horizon is disabled while Orthographic Projection is in effect.

Stock Lenses

These buttons set the camera's focal length in millimeters.

Show Cone: Displays the cone (actually a pyramid) defined by a camera's field of view. The cone appears in the other viewports but does not appear in a camera viewport.

Show Horizon: Displays the horizon line. A dark gray line appears at the level of the horizon in the camera's viewport.

Environment Ranges

Determine the near and far range limits for the atmospheric effects set in the Environment dialog. Objects between the two limits fade between the Far % and Near % values.

Show: Displays yellow rectangles within the camera’s cone to show the Near and Far range settings.

Clipping Planes

Sets options to define clipping planes. In viewports, clipping planes are displayed as red rectangles (with diagonals) within the camera’s cone.

Clip Manually: Set to define clipping planes.

Near/Far: Sets near and far planes. Objects closer than the near clipping plane or farther than the far clipping plane are invisible to the camera. The limit of the Far Clip value is 10 to the power of 32.

Caution: Extremely large Far Clip values can produce floating-point error, which can cause Z-buffer problems in the viewport, such as objects appearing in front of where they should.

How To

To control the display of camera objects

  1. Go to the Display control panel.
  2. In the Hide by Category rollout, check or uncheck Cameras.

    3. Cameras appear in viewports if Cameras is unchecked; if Cameras is checked, they don't appear.

    When camera icons are displayed, the Zoom Extents commands include them in views. When camera icons are not displayed, the Zoom Extents commands ignore them.

To change a viewport to a camera view

  1. Right-click the viewport label.

    2. The Viewport Properties menu appears.

  2. Choose Views.

    3. The name of each camera appears at the top of the View list.

  3. Choose the name of the camera you want.

    4. The viewport now shows the camera's point of view.

    The default keyboard shortcut for camera viewports is: C

    Making a camera viewport active does not automatically select the camera. To adjust a camera by using its viewport and the Modify panel at the same time, select the camera and then make the camera viewport active.

As in other viewports, in camera viewports you can see a display of safe frame areas to help you compose a scene for final rendered output.

To use the Modify command panel in conjunction with a camera viewport

  1. Select the camera.
  2. Click the camera viewport's label to activate the viewport.
  3. Go to the Modify command panel if you aren't already in it.

    4. Now you can adjust the camera using the Modify panel as well as the navigation buttons.

To constrain Pan and Orbit to be vertical or horizontal

  • Hold down SHIFT as you drag in the viewport.

The initial direction of the drag sets the constraint. If you drag vertically at first, the pan or orbit is constrained to be vertical; if you drag horizontally at first, the constraint is horizontal.

The Zoom Extents All flyout and the Min/Max toggles remain visible. These controls aren't specific to camera views. Clicking Zoom Extents All affects other kinds of viewports but does not affect camera viewports.

To see the safe frame

  1. Right-click the viewport label.
  2. In the View menu, choose Show Safe Frame.

To match a camera to a viewport

  1. Select a camera in any viewport.
  2. Activate a Perspective, Spotlight, or other Camera viewport.
  3. (If you match a camera to another camera’s view, the two cameras occupy the same location in the scene.)
  4. From the View menu, select Match Camera to View.
  5. The selected camera (and target) are moved to match the active viewport.

To view a wider area, do either of the following

  • Use the FOV spinner to increase the camera's field of view.
  • Click a button with a shorter focal length. Use the Lens spinner to give the focal length a value other than the preset, "stock" values on the buttons.

To view a narrower area, do either of the following

  • Change the FOV parameter to decrease the camera's field of view.
  • Click a button with a longer focal length. Use the Lens parameter to give the focal length a value other than the preset, "stock" values on the buttons.

In a camera viewport, the FOV button lets you adjust the field of view interactively.

The camera viewport Perspective button also changes the FOV in conjunction with dollying the camera.

Note: Only the FOV value is saved with the camera. The focal length value is merely an alternative way to express and select the FOV.

To set the camera lens size

  1. In the Render Scene dialog, choose the type of output you want. If it’s a preset, choose the preset from the Output Size dropdown list. The Aperture Width will be locked to the preset’s values. If it’s Custom, you can set your own Aperture Width, and should do so at this point. (You can adjust the other output values at any later time. They have no affect on the camera lens settings, although they do affect the cropping of the scene.)
  2. Once the Aperture Width is set, set the Lens spinner to the type of camera lens you want to emulate (for example, 50mm).

    3. If you want to maintain the same lens, avoid using the FOV or Perspective controls among the navigation icon buttons.

To find a lens’s focal length

  • To find the focal length of a lens based on changes in aperture width, go into the Render Scene dialog, choose Custom from the pop-up list, and specify a value in the Aperture Width spinner. The new value of the camera's Lens spinner is based on the new Aperture Width value.

To display a camera's cone

  • Check Show Cone.

The camera's field-of-view cone appears outlined in light blue.

Note: A camera's cone is always visible while the camera object is selected, regardless of the Show Cone setting.

To display a camera's horizon line

  • Check Show Horizon.

A dark gray line appears at the level of the horizon in the camera's viewport.

The horizon line might not be visible if the horizon is beyond the camera's field of view or if the camera is tilted very high or low.

To change the environment range

  • Adjust the value of Near Range or Far Range.

By default, the Near Range = 0.0 and the Far Range equals the Far clipping plane value.

Environment ranges determine the near and far range limits for atmospheric effects you set in the Environment dialog.

To see the environment ranges in viewports

  • Check Show.

3D Studio MAX displays the environment range as a wireframe sphere, similar to the attenuation display for lights.

To set clipping planes

  1. Check Clip Manually.

    2. When Clip Manually is unchecked, the camera ignores the location of the Near and Far clipping planes, and their controls are grayed out. The camera renders all geometry within its field of view.

  2. Set the Near Clip value to position the near clipping plane.

    3. Objects closer to the camera than the Near distance are not visible to the camera and aren't rendered.

  3. Set the Far Clip value to position the far clipping plane.

    4. Objects farther from the camera than the Far distance are not visible to the camera and aren't rendered.

    You can set the Near clipping plane close to the camera so that it doesn't exclude any geometry, and still use the Far plane to exclude objects. Similarly, you can set the Far clipping plane far enough from the camera that it doesn't exclude any geometry, and still use the Near plane to exclude objects.

    The Near value is constrained to be less than the Far value.

    If the clipping plane intersects an object, it cuts through that object, creating a cutaway view.


Free Camera

Creates a camera without a target.

Free Cameras view the area in the direction that the camera is aimed. Free cameras are easier to use when the camera's position is animated along a trajectory, as in a walkthrough of a building or when the camera is attached to a moving vehicle. Free cameras can bank as they travel along the path, which Target Cameras cannot.

Reference

Free Cameras have one parameter in addition to the common camera parameters:

Target Distance: Sets a point to use as an invisible target so that you can orbit a free camera.

How To

To create a Free Camera

  1. Go to the Create command panel and click Cameras.
  2. In the Object Type rollout, click Free.
  3. Click the viewport location where you want the camera to be.

    4. The kind of viewport you click determines the Free Camera's initial direction.

    The camera is now part of the scene.

  4. Set the creation parameters.


Target Camera

Creates a camera with a target

Target Cameras view the area around the target object that you place when you create the camera. Target cameras are easier to aim. Use them when the camera and its target don't move. You can animate both the target camera and its target, but target cameras can't bank while following a path the way Free Cameras can.

Reference

The distance from the camera to the target is displayed at the bottom of the Parameters rollout. This distance is not an animatable parameter (on the other hand, you can animate the target object’s location).

Clicking the line that connects the camera and its target selects both objects. However, region selection doesn’t recognize the link line.

When you rename a target camera, the target is automatically renamed to match. For example, renaming Camera01 to Rolli causes Camera01.Target to become Rolli.Target. The target’s name must have the extension .Target. Renaming the target object does not rename the camera object.

How To

To create a Target Camera

  1. Go to the Create command panel and click Cameras.
  2. In the Object Type rollout, click Target.
  3. Drag in a viewport. The initial point of the drag is the location of the camera, and the point where you release the mouse is the location of the target.

    4. The camera is now part of the scene. It is always aimed at the target, which is a separate 3D Studio MAX object.

  4. Set the creation parameters.


Helpers

Helper objects play a supporting role, like stage hands or construction assistants.

The current set of helper objects include the following:

Dummy Objects

Point Objects

Protractor Objects

Grid Objects

Tape Object

Compass Object

Other helper objects might be available in your configuration.

How To

To create a helper object:

  1. Click the tab on the Create command panel.
  2. Click the Helpers button to display the Helpers panel.
  3. Click a Helper on the Object Type rollout.

    4. From this point, the details depend on the individual helper object. See the following topics.


Dummy

A Dummy helper object is a wireframe cube with a pivot point at its geometric center. It has a name but no parameters, cannot be modified, and does not render. Its only real feature is its pivot, used as a center for transforms. The wireframe acts a reference for transform effects.

The dummy object is used primarily in hierarchical linkages. For example, you can use a dummy object as a center of rotation by linking a number of different objects to it. When you rotate the dummy, all its linked children rotate with it. A dummy is often used this way to animate linked motion.

Reference

Dummy objects do not have any parameter rollouts or settings.

How To

To create a dummy object:

  • Click Dummy and drag out a cube to any convenient size.


Point

The Point helper object provides a specific point in 3D space that can be used as a reference or by other program functions.

Reference

Point Parameters

Show Axis Tripod: Indicates the position and orientation of the point object with a tripod axis. The axis remains visible when the point object is no longer selected. If unchecked, the point appears as a small cross when unselected. Default=checked.

Axis Length: Sets length of tripod axis. Use to minimize the axis, or increase its size to aid in locating it. Default=20.

How To

To create a point in space:

  1. Click Point and drag anywhere in your scene.

    2. An axis tripod follows the cursor, indicating the current location of the point object.

  2. Move the cursor to where you want the point object and release.

    3. The point object appears as a small cross with a default axis tripod.

    The point can be moved as needed. Its axes can be reoriented by rotating the tripod.


Grid Objects

Grid objects are in the category of helper objects on the Create command panel. They are 2D parametric objects, with adjustments for overall size and grid spacing. You can move and orient them freely anywhere in world space.

You can create any number of grid objects in your scene. They are named when you create them and are saved with the scene. They can be deleted at any time.

Like other objects created in 3D Studio MAX, grid objects are placed on the grid of the current viewport. By default, this is a plane of the home grid, but can also be another activated grid object.

Using the Grid Object

The grid object is now capable of being used as a construction plane on all three orthographic planes, in both directions. Here’s how it works:

In the creation parameters of each grid object is a new “Display” area, containing three option buttons: XY Plane, YZ Plane, and ZX Plane. These determine which of the three planes of the grid object are displayed in the viewport.

When you activate a grid object, the displayed plane is the construction plane for all nongrid viewports. When you create a grid viewport, you can choose from one of six orthographic views (Front, Top, Left, and so on), or you can choose a special “Display Planes” grid viewport. (When you press ‘g’ to create a grid viewport, the Display Planes type is chosen as a default.) The Display Planes type of grid viewport always displays the plane chosen by the three option buttons in the Display area. Thus, as you switch between XY Plane, YZ Plane, and ZX Plane, the view through the grid viewport switches accordingly, and objects created in that viewport are created on the displayed plane.

In the right-click menu of the viewport (or in the Layout page of the Viewport Configuration dialog), you can choose six additional types of grid viewports, based on the six orthographic views. These are available via a cascading Grid menu that provides Left, Right, Front, Back, Top, Bottom, and Display Planes. Each of the orthographic directions is local to the grid object, regardless of its orientation in the scene.

When you choose a specific orthographic grid viewport (as opposed to the Display Planes viewport), the construction of objects in that viewport is on the plane specified in the viewport titleregardless of the displayed plane of the grid object.

You can now create more than one viewport based on the same grid objecteach using a different plane. For example, you can have a Grid (Front) viewport and a Grid (Top) viewport, as well as a Grid (Display Planes) viewport.

When you deactivate a grid object, its remaining viewports show the assigned orthographic view. Thus, a Grid (Front) viewport becomes a Front viewport, for example. A Grid (Display Planes) viewport always reverts to a Top view, regardless of the currently displayed plane.

Reference

Grid Size Area

Sets overall size of the grid object. This size determines the extents of a viewport set to the grid object. It does not affect the useful limits of the grid, which continues as a plane beyond its visible size.

Length/Width: Set these to specify the length and width of the grid.

Grid Spacing Area

Grid: Set this to specify the size of the smallest square in the visible grid. This setting appears on the status line when the grid is activated.

Note: You can set Grid Spacing when a grid is selected, but you won’t see the grid spacing until the grid is activated.

Active Color Area

Gray: The active grid object is two shades of gray, as it was in R1.

Object Color: The main grid lines use the assigned object color, while the secondary lines use a lighter intensity.

Home Color: The grid object uses whatever custom color has been assigned the home grid in the Preferences dialog. Note that this is regardless of whether or not the Grid Color option is chosen in the Preferences dialog.

Home Intensity: The grid object uses the same gray intensity settings as those assigned the home grid in the Preferences dialog.

Display Area

XY Plane, YZ Plane, ZX Plane. Determine which of the three planes of the grid object are displayed in the viewport.

How To

To create a grid object:

  1. Click the tab on the Create command panel.
  2. Click the Helpers button.
  3. Click Grid on Object Type rollout.

    4. A Parameters rollout appears on the Create command panel.

  4. In a viewport, drag out a rectangle and release the mouse button.

    5. This creates and selects a grid object, which appears in white wireframe, divided into four quadrants with coordinate axes at the center.

While the newly created grid object is still selected, you can change its settings on the Parameters rollout. See the following topics for instructions on activating a grid object and adjusting its parameters.

Activating Grid Objects

A grid object requires activating before use. Standard selection does not activate it.

Only one grid can be active for construction at a time, whether it’s the home grid or a grid object. Activating a grid object “deactivates” the home grid.

To activate a grid object:

  1. Select a grid object.
  2. Do one of the following:
    • Choose Views/Grids/Activate Grid Object from the menu bar.
    • Right-click the selected grid object and choose Activate Grid from the Viewport Properties menu.

    The grid object changes to show its internal grid structure. Except for its main axes, the home grid disappears in all viewports.

Either option changes the setting on the Views/Grid menu or right-click menu to Activate Home Grid.

If you have more than one grid object in your scene, you have to activate each one separately for use. Select the grid object you want to make active and follow the same procedure. Activating another grid object deactivates the current one.

To return to the home grid, do one of the following:

  • Choose Views/Grids/Activate Home Grid from the menu bar.
  • Right-click the selected grid object and choose Activate Home Grid from the Viewport Properties menu.

This deactivates the grid object and returns the home grid in all views.

If you delete an activated grid object, the home grid is also reactivated.

Using a Grid Object for Construction

When activated, a grid object replaces the home grid as the frame of reference for creating objects.

An activated grid object creates a true plane in 3D space. No matter how small an activated grid object appears on screen, its XY plane is effectively infinite, just as if it were the XY plane of the home grid.

To use a grid object as construction plane:

  1. Activate the grid object.
  2. Create any category of object from the Create command panel.

    3. 3D Studio MAX creates the object directly on the plane of the grid object, with the object's Z axis perpendicular to the plane.

See Align topics for details on aligning objects and grids. This is an important aspect of using a grid object as a construction plane.

Like other objects in 3D Studio MAX, grid objects can be moved anywhere in your scene. You can also rotate them freely in space. These transforms, along with alignment, are essential in positioning a construction plane in 3D space.

To move or rotate a grid object:

  1. Select or activate the grid object.
  2. Do one of the following:

    3. Click the toolbar button for Move or Rotate.

    Right-click the grid object and choose Move or Rotate from the menu.

  3. Apply the transform. Both are constrained by the current coordinate axis setting.

Scaling Not Advised

As a rule, don’t use scaling to resize a grid object. Scaling enlarges or reduces the apparent size of the grid object but has no effect on grid spacing. A sphere 20 units in radius created on a grid object appears smaller than another 20-unit sphere created on a scaled-up version of the same grid.

If you want to increase or decrease the actual size of the grid object, select it and go to the Parameters rollout on the Modify command panel.


Tape Object

The Tape helper object provides an on-screen “tape measure” for determining and setting distances. The tape is composed of two named objects, in the same way targeted lights and cameras are. A tape icon and its target are connected by a line representing the current distance between them.

A toggle lets you drag a length (the default), or enter a specific length. Either end of the tape can be snapped, aligned, or linked to objects in your scene. Deleting either end deletes the tape.

Selection

You can now select a tape-measure object from either end, or from the middle. When you click the connecting line, both ends of the tape object become selected so you can move them as one. Note that the same is true of target cameras and lights.

Note: Line selection is only available when clicking with the mouse. Region selection does not work for this.

Tip: The Length readout of the tape object is displayed in the Modify panel only when the tape end of the object (as opposed to the target or link line) is selected. You can lock the Length display by activating the Pin Stack button while the tape end is selected, and then proceed to adjust any part of the tape objector any other object in your scene.

Reference

Tape Object Parameters

Length: Set this to specify the length of the Tape Object. The Specify Length check box must be selected to enable this option.

Specify Length: Click this to activate the Length parameter setting. Otherwise the Tape Object's length will be specified by clicking and dragging in the viewport.

Angle Display

To X/Y/Z Axis: Displays the angle of the tape object relative to each axis in world space.

To XY/YZ/ZX Plane: Displays the angle of the tape object relative to each of these home planes.

How To

To measure a distance:

  1. Click Tape and drag from one point to create the tape, then move to a second point and release to create the target.

    2. The distance between tape and target appears in the Length field, which is grayed out to indicate that this is a read-only measurement.

  2. Move either end to a new location. The line between stretches to the new distance, shown in the Length field.

To set a distance:

  • Check Specify Length in the Parameters rollout and enter a length, then create the tape.

The line is now the distance you specified. You can reorient this line as required. You can also uncheck Specify Length and adjust the length.


Protractor Object

The Protractor object lets you measure the angle between any two objects in your scene.

The name of the second object appears above the button, and the angle formed at the protractor, between the pivot points of the two objects is displayed in the Angle field. Lines are drawn between the protractor and the two selected objects. The line to the first selected object uses the “target” line color, and the line for the second selected object uses the color of the protractor (which is the same color used by the Tape helper object).

At any time, you can reselect the protractor, enter the Modify panel, and pick new objects to measure. You can move either of the two objects, or the protractor itself to change the angle.

Note: If you need to watch the Angle readout while moving either of the objects, first select the protractor, then turn on the Pin Stack button. You can now select and move the other objects while the Stack remains pinned to display the protractor angle.

Reference

Protractor Object Parameters

Pick Object 1: Click this then select the first of the two objects whose angle you would like to measure.

Pick Object 2: Click this then select the second of the two objects whose angle you would like to measure.

Angle: displays the angle between the two selected objects.

How To

To use it, do the following:

  1. After selecting Protractor in the Create/Helper branch, click in the viewport to create the protractor icon.
  2. Click the Pick Object 1 button, and then select one of the objects in the scene.

    3. The name of the selected object appears above the button.

  3. Click Pick Object 2, and select a second object in the scene.


Compass Object

The Compass object displays as a non-rendering compass rose, with indicators for North, South, East, and West. A compass is part of a Sunlight system, and is created automatically when you create sunlight. (Normally you don't create an isolated compass, although you can.) In a sunlight system, the orientation of the compass indicates the orientation of the scene, relative to the path of the sun (the ecliptic).

Reference

Compass Parameters

Show Compass Rose: Click this to display the non-rendering compass rose in the viewport. object.

Radius: Set this to specify the radius of the compass object.

How To

To Create a Compass Object, Do this:

  1. Select Compass In the helpers section of the create panel.
  2. Click and drag to define the radius of the compass.


Space Warps

Space warps are nonrenderable objects that affect the appearance of other objects. Space warps create force fields that deform other objects, creating the effect of ripples, waves, blowing wind, and so on.

Space warps behave somewhat like modifiers, except that a space warp influences world space, rather than object space, as geometric modifiers do.

When you create a space warp object, viewports show a wireframe representation of it. You can transform the space warp as you do other 3D Studio MAX objects. The position, rotation, and scale of the space warp affect its operation.

Deformable objects bound to space warp

To have an object or selection set be affected by a space warp, you bind the object to the space warp. A space warp has no effect on objects unless the objects are bound to it. When an object is bound to a space warp, the warp binding appears at the top of the object’s modifier stack -- a space warp is always applied after any transforms or modifiers.

When you bind multiple objects to a space warp, the space warp’s set of parameters affects all the objects equally. However, each object’s distance from the space warp or spatial orientation to the warp can change the warp’s effect. Because of this spatial effect, simply moving an object through warped space can change the warp's effect.

You can also use multiple space warps on a single object or objects. Multiple space warps appear in an object’s stack in the order you apply them.

Space Warps and Supported Objects

Some types of space warps are designed to work on deformable objects in other words, geometric primitives, meshes, patches, and splines. Other types of warps work on particle systems, such as Spray and Snow.

On the Create command panel, each space warp has a rollout labeled Supports Objects of Type. This rollout lists the kind of objects that can be bound to the warp.

Basics of Using Space Warps

When you use space warps, you work in the following overall sequence:

  • Create the space warp.
  • Adjust the space warp’s parameters.
  • Bind objects to the space warp. The space warp has no visible effect on your scene until an object, system, or selection set is bound to it.
  • Transform the space warp with Move, Rotate, or Scale. The effects of these transforms directly affect the bound object.

You can animate modifications to space warp parameters or transforms you apply to a space warp. Because moving or otherwise transforming an object bound to a warp can change the object’s geometry, transforming bound geometry is another animation technique to use with space warps.

Reorganizing the Space Warps

There are now three categories of space warps, available via the pop-up list in the Space Warps branch of the Create command panel.

Space Warp Categories

Geometric/Deformable: These space warps are used to deform geometry in some way. They include the following:

FFD(Box)

FFD(Cyl)

Wave

Ripple

Displace

Conform

Bomb

Modifier-Based: These are space-warp versions of object modifiers (described in the Modify Panel topic). Read more about these in When Modifiers Become Space Warps.

Bend

Twist

Taper

Skew

Noise

Particles & Dynamics: These space warps are used to affect particle systems and dynamics systems. At present, all of these can be used with particles, and some can be used with dynamics, as well. Look in the Supports Objects of Type rollout to see which types of systems each space warp supports.

Gravity

PBomb

Wind

Deflector

Path Follow

UDeflector

Displace

SDeflector

Push

Motor

Note: The Displace modifier appears under Particle & Dynamics and under Geometric/Deformable because it can be used for both particles and geometry.

How To

Creating Space Warps

You create space warps in the Create command panel. Space warps are one of the seven basic object categories.

To create a space warp:

  1. On the Create command panel, click Space Warp.

    2. The Space Warp panel appears.

  2. On the Object Type rollout, click a space warp button.
  3. Drag in a viewport to create the space warp.


Wave (Space Warps)

Wave

The Wave space warp creates a linear wave through world space. It affects geometry and behaves the same as the Wave Modifier. Use the Wave space warp when you want the wave to affect a large number of objects, or to affect an object relative to its position in world space.

Reference

The initial amplitude sets both Amplitude 1 and Amplitude 2. Set these parameters to unequal values to get a cross wave.

The Wave area of the Parameters rollout controls the wave effect.

Amplitude 1: Wave amplitude along the wave warp object’s local Y axis.

Amplitude 2: Wave amplitude along the wave warp object’s local X axis.

Amplitude is expressed in units. The wave is a sine wave along its Y axis and parabolic along its X axis. Another way to think of the difference between the amplitudes is that Amplitude 1 is the amplitude at the center of the wave gizmo and Amplitude 2 is the amplitude at the edge of the gizmo.

Wave Length: The length of each wave along the wave’s local Y axis, in active units.

Phase: Offsets the phase of the wave from its origin at the wave object's center. Whole values have no effect -- only fractional values do. Animating this parameter makes the wave appear to travel through space.

Decay: When Decay is 0.0, the wave has the same amplitude or amplitudes throughout world space. Increasing the Decay value causes amplitude to diminish as distance increases from the position of the wave warp object. Default=0.0.

The Display area controls display of the wave warp object’s icon. These values don’t change the effect of the wave.

Sides: The number of side segments along the wave object’s local X dimension.

Segments: The number of segments along the wave object’s local Y dimension.

Divisions: Adjusts the size of the wave icon without altering the wave effect as scaling would.

The Wave space warp also has a binding parameter that you can adjust individually in each bound object’s stack.The parameter belongs to each binding it doesn’t appear with the ripple warp parameters.

Flexibility: Makes the bound object more or less flexible in response to the wave, as if it had a greater or lesser number of vertices.

How To

To create a wave space warp:

  1. Click Wave.
  2. Drag in a viewport to define the initial size of the wave object icon.

    3. The icon appears like a flat mesh wireframe.

  3. Release the mouse to set the icon size, then move the mouse to define the initial amplitude of the wave.
  4. Click to set the wave amplitude.


Ripple (Space Warps)

Ripple

The Ripple space warp creates a concentric ripple through world space. It affects geometry and behaves the same as the Ripple Modifier. Use the Ripple space warp when you want the ripple to affect a large number of objects, or to affect an object relative to its position in world space.

Reference

The amplitude value you set by dragging applies equally in all directions. The ripple’s Amplitude 1 and Amplitude 2 parameters are initially equal. Set these parameters to unequal values to get a ripple whose amplitude varies relative to the local X and Y axes of the space warp.

Ripple Parameters

Ripple Area

Amplitude 1: Sets ripple amplitude along the ripple warp object’s local X axis. Amplitude is expressed in active units.

Amplitude 2: Sets ripple amplitude along the ripple warp object’s local Y axis. Amplitude is expressed in active units.

Wave Length: Sets length of each wave, in active units.

Phase: Offsets the phase of the wave from its origin at the ripple object’s center. Whole values have no effect -- only fractional values do. Animating this parameter makes the ripple appear to travel through space.

Decay: When Decay is 0.0, the ripple has the same amplitude or amplitudes throughout world space. Increasing the Decay value causes amplitude to diminish as distance increases from the position of the ripple warp object. Default=0.0.

Display area

Controls display of the ripple warp object’s icon. These values don’t change the effect of the ripple.

Circles: Number of circles in the ripple icon.

Segments: Number of segments (pie slices) in the ripple icon.

Divisions: Adjusts the size of the ripple icon without altering the ripple effect as scaling would.

The Ripple space warp also has a binding parameter that you can adjust individually in each bound object’s stack. The parameter belongs to each binding--it doesn’t appear with the ripple warp parameters.

How To

To create a ripple space warp:

  1. Click Ripple.
  2. Drag in a viewport to define the initial size of the ripple object icon.

    3. The icon appears like a wireframe spiderweb.

  3. Release the mouse to set the icon size, then move the mouse to define the initial amplitude of the ripple wave.
  4. Click to set the wave amplitude.


Gravity

The Gravity space warp simulates the effect of natural gravity on particles generated by a particle system. Gravity is directional it adds pull to particles that are moving in its direction and repels particles moving in the opposite direction. Gravity has been updated to work with Dynamics in the Utillites topic.

Gravity effect on snow

Reference

Gravity Parameters

These parameters control gravity space warps.

Force Area

Strength: Increasing Strength increases the effect of gravity. Strength less than 0.0 creates negative gravity it repels particles moving in the same direction and attracts particles moving in the opposite direction. When Strength is 0.0, the gravity warp has no effect.

Decay: When Decay is 0.0, the gravity warp has the same strength throughout world space. Increasing the Decay value causes gravity strength to diminish as distance increases from the position of the gravity warp object. Default=0.0.

Planar: Gravity effect is perpendicular to the plane of the gravity warp object, throughout the scene.

Spherical: Gravity effect is spherical, centered on the gravity warp object. This is good for creating water fountain effects.

Icon Size: Size of the gravity warp object icon, in active units. You set the initial Icon Size value when you drag to create the gravity object. This value does not change the gravity effect.

How To

To create gravity:

  1. Click Gravity.
  2. Drag in a viewport.

    3. The gravity icon appears. For planar gravity (the default), the icon is a wireframe square with a direction arrow coming out of one side. For spherical gravity, the icon is a wireframe sphere.

    The initial direction of planar gravity is along the negative Z axis of the construction grid that is active in the viewport where you drag. You can rotate the gravity object to change the direction.


Wind

The Wind space warp simulates the effect of wind blowing particles generated by a particle system. Wind is directional -- it blows particles in the direction its icon points, and it repels particles moving in the opposite direction. It is similar in effect to the Gravity space warp, but has added parameters for turbulence and other features characteristic of wind in the natural world. Wind has been updated to work with Dynamics in the Utillites topic.

Wind effect on snow and spray

Reference

Force Parameters

The Force area of the Parameters rollout has controls that are comparable to the gravity parameters.

Strength: Increasing Strength increases the wind effect. Strength less than 0.0 creates a suction .It repels particles moving in the same direction and attracts particles moving in the opposite direction. When Strength is 0.0, the wind warp has no effect.

Decay: When Decay is 0.0, the wind warp has the same strength throughout world space. Increasing the Decay value causes wind strength to diminish as distance increases from the position of the wind warp object. Default=0.0.

Planar: Wind effect is perpendicular to the plane of the wind warp object, throughout the scene.

Spherical: Wind effect is spherical, centered on the wind warp object.

Wind Parameters

The Wind area contains controls that are specific to wind space warps.

Turbulence: Causes particles to randomly change course as the wind blows them. The greater the value, the greater the turbulence effect.

Frequency: When greater than 0.0, causes turbulence to vary periodically over time. This is a subtle effect that is probably not visible unless your bound particle system generates a large number of particles.

Scale: Scales the turbulence effect. When the Scale is small, turbulence is smoother and more regular. As Scale increases, turbulence grows more irregular and wild.

Icon Size: Size of the wind warp object icon, in active units. You set the initial Icon Size value when you drag to create the wind object. This value does not change the wind effect.

How To

To create wind:

  1. Click Wind.
  2. Drag in a viewport.

    3. The wind icon appears. For planar wind (the default), the icon is a wireframe square with a direction arrow coming out of one side. For spherical wind, the icon is a wireframe sphere.

    The initial direction of planar wind is along the negative Z axis of the construction grid that is active in the viewport where you drag. You can rotate the wind object to change the direction.


Deflector

The Deflector space warp acts as a shield to repel the particles generated by a particle system. You can use it to simulate pavement being struck by rain, a rock in the middle of a waterfall, and so on.

Tip: For waterfall and fountain effects, combine deflector warps with a gravity space warp.

Spray particles striking a deflector

Reference

Deflection Parameters

The deflector’s effect is controlled mainly by its size and orientation in the scene, relative to the particle system that is bound to it. You can also adjust how strongly the deflector deflects particles.

Bounce: Controls the speed at which particles bounce off the deflector. At 1.0, particles bounce off the deflector at the same speed they struck it. At 0.0, particles do not bounce at all. At values between 0.0 and 1.0, particles bounce off the deflector at a speed reduced from their initial speed. At values greater than 1.0, particles bounce off the deflector at a speed greater than their initial speed. Default=1.0.

Width: Sets the deflector’s width.

Length: Sets the deflector’s length.

How To

  1. Click Deflector.
  2. Drag in a viewport to define the deflection area.

    3. The deflector appears as a wireframe rectangle.


Displace Space Warp

The Displace space warp works much like the Displace modifier, except that like all space warps, it affects world space rather than object space. There are two basic ways to use the displace warp:

  • Apply the gray scale of a bitmap to generate the displacement amount. Black areas of the 2D image are not displaced. Whiter areas push outward, causing a 3D displacement of geometry.
  • Apply displacement directly by setting displacement strength and decay values.
  • Displace is the only space warp that affects both geometry (deformable objects) and particle systems.

For geometry, the detail of the displacement depends on the number of vertices. Use Edit Mesh to tessellate faces you want to show in greater detail.

Tip: When you need to create detailed displacement of a small number of objects, use the displace modifier. Use the displace space warp to displace particle systems, a large number of geometric objects at once, or an object relative to its position in world space.

Displace warp on a patch and the bitmap it uses

Reference

Displacement Parameters

The Displacement area of the Parameters rollout contains the basic controls for displace warps.

Strength: When Strength is 0.0, the displace warp has no effect. Strength greater than 0.0 displaces object geometry away from the position of the displace warp object. Strength less than 0.0 displaces geometry toward the warp. Default=0.0

Decay: When Decay is 0.0, the displace warp has the same strength throughout world space. Increasing the Decay value causes displacement strength to diminish as distance increases from the position of the displace warp object. Default=0.0

Luminance Center : Centers the luminance by using medium (50%) gray as the zero displacement value. Gray values greater than 128 displace in the outward direction (away from the displace warp object) and gray values less than 128 displace in the inward direction (toward the displace warp object).

Bitmap: Click to assign a bitmap to the displace warp. After you choose a bitmap, this button displays the bitmap’s name.

Remove Image: Click to remove the bitmap assignment.

Blur: Increase this value to blur or soften the effect of the bitmapped displacement.

Map Area

The area labeled Map contains mapping parameters for a bitmapped displace warp. The mapping options are comparable to the options you use with mapped materials. For details about UVW coordinates.The four mapping modes control how the displace warp object projects its displacement. The warp object’s orientation controls where in the scene the displacement effect will appear on bound objects.

Planar: The map is projected from a single plane, somewhat like projecting a slide.

Cylindrical: The map is projected as if it were wrapped around the cylinder.

Spherical: The map is projected from a sphere, with singularities at the top and bottom of the sphere, where the bitmap edges meet at the sphere’s poles.

Shrink Wrap: Map projection is also spherical, but Shrink Wrap truncates the corners of the map and joins them all at a single pole, creating only one singularity.

Length, Width, and Height: specify the dimensions of the space warp.

UVW Tile: The number of times the bitmap repeats along the specified dimension. A value of 1.0, the default, maps the bitmap exactly once; a value of 2.0 maps the bitmap twice, and so on. Fractional values map a fractional portion of the bitmap in addition to copies of the whole map. For example, a value of 2.5 maps the bitmap two and a half times.

Flip: Check to reverse the orientation of the map along the corresponding U, V, or W axis.

How To

To create a displace warp:

  1. Click Displace.
  2. Drag in a viewport to create the displace warp object.

    3. The displace object appears as a wireframe whose shape depends on the active mapping parameter settings. Regardless of the mapping, a single drag creates the space warp.

To assign a bitmap to a displace warp:

  1. Click the Image button in the Displacement area of the Parameters rollout.

    2. When no bitmap is assigned, this button is labeled None.

  2. Use the file-selection dialog to choose a bitmap.
  3. Set the Strength value.

    4. At the default Strength of 0.0, the displace warp has no effect.


FFD (Box) Space Warp

The box Free Form Deformation (FFD) lets you create a space warp object that’s a box-shaped lattice free-form deformation object (similar to the original FFD modifiers).This FFD is available as both an object modifier and a space warp. See FFD (Box/Cyl) Modifier for the object modifier version.

FFDs provide a method of deforming an object by adjusting the control points of a lattice. The offset position of the control points to the original lattice source volume cause the distortion of the affected object.

FFD space warps are created as separate objects in much the same way as you create a standard primitive, by dragging the mouse in the viewport. The result, however, is a lattice of control points. The source lattice of an FFD modifier, on the other hand, is fit to the geometry it’s assigned in the Stack. This might be a whole object, or a sub-object selection of faces or vertices.

Since FFD space warps are separate objects, they carry their own adjustable dimension parameters among the creation parameters.

You can apply object modifiers to space warp objects. As a result, you can use the Linked Xform modifier, for example, with a space-warp FFD.

Reference

FFD Parameters

Dimensions Area

Lets you adjust the unit dimensions of the source volume, and specify the number of control points in the lattice. Note that the point dimensions also show up beside the modifier name in the Stack list.

Length, Width, Height: These three spinners display and let you adjust the length, width, and height of the lattice. They’re only available for the space-warp version of the FFDs. To create the space warp, you drag the mouse in the same way that you would to create a standard Box primitive. Not that these spinners don’t exist in the object-modifier version of the FFD.

(label): Displays the current number of controls points in the lattice. For example: 4x4x4.

Set Number of Points: Displays a dialog containing three spinners, labeled Length, Width, and Height, plus OK/Cancel buttons. Specify the number of control points you want in the lattice, and then click OK to make the change.

Note: Changes to dimension should be made before you adjust the positions of the lattice control points. When you change the number of control points with this dialog, any adjustments you’ve already made to the control points are lost. (You can undo this use of this dialog, however.)

Display Area

Affects the display of the FFD in the viewports.

Lattice: When this item is checked, lines are drawn connecting the control points to make a grid. Although the viewports can sometimes become cluttered when these extra lines are drawn, it helps to visualize the lattice.

Source Volume: When this item is checked, the control points and lattice are displayed in their unmodified state. This is an important display when you’re adjusting the source volume to affect specific vertices that lie within or without it. See the All Vertices and Only in Volume options, next.

Deform

Provides controls that specify which vertices are affected by the FFD.

Only In Volume: When this option is selected, only vertices that lie inside the source volume are deformed. Vertices outside the source volume are not affected.

All Vertices: When this option is selected, all vertices are deformed regardless of whether they lie inside or outside the source volumedepending on the value in the Falloff spinner. The deformation outside the volume is a continuous extrapolation of the deformation inside the volume. Note that the deformation can be extreme for points far away from the source lattice.

Falloff : This spinner, which is only enabled when All Vertices is chosen, determines the distance from the lattice that the FFD effect will decrease to zero. When this spinner is set to 0, it’s effectively turned off, and there is no falloffthat is, all vertices are affected regardless of how far they are from the lattice. The units of the Falloff parameter are actually specified relative to the size of the lattice. So a falloff of 1 means that the effect will go to 0 for points that are a lattice width/length/height away from the lattice (depending on which side they are).

Tension/Continuity: Lets you adjust the tension and continuity of the deformation splines. Although you can’t actually see the splines in an FFD, the lattice and control points represent the structure that controls the splines. As you adjust the control points, you likewise alter the splines (which move through each of the points). The splines, in turn, deform the geometry of the object. By altering the tension and continuity of the splines, you alter their effect on the object.

Selection

The buttons here provide additional methods of selecting the control points. You can toggle the state of any combination of the three buttons to select in one, two, or three dimensions at once.

All X, All Y, All Z : When one of these buttons is on and you select a control point, all control points along the local dimension specified by the button are selected as well. By turning on two buttons, you can select all control points in two dimensions.

About: Click this to display a dialog with copyright and licensing information.

How To

To use an FFD (box) as a space warp, do this:

  1. Click the FFD (box) button in the Space Warps creation panel.
  2. Drag in the viewports to create first the base, and then the height of the FFD lattice.
  3. Bind the lattice to the object you want to deform.
  4. Determine the relative placement of the lattice to the object.

    5. If the lattice is to be outside of the object, turn on the All Vertices option. On the other hand, if you want to affect only those vertices inside the lattice, choose Only In Volume, and position the lattice accordingly.

  5. Adjust the control points to affect the object.

    6. Note: The distortion effect of an FFD modifier is based on the positional offset of the control points from their original positions in the source volume. If the control points haven’t been moved, there will be no effect on the target object. Keep this in mind when using space-warp version of the FFD. No matter how you move the bound space warp, it’ll have no effect if you haven’t altered the local position of its control points.

    Once you’ve achieved some level of distortion, if you’re using the All Vertices option, you can adjust the Falloff value to adjust how much the lattice affects the object, based on distance. This is particularly useful if the lattice is animated to approach or move away from the target object. Keep in mind that, when Falloff is set to 0, all the vertices are affected, regardless of distance.

    Note: When you’re at the base-parameters level of an FFD modifier in the Stack, the Show End Result button is turned off and spring-loadedsame as it is in an Edit Mesh modifier


FFD (Cyl) Space Warp

The Cylinder FFD uses a cylindrical array of control points in its lattice. This FFD is available as both an object modifier and a space warp. See FFD (Box/Cyl) Modifier for the object modifier version.

FFDs provide a method of deforming an object by adjusting the control points of a lattice. The offset position of the control points to the original lattice source volume cause the distortion of the affected object.

FFD space warps are created as separate objects in much the same way as you create a standard primitive, by dragging the mouse in the viewport. The result, however, is a lattice of control points. The source lattice of an FFD modifier, on the other hand, is fit to the geometry it’s assigned in the Stack. This might be a whole object, or a sub-object selection of faces or vertices.

Since FFD space warps are separate objects, they carry their own adjustable dimension parameters among the creation parameters.

You can apply object modifiers to space warp objects. As a result, you can use the Linked Xform modifier, for example, with a space-warp FFD.

Reference

The dimension spinners are Radius and Height.

The spinners in the Set Number of Points dialog are labeled:

Side: The number of control points around the perimeter of the lattice.

Radial: The number of control points, radially, from the center to the outer perimeter.

Height: The number of control points along the height of the lattice.

(label): Displays the current number of controls points in the lattice. For example: 3x4x4.

Set Number of Points: Displays a dialog containing three spinners, labeled Length, Width, and Height, plus OK/Cancel buttons. Specify the number of control points you want in the lattice, and then click OK to make the change.

Note: Changes to dimension should be made before you adjust the positions of the lattice control points. When you change the number of control points with this dialog, any adjustments you’ve already made to the control points are lost. (You can undo this use of this dialog, however.)

Display Area

Affects the display of the FFD in the viewports.

Lattice: When this item is checked, lines are drawn connecting the control points to make a grid. Although the viewports can sometimes become cluttered when these extra lines are drawn, it helps to visualize the lattice.

Source Volume: When this item is checked, the control points and lattice are displayed in their unmodified state. This is an important display when you’re adjusting the source volume to affect specific vertices that lie within or without it. See the All Vertices and Only in Volume options, next.

Deform

Provides controls that specify which vertices are affected by the FFD.

Only In Volume: When this option is selected, only vertices that lie inside the source volume are deformed. Vertices outside the source volume are not affected.

All Vertices: When this option is selected, all vertices are deformed regardless of whether they lie inside or outside the source volumedepending on the value in the Falloff spinner. The deformation outside the volume is a continuous extrapolation of the deformation inside the volume. Note that the deformation can be extreme for points far away from the source lattice.

Falloff : This spinner, which is only enabled when All Vertices is chosen, determines the distance from the lattice that the FFD effect will decrease to zero. When this spinner is set to 0, it’s effectively turned off, and there is no falloffthat is, all vertices are affected regardless of how far they are from the lattice. The units of the Falloff parameter are actually specified relative to the size of the lattice. So a falloff of 1 means that the effect will go to 0 for points that are a lattice width/length/height away from the lattice (depending on which side they are).

Tension/Continuity: Lets you adjust the tension and continuity of the deformation splines. Although you can’t actually see the splines in an FFD, the lattice and control points represent the structure that controls the splines. As you adjust the control points, you likewise alter the splines (which move through each of the points). The splines, in turn, deform the geometry of the object. By altering the tension and continuity of the splines, you alter their effect on the object.

Selection

The buttons here provide additional methods of selecting the control points. You can toggle the state of any combination of the three buttons to select in one, two, or three dimensions at once.

All X, All Y, All Z : When one of these buttons is on and you select a control point, all control points along the local dimension specified by the button are selected as well. By turning on two buttons, you can select all control points in two dimensions.

About: Click this to display a dialog with copyright and licensing information.

How To

Example: An Animated Tablecloth

This example shows how to use the FFD (cyl) to animate a tablecloth that flies in and drapes itself over a table.

Begin by creating the table and tablecloth:

  1. Create a table from a couple of cylinders. Make the table top with a radius of about 30 units, and a height of about 2 units. Make the “table stand” cylinder with a radius of 3 and a height of 60.
  2. Make a tablecloth from a box that’s 100 units square, and 0.5 units in height. Increase its length and width segments to 30, and leave its height segments at 1.
  3. Position the tablecloth so it’s level with, or just slightly above the table top, and a little less than 100 units to the left of the table edge, as seen from the top view.
  4. Apply a nice wood grain to the table, and a checker to the tablecloth. (Set the checker tiling to about 15x15, and make the checkers any color you’d like.)

    5. Now, set up a cylindrical FFD space warp that will form the drape of the tablecloth over the table:

  5. Select FFD(cyl) from Geometric/Deformable Space Warps.
  6. In the Top viewport, create a cylindrical FFD space warp, centered on the table top, with a radius of 45, and a height of 5.
  7. Click the Set Number of Points button and, in the Set FFD Dimensions dialog, set the Side points to 12, the Radial points to 5, and the Height points to 2.
  8. Move the entire FFD lattice up until it’s just over the surface of the table, as seen from the Front viewport.

Next, adjust the control points of the lattice to drape over the table:

  1. Zoom Extents All Selected.
  2. In the Modify panel, click the Sub-Object button to access the control points.
  3. Turn on the All X button in the Selection area. This will let you select control points around the perimeter of the FFD cylinder.
  4. Select the Move tool and, in the Top viewport, region select the two visible control points of the two outer rings of control points at the nine-o’clock position. (This is easier shown than described. You can actually region select any number of vertices in the two outer concentric rings of vertices. Because All X is on, all of the control points for the two rings will be selected.)
  5. Press the SPACEBAR to lock the selection. In the Front viewport, drag the selected points halfway down the height of the table.
  6. Unlock the selection, and then region select any one of the control points in the outer ring to select all of the points in the outer ring.
  7. Lock the selection and, in the Front viewport, drag the outer ring of points down to the floor.

    8. You now have a truncated cone shape over the table.

  8. Unlock the selection. In the Top viewport, again select all the control points in the two outer rings.
  9. Scale the selected control points in, until the inner ring of points is slightly larger in radius than the table top.
  10. Select only the outer ring of points, and then scale them in so their radius is slightly larger than the inner ring.

    11. If necessary, move the position of the points, as seen from the Front viewport, down again to touch the floor.

    You now have a lattice of control points draped over the table.

In this next series of steps, you’ll bind the tablecloth to the FFD lattice, and then animate it to move over the table.

  1. Turn off Sub-Object mode.
  2. Click Bind to Space Warp, and drag between the FFD and the tablecloth.
  3. Select the FFD Lattice.
  4. Choose All Vertices in the Deform area.

    5. The tablecloth is immediately deformed because all vertices are now affected, including those outside of the lattice volume, and Falloff is set to 0.0, which means that the distance of the vertices from the lattice doesn’t matter. Any number greater than 0, however, will limit the effect.

  5. Set the Falloff spinner to 0.70.

    6. No longer influenced by the FFD space warp, the tablecloth returns to its square shape.

  6. Turn on the Animate button, and go to frame 100.

    7. In the Top viewport, select the tablecloth, and move it until it’s centered over the table.

  7. As the tablecloth nears the table, it first droops down to the floor, and then sweeps up and over the table, finally draping itself over the table.
  8. As you move the time slider back and forth and examine the animation, you might find that the bottom of the tablecloth is deformed to the point where it’s hanging below the floor. You can fix this by turning off the Animate button, going to frame 100, selected the lower ring of control points, and moving them up until the tablecloth is at the height you want it. You can also adjust the position of the other control points to create drapes, and so on.
  9. In the Display command panel, check Space Warps to hide the FFD space warp.

    10. Set up some appropriate lights and a camera, and play your animation.


Conform (Space Warps)

Conform

The Conform space warp modifies its bound object by pushing its vertices in the direction indicated by the space warp icon, until they hit a specified target object, or until the vertices move a specified distance from their original position.

Generally, to use the Conform space warp, you create a Conform space warp, specify a target object in the Conform parameters, and then bind the Conform to a different object that you want to deform. You then rotate the Conform icon to specify the direction that you want the deformed object’s vertices to travel (toward the target object). The vertices of the deformed object move until they hit the target object.

There is also a Conform Compound Object that provides additional methods of conforming one object to another.

Reference

Conform Parameters

Wrap-To Object Area

Provides controls to select the target object.

Pick Object : Click this, and then select an object in the scene. The object you select becomes the barrier against which the bound object’s vertices will be pushed.

Object: Displays the name of the picked object.

Move Vertices Area

Includes parameters that affect how the vertices are moved.

Default Projection Distance : The distance a vertex in the bound object will move from its original location if it does not intersect the target object.

Standoff Distance: The distance maintained between the vertex and the surface of the target object. For example, if this is set to 5, the vertices can be pushed no closer than 5 units from the surface of the target object.

Use Selected Vertices: When this is checked, only the sub-object selection of vertices on the Stack are pushed, when this is unchecked, all vertices in the object are pushed, regardless of the Stack selection.

Display Area

Icon Size: Specifies the size of the icon.

How To

Example: Using the Conform Space Warp:

Begin my making a couple of objects:

  1. Create a terrain by making a wide, flat box with plenty of Length and Width segments (or a quad patch), and then applying a Noise modifier and adjusting its parameters to result in a bumpy terrain. (Not mountainous, but low and irregular.)
  2. Create a short, wide cylinder whose radius is about 1/8th the area of the box. (Like a coin, you’ll animate the cylinder to float diagonally over the surface of the terrain.)
  3. Set Cap Segments in the cylinder to 4, and then position the cylinder to float over the terrain.
  4. Set the object color of the cylinder so it contrasts from the color of the terrain.
  5. Move the cylinder so it’s inside one corner of the terrain as seen from the Top viewport, turn on Animate, move to frame 100, and move the cylinder to the opposite corner of the terrain.

    6. The coin/disk moves from one corner of the terrain to the other.

The terrain will become the target object, and the cylinder the deformed object. The next step is to create the Conform space warp, and bind it to the cylinder:

  1. In the Space Warp panel, click the Conform button.
  2. In the Top viewport, in the center of the terrain, drag outward to create the SurfWarp space warp.
  3. Click the Pick Object button, and then click the terrain box.
  4. In the Front viewport, drag the space warp up until it’s above the cylinder.

    5. As seen in the Front viewport, the terrain is at the bottom, the cylinder is between the terrain and the space warp, and the space warp is at the top.

  5. Bind the space warp to the cylinder.

    6. The cylinder becomes a disk that seems almost painted on the surface of the terrain.

  6. Drag the time slider to see the cylinder/disk move across the box, following the terrain.

Because the vertices are pushed to almost the level of the terrain, the faces of the two object might intersect. You can fix this by adjusting the Standoff Distance. This specifies the distance between the target surface and the pushed vertices. In the following steps, you’ll do that, and then go on to affect only selected vertices in the cylinder.

  1. Select the Conform, and open the Modify panel.
  2. Set the Standoff Distance to 3.

    3. The surface of the disk can now clearly be seen above the terrain.

  3. Set the Standoff Distance to 20.

    4. The disk now floats 20 units above the terrain. Next, change the affected vertices:

  4. Select the disk/cylinder.
  5. Open the Stack list, and select the double line below Conform in the list.
  6. Apply a Mesh Select modifier.
  7. Using Vertex selection mode, in the Front viewport, region-select the bottom cap vertices of the cylinder.
  8. Leave Sub-Object selection active, and move up the Stack list to the ConformBinding.
  9. Select the Conform icon.
  10. Check Use Selected Vertices.

    11. Now that only the bottom cap vertices are selected, the rest of the cylinder is restored. If you adjust the viewing angle and play the animation, you’ll see that the bottom face of the cylinder follows the terrain, while the rest of the cylinder retains it shape.


Bomb

Explodes objects into their individual faces.

Reference

Explosion Area

Strength : Sets the power of the bomb. Larger values make the particles fly farther. The closer an object is to the bomb, the more effect the bomb has.

Spin: The rate at which fragments rotate, in revolutions per second. This is also affected by the Chaos parameter (which causes different fragments to rotate at different speeds), and by the Falloff parameter (which causes the force of the explosion to be weaker the farther the fragment is from the bomb).

Falloff: The distance from the bomb, in world units, of the effect of the bomb. Fragments past this distance are not affected by the Strength or Spin settings, but are affected by Gravity. As an example, this is useful for blowing up the base of the building, and having the top of the building topple. To see the effect, place your bomb at the base of a tall cylinder with many height segments, and adjust the Falloff to be less than the height of the cylinder.

Falloff On: Check this to use the Falloff setting. When this is checked, the falloff range appears as a yellow, tri-hooped sphere.

Fragment Size Area

The two parameters in this area define the number of faces per fragment. Any given fragment will have a number of faces somewhere (randomly) between the Min and Max values.

Min: Set this specify the minimum number of fragments to be randomly generated by the "explosion".

Max: Set this specify the maximum number of fragments to be randomly generated by the "explosion".

General Area

Gravity: pecifies the acceleration due to gravity. Note that gravity is always in the direction of the world Z axis. You can have negative gravity.

Chaos: Adds some random variation to the explosion so that it isn't so uniform. The parameter ranges from 0-10. 0 is totally uniform. 1 is a good realistic setting. A value over 1 makes the explosion extra chaotic.

Detonation: Specifies the frame at which the bomb goes off. Bound objects are unaffected before this time.

Seed: Change this to change all randomly generated numbers in the bomb. Thus, you can get a different bomb effect by changing this while maintaining all the other settings.

Note that although strength and gravity are animatable, the equations used for projectile motion assume them to be constant, so the motion will not be physically correct (but it might look interesting). Also, if the bomb object is in motion during the blast, the result is not physically correct

How To

To use the bomb Space Warp, do this:

  1. Create Mesh objects to be exploded
  2. Click the bind to space warp button
  3. Bind each object to the Bomb Space Warp by Clicking and dragging the mouse over the bomb icon.
  4. Adjust the various parameters of the bomb to achieve different effects.


PBomb

Creates an impulse wave to blow up a particle system, as distinguished from the Bomb space warp in the Geometric/Deformable category, which blows up geometry. The PBomb is particularly well suited to the Particle Array system when PArray is set to fragment objects.

The general use is as follows:

  • Create a particle system of some type. (Recommend: the Parray set to object fragments.)
  • Create a PBomb and use Bind to Space Warp to bind it to the particle system.

Note: Be sure and bind the PBomb to the particle system and not the distribution object (if any).

  • Adjust the parameters of both the PBomb and the particle system.

Reference

Basic Parameters Rollout

All of the controls for the particle bomb are contained in this rollout.

Blast Symmetry is: Specifies the shape, or pattern of the blast effect.

Spherical: The blast force radiates outward from the PBomb icon in all directions. The icon looks like a spherical anarchist’s bomb.

Cylindrical: The blast force radiates outward from and normal to the central axis, or core of the cylindrical icon. The icon looks like a stick of dynamite with a fuse.

Planar: The blast force radiates both up and down, perpendicular to plane of the planar icon. The icon looks like a plane with arrows pointing up and down along the direction of the blast force.

Chaos: Causes the blast forces to vary for each particle or each frame, an effect not unlike Brownian motion with a rate of change in the direction of force equal to the rendering interval rate. Note: This setting is only effective when the Duration spinner is set to 0.

Explosion Area

Start Time: The frame number at which the impulse forces are first applied to the particles.

Duration: The number of frames, beyond the first, over which the forces are applied. This value should typically be a small number, such as 0 to 3.

Strength: The change in velocity along the blast vector, in units per frame. Increasing this increases the speed with which the particles are blown away from the bomb icon.

Unlimited Range: Choose this one of three option buttons to ignore the Range setting (which specifies the distance of the PBomb effect. When this is on, the effects of the bomb icon reach all bound particles throughout the scene.

Linear: When this is chosen, the impulse forces decay linearly between the full Strength at a range of 0 to a value of 0 at the specified Range setting.

Exponential: When this is chosen, the impulse forces decay exponentially between the full Strength at a range of 0 to a value of 0 at the specified Range setting.

Range: The maximum distance, in units, over which the PBomb icon affects the bound particle system. The extent of the range is indicated by a tri-hooped sphere. As an example if the Range is only large enough to reach a portion of the particle system, only that part of the system is affected. Note that, if Unlimited Range is chosen, this parameter has no effect.

Display Area

Affects the visual display of the PBomb icon.

Icon Size: Alters the overall size of the PBomb icon.

How To

Example: Using PBomb with PArray

You can use the Particle Bomb bound to a Particle Array to blow an object into fragments. The following steps demonstrate the basic setup.

Begin by binding a particle array to an object, and setting some parameters:

  1. Create the object you want to blow up.
  2. Create a PArray and use Pick Object to bind it to the object you plan on blowing up.
  3. In the Particle Generation rollout of PArray, set the Speed and Divergence spinners to 0. This prevents PArray from moving the particles, letting PBomb do all the work.
  4. In the Particle Generation rollout, set the Life to the length of the active time segment, so that the fragments appear during the entire animation.
  5. In Particle Rotation, set the Spin Time to 0 to prevent the fragments from rotating. Later, you can adjust this value to spin the fragments.
  6. In the Particle Type rollout, choose Object Fragments, and under Object Fragment Controls, choose Number of Chunks, and set the Minimum to, say, 50, depending on your distribution object and the effect you want.
  7. In the Basic Parameters rollout, under Viewport Display, choose Mesh to display the fragments as mesh objects in the viewports.

Now, create a particle bomb, and bind it to the particle array:

  1. Click the PBomb button in the Space Warps command panel, and drag in a viewport to create the PBomb icon.
  2. Use Bind to Space Warp to bind the PArray icon to the PBomb icon. (Don’t bind the distribution object by mistake!)
  3. Select the PBomb icon and move to the Modify panel.
  4. Set the Blast Symmetry to Spherical, the Start Time to 10, Duration to 1, and Strength to 1. Choose Linear, if it’s not already chosen.
  5. Drag the time slider between frames 9 and 20 to see the effect.
  6. Go to frame 12, or so, and try out various settings. Notice that increasing the Strength expands the explosion effect at the frame you’re on. If you lower the Range enough, the bomb no longer effects portions or all of the object (depending on the placement of the PBomb icon). Test the three Symmetry settings by placing the bomb in the center of the object and then seeing the different blast patterns.

    7. Once you get an explosive effect you like, you can return to the PArray settings, and add spin or thickness to the fragments, and so on.


SDeflector

This is a Space Warp that serves as a spherical deflector of particles.

Reference

Basic Parameters

All settings for the SDeflector are contained in this one rollout.

Particle Bounce Area

Contains settings that determine how the deflector affects the bound particles.

Bounce: Determines the speed with which particles bounce off of the deflector. At 1.0, the particles bounce at the same speed as they approach. At 0, they don’t deflect at all.

Variation: The amount by which each particle may vary from the Bounce setting.

Chaos: The amount of variation off of the perfect angle of reflection (found when Chaos is set to 0.0). 100% induces a variation in reflection angle of up to 90 degrees

Inherit Vel: This is the Velocity Inheritance setting. When the value is greater than 0, the motion of the deflector affects the particles as well as the other settings. For example, if you want to animate the SDeflector passing through a passive array of particles, you must turn up this value in order to affect the particles.

Display Icon Area

Contains controls affecting the display of the icon.

Diameter: Affects the diameter of the SDeflector icon. Note that this also alters the affect of the deflection, since the particles bounce off of the perimeter of the icon. Note that the scale of the icon also affects the particles.

How To

To set up the SDeflector:

  1. Click the SDeflector button in the Space Warp portion of the Create panel.
  2. Drag in a viewport to create the spherical icon.

    3. Note: Because the particles bounce off of the perimeter of the spherical icon, the size of the icon actually affects the particle deflection.

  3. Bind a particle system to the SDeflector icon.
  4. Position the SDeflector icon to interrupt the particle stream.

    5. Adjust the SDeflector parameters, as necessary.


UDeflector

The UDeflector is a Universal Deflector that lets you use any object as a particle deflector. The parameters for the UDeflector are the same as those for the SDeflector, described in the previous section, with the exception of the following additions:

Reference

UDeflector Basic Parameters

Object Based Deflector Area

Items in this area let you choose the object to be used as a deflector.

Item: Displays the name of the selected object.

Pick Object: Click this, and then click any renderable mesh object to be used as a deflector.

Particle Bounce Area

Bounce: Determines the speed with which particles bounce off of the deflector. At 1.0, the particles bounce at the same speed as they approach. At 0, they don’t deflect at all.

Variation: The amount by which each particle may vary from the Bounce setting.

Chaos: The amount of variation off of the perfect angle of reflection (found when Chaos is set to 0.0). 100% induces a variation in reflection angle of up to 90 degrees

Friction: Determines the amount of tangential “stick” at the surface as particles bounce off the deflector.

Inherit Vel: This is the Velocity Inheritance setting. When the value is greater than 0, the motion of the deflector affects the particles as well as the other settings. For example, if you want to animate the SDeflector passing through a passive array of particles, you must turn up this value in order to affect the particles.

Display Icon Area

Contains controls affecting the display of the icon.

How To

To set up the UDeflector:

  1. Click the UDeflector button in the Space Warp portion of the Create panel.
  2. Click the Pick Object button and select the object you wish to be a particle deflector.
  3. Bind a particle system to the UDeflector object.
  4. Position the UDeflector icon to interrupt the particle stream.
  5. Adjust the UDeflector parameters, as necessary.


Path Follow

The Path Follow Space Warp forces particles to follow a spline path.

Reference

Basic Parameters

The Basic Parameters rollout contains all of the settings for this Space Warp.

Current Path Area

Lets you choose the path for the particles, and specify the range of influence of the Space Warp.

(text label): Displays the name of the currently assigned path.

Pick Shape Object: Click this, and then click a shape in the scene to select it as a path. Any shape object can be used as a path, but if a multiple-spline shape is selected, only one of its splines is used. (This uses the same logic as the Path controller.)

Unlimited Range: When unchecked, the range of influence of the Space Warp is limited to the value set in the Distance spinner. When checked, the Space Warp influences all bound particles in the scene, regardless of their distance from the path object.

Range: Specifies the range of influence when Unlimited Range is unchecked. Note that this is the distance between the path object and the particle system. The position of the Path Follow icon is ignored.

Particle Motion Area

The controls in this area determine the motion of the particles.

Along Offset Splines: When chosen, the offset distance between the particle system and the path alter the effect of the particle motion. If the first vertex of the spline is at the birthplace of the particle, the particle follows the spline path, but when you move the path away from the particle system, the particles take into account the offset, and are affected accordingly. (See “Eric’s Explanation of Parallel and Offset,” below, for further information on this.)

Along Parallel Splines: When chosen, particles follow a copy of the selected path, parallel to the particle system. When in this mode, the position of the path relative to the particle system does not matter. The orientation of the path, however, will alter the particle stream.

Stream Taper: Causes particles to converge or diverge toward the path over time, depending on the three option settings, Converge, Diverge, and Both. This provides a tapering affect over the length of the path.

Variation: The amount by which the Stream Taper value may vary for each particle.

Contract: When chosen, and when Stream Taper is greater than 0, the particles move in toward the path over their distance along the path. The effect is that the stream tapers from larger to smaller over time.

Diverge: This provides the opposite effect of Contract. The particles diverge from the path over time.

Both: Splits the particles stream, causing the particles to both Contract and Diverge.

Stream Swirl: Specifies the number of turns by which the particles spiral about the path. You can use this in conjunction with Stream Taper to alter the diameter of the spiral. Note also that Stream Swirl is generally more effective when using motion Along Offset Splines.

Variation: The amount by which each particle may vary from the Spiral value.

Clockwise: When checked, particles spiral in a clockwise direction.

Counterclockwise: When checked, particles spiral in a counterclockwise direction.

Bidirectional: When checked, the stream is splits so that particles spiral in both directions.

Motion Timing Area

These controls affect how long the particles are influenced by Path Follow.

Start Frame: The frame at which Path Follow begins to influence the particles.

Travel Time: Time each particles takes to traverse the path.

Variation: The amount by which each particles travel time may vary.

Last Frame: The frame at which Path Follow releases the particles and no longer influences them.

Uniqueness Area

Provides a seed number for unique generation of the particle pattern.

Seed: Specifies the seed number for the current Path Follow.

Display Area

Affects the display of the Path Follow icon.

Icon Size: Specifies the size of the Path Follow icon. This does not alter the Path Follow effect.

How To

To set up and use Path Follow, do this:

  1. Create a shape consisting of a single spline. (You can use shapes with multiple splines, but only one spline in the shape is used for the path.)
  2. Create a particle system of some kind, and set its parameters to emit particles over some range of frames.
  3. In the Space Warps branch of the Create command panel, click Path Follow, and drag in a viewport to create the Path Follow icon (a cube with squiggly lines). The display and position of this icon does not affect the particles.
  4. Bind the Path Follow icon to the particle system.
  5. Adjust the Path Follow parameters to create the particle movement you want.

Note: You can further animate the particle effect by animating the spline using an XForm modifier on selected vertices.

Tip: You can adjust the position of the path or particles system while maintaining access to the Path Follow parameters by turning on the Pin Stack button in the Modifier Stack while Path Follow is selected.


Push

Applies a force to either Particle Systems or Dynamics Systems. The effect is slightly different, depending on the system.

Particles: Applies a uniform, unidirectional force in a positive or negative direction. When it’s a positive force, it moves in the direction of the pad on the hydraulic jack. The breadth of the force is infinite perpendicular to the direction, though you can limit it using the Range option.

Dynamics: Provides a point force (also called a point load) away from the pad of the hydraulic jack icon. (A negative force pulls in the opposite direction.) In dynamics, applying a force is the same as pushing on something with your finger.

Reference

Timing Area

On Time/Off Time: The times that the space warp begins its effect and ends its effect. Note that, because Push moves the objects to which it’s applied, those objects will move over time, although there are no keyframes created.

Strength Control Area

Basic Force: The amount of force exerted by the space warp.

Newtons/Pounds: These options specify the units of force used by the Basic Force spinner. A Pound is about 4.5 Newtons, and one Newton is one kilogram-per-second-squared. When Push is applied to particle systems, these values have only subjective meaning because so much is dependent on the weighting factors built into the particle system and the time scaling used by the particle system. However, when used in the Dynamics system, the value listed is precisely the value used.

Feedback On: When this is checked, the force lessons, depending on how near the affected objects get to the specified Target Speed value (described below). When this is unchecked, the force remains constant, regardless of the speed of the affected objects.

Reversible: When checked, if the objects speed exceeds the Target Speed the force is reversed.

Target Speed: This is only used when Feedback is checked. It specifies the maximum speed before the Feedback takes effect. Speed is specified in units traveled per frame.

Gain %: Specifies how quickly the force adjusts to the approach to target speed. If this is set to 100 percent, the correction is immediate. If it’s lower, a slower and “looser” response occurs. Note that this spinner can be set above 100 percent, This will often result in overcorrection, but Gains greater than 100 percent are sometimes necessary to overcome damping from other system settings, such as IK damping, and so on.

Periodic Variation Area

Provides settings that introduce variations into the force by affecting the Basic Force value randomly. You can set two waveforms to produce more of a noise effect.

Enable: Check this to turn on the variations.

Period 1: The time over which the noise variation makes a full cycle. For example, a setting of 20 means one cycle per 20 frames.

Amplitude 1 %: The strength of the variation. This uses the same types of units as the Basic Force spinner.

Phase 1: Offsets the variation pattern.

Period 2: The next three spinners provide an additional variation pattern to increase the noise.

Amplitude 2 %: The strength of the variation of the second wave. This uses the same types of units as the Basic Force spinner.

Phase 2: Offsets the variation pattern of the second wave.

Particle Effect Range Area

Lets you restrict the Push effect to a specific range. Note that this only affects particles systems; it has no effect on Dynamics.

Enable: Check this to limit the range of the effect to a sphere, displayed as a tri-hooped sphere. The effect falls off increasingly as the particles near the boundary of the sphere..

Range: Specifies the radius of the range of the effect, in units.

Display Icon Area

Icon Size: Sets the size of the Push icon. This is for display purposes only, and does not alter the Push effect.

How To

To create a Push Space Warp, do this:

  1. Select Push in the Space Warps creation panel
  2. Click and drag in a viewport to define the size.

    3. The Push appears as a hydraulic jack icon.


Motor

Motor works in the same way as Push, but applies rotational torque to the affected particles or objects rather than a directional force. Note that, when applied to particles, both the position and orientation of the Motor icon affects the particles, which swirl around the Motor icon. When used in dynamics, the relative position of the icon to the affected object has no affect, but the orientation of the icon does.

Reference

The U.I. components for Motor are identical with those of Push, with the following exceptions:

Timing Area

On Time/Off Time: The times that the space warp begins its effect and ends its effect. Note that, because Push moves the objects to which it’s applied, those objects will move over time, although there are no keyframes created.

Strength Control Area

Basic Torque: The amount of force exerted by the space warp.

N-m/Lb-ft/Lb-in: These three options specify the unit of measure for the Basic Torque setting, using common world measurements of torque. N-m stands for Newton-meters, Lb-ft is pounds-feet, and Lb-in is pounds-inch.

Feedback On: When this is checked, the force lessons, depending on how near the affected objects get to the specified Target Speed value (described below). When this is unchecked, the force remains constant, regardless of the speed of the affected objects.

Reversible: When checked, if the objects speed exceeds the Target Speed the force is reversed.

Target Revs: This is only used when Feedback is checked. It specifies the maximum revolutions before the Feedback takes effect. Speed is specified in units traveled per frame.

RPH/RPM/RPS: Specifies the units of measure for the Target RevsRevolutions-per-Hour, Minute, or Second.

Gain %: Specifies how quickly the force adjusts to the approach to target speed. If this is set to 100 percent, the correction is immediate. If it’s lower, a slower and “looser” response occurs. Note that this spinner can be set above 100 percent, This will often result in overcorrection, but Gains greater than 100 percent are sometimes necessary to overcome damping from other system settings, such as IK damping, and so on.

Periodic Variation Area

Provides settings that introduce variations into the force by affecting the Basic Force value randomly. You can set two waveforms to produce more of a noise effect.

Enable : Check this to turn on the variations.

Period 1 : The time over which the noise variation makes a full cycle. For example, a setting of 20 means one cycle per 20 frames.

Amplitude 1 % : The strength of the variation. This uses the same types of units as the Basic Force spinner.

Phase 1 : Offsets the variation pattern.

Period 2 : The next two spinners provide an additional variation pattern to increase the noise.

Amplitude 2 %

Phase 2

Particle Effect Range Area

Lets you restrict the Push effect to a specific range. Note that this only affects particles systems; it has no effect on Dynamics.

Enable: Check this to limit the range of the effect to a sphere, displayed as a tri-hooped sphere. The effect falls off increasingly as the particles near the boundary of the sphere..

Range: Specifies the radius of the range of the effect, in units.

Display Icon Area

Icon Size (spinner): Sets the size of the Push icon. This is for display purposes only, and does not alter the Push effect.

How To

To create a Motor Space Warp, do this:

  1. Select motor in the Space Warps creation panel
  2. Click and drag in a viewport to define the size.

    3. The Motor appears as a box-shaped icon with an arrow indicating the direction of the tork..


When Modifiers Become Space Warps

There’s a new category of space warps, called “Modifier-Based” . These are a form of object modifier that’s created as a space warp, resides independently as an object, but affects other objects to which it’s bound. Essentially, the modifier-based space warp works in the same way as other space warps, but is a duplicate of an object modifier that’s available via the Modify panel. Another way to put it is that the modifier-based space warp works the same as its twin object modifier, except that it works in world space coordinates, and only affects those objects to which it’s bound.

The adapted modifiers are those that use a box gizmo. Thus, the Bend, Twist, Taper, Skew, and Noise modifiers have all been added as new modifier-based space warps.

The new modifier-based space warps are accessed in the drop-down category list of the Space Warps branch of the Create command panel. Choose Modifier-Based from the list to display buttons for each of the new space warps.

You create modifier-based space warps in the same way as you create all other space warps. Since each modifier-based space warp is a box type, you use the mouse in the viewport in the same way you’d creating a Box primitive. Note, however, that, unlike standard modifiers, modifier-based space warps do not have Sub-Object levels.

The creation parameters for a modifier-based space warp are identical with those found at the gizmo level of the object-modifier versionwith the addition of a Gizmo Parameters rollout. The Gizmo Parameters rollout provides spinners for the Length, Width, and Height of the object. There’s also a Deformation area title, containing a Decay spinner. When this spinner is set to 0, there is no decay, and the space warp affects its bound object regardless of its distance from the object. When you increase the decay, the effect on the bound object falls off exponentially.

Note that the Displace space warp doesn’t have mapping alignment buttons, nor does it have the Use Existing Mapping, Apply Mapping, and cylindrical Cap checkboxes. This is because the Displace space warp can be used on particles, which don’t have face normals.


Systems

A system combines objects, linkages, and controllers to produce an object set that has a behavior as well as geometry. Systems enable you to create animations that would be much more difficult or time-consuming to produce using 3D Studio MAX features independently.

Systems can range from simple object generators to full-scale subsystem programs. Systems are primarily intended for use by plug-in component software. The three systems provided with all 3DS MAX configurations are samples.

  • Bones creates a hierarchically linked set of bones and joints.

You can transform and animate bones using both forward and inverse kinematics.

  • Ring Array creates a ring of boxes.
  • Sunlight creates and animates a directional light that follows the geographically correct angle and movement of the sun over the earth at a given location

More kinds of systems might be available if your 3DS MAX configuration includes plug-in systems.

How To

To create a system:

  1. On the Create command panel, click Systems.

    2. The Systems panel appears.

  2. On the Object Type rollout, click a button to choose which kind of system to create.
  3. Drag in a viewport to create the system.


Bones

A Bones system is a jointed, hierarchical linkage of “bone” objects that demonstrates kinematics. Each "bone" is a parametric wireframe object. You can’t render bones or modify individual bone objects.

Create panel for bones systems

Bones have been augmented to support a new IK controller, resulting in a different type of IK system. As a result, there are now various options available when you click the Bones button:

See IK Controller on for a detailed description of how to set up and use the new IK system, and how the Bones settings fit into this.

Bones system

The effect of transforming a bones system depends on whether Inverse Kinematics (IK) is active or not.

  • With IK off, when you transform an individual bone you are actually transforming the "joint" at its end. Moving a bone moves the joint and changes the bone's length.
  • With IK on, the length of each bone remains the same, and the system behaves like an armature.

In either case, bones remain connected to each other. Transforms you apply to one bone can propagate to other bones in the system. With IK off, the propagation is always to bones that are lower in the hierarchy. With IK on, the propagation can be in either direction along the hierarchy.

You can also scale and rotate bones.

See Using Inverse Kinematics

Reference

IK Controller Area

Assign To Children: Check this to assign the New IK controller to all of the created bones, except the first (root) bone. When this is unchecked, the standard PRS Transform controller is assigned to the bones, which are then the same as bones in R1 of 3DS MAX.

Assign To Root: Check this to assign an IK controller to the root bone as well as all of its children. When this is not checked, the root bone is assigned a PRS Transform controller. This checkbox is disabled when Assign to Children is not checked.

Create End Effector: When this is checked a New IK end effector is automatically assigned to the last child in the chain of created bones. When unchecked, the end effector is not assigned. See Creating Bones,

Auto Boning Area

The items in this area let you automatically assign bones to the linked objects in an existing hierarchy. Note that the options in the IK controller area affect these bones in the same way as they affect bones you create with the mouse.

Pick Root: Click this button, and then select an object in the viewport that will be the root object of your chain. Bones will be created for that object, plus all its descendants. Note that the selected object can be the child of another, thus resulting in boning of a subtree.

Auto Link: When this is checked, the corresponding objects in the specified hierarchy are automatically linked to their associate bones. When unchecked, the bones are linked to each other, but the objects are not linked to the bones. In most cases, you will want this checked.

Copy Joint Parameters: When checked, all of the joint parameters (sliding and rotational joint parameters found in the Hierarchy/IK branch) are copied from the objects in the hierarchy to the bones.

Match Alignment: When checked, the local coordinate systems of the bones are created to match the local coordinate systems of their associate objects in the hierarchy. When unchecked, the bones are created with local coordinate systems that are aligned with the world axis.

Additional changes in Bones include the following:

Creation: The creation method has been improved. When you create bones, you can begin with either a click or a drag action to create a single bone. (Previously, if you began with a single click, you created two bones at the beginning location.)

Selection: The hit testing on bones was frustrating. Clicking on a joint would sometimes select the next joint down, because it would hit the link instead. It’s been fixed so the link is not hit-test sensitive in the vicinity of the parent joint. You can now always get the joint you click.

Local Coordinates: The local coordinates of the bones are now aligned with the world coordinates during creation.

Scaling: The diamond icons representing the bone joints no longer change size when you scale the bones. Thus, they act in the same way as camera or spotlight icons. This is to prevent them from disappearing when you scale down your bone hierarchies.

How To

To create a bones system:

  1. On the Create command panel, click Systems.

    2. The Systems panel appears.

  2. On the Object Type rollout, click Bones.
  3. Click in a viewport to define the base of the hierarchy.
  4. Move the mouse to define the length of the first bone.
  5. Click to set the length and then move the mouse to create the second bone.
  6. Continue to add bones by moving and clicking.
  7. Right-click to end creation.

The first bone you create is at the top of the hierarchy. The last bone you create is at the bottom. For more about linked objects, see Building Hierarchies of this guide.


Sunlight

This system creates and animates a directional light that follows the geographically correct angle and movement of the sun over the earth at a given location. You can choose location, date, time, and compass orientation. Date and time can be animated, and shadows render accurately, making this suitable for shadow studies of proposed and existing structures.

Reference

Azimuth/Altitude: Displays the azimuth and altitude of the sun. Azimuth is the compass direction of the sun in degrees (North = 0, East = 90). Altitude is the height of the sun above the horizon in degrees (Sunrise or Sunset = 0).

Time Area

Provides spinners that let you set the time and the date, as well as the time zone. If you want daylight savings calculated as well, check Daylight Savings.

Hours/Mins/Secs: Set these to specify the time of day

Month/Day/Year: Set these to specify the date.

Time Zone : Time zones range from -12 to 12. If you’re uncertain about a time zone, you can look them up in Window’s NT Date/Time Properties dialog, which is available via My Computer/Control Panel/Date/Time. Select the Time Zone tab, and then open the pop-up list to see a list of all world locations and their time zones.

Daylight Savings Time: Check this to calculate daylight savings into the time equation.

Location

Provides controls that let you set the location of your scene in the world.

Get Location: Click to display a dialog that lets you set the latitude and longitude values by selecting a location from a map or a list of cities. The dialog displays a list of cities at left, and a map on the right. Choose a map from the Map list, and then click in the map to specify a location. A small cross is displayed at the picked location. If Nearest Big City is checked, then the cross is placed at the nearest large city that’s on the list, and that city appears highlighted in the City list. Click OK to set the Latitude and Longitude spinners to the location of the cross.

City: Displays a list of cities within the selected Map region. As an alternative to selecting a location by clicking the map, you can select a city directly from this list. The cross on the map moves to the location of the selected city.

Map: Lets you choose a map for a portion of the world, or you can choose the World map, which includes all of the world.

Nearest Big City: If this is checked, when you click on the map, the cross moves to the nearest listed city, which becomes highlighted. When this is unchecked, clicking the map places the cross exactly where you clicked, and its position generated the Latitude and Longitude values for that position, regardless of any cities that might be nearby.

City Name Text Box: The name of the city you select appears here. If you adjust the Latitude or Longitude spinners after selecting a location, this area becomes blank.

Latitude/Longitude: Set these to specify the location based on the latitude and longitude.

Site Area

Orbital Scale: Sets the distance of the sun (the directional light) from the compass rose. Because a direction light casts parallel beams, this distance has no effect on the accuracy of the sunlight.

North Direction: Sets the rotational direction of the compass rose in the scene. This is the geographical orientation of the compass rose. By default, north is 0 and points along the positive Y axis of the ground plane. Positive X (East) is 90 degrees. Adjust the North Direction to correspond to your site. Accuracy of the system depends on this correspondence.

How To

To create the sunlight following these steps:

  1. In the Create/Systems branch, click the Sunlight button.
  2. Choose a viewport in which to create a compass rose (the compass direction of your “world”). Typically, this should be a Top or Perspective view.
  3. Drag to create the radius of a compass rose (the radius is for display purposes only), and then click and move to set the orbital scale of the directional light over the compass rose. This can be any distance you find convenient, since a directional light produces parallel illumination regardless of where its icon is located.

The default “sun” position is created based on the current time, date, and time zone location set in your computer. You can then use the Sunlight parameters to adjust these settings.

Upon creation you have two objects in your scene:

  • The Compass rose, which is a helper object that provides the world direction for your sun..
  • The directional light, which acts as the sun, is a child of the compass rose, and is permanently targeted on the center of the compass rose. The light’s starting values are set to pure white, RGB: 255, 255, 255.

The directional light created by the Sunlight system is managed by two special controllersSolar Date and Solar Time. After you create your Sunlight system, you can access its creation parameters (time and date, location, orbital scale, and location) in the Motion command panel for the directional light. The parameters are interrelated, so you can adjust them in any order. Generally, it’s easiest to first select a location, and then adjust the date and time. The parameters for the light are accessed in the Modify panel, after selecting the light. The radius of the compass rose is also accessed in the Modify panel, after selected the compass rose object.


Ring Array

A Ring Array is a dummy object surrounded by a ring of boxes. You can arrange the boxes in the ring along a sine curve, vary their number, and animate the ring array's parameters.

Reference

Ring Array Parameters

These parameters control ring arrays.

Radius: Radius of the ring. You set the initial Radius value when you drag to create the ring array.

Amplitude: Amplitude of the ring's sine curve, in active units. Amplitude is a height offset from the local origin of the center dummy object.

Cycles: Number of cycles in the ring's sine curve. When Cycles equals 0.0, the ring is flat. When Cycles equals 1.0, the ring is tilted. Greater values increase the number of peaks in the curve.

Phase: Offsets the phase of the wave. That is, it has the effect of moving the wave along the circumference of the ring. Whole values have no effect Ñ only fractional values do.

Number: Number of boxes in the ring.

How To

To create the ring array system:

  1. On the Create command panel, click Systems.

    2. The Systems panel appears.

  2. On the Object Type rollout, click Ring Array.
  3. Drag in a viewport to set the center and radius of the array.

    4. A dummy object appears at the center. By default, four boxes are evenly spaced in a circle around it.

To animate the ring array:

  1. Turn on the Animate button.
  2. Move to a non-zero frame.
  3. Adjust ring array parameters.

    4. You can’t animate the number of boxes in the ring.

  4. Repeat steps 2 and 3 for other frames.

Note: To animate the ring array after its creation phase, use the Motion command panel (not the Modify command panel).

Putting Other Objects in the Ring

To replace the boxes in the ring with other kinds of objects, such as the teapots in the illustration, use cut and paste in Track View.

To put other kinds of objects in the ring:

In the Track View hierarchy, select the object container of the object to put in the ring.

  1. Click Copy.
  2. Select the object containers of the ring array boxes.
  3. Click Paste.

    4. The Paste dialog appears.

  4. Choose Copy or Instance, and then click OK.


Modify Panel

From the Create command panel of 3D Studio MAX, you place basic objects in your scene 3D geometry, 2D shapes, lights and cameras, helpers and space warps. As you do this, you give each object its own set of creation parameters, which define its geometry and other characteristics depending on the type of object.

Once placed in a scene, objects carry their creation parameters with them. You can change these parameters on the Modify command panel.

You also use the Modify command panel to assign modifiers. Modifiers are the basic tools for modeling and reshaping an object. While they mold the final appearance of the object, modifiers do not change its underlying creation parameters.

A number of changes have been made to the interface of the Modify Panel. To read about new features and changes see Modify Panel (New Features).

Space warps can now also be created as modifiers. See When Space Warps Become Modifiers.

You use the Modify command panel to:

  • Change the creation parameters for existing objects.
  • Apply object modifiers such as Bend, Twist, or Taper to all of an object, part of an object, or a set of objects.
  • Apply special edit modifiers to selected portions of an objects geometry.
  • Change the parameters of modifiers and select their components.
  • Delete modifiers.

Affect Region Modifier

Bend Modifier

Camera Map Modifier

Cap Holes Modifier

Delete Mesh Modifier

Delete Spline Modifier

Face Extrude Modifier

Tesselate

Unwrap UVW's Modifier

Twist

Displace Modifier

Mirror

Lattice Modifier

Noise

Optimize

Volume Select

XForm

Wave

Skew

Ripple

Taper

FFD (Free Form Deformation) Modifier

FFD (Box/Cyl) Modifier

FFD Select Modifier

UVW XForm Modifier

UVW Map Modifier

Spherify Modifier

PathDeform Modifier

Patch Deform Modifier

SurfDeform Modifer

MeshSmooth Modifier Improvement

Smooth Modifier

Lathe Modifier

Preserve Modifier

Path Bevel Modifier

Fillet/Chamfer Modifier

Extrude Modifier

Trim/Extend Modifier

Mesh Select Modifier

Editable Mesh Modifier

Editable Spline Modifier

Spline Select Modifier

Make Unique

Camera Map (WSM)

Path Deform (WSM)

Patch Deform (WSM)

SurfDeform (WSM)

Map Scaler (WSM)

Reference

The Modify command panel stays in view until you dismiss it by clicking the tab of another command panel. The contents of the panel its options and controls update when you select an object. The contents give you access to what you can modify about that object.

What you can modify depends on an objects category whether its classed as a geometric primitive like a sphere, or as another kind of object, like a light or a space warp. Each category has its own range of possibilities. For example, you can change the size of a sphere from the Modify panel, but you can't change the size of a light. The contents of the Modify command panel are always specific to the category as well as to the selected object.

When you make a change from the Modify command panel, you immediately see the results transferred to the object. No other action is required.

You can change or delete modifiers by using the modifier stack. See Modifier Stack.

How To

To use the Modify command Panel:

  1. Select any object in your scene.
  2. Click Modify to display the Modify command panel.

    3. The name of the object appears at the top of the Modify command panel, and various fields change to match this object.

  3. You can now do either of the following:

    4. Change the creation parameters on the Parameters rollout at the bottom of the Modify panel. As you change these parameters, the object updates in the viewport.

    Click a button on the Modifiers rollout to apply a modifier to the object. The Parameters rollout changes to show the parameters for that modifier.


Affect Region Modifier

This modifier lets you translate an area of vertices to form a bubble over the surface of an object.In addition to providing effects similar to the Affect Region function in an Editable Mesh, the affect region modifiier is not dependent on a specific selection of vertices.

The easiest way to see this modifier’s effect is with a shallow, flat box object with plenty of subdivisions.

When you apply the Affect Region modifier, it assigns an arrow-like gizmo consisting of two points connected by a line. The base of the arrow is the start point. The length and direction of the arrow defines the amount of movement of the vertices. Any vertices within Falloff distance of the base of the arrow are translated in the direction of the arrow.

Note that since no points on the mesh are directly selected, this modifier does not depend on the topology of the input object. You can apply it to any renderable object.

Affect Region Modifier applied

Affect Region Modifier on a helix

Reference

Note: The parameters of this modifier are exactly the same as in the Affect Region function of the Edit Mesh modifier.

Sub-Object Seletion

Points: The base and tip of the gizmo arrow are selectable points when in sub-object selection mode. You can select, translate, and animate these two points together or individually.

Affect Region Parameters

Falloff: Use this to set the radius, in units, from the base of the gizmo arrow, of affected vertices. (Spinner Value: float, 0 to 999,999)

Ignore Back Facing: Check this to affect only those vertices whose face normals are in the same genreral direction as the gizmo arrow. When this is unchecked, all vertices in the Falloff area are affected.

Curve Parameters

Pinch: Use this to affect the tangency of the curve where it meets the arrow tip. Positive values produce a pointed tip, while negative values produce a dimple. (Spinner Value: float, -999,999 to 999,999)

Bubble: Use this to change the curvature of the affected vertices. A value of 1.0 produces a half-dome. As you reduce this value, the sides of the dome slope more steeply. Negative values lower the base of the curve below the base of the arrow gizmo. (Spinner Value: float, -999,999 to 999,999)

How To

To form a bubble over the surface of a box, do this:

  1. Create a box with 15 height, width and length segments
  2. Select affect region in the modify panel.
  3. In the parameters area, set the falloff to 50.
  4. Adjust the various parameters to achieve different effects.


Bend Modifier

Bends The current selection up to 360 degrees about a single axis. The Bend modifier produces a uniform bend in an objects geometry. You can control the angle and direction of the bend on any of three axes. You can also limit the bend to a section of the geometry.

Reference

Bend Modifier Parameters

Angle: Sets the angle to bend from the vertical plane (1-360).

Direction: Sets the direction of the bend relative to the horizontal plane (1-360).

Bend Axis Area

X/Y/Z: Select one of these to specify the axis that will be bent. Note that this axis is local to the Bend gizmo and not related to the selected entity.

Limits Area

Limit Effect: Check this to apply limit constraints to the bend effect.

Upper Limit: Sets the upper boundry in world units from the bend center point beyond which the bend no longer affects geometry.

Lower Limit: Sets the lower boundry in world units from the bend center point beyond which the bend no longer affects geometry.

How To

To bend an object:

  1. Select and click Bend on the Modifiers rollout.
  2. On the Parameters rollout, set the axis of the bend to X, Y, or Z. This is the axis of the Bend gizmo, not the axis of the selected object. Default=Z.
  3. You can switch between axes at any time, but only one axis setting is carried with the modifier.
  4. Set the angle of the bend along the chosen axis.

    5. The object bends to this angle beginning at the lower limit, by default the location of the modifiers center.

  5. Set the direction of the bend.

    6. The object swivels around the axis.

    You can reverse angle and direction by changing a positive value to a negative value.

To limit the bend:

  1. Check Limit Effect in the Limits area. Default=unchecked.
  2. Set values for the upper and lower limits. These are distances in current units above and below the modifiers center, which is at zero on the gizmos Z axis. The upper limit can be zero or positive, the lower limit zero or negative. If the limits are equal, the result is the same as unchecking Limit Effect. Defaults=0.

    3. The bend is applied between these limits. The surrounding geometry, while unaffected by the bend itself, is rotated to keep the object intact. This is analogous to bending a pipe the unbent sections rotate but remain straight.

  3. At sub-object level, you can select and move the modifier's center.

    4. The limit settings remain on either side of the center as you move it. This lets you relocate the bend area to another part of the object.


Camera Map Modifier

This modifier applies planar mapping coordinates to an object projected from the viewpoint of a specified camera. The main purpose is to map an object in such a way that it perfectly matches the backgroundand yet fix the mapping to the object so that if you move or otherwise distort the camouflaged object, it becomes visible against the unchanging background map.

In order to make the illusion work, you must assign the same map to the background as you assign to the object. In addition, because the accuracy of mapped objects is partly dependent on the complexity of the mesh, the effect works best when applied to an object with a relatively high density of triangular faces. The necessary density also depends on the distance of the object from the camera. A simple box might look fine when it occupies only a small portion of the background, but up close the mapping will look distorted without adequate tessellation. A bit of experimentation is require to get an ideal mapping and still minimize the complexity of the geometry. (In general, for a box object that’s filling a quarter of the screen, a tessellation of 4x4x4 works fine.)

Note: Keep the following in mind when using the Camera Map modifier:Apply the modifier to a single object at a time. If it’s applied to a selection set, only the first item in the selection will be mapped properly.

To make the coordinates “stick” to the surface of the object, apply the modifier in the Stack before and animated modifiers that distort the object. Also, make sure that any animated modifiers begin their animation after frame 0, otherwise the mapped object will not match the background at frame 0.

ART DIRECTIVE( Object against a background Before and After)

Reference

Camera Mapping Parameters

Pick Camera: The Camera Map modifier contains a single button, labeled Pick Camera. To apply the UVW coordinates, click the Pick Camera button, and then select the camera through which you’re going to view the scene.

How To

The following steps show how to apply the Camera Map modifier, and how to set up your scene.

To apply the Camera Map modifier, to this:

  1. Create a scene with a camera and one or more objects. Make sure the object you want to map is visible in the camera viewport.
  2. Select the object, and apply the Camera Map modifier.
  3. If you have animation in the scene, move to the frame at which you want the object map to match the background. For example, if the camera is animated, the mapping will match only at this frame.
  4. Click the Pick Camera button, and the select the camera used for the rendered view.

Next, assign a background image to the camera viewport:

This is not really necessary for successful rendering, but if you want to see the effect in a viewport, do these steps.

  1. Activate the camera viewport and turn off the grid.
  2. From the Views menu, choose Background Image.
  3. Click the Files button, and choose the same bitmap that you plan to apply as a background for the rendered scene, and as a diffuse map on the object.
  4. In the Aspect Ratio area, choose Match Rendering Output.
  5. Check Display Background, and click OK.

    6. The map is displayed in the viewport.

Now, assign a mapped material to the object:

  1. In the Materials Editor, create a standard material to whose Diffuse channel you’ve assigned the same bitmap as you assigned the background.
  2. At the Diffuse Map level of the material, turn on the Show Map in Viewport button.
  3. Select the object, and click Assign Material to Selection.

    4. The map on the object in the viewport matches the viewport background, but the shading makes the object visible. To make the object truly invisible, add the following steps:

  4. At the top level of the object’s material, set Shininess and Shininess Strength to 0, and set Self Illumination to 100.

    5. The object is now camouflaged against the background.

Finally, assign the background to the rendered background:

  1. In the Material Editor, select an unused sample slot, and open the Materials/Maps Browser.
  2. Choose Browse From Mtl Editor.
  3. Turn off Root Only, make sure the Show Maps is checked, find the map in the list window, and drag it over the unused sample slot.
  4. Choose Instance in the alert, and click OK.

    5. The map is now in the sample slot.

  5. In the Coordinates rollout of the Materials Editor, choose Environment, and then set the drop-down list to Screen.
  6. From the Rendering menu, choose Environment.
  7. Drag the sample slot containing the new map over the Background button in the Environment dialog.
  8. Choose Instance in the alert, and click OK.
  9. Render the camera viewport.

    10. The mapped object is camouflaged against the background in the rendered scene.


Cap Holes Modifier

Builds faces in the holes in a mesh object. A hole is defined as a loop of edges, each of which have only on one face. For example, one or more missing faces from a sphere would produce one or more holes. The modifier works best on reconstructing planar holes, but can do a reasonable job on non-planar holes, as well.

Note: This modifier can cap holes in a subobject selection passed up the Stack. Any part of the hole that’s adjacent to, or within the selected geometrywhether vertex, edge, or faceis capped.

Reference

After applying this modifier, the following three checkboxes are available:

Cap Holes Parameters

Smooth With Old Faces: Check this to assign the same smoothing group number to all new faces. If possible, this will be a smoothing group number not used elsewhere in the object.

Smooth With Old Faces: Check this to smooth new triangular faces using the smoothing groups from bordering old faces. This only smoothes one level in from the perimeter of the border of the hole, so you might need to use both this and the Smooth New Faces option to properly smooth a large hole.

Note: When Smooth With Old Faces is checked, the faces in the capped holes inherit a material face ID from one of the surrounding faces. When this item is unchecked, the faces in the capped holes are assigned a new ID.

All New Edges Visible: Checking this Makes all of the edges visible in the new faces.

How To

To Cap a hole in a sphere, do this:

  1. Create a Sphere
  2. Apply an Edit Mesh modifier to the sphere
  3. In the Modifier Stack Rollout, Choose face selection level.
  4. Select and delete any face of the sphere.
  5. Exit the sub-object selection level by clicking the highlighted Sub-Oject button
  6. Select Cap Holes in the modify panel.

    7. The hole you created should now be filled.

  7. Adjust the parameters.


Delete Mesh Modifier

Provides parametric deletion based on the current selection level in the Stack. Apply the Delete Mesh modifier to delete the geometry specified at that level in the Stack.

For example, you can apply a Mesh Select modifier, select a row of faces in a cylinder, and then apply a Delete Mesh modifier to delete those faces. To undo the deletion, you can simply remove the Delete Mesh modifier.

Tip: Try applying a Delete Mesh modifier following an animated Vol. Select modifier.

Reference

There are no parameters for this modifier.

How To

To delete a row of faces in a cylinder, do this:

  1. Create a Cylinder
  2. Apply a Mesh Select modifier and Select a row of faces in the cylinder.
  3. Select Delete Mesh in the modify panel to delete those faces.

    4. You can undo the deletion by simply removing the Delete Mesh modifier.


Delete Spline Modifier

Provides parametric deletion of spline geometry based on the current selection level in the Stack. Apply the Delete Spline modifier to delete the geometry specified at that level in the Stack.

Reference

There are no parameters for this modifier.

How To

To use the Delete Spline modifier, do this:

  1. Create a multi-spline shape
  2. Apply a spline select modifier and select a section of the spline to be deleted
  3. Select Delete Spline in the Modify panel to delete the section.

    4. You can undo the deletion by simply removing the Delete spline modifier.


Face Extrude Modifier

Extrudes faces along their normals, creating new faces along the sides of the extrusion that connect the extruded faces to their object. As with most modifiers, this affects the current face selection passed up the Stack. There are various difference between the Face Extrude modifier and the Face Extrude function in an Editable Mesh, not the least of which is the fact that all parameters in the Face Extrude modifier are animatable.

Reference

Sub-Object Selection

Extrude Center: When selected, you can select and move (or animate) the center point. This only affects the geometry if Extrude from Center is checked.

Face Extrude Parameters

Amount: Use this to affect the amount of extrusion. You can adjust and readjust the Amount spinner as much as you like. To extrude a second level, apply another Face Extrude modifier. (Spinner Value: float, -999,999 to 999,999)

Scale: Use this to Scale each cluster of selected faces independently about its center. (Note: By using multiple extrude modifiers with scale, you can achieve a bevel effect.) (Spinner Value: float, -999,999 to 999,999)

Extrude From Center : Check this to extrude each vertex radially from the center point.

The direction in which the faces are extruded is slightly different than Face Extrude in the editable mesh. Each vertex is displaced in the direction of the average surface normal of selected faces that share that vertex. So each vertex may move in a slightly different direction. This should be better than forcing all vertices to move in the same direction. Put another way, each vertex is extruded in the direction of the surface normal at the point on the surface where that vertex lies.

How To

To extrude the face of a sphere, do this:

  1. Create a Sphere
  2. Apply an Mesh Select modifier to the sphere
  3. In the Modifier Stack Rollout, Choose face selection level.
  4. Select any face(s) of the sphere.
  5. Select Face Extrude In the Modify Panel.
  6. In the parameters rollout, set the amount to 50.

    7. The face(S) you selected should now be extruding out from the sphere.

  7. Adjust the parameters to achieve different effects.


Tesselate

Applies face tessellation to the current selection level. If no sub-object selection has been passed up the Stack, then the entire object is tessellated. This modifier provides the following additions to the tessellation available in an editable mesh:

  • You can tessellate polygonal faces.
  • You can animate the tension of the tessellation.

Reference

Parameters Rollout

Operate On: Choose one of these two button to specify whether the tessellation is performed on the triangular faces, or on the polygonal facets (the areas bound by visible edges)

  • Triangle Icon: Click to select a triangular face beneath the cursor; region selection selects multiple triangular faces within the region.
  • Polygonal Icon: The polygonal method divides the polygonal facets. For example, using the polygonal method on the side of a box, results in cross-shaped edges using the edge method, and X-shaped edges using the Face-Center method.

Edge: Selecting this divides the face or polygon from the center to the middle of each edge. when applied to a triangular face, it also divides unselected faces that share edges with the selected faces.

Face-Center: Select this to divide the face from the center to the vertex corners.

Tension: Determines if the new faces are flat, concave, or convex after Edge tessellation. A positive value rounds faces by pushing vertices outward. A negative value creates concave faces by pulling vertices inward. A setting of 0 keeps the faces flat. Also works with the Edge/Polygon method. Default=25.

Iterations: Each option button specifies how many times the tessellation is applied. For example, setting Iterations to 2 would be similar to clicking the Tessellation button twice in an editable meshexcept that you can easily back out at any time while using the Tessellate modifier. If you want more than four iterations, apply another Tessellate modifier.

Caution: UVW mapping that exists in the Stack before the Tessellate modifier is retained. However, in some cases, the mapping might be altered, depending on the type of mapping and the tessellation settings. Typically, this happens when the applied mapping uses extreme compound angles.

How To

To tesselate a sphere, do this:

  1. Create a sphere
  2. Select tesselate in the modify panel.
  3. Adjust the various parameters.


Unwrap UVW's Modifier

This modifier lets you directly edit in UV space.

When the Unwrap UVW’s modifier is applied, it takes the current UVW’s applied to the object and stores them in the modifier. If no UVW’s have been applied, it does a planar mapping to create new ones. If the incoming data on the stack is face-level subobject selection, then only the UVW’s for the selected faces are brought into the modifier.

When the modifier is evaluated, its UVW’s are reassigned to the object flowing down the pipeline. So if the UVW’s upstream are changed, the changes won't make it past the Unwrap UVW’s modifier. Note that if the Unwrap modifier is operating on a selection of faces, then upstream changes to unselected faces will still be able to flow past the Unwrap modifier.

Tip: Although it’s not its primary purpose, the Unwrap UVW’s modifier can be used to freeze the UVW’s so you can apply a mapping after an animated deformation and have the mapping stick to the object.

To use the Unwrap UVW’s modifier, first determine whether you want to affect the entire object, or a subobject selection. Either apply the modifier directly to the object, or first apply a Mesh Select modifier, and select the faces to which you want to apply Unwrap UVW’s.

Reference

After applying the modifier, its panel appears, consisting of an Edit button, a Reset UVW’s button, and a Channel area.

Edit: Displays the Edit UVW’s dialog,

Reset UVW’s: Clicking on this resets the UVW coordinates in the Edit UVW’s dialog. Clicking this is almost the same as removing and reapplying the modifier, except that a map assigned in the Edit UVW’s dialog is not deleted. When you first apply the Unwrap UVW’s modifier, it’s important to have previously assigned the UVW coordinates to the geometry, because that’s what this modifier looks at. If you subsequently change the UVW coordinates, click the Reset UVW’s button to update the edit coordinates. As an example, if you forgot to turn on the Generate Mapping Coordinates checkbox for an object, and then applied the Unwrap UVW’s modifier, the modifier would have no UVW coordinates to use and its settings would be wrong. If you then go back in the Stack and turn on Generate Mapping Coordinates, you’d need to click the Reset UVW’s button. When you click this button, an alert warns you that you’re losing any edits you’ve made.

Channel Area

Options 1 and 2: Select one of these to specify which UVW channel to use for the mapping. Note that, when you switch channels, you should reset your edits, since the edits for one channel usually won’t work for the other channel. An alert appears that lets you choose between resetting the coordinates or leaving them as they are. In almost all cases, its’ best to reset them. For more information on channels, see UVW Map Modifier.

Edit UVW Dialogue

Toolbar: Contains all the controls for manipulating the UVW points in the view window, navigating within the window, and setting various other options.

Move: Use one of these three modes (all, vertical, horizontal) to move the selected UVW points. Press SHIFT while moving to constrain the movement to a single axis. Note that right-clicking from the other modes automatically switches to the Move mode.

Rotate: Use this mode to rotate the selected points.

Scale: Use this mode to scale the selected points.

Pan: This mode lets you drag/pan the image in the view window.

Zoom : Lets you drag/zoom the image in the view window.

Region Zoom: Lets you zoom into a specified rectangular region.

Zoom Extents: Click to zoom to the extents of all UVW points.

Pick Map: Clicking on this displays the Browser, set to Show Maps. From here, you can select a map to display behind the UVW points. Assuming you select the same map as that assigned to the mapped material on the object you’re modifying, the UVW points will correspond correctly with the material map on the object. After selecting a map, turn on the Show Map button to see it in the view window.

Update : The map you pick to display is cached and instanced from the original. However, to speed things up, it is not automatically updated when it’s changed. (An animated map, for example, could really slow things down when you move from frame to frame.) Click the Update button to re-render the view window display to match the current version of the map.

Show Map : Clicking on this toggles the display of the map in the view window.

UV/VW/UW : As a default, the UV portion of the UVW coordinates are displayed in the view window. However, you can switch the display to edit the UWs or the VWs.

Options: Click on this to displays a subdialog that lets you set various options.

Options SubDialogue

Colors Area

Contains color swatches to customize the display of the UVW lattice. With certain maps, the default colors may become difficult to see. Use these swatches to choose colors that work better for your specific map.

Line Color: Specifies the color of the UVW lattice lines. The default is white.

Selection Color

Specifies the color of the UVW points. The default is red.

Map Area

Contains controls affecting the map display in the view window.

Render Width: Use this to specify width resolution of the image displayed in the view window. This does not change the size of the image, but only the resolution.

Render Height : Specifies the height resolution.

Constant Update in Viewports: Check this to effect the adjusting of UVW points in the viewport while moving the mouse. By default, the effect of adjusting the UVW points does not appear in the viewport until you release the mouse.

OK/Cancel/Defaults: Click on OK to accept, or Cancel to cancel the changes in the subdialog. Click the Defaults button to restore all of the settings in this dialog to their default values.

View Window

The view window displays a lattice made up of UVW faces and UVW points. There is a UVW face for every face in a mesh. A UVW face has 3 pointsthese are UVW points instead of world space points. The view window displays the UVW’s in the 2D image space of the map. A black rectangle displays the boundaries of a texture map as it would appear in image space (the lower left corner of the rectangle has the coordinates (0,0) and the upper right has the coordinates (1,1). Within this window, you manipulate the UVW coordinates relative to the map (or mesh) by selecting the lattice vertices and moving them.

How To

Animating UVW Coordinates on a Box

The following steps show how the Unwrap UVW’s modifier can be used to animated the map on one side of a box.

To create a box, and assign a mapped material:

  1. Create a box, turn on Generate Mapping Coords, and then assign a diffuse-mapped material with a distinct map.
  2. Shade the Perspective viewport, and turn on Show Map in Viewport to display the diffuse map on the box.

    3. Because of the way boxes are mapped, a repeat of the map appears on each side of the box.

  3. Apply a Mesh Select modifier, and use Face selection to select both faces on the top side of the box.
  4. Apply the Unwrap UVW’s modifier, and click the Edit button to display the Edit UVW’s dialog.

    5. The UVW lattice is a rectangle of two triangles, matching the selected faces of the side of the box.

To Adjust and animate the UVW coordinates:

  1. Click the Pick Map button, choose Browse from Scene, and select the map from the material assigned to the box.
  2. Turn on the Show Map button.

    3. The map appears in the view window under the lattice.

  3. Click the Zoom button, and zoom out slightly in the view window.
  4. Using the Move tool, drag-select the four corner points in the lattice.
  5. Click the Scale button, and scale the points down so the lattice is slightly more than half the size of the map.

    6. When you release the mouse, the display in the viewport changes to show that the map on one side of the box has magnified.

  6. Click the Options button, check Constant Update in Viewports, and click OK.

    7. Move all four points so the lattice is in one corner of the map

  7. As you move the points, you can see the change in the viewport.
  8. Turn on the Animate button, and go to frame 100.
  9. Move the points to the opposite corner of the map.
  10. Play the animation.

    11. The map moves across the one side of the box.


Twist

The Twist modifier produces a twist like a screws thread in an objects geometry. You can control the angle of the twist on any of three axes, and set a bias that compresses the threads relative to the pivot point. You can also limit the twist to a section of the geometry.

Twist modifier applied

Reference

Twist Parameters

Twist Area

Angle: Determines the amount of twist around the vertical axis.

Bias: Causes the twist rotation to bunch up at either end of the object. The parameter ranges from -100 to 100. When the parameter is negative, the object twists closer to the gizmo center. When the value is positive, the object twists more away from the gizmo center. When the parameter is 0, the twisting is uniform.

Twist Axis Area

X/Y/Z: Select one of these to specify the axis along which the twist will occur. This is the local axis of the Twist gizmo.

Limits Area

LimitsThe twist will only be applied to vertices that lie in-between the lower and upper limits. The two spinners represent distance along the gizmo's Z axis (Z=0 is at the gizmo's center). When they are equal it is the same as turning off Limits.

Limit Effect: Check this to apply limit constraints to the Twist Modifier.

Upper Limit: Sets the upper limit for vertices that twist will be applied to.

Lower Limit: Sets the lower limit for vertices that twist will be applied to.

How To

To twist an object:

  1. Select an object and click Twist on the Modifiers rollout.
  2. On the Parameters rollout, set the axis of the twist to X, Y, or Z. This is the axis of the Twist gizmo, not the axis of the selected object. Default=Z.

    3. You can switch between axes at any time, but only one axis setting is carried with the modifier.

  3. Set the angle of the twist. Positive values produce a clockwise twist, negative values a counterclockwise twist. An angle of 360 produces a one complete revolution

    4. The object twists to this amount beginning at the lower limit, by default the location of the modifier’s center.

  4. Set the bias of the twist. The default is 0, producing a uniform twist along the axis. The possible values are from 100 to -100.

    5. A positive value compresses the twist at the end away from the pivot point, a negative value toward the pivot point.

To limit the twist:

  1. Check Limit Effect in the Limits area. Default=unchecked.
  2. Set values for the upper and lower limits. These are distances in current units above and below the modifier’s center, which is at zero on the gizmo's Z axis. The upper limit can be zero or positive, the lower limit zero or negative. If the limits are equal, the result is the same as unchecking Limit Effect. Defaults=0.

    3. The twist offset is applied between these limits. The surrounding geometry, while unaffected by the twist itself, is moved to keep the object intact.

  3. At sub-object level, you can select and move the modifier’s center.

    4. The limit settings remain on either side of the center as you move it. This lets you relocate the twist area to another part of the object.


Displace Modifier

Reshapes geometry with a variable force that can be applied directly from the modifier gizmo or from a bitmapped image.

The Displace Modifier acts as a force field to push and reshape an objects geometry. This is a very versatile modifier with many possible applications. These are two basic ways to use it:

  • Apply displacement effects directly by setting strength and decay values.
  • Apply the gray scale of a bitmapped image to generate the displacement.

Displace warp on a patch and the bitmap it uses

The Displace Space Warp has similar features. It is useful for applying effects to a large number of objects or a particle system.

Displace gives you the option of applying the gray scale of a bitmap image to control displacement. Lighter colors in the 2D image push outward more strongly than darker colors, resulting in a 3D displacement of the geometry.

Terrain effects using displace

The gizmos of the Displace modifier carry the force field that displaces geometry. By rotating, scaling, and moving one of these gizmos, you can effectively model geometry.

The Spherical and Shrink Wrap gizmos begin with a uniform field around them. The Cylinder and Planar gizmos are both directional. Cylinder pushes at right angles to its axis, and Planar pushes at right angles to its surface.

In the following figures, the Spherical gizmo is scaled down and squashed into a pointed tool, then moved to deform the geometry of a sphere. At low strength, the effect is like pushing a rubbery material with a shaped stick. As strength goes up, the effect is massive displacement of the geometry. The following procedural steps are generic to any gizmo.

Modeling Options

Experimentation is the key to displacement modeling. Here are some options to consider:

  • Produce interior modeling effects by scaling down the gizmo and moving it inside the object. The outward force shapes the geometry from within.
  • Animate the modeling process. One result is a roving, magnetic-like field that pushes and pulls on a surface.
  • Add additional Displace modifiers to an object, using each one to create a different modeling effect.
  • Collapse a finished model into a plain mesh. This reduces the objects complexity and removes all modifiers, but keeps the modeled surface intact.

Reference

Displace Gizmos

Displace distributes its force through four different gizmos: Planar, Cylindrical, Spherical, and Shrink Wrap.

By default, gizmos are centered on the object. However, any of these shapes can be transformed and used directly as a tool to deform the geometry of an object.

Gizmos are also used as mapping coordinates for applying bitmaps. Sphere and Shrink Wrap have the same effect when modeling, but differ in the way they map.

Luminance Center

A new option in the Displace modifier lets you specify the center of luminance in the bitmap that’s displacing the geometry. Previously, Displace assumed a 0.5 value, which meant that any grayscale value above 0.5 was displaced in one direction, while values below 0.5 were displaced in the other.

To use this option, check Luminance Center, and then adjust the Center spinner. When using a Planar projection method, the result is a repositioning of the displaced geometry above or below the planar gizmo. (Spinner Value: float, 0 to 1)

Note: This option has also been added to the Displace space warp, which is not explicitly documented here.

Length, Width, and Height Spinners

New Length, Width, and Height spinners in the Map area let you specify the dimensions of the map.

X, Y, and Z Alignment

In the Alignment area are new X, Y, and Z option buttons that let you flip the alignment of the mapping gizmo.

View Align & Region Fit

The View Align and Region Fit buttons have been added to the Displace modifier.

Map Assignment

The Alignment area contains controls for adjusting the mapping gizmos size, position, and orientation.

Cylindrical Capping

A Cap checkbox has been added beside the Cylindrical mapping method. This works the same as the Cap option in the UVW Map modifier, in that it projects a copy of the map on the cylinder’s caps.

Displacement Parameters

To create the force field that surrounds a Displace gizmo, you vary two interrelated parameters, Strength and Decay.

Strength: When set to 0, Displace has no effect. Strength greater than zero displaces object geometry away from the position of the gizmo. Strength less than zero displaces geometry toward the gizmo. Default=0.

Decay: When set to 0, Displace has the same strength throughout object space. Default=0. Increasing the Decay value diminishes the field strength as distance increases from the gizmo. This has the effect of concentrating the force field near the gizmo, similar to the field around a magnet repelling its opposite charge.

Bitmap Parameters

??? Note, the screen capture does not match the UI description.

You can now assign a map (as compared to a bitmap) to the Displace modifier. The Image area now has four buttons instead of two. The original two bitmap assignment and Remove Bitmap buttons work as before, and lets you directly assign a bitmap.

Under the label “Map” are two additional buttons. The first is the assignment button, and it works the same as the Environment and spotlight map buttons. Click it to display the Browser, from which you can choose a map, or simply drag a map from the Browser over the assignment button. A Remove Map button lets you remove the map entirely from the Displace modifier.

The following controls in the Displacement area are used with bitmaps.

Center Luminance: Automatically 'centers' the luminance by using medium (50%) gray as the zero displacement value. Gray values greater than 128 displace in the outward direction (away from the gizmo) and gray values less than 128 displace in the inward direction (toward the gizmo).

Image: Assigns a bitmap to create the displacement pattern. After you choose a bitmap, this button displays the bitmap's name.

Remove Image: Removes the bitmap assignment.

Blur: Blurs or softens the effect of the bitmapped displacement with values above 0.

Map Parameters

This area contains mapping parameters for bitmapped displacement. Their use is summarized here. See UVW Map Modifier for details on using the UVW map modifier.

The four mapping modes control how Displace projects its displacement. The type of Displace gizmo and its location in the scene determine the final effect.

Planar: Projects the map from a single plane, somewhat like projecting a slide.

Cylindrical: Projects the map as if it were wrapped around the cylinder.

Spherical: Projects the map from a sphere, with singularities at the top and bottom of the sphere, where the bitmap edges meet at the sphere's poles.

Shrink Wrap: Projects the map from a sphere, as Spherical does, but truncates the corners of the map and joins them all at a single pole, creating only one singularity at the bottom.

UVW Tile: Sets the number of times the bitmap repeats along the specified dimension. A value of 1.0, the default, maps the bitmap exactly once; a value of 2.0 maps the bitmap twice, and so on. Fractional values map a fractional portion of the bitmap in addition to copies of the whole map. For example, a value of 2.5 maps the bitmap two and a half times.

Flip: When checked, reverses the orientation of the map along the corresponding U, V, or W axis.

Use Existing Mapping: Set on to have the displace warp use the UV mapping of the bound object. Has no effect if the bound object is not mapped.

Apply Mapping: Set on to apply the displace warp's UV mapping to the bound object. This lets you apply material maps to the object using the same mapping coordinates the displace warp uses.

Displace Gizmos

How To

To displace an object:

  1. Select an object and choose Displace from the More list on the Modifiers rollout.

    2. This Parameters rollout appears.

  2. In the Map area of the Parameters rollout, select one of the four gizmo types.
  3. In the Displacement area, set values for Strength and Decay (defined below).

    4. As you vary these settings, you see the effect of displacement on the object.

Preparing to Use a Bitmap

Depending on the object and the complexity of the bitmap, you might need to use dense geometry to see the effect clearly. Try a test run and, if necessary, add tessellation in the areas of greatest detail.

Applying a Bitmap

The following bitmap was used to create the example in this topic.

To apply a bitmap as a displacement map:

  1. Click the Image button in the Displacement area of the Parameters rollout. When no bitmap is assigned, this button is labeled None.
  2. Use the file-selection dialog to choose a bitmap.
  3. Set the Strength value.

    4. Increase the strength of the field to see the effect of the bitmap displacing the object's geometry.

    After you get the image you want from bitmapped displacement, you can apply an Optimize modifier to reduce the complexity of the geometry.

To model with Displace:

  1. Apply Displace to the object you want to model, and choose a gizmo on the Map rollout.
  2. For exterior modeling, move the gizmo away from the object.
  3. Increase the Strength setting until you begin to see a change in the object.
  4. Scale, rotate, and move the gizmo to concentrate the effect. As you do this, adjust strength and decay settings to fine-tune the effect.


Mirror (Modify Panel)

Mirror

This modifier provides a parametric method of mirroring an object, or a sub-object selection within the Modifier Stack. You can apply the Mirror modifier to any type of geometry, and you can animate the mirror effect by animating the modifier’s gizmo.

Reference

Sub-Object Selection

Mirror Center: This gizmo represents the axis of the mirror effect. After selection you can move, rotate or scale the gizmo to affect the mirroring. Unlike the toolbar Mirror tool, you can animate the gizmo transforms.

Mirror Axis Parameters:

X, Y, Z, XY, YZ, ZX: Check these to specify the axis or axes about which the mirroring takes place. You will see the effect in the viewport as you check the option button.

Options Parameters

Offset: Use this to specify the offset, in units, from the mirror axis. This is an animatable parameter.

Copy: Check this to copy the geometry rather than simply mirroring it.

Note: The Copy option only effects geometry with triangular meshes.

How To

This examples shows how to use the Mirror modifier to animate a gear rotating about another.

To Create a couple of gears:

  1. In the Perspective viewport, create a thin, wafer-like cylinder with 12 sides.
  2. Apply a Mesh Select modifier, and select every other side facet.
  3. Apply a Face Extrude modifier, and increase the Amount spinner to create teeth on the gear.
  4. Choose Collapse All in the Edit Stack dialog to convert the gear into an editable mesh.
  5. Choose Clone in the Edit menu, and make a copy of the gear.

Next, to mirror the gear and then rotate it:

  1. Apply the Mirror modifier to one of the gears.
  2. Set the Mirror Axis to X.
  3. Increase the Offset spinner (with Copy unchecked) until the mirrored gear is side-by-side with the other gear. (Don’t worry if the teeth overlap, you’ll fix that later.)
  4. Click the Sub-Object button to access the Mirror Center gizmo of the Mirror modifier.
  5. Choose the Rotate tool (Z axis), and turn on Angle Snap.
  6. Turn on the Animate button, and go to frame 50.
  7. Rotate the Mirror Center 180 degrees.

    8. As the gizmo rotates, so too does the gear, rotating halfway around the fixed gear.

  8. Go to frame 100, and rotate the gizmo another 180 degrees.
  9. Turn off the Animate button and the Sub-Object button.
  10. Select the fixed (central gear), and rotate it so that its teeth mesh properly with the rotating gear. (You can do this at any frame.)
  11. Play the animation.

    12. The outer gear rotates while orbiting the inner gear.


Lattice Modifier

Converts the segments of an object into cylindrical struts with optional junction polyhedrons at the vertices. Use this either to create renderable structural geometry based on the mesh topology, or as an alternate method to achieve a rendered wireframe effect.

Note:This modifier always acts on the whole object and ignores previous sub-object selections in the Stack

Tip: You can combine the Scatter compound object with the Lattice modifier to place any object you want as a junction, rather then the provided polyhedrons. To do this, create your mesh distribution object, and your source object (say, a teapot). Use Scatter to scatter the teapot at the vertices of the distribution object. (Be sure and use the Copy option rather than the Instance.) In the Scatter Display parameters, hide the distribution object. Now, select the original object that was used as a distribution object, apply Lattice to it, and turn off the junctions. You’ll have two coincident objects. One providing the lattice struts, and the other positioning the teapots..

Reference

Geometry Area

Lets you specify which of the two components (struts and junctions) is displayed.

Struts Only: Select this to display only the struts (cylinders) that are generated by the segments of the original mesh.

Junctions Only: Select this to display only the junctions (polyhedras) that are generated by the vertices of the original mesh.

Both: Selecting this displays both struts and junctions.

Struts Area:

Provides controls that affect the geometry of the struts.

Radius: Use this to specify the radius of the struts.

Segments: Use this to specify the number of segments along the struts. Increase this value when you need to deform or distort the struts with subsequent modifiers.

Sides: Specifies the number of sides around the perimeter of the struts.

Material ID: Specifies the material ID to be used for the struts. The struts and the junctions can have different material IDs, making it easy to assign them different materials. The struts default to ID #1.

Visible Edges: When selected, struts are generated only on the visible edges.

All Edges : When selected, struts are generated for all edges, including the invisible edges.

End Caps: Check this to apply end caps for the struts.

Smooth: Applies smoothing to the struts.

Junctions Area

Provides controls that affect the geometry of the junctions.

Geodesic Base Type

Specifies the type of polyhedron used for the junctions.

Tetra: Select this to use a tetrahedron.

Octa: Select this to use an octahedron.

Icosa: Select this to use an Icosahedron.

Radius: Use this to specify the radius of the junctions.

Segments: Use this to specify the number of segments in the junctions.

Material ID: Use this to specify the material ID to be used for the junctions. Defaults to ID #2.

Smooth: Check this to apply smoothing to the junctions.

Mapping Coordinates Area

Determines the type of mapping assigned to the object.

None: No mapping is assigned.

Reuse Existing: Use the mapping currently assigned to the object. This might be the mapping assigned by Generate Mapping Coords., in the creation parameters, or by a previously assigned mapping modifier. When using this option, each junction inherits the mapping of the vertex it surrounds.

New: Use mapping designed for the Lattice modifier. Applies cylindrical mapping to each strut, and spherical mapping to each junction.

How To

To create a cage, do this:

  1. Create a box.
  2. Set Length, width and height segments to 3.
  3. Select Lattice in the modify panel.
  4. Adjust the various parameters to achieve different effects.


Noise

The Noise modifier modulates the position of an objects vertices along any combination of three axes. Its an important animation tool to simulate random variations in an objects shape.

Using a fractal setting, you can achieve random, rippling patterns, like a flag in the wind. Fractal settings also let you create mountainous terrain from flat geometry.

Reference

Noise Parameters

Control the appearance of the noise effect the physical deformations of the object. By default, none are active until you change the settings.

Seed:Generates a random starting point from the number you set. Especially useful in creating terrain, since each setting can produce a different configuration.

Scale Sets size of noise effect (not strength). Larger values produce smoother noise, lower values more jagged noise. Default=100.

Fractal: Checking this produces a fractal effect based on current settings. Default=unchecked.

If Fractal is checked, the following options are available:

Roughness: Determines extent of fractal variation. Lower values are less 'rough' than higher values. The range is 0 to 1.0. Default=0.

Iterations: Controls the number of iterations (or 'octaves') used by the fractal function. Fewer iterations use less 'fractal energy' and generate a smoother effect. An iteration of 1.0 is the same as unchecking Fractal. Default=6.0.

Strength Area

Control the magnitude of the noise effect. No noise effect occurs until some strength is applied.

X, Y, Z: Sets strength of the noise effect along each of three axes. Enter a value for at least one of these axes to produce a noise effect. Default=0,0,0.

Animation Area

Control the regularity of the noise effect by overlaying a sine wave for the noise pattern to follow. This keeps the noise 'within bounds,' dampening random extremes. When toggled on, these parameters influence the overall noise effect. However, Noise and Strength parameters are animated independently, and do not require the toggle to be on during their animation or playback.

Animate Noise: Check to regulate the combined effect of Noise and Strength parameters. The following parameters adjust the underlying wave.

Frequency: Regulates the speed of the noise effect. Higher frequencies make the noise quiver faster. Lower frequencies produce a smoother and more gentle noise.

Phase: Shifts the start and ending points of the underlying wave. By default, animation keys are set at either end of the active frame range. You can see the effect of Phase more clearly by editing these positions in Track View. Check Animate Noise to enable animation playback.

Applying and Animating Noise

You can apply the Noise modifier on any kind of object. The shape of the Noise gizmo alters shape to aid in visualizing the effects of changing parameter settings.

Most of the Noise parameters have an animation controller. The only keys set by default are for Phase.

How To

To apply noise to an object:

  1. Select an object and click Noise on the Modifiers rollout. To animate, move to a nonzero frame and turn on the Animate button.
  2. In the Strength area of the Parameters rollout, increase Strength values along one or more of the three axes.

    3. You begin to see noise effects as the strength goes up.

  3. In the Noise area, adjust Scale. Lower values increase the dynamics of the strength settings, making the effect more obvious. See 'Noise Parameters' for other options.

    4. If youve animated this procedure, you can change parameters as the animation is running to see the effects.

    As another source of noise effects, go the sub-object level of the Noise modifier and transform the gizmo and center of the modifier.

Creating Fractal Terrain

When set for Fractal, the Noise modifier produces a random fractal noise that creates a variety of topological and terrain effects. These effects can be animated or used to model static landscapes and other complex forms.

The following steps assume you begin with a broad object like a multi-segment box lying on the XY plane.

To create terrain effects:

  1. Apply the Noise modifier to the object.
  2. In the Noise area of the Parameters rollout, check Fractal.

    3. Roughness and Iterations settings are now available.

  3. Increase Strength on the Z axis only and adjust other parameters.

    4. Once you have a base terrain, you can sub-object select with Edit Mesh and apply Noise to grow mountains in a smaller region. You can also apply a second Noise modifier to amplify the first one.


Optimize

The Optimize modifier lets you reduce the number of faces and vertices in an object. The purpose is to simplify the geometry and speed up rendering while maintaining an acceptable image. A Before/After readout gives you exact feedback on the reduction as you make each change.

In the following figures, you see the effects of Optimize on reducing face count. The first is the original object. The second shows the effect of optimizationÑthe rendered image is virtually unchanged. The third figure shows the effect of reducing the face count to the point where the image is distorted.

Original, Optimized, Over-optimized

Reference

Applying Optimize

When you apply Optimize, the defaults take effect immediately and often produce an acceptable result. You can then change parameters as needed to improve optimization.

Setting Level of Detail

Optimize lets you maintain two levels of optimization detail. You might set a lower optimization level, with fewer faces, to speed up your viewport work, and a higher level for final output in the renderer. However, you can render at either level. You can also switch to the higher level in a viewport to get an idea of what the rendered image will look like.

Optimize Controls

Level of Detail Parameters

Renderer L1, L2: Toggle the level of display for the scanline renderer. Use Viewports L1 and L2 to change the stored optimization level. Default=L1.

Viewports L1, L2: Set the optimization level for both viewport and renderer. Also toggle the level of display for the viewport. Default=L1.

Optimize Parameters

These are the basic parameters you use when adjusting the degree of optimization.

Face Thresh: Sets the threshold angle used to determine which faces are collapsed. Low values produce less optimization, but better approximations of the original shape. Higher values improve optimization, but are more likely to result in faces that render poorly (see Bias). Default=4.0.

Edge Thresh: Sets a different threshold angle for open edges (those that bound only one face). A low value preserves open edges. At the same time you can apply a high face threshold to get good optimization. Default=1.0

Bias: Helps eliminate the skinny or degenerate triangles that occur during optimization and cause rendering artifacts. Values range from 0 to 1.0 (a 0 value turns Bias off). Higher values keeps triangles from becoming degenerate. The default of 0.1 is enough to eliminate the skinniest triangles.

Auto Edge: Turns edges on and off following optimization. Turns on any open edges.Turns off any edges between faces whose normals are within the face threshold; such edges beyond the threshold are not turned on. Default=unchecked.

Last Optimize Status: Displays numerical results of optimization with exact before-and-after counts for vertices and faces.

Preserve Parameters

These are parameters that let you maintain clean separation at the face level between material and smoothness boundaries.

Material Boundaries: When checked, prevents face collapse across material boundaries. Default=unchecked.

Smooth Boundaries: Lets you optimize an object and maintain its smoothing. When checked, allows only faces that share at least one smoothing group to collapse. Default=unchecked.

Update Area

While the Manual Update checkbox is checked, you must click the Update button to see the optimization in the viewports. When the Manual Update checkbox is not checked, Optimize works as it used to, updating the viewport display dynamically.

Note: Please observe the following:

When using Manual Update, if any changes are made which cause the Stack to be re-evaluated, the existing optimization display will disappear. Press the Update button again to restore it.

The Renderer ignores the optimization display in the viewport, using the Optimize settings, regardless of the state of the Manual Update.

How To

To optimize manually:

  1. Set up two viewports, one in wireframe, one smooth shaded.
  2. Select an object and choose Optimize from the More list on the Modifiers rollout.

    3. The Parameters rollout for this modifier appears.

  3. In the Last Optimize Status area of the Parameters rollout, notice the Before/After count for vertices and faces.
  4. In the Optimize area, vary parameters to continue reducing geometry.

    5. Compare the result in the two viewports against the Before/After count.

To set level of detail:

  1. Check Viewports L1 in the Level of Detail area of the Parameters rollout.
  2. Adjust parameters in the Optimize and Preserve areas.

    3. This sets the L1 level of optimization for both the viewport and the renderer.

  3. Repeat steps 1 and 2 for Viewports L2, adjusting parameters for a different optimization.

To use level of detail:

  • Toggle between L1 and L2 for either the viewport or the renderer.

You see the effect immediately in a smooth shaded viewport. Do a test rendering to see the effect on the renderer.

The following parameters iare stored for each level: Face Threshold, Edge Threshold, Bias, Material Boundaries, Smooth Boundaries.


Volume Select

The Volume Select modifier lets you make a sub-object selection of vertices or faces, then apply one or more modifiers and animate those parameters. Since no Edit Mesh is involved, the sub-object selection is totally separate from the underlying parametric geometry of the object.

Volume Select uses one of three gizmos to define a volume of space as the selection area, allowing you to apply modifiers to the selected geometry. The selection can be moved over an object and animated.

When applied, Volume Select begins with the current geometry in the objects stack whether its a whole object or a sub-object selection from an Edit Mesh or another Volume Select modifier.

What's New In Max 2.0

Scaling

The Volume Select gizmo now scales along with its object. Thus, if you apply a Volume Select modifier, and then change the scale of your object (via the toolbar Scale function) the selection doesn’t change. Put another way, all three transforms affect the Volume Select gizmo and its object identically.

To maintain compatibility, objects that have the old Volume Select modifier will still function the way that they did. In other words, if you scale an object containing an old Volume Select modifier, the gizmo will not scale with it.

Volume Select Center

The Volume Select modifier now has a center as well as a gizmo. Note that this lets you alter the center for non-animated transforms. However, if you animate a rotation about the offset center, you achieve animation of both rotation and translation.

Reference

Stack Selection Level Area

Object/Vertex/Face: Volume Select provides three selection levels. Vertex and Face levels put the modifier stack in sub-object selection. You can make one sub-object selection for each Volume Select modifier. You can then toggle the one selection between Face and Vertex level to send either up the stack. Object level lets you modify the whole object while retaining any sub-object selection.

Selection Method Area

Replace: Selecting this clears the selection, then selects geometry within the volume.

Add: Selecting this, selects all geometry within the volume, adding to any previous selection.

Subtract: Deselects all geometry within the volume.

Invert: Reverses the entire selection set. Geometry that was deselected is now selected.

Selection Type Parameters

Window: Selects only faces with all three of its vertices within the selection volume.

Crossing: Selects faces with only one of its vertices within the selection volume.

Selection Volume Area

Box/Sphere/Cylinder: To define the selection space, you choose any of three gizmos: Box, Sphere, or Cylinder. You then scale, rotate, or move the gizmo anywhere around the object. Various controls help you determine what gets selected.

The selection depends on a volume intersecting the object. If a gizmo is scaled down and moved inside an object, no selection occurs because no geometry is within the volume of the gizmo.

Applying Volume Select: Like other selection methods in 3DS MAX, Volume Select works with single or multiple objects.

Alignment Parameters

These controls are generally used when the gizmo has been transformed out of its original orientation to the object.

Fit: Resizes the gizmo to fit around the object or previous selection in the stack. Maintains any previous rotation.

Center: Recenters the gizmo on the object or previous selection in the stack. Maintains any previous scale or rotation.

Reset: Returns the gizmo to its default size and orientation. Cancels the effect of all previous transforms.

How To

To apply and use volume selection:

  1. Select an object and choose Vol. Select from the More list on the Modifiers rollout.

    2. The Parameters rollout appears.

  2. In the Stack Selection Level area, click Object, Vertex, or Face to choose the kind of geometry you want to work with.
  3. In the Selection Volume area, click one of the three gizmo types, Box, Sphere, or Cylinder.
  4. Choose a selection method and type (defined below). You can change these choices as you work, depending on the particular selection you're trying to make.
  5. Once the selection is complete, you can do the following:
    • Apply modifiers to the selection.
    • At sub-object level, transform the Volume Select gizmo, changing the selection in the process.
    • Combine these options. See the following example.

Combined Example

This example begins by applying Volume Select to an object. The next steps are as follows:

  1. Make a sub-object selection of the object's geometry at Face or Vertex level, and apply a geometric modifier to the selection.
  2. Move to a non-zero frame and begin animation. Adjust parameters on the geometric modifier, then move to another frame.
  3. In the stack, return to the Volume Select modifier. Turn on its sub-object level to activate the gizmo. Move the gizmo and its geometry selection to another part of the object.
  4. Repeat this process on other frames. Optionally, you can return to the geometric modifier at any frame change its parameters.

    5. On playback, you see the effect of an animated geometric modifier moving over the object.


XForm

XForm is short for transformation. Applies transformations (move, rotate, scale) to objects.The XForm modifier has two main functions:

  • To animate transformations of a sub-object selection. You can also animate the position of the modifier's center.
  • To transform an object at any point in the stack.

Reference

This modifier has no parameters, but you can transform the XForm gizmo and the XForm center.If you switch selection level to the XForm center, only the Move transform is available. This lets you offset the center and transform the gizmo around it. Both offset and gizmo transformations are animatable.

Using Xform

XForm provides a gizmo and center for any geometry it receives from the stack whether it’s a sub-object selection or the whole object. XForm has no parameters.

The Sub-Object button is automatically turned on when you apply XForm, and its gizmo is highlighted. When you move the gizmo, the center moves with it, along with the geometry. If you turn off the Sub-Object button, the whole object is transformed, regardless of sub-object selection.

The XForm center can repositioned separately from the gizmo.

Offsetting XForm Center

When you switch selection level to the XForm center, only the Move transform is available. This lets you reposition the center. When you return to gizmo level, you can rotate or scale the selection around the offset center. Both the offset position and gizmo transformations are animatable.

Scaling with XForm

When you scale an object from the toolbar, the effect is applied to the object after all the modifiers in the stack. In some cases you might want to squash or stretch an object before applying geometric or edit modifiers. XForm makes this possible.

By applying XForm and scaling its gizmo, you can place the scaling operation anywhere in the stack.

Using XForm with Volume Select

The XForm and Volume Select modifiers can be combined to animate sub-object selections. This combination makes it possible to animate both the effect of a modifier on the selection (Volume Select) and a transformation of that selection (XForm).

The Linked XForm modifier is a variant of XForm. Linked XForm has no gizmo or center of its own. Instead, a given selection is 'linked' to another object, which supplies its gizmo and center. Using Linked XForm, you can link a sub-object selection directly to the coordinate system of another object.

How To

To apply XForm:

  1. Choose a location in an objects stack and choose XForm from the More list on the Modifiers rollout.

    2. Sub-object selection is automatically turned on, with the gizmo highlighted. All transform buttons are available on the toolbar.

  2. Optionally, move to a non-zero frame and turn on the Animate button to animate the next step.
  3. Transform the gizmo.

    4. As you transform the gizmo, the selected geometry is transformed with it.

To use XForm as a scaling modifier:

  1. Apply XForm to a parametric object (or to a whole-object selection anywhere in the stack).
  2. Scale the gizmo.

    3. The rescaled geometry becomes 'part of the stack' because the scale transform is carried with XForm, instead of being applied after the modifiers.

    In the following figure, identical objects have the same scale transform and modifiers applied to them. In one object, the scale is applied at the bottom of the stack with XForm. This object maintains its parametric shape. In the other object, with scale applied from the toolbar, the geometry is deformed when the transform occurs at the top of the stack.


Skew

The Skew modifier produces a uniform offset in an objects geometry. You can control the amount and direction of the skew on any of three axes. You can also limit the skew to a section of the geometry.

Skew modifier applied

Effect of moving modifier center with limits set

Reference

Skew Parameters

Amount: Sets the angle to skew from the vertical plane (1-360).

Direction:Sets the direction of the skew relative to the horizontal plane (1-360).

Skew Axis Area

X/Y/Z: Select one of these to specify the axis that will be skewed. Note that this axis is local to the Skew gizmo and not related to the selected entity.

Limits Area

Limit Effect: Check this to apply limit constraints to the Skew Modifier.

Upper Limit: Sets the upper limit boundries in world units from the skew center point, beyond which the skew no longer affects the geometry.

Lower Limit: Sets the lower limit boundries in world units from the skew center point, beyond which the skew no longer affects the geometry.

How To

To skew an object:

  1. Select an object and choose Skew from the More list on the Modifiers rollout.
  2. On the Parameters rollout, set the axis of the skew to X, Y, or Z. This is the axis of the Skew gizmo, not the axis of the selected object. Default=Z.

    3. You can switch between axes at any time, but only one axis setting is carried with the modifier.

  3. Set the amount of the skew. The amount is an offset in current units parallel with the axis.

    4. The object skews to this amount beginning at the lower limit, by default the location of the modifier’s center.

  4. Set the direction of the skew.

    5. The object swivels around the axis.

    You can reverse amount and direction by changing a positive value to a negative value.

To limit the skew:

  1. Check Limit Effect in the Limits area. Default=unchecked.
  2. Set values for the upper and lower limits. These are distances in current units above and below the modifier’s center, which is at zero on the gizmo's Z axis. The upper limit can be zero or positive, the lower limit zero or negative. If the limits are equal, the result is the same as unchecking Limit Effect. Defaults=0.

    3. The skew offset is applied between these limits. The surrounding geometry, while unaffected by the skew itself, is moved to keep the object intact.

  3. At sub-object level, you can select and move the modifier's center.

    4. The limit settings remain on either side of the center as you move it. This lets you relocate the skew area to another part of the object.


Taper

The Taper modifier produces a tapered contour by scaling one end of an objects geometry. You can control the amount and curve of the taper on two sets of axes. You can also limit the taper to a section of the geometry.

Examples of default tapers

The following procedure uses the default axis settings.

Reference

Setting Taper Axis and Symmetry

The Taper modifier provides two sets of axes and a symmetry setting in the Taper Axis area of the Parameters rollout. As with other modifiers, these axes refer to the Taper gizmo, not the object itself.

Primary: The central axis or spine of the taper, X, Y, or Z. Default=Z.

Effect:The axis, or pair of axes, indicating the direction of the taper from the primary axis. Determined by the choice of primary axis. The effect axis can be either of the two remaining axes, or their combination. If the primary axis is X, the effect axis can be Y, Z, or YZ. Default=XY.

Symmetry: When checked, produces a symmetrical taper around the primary axis. A taper is always symmetrical around the effect axis. Default=unchecked.

Primary axis Effect Axis

Effect of moving modifier center with limits set

How To

To taper an object:

  1. Select an object and click Taper on the Modifiers rollout.
  2. On the Parameters rollout, accept the defaults for Taper Axis.
  3. Set the amount of the taper. The amount is a relative value with a maximum of 10. Positive amounts produce an outward taper, negative amounts an inward taper. Default=0.

    4. The object tapers to this amount beginning at the lower limit, by default the location of the modifier’s center.

  4. Set the curve of the taper. Positive values produce an outward curve along the tapered sides, negative values an inward curve. At 0, the sides are unchanged. Default=0.

    5. The sides curve in or out.

To limit the taper:

  1. Check Limit Effect in the Limits area. Default=unchecked.
  2. Set values for the upper and lower limits. These are distances in current units above and below the modifier's center, which is at zero on the gizmo's Z axis. The upper limit can be zero or positive, the lower limit zero or negative. If the limits are equal, the result is the same as unchecking Limit Effect. Defaults=0.

    3. The taper offset is applied between these limits. The surrounding geometry, while unaffected by the taper itself, is moved to keep the object intact.

  3. At sub-object level, you can select and move the modifier's center.

    4. The limit settings remain on either side of the center as you move it. This lets you relocate the taper area to another part of the object.


FFD (Free Form Deformation) Modifier

FFD stands for Free Form Deformation. Its effect is used in computer animation for things like dancing cars and gas tanks, and you can use it for modeling as well.

The FFD modifier surrounds the selected geometry with a lattice box. By adjusting the control points of the lattice, you deform the enclosed geometry. When the animate button is on, the lattice points are animated, as is the deformation of the geometry.

There are three FFD modifiers, each providing a different lattice resolution: 2X2, 3X3, and 4X4. The 3X3 modifier, for example, provides a lattice with three control points across each of its dimensionsor nine on each side of the lattice.

There are also also two FFD related modifiers FFD (Box/Cyl) Modifier that provide supersets of the original modifiers.

Reference

Sub-Object Selection

Control Points : At this level of selection, you can select and manipulate Individual control points of the lattice. If the animate button is on when modifying the control points, the points become animated.

Lattice : At this level, you can position, rotate, or scale the lattice box separately from the geometry. If the animate button is on the lattice becomes animated. When you first apply an FFD, its lattice defaults to a bounding box surrounding the geometry. Moving or scaling the lattice so that only a sub-set of vertices lie inside the volume makes it possible to apply a localized deformation.

FFD Parameters

Display Parameters

Lattice : When this item is checked, lines are drawn connecting the control points to make a grid. Although the viewports can sometimes become cluttered when these extra lines are drawn, it helps to visualize the lattice.

Source Volume: When this item is checked, the control points and lattice are displayed in their unmodified state. This is useful when in the Lattice selection level to position the source volume.

Tip: To see which points lie in the source volume (and therefore will be deformed), temporarily deactivate the modifier by clicking the light bulb icon in the Modifier Stack rollout page.

Deform Parameters

All Vertices: When this option is selected, all vertices are deformed regardless of whether they lie inside or outside the source volume. The deformation outside the volume is a continuous extrapolation of the deformation inside the volume. Note that the deformation can be extreme for points far away from the source lattice.

Only in Volume: When this option is selected, only vertices that lie inside the source volume are deformed. This is the default.

How To

To use an FFD modifier, do the following:

  1. Select the geometry. This can be the whole object, or you can use a Mesh Select modifier to select a portion of the object’s vertices.
  2. In the Modifier panel, select either FFD 2X2, FFD 3X3, or FFD 4X4, depending on the resolution of the lattice you want.

    3. An orange lattice gizmo surrounds the geometry.

  3. Click the Sub-Object button, choose Control Points, and then move the control points of the lattice to deform the underlying geometry. (Turn on the Animate button if you want to animate the deformation.)

    4. The lattice volume defaults to the bounding box of the selected geometry, however the lattice box can be positioned, rotated, or scaled so that only a sub-set of vertices are modified. Choose Lattice in the Sub-Object field, and then use any of the transform tools to adjust the lattice volume relative to the geometry.


FFD Select Modifier

Use this modifier on FFD space warps to change the selection of their control points, and pass the selection up the Stack.

The Space Warp versions of the FFD modifiers provide sub-object geometry that you can manipulate in the Stack. For example, you can apply a Bend modifier to an FFD space warp, bend its control points, and thus bend the object to which the space warp is bound. Using the FFD Select Modifier, you can select a sub-object pattern of control points, and then use the subsequent modifier(s) to deform the selected points.

The FFD Select modifier is especially useful for assigning Linked Xform modifiers to portions of an FFD space warp.

Reference

Selection Area

All X/All Y/ All Z: Choose one of these to select the control points corresponding to the specified axis plane.

How To

To use Linked Xforms with an FFD Space Warp, do this:

  1. Create an object, an FFD space warp, and a couple of dummies.
  2. Bind the FFD space warp (such as FFD (box)) to the object you want to deform.
  3. Select the FFD space warp, and apply an FFD Select modifier.
  4. In Sub-Object/Control Points mode, select the control points you want to use to affect the object.
  5. Apply a Linked Xform, and then pick one of the dummies as a control object.
  6. Apply another FFD Select modifier, and select a different collection of control points.
  7. Apply another Linked Xform modifier and assign the other dummy as a control object.
  8. You can now move either of the dummy objects to both translate the linked control points in the FFD space warp, and to deform the target object.


UVW XForm Modifier

Provides adjustments to existing UVW coordinates. If you have an object with complex UVW coordinates already applied (such as a Loft object, or a parametric object with generated coordinates), you can apply this modifier to further adjust those coordinates.

For example, if you create a torus and turn on Generate Mapping Coordinates, the UVW coordinates are perfect for the torus, but if you want to tile or move the coordinates, you would previously need to do it at the material/map level. Now, you can apply a UVWXform modifier to alter the built-in coordinates.

Reference

Mapping Parameters

U Tile, V Tile, W Tile: Alters the tiling along any of the three coordinate axes. (Spinner Value: float, -999,999 to 999,999)

Flip: Click the Flip checkboxes beside the Tile spinners to flip the direction of the map along the specified axis.

U Offset, V Offset, W Offset: Adjust these spinners to move the map in the direction of the specified axis coordinate.

Channel Parameters

Channels 1 and 2: Choose one of these to specify which UVW channel to use for the mapping. See UVW Map Modifier for more details on Channels.

How To


UVW Map Modifier

Provides functions to apply and edit mapping coordinates.You use a UVW Map modifier for two main reasons:

  • You want greater control over how the mapping coordinates relate to the geometry.
  • The object you're mapping does not have built-in mapping coordinates. For example; it might be an imported mesh.

If you apply a UVW Map modifier to an object with built-in mapping coordinates, the applied coordinates take precedence. You can save memory and disk space by unchecking the Generate Mapping Coordinates box for any object to which you apply a UVW Map modifier

Reference

Mapping parameters

Planar, Cylindrical, Spherical, Shrink Wrap, Box: Determines the type of mapping coordinates used. The scale of the mapping icon defaults to being defined by the largest dimension of the object at the time the modifier is applied. You can animate the projection at the gizmo level.

Length, Width, and Height spinners: Let you specify the dimensions of the UVW Map gizmo. There are a few things to note about these:

  • The dimensions are based on a bounding box of the gizmo. Thus, the Planar gizmo actually displays a Height dimension, although it won’t affect planar mapping. Likewise, the dimensions for Cylindrical, Spherical, and Shrink Wrap mapping all display the dimensions of their bounding box and not their radii.
  • In order to maintain compatibility with previous files, in which gizmos were scaled non-uniformly to adjust their dimensions, the three dimensions are set to 1 when you load files created before 3DS MAX 2.0, and essentially become scale factors rather than measurements. You can reset the values to dimensions by clicking the Fit or Reset buttons. Doing this, however, will lose the original non-uniform scaling.

Because the orientation of many of the primitives has been changed for 3DS MAX 2.0, the UVW Map in 3DS MAX 1.x files will load with the current orientation, but the Length, Width, and Height spinners might affect different axes than they would if the UVW Map were applied in 3DS MAX 2.0. For example, the Width spinner affects the X axis of a Box UVW Map assigned in 3DS MAX 2.0, whereas the Height spinner might affect the same axis for an object brought in from 3DS MAX 1.x..

U Tile, V Tile, W Tile: Controls the UVW tiling of the image. These are floating point values and are animatable for some unusual displacement effects over time. Let you specify the dimensions of the UVW Map

Cap: For cylindrical mapping, determines whether or not to apply planar mapping coordinates to the caps of the cylinder.

Flip: Flips the image about the given axis.

Vertex Colors: The second channel of UVW coordinates is shared by the new ability to assign colors to vertices. As a result, you can’t do both to the same geometry. If you adjust vertex colors in an editable mesh, you mess up the mapping in the second UVW channel for that mesh.

Alignment

View Align: Click this to reorient the mapping icon to face the active viewport. The size of the icon is unchanged.

Region Fit: Click this button to enter a mode in which you can drag in the viewports to define the region of the mapping icon. The orientation of the icon is not affected.

Bitmap Fit: When used for Cylindrical mapping, this function has been altered so that the height rather than the radius of the gizmo is scaled to match the bitmap. For best results, first use the Fit button to match the radii of the object and gizmo, and then use Bitmap Fit.

X/Y/Z: Select one of these to flip the alignment of the mapping gizmo. Each specifies which axis of the gizmo is aligned with the local Z axis of the object. Note the difference between these options and the Flip checkboxes beside the U/V/W Tile spinners. The Alignment option buttons actually flip the gizmo orientation, while the Flip checkboxes flip the UVW mapping orientation.

Fit: Fits the gizmo (mapping icon) to the extents of the object and centers it so that it’s locked to the object’s extents.

Center: Moves the gizmo so that its center coincides with the center of the object.

Bitmap Fit: Displays the standard bitmap file browser so that you can pick an image. For planar mappings, the map icon is set to the aspect ratio of the image. For cylindrical mappings, the height is adjusted so that the circumference of the cylinder divided by the height of the cylinder equals the aspect ratio. (In other words, if you unrolled the cylinder as if it was a label on a soup can, you’d get the undistorted image.)

Channel Parameters

There are now two channels of mapping coordinates that can be assigned and carried by an object. This lets you have two different sets of coordinates, simultaneously, on the same face.

UVW channel 1 provides the original mapping coordinates found in 3DS MAX 1.x. These are also the coordinates that are assigned when you turn on the Generate Mapping Coordinates checkbox in the creation parameters of the object. UVW channels 1 or 2 are chosen using the two option buttons in the new Channel area of the UVW Map modifier. Since the UVW Map modifier defaults to channel 1, unless you switch to channel 2, the mapping will function as it always did.

To use the second channel, you must not only turn it on in the UVW Map modifier, but also assign it at the map level of the material assigned to the geometry.

An Overview of UVW Map Channels

The two UVW Map channels are accessed in various places in 3DS MAX. We’ll list and describe all of them here.

Generate Mapping Coords: This checkbox, in the creation parameters of most objects, assigns UVW Map channel 1 when checked.

UVW Map Modifier: As described, the UVW Map modifier has a new Channel area containing two options buttons, labeled 1 and 2. This lets you specify which UVW coordinates are used by this UVW Map modifier. The Modifier Stack can pass two of these channels simultaneously for any face. Put another way, the mapping coordinates for a face are determined by the last two items in the Stack that specify channels 1 and 2.

UVW Xform and Unwrap UVW’s: These two modifiers also contain the Channel option buttons.

Materials Editor Channel Assignment: You assign the channel to be used by a map in the Coordinates rollout at the map level in the Material Editor. The assignment varies depending on the type of map:

2D Maps: In the Mapping pop-up list for the Texture option, you can now choose Explicit UVW 1 or Explicit UVW 2.

3D Maps: At the top of the Coordinates rollout are three option buttons: XYZ, UVW1, and UVW2.

Materials Editor Sample-Slot Viewing: In the Options dialog of the Materials Editor are two options in the UVW 2 Mapping area that determine how the 2nd channel is displayed in the sample slots. When set to Generated by Object, the mapping used by the object is used. When set to Planar, the map from the second channel is displayed as a planar map.

Missing Texture Coordinates Alert: The Missing Texture Coordinates alert now lists not only the name of the object that’s missing coordinates, but prefaces it with the UVW channel that’s missing the coordinates. For example: (UVW 2): Torus01.

Normal Align

This function has been altered slightly so that it respects smoothing groups and uses the interpolated normal based on face smoothing. As a result, you can orient the mapping icon to any part of the surface, rather than having it “snap” to face normals.

This new method is also used for the Normal Align tool in the toolbar.

Face Mapping

An additional Face option has been added to the Mapping area of this modifier. This lets you assign face mapping via the UVW Map modifier. It’s the same type of face mapping as that found in the Materials Editor. Having it in the modifier lets you easily assign face mapping to a selection of faces, and you can edit the mapping using the Unwrap UVW modifier.

How To

To use both UVW channels in the same object, do this:

  1. Assign UVW channel 1 to the object. You can do this by either turning on Generate Mapping Coordinates, or by assigning a UVW Map modifier with Channel 1 chosen.
  2. Assign a UVW Map modifier (or a second one, if you’re using a first to assign channel 1). Choose Channel 2 for this modifier.

    3. Both coordinate channels are now assigned to the geometry. The next step is assign a mapped material that uses both channels.

  3. Create a material with two maps. You can do this using a Composite map, or a Blend material with two maps, or you can have one map assigned to Diffuse and another assigned to Bump, or whatever. Perhaps the easiest way to see the effect is to composite two maps, with the second map containing an alpha channel.
  4. Go to the level of one of the maps and, in the Mapping drop-down list, choose Explicit UVW 2. (If it’s a 3D map, like Marble, choose the UVW 2 option, instead.)

    5. The other map is already assigned channel 1 as a default.

  5. Assign the mapped material to the object.

    6. You can only view one map at a time in the viewport, but you can switch between viewing the maps in the viewport. You can adjust the UVW Map gizmo to affect the mapping of channel 2 without altering the mapping of channel 1. If you’ve assigned two UVW Map modifiers, you can switch between them and adjust their respective gizmos to alter the map on channel 1 and that on channel 2. Render the scene to see both maps simultaneously.


Spherify Modifier

Distorts an object into a spherical shape. This modifier has only one parameter, a Percent spinner that deforms the object, as much as it can, into a spherical shape. The success of the operation depends on the topology of the geometry to which it’s applied. For example, a cylinder with no height segments will result in little change. Adding height segments will result in a barrel at 100 percent, and then adding cap segments will produce a sphere. Try this on a Teapot.

Reference

Spherify Parameters Area

Percent: Set this to specify the percetage of spherical distortion to apply to the object.

How To

To spherify a teapot

  1. Create a teapot
  2. Select the teapot
  3. Select spherify in the modify panel

    4. The teapot should now be a sphere.


PathDeform Modifier

Deforms an object based on a shape spline or NURBS curve path. You can animate the object’s position along the path, stretch it along the path, or rotate and twist it about the path. There’s also a world space modifier version of this see Path Deform (WSM).

Generally, you use the Path Deform Modifier when you want to keep the object in place, but deform it to a path, and use the Path Deform (WSM) when you want to move an object to a path while keeping the path in the same world space.

The Path Defrom (WSM) modifier replaces the space-warp version that shipped with previous versions of 3DS MAX, and is incompatible with previous versions. See Path Deform (WSM) . For more details on this and how to fix incompatibilities from the previous version.

To use this modifier, you apply it, then click the Pick Path button and select a shape or curve consisting of a single open or closed spline. Once the object is assigned to the path, you can then adjust the various parameters to deform or animate the object along a gizmo copy of the path.

Reference

Path Deform Area

Provides controls that let you pick the path and adjust the object’s position and deformation along the path.

Path: Displays the name of the selected path object.

Pick Path: Click this, and then click a shape or NURBS curve to use as the path. A gizmo appears that’s the shaped like a copy of the path with the gizmo path aligned (as a default) with the local Z axis of the object. Once the path is assigned, you can adjust the deformation of the object using the controls below. Note that the path you pick should consist of a single, open or closed spline. If you use a path object consisting of multiple splines, only first spline is used.

Percent: Moves the object along the gizmo path based on a percentage of the path length.

Stretch: Scales the object along the gizmo path, using the object’s pivot point as the base of the scale.

Rotation: Use this to rotate the object about the gizmo path.

Twist: Twists the object about the path. The twist angle is based the rotation of one end of the overall length of the path. Typically, the deformed object takes up only a portion of the path, so the effect can be subtle.

Path Deform Axis Area

X/Y/Z: Choose one of these options to rotate the gizmo path to align with a specified local axis of the object.

Flip: Check this to flip the direction of the gizmo path 180 degrees.

The first two examples, below, demonstrate the basic differences in orientation and the relationship between the object and its path when using the Path Deform Modifier and the Path Deform (WSM).

How To

Example: Using the Path Deform Modifier to Curve Text

  1. In the Top viewport, create a circle that’s 100 units in radius.
  2. In the Front viewport, create a text shape with 6 or 7 letters, and a size of 25. (You can use the default “MAX Text” if you want.)
  3. Apply an Extrude modifier to the text shape, and set the Amount to -5.0.
  4. In the Toolbar, set the Reference Coordinate System pop-up to Local.

    5. Looking at the axis tripod for the extruded text object, you can see that its Z axis runs from back to front relative to world space.

  5. Apply a Path Deform object space modifier to the text object, click the Pick Path button, and then select the circle.

    6. A circular gizmo appears. The circle runs through the local Z axis of the text object. Because of its orientation, its effect is minimal, but you can see a slight wedge-shaped deformation from the top view.

  6. Choose the Y and then the X option in the Path Deform Axis area.

    7. The circle gizmo rotates to run through the specified axes, deforming the text object differently with each change.

  7. Adjust the Percentage spinner to view its effect, and then set it to zero. Try the same with Stretch, Rotation, and Twist, and then restore them to their original values. (Tip: Use the CTRL key with Twist to amplify the effect.)
  8. Check and then uncheck Flip to switch the direction of the path.
  9. Go to Sub-Object/Gizmo level, and move the gizmo path around.

    10. The text object is further deformed by its relative position to the gizmo.

  10. Turn off Sub-Object level, select the original circle shape, and change its radius.

    11. The deformation of the text object alters because its gizmo is an instance of the shape object.

  11. Restore the radius of the circle to 100, and keep all objects. You’ll be using them in the next example.


Patch Deform Modifier

Deforms an object based on the contours of a patch object. This modifier works similarly to the PathDeform Modifier, but uses a patch instead of a spline shape.

To use the Patch Deform modifier, apply it to the object you want to deform, click the Pick Patch button, and then select a patch object. Deform the object by adjusting the various controls in the Patch Deform panel.

This modifier is also similar to the SurfDeform Modifier, which works similarly except that it uses NURBS Point or CV surfaces instead of a patch surface.

Reference

Patch Deform Area

Provides controls that let you pick the patch and adjust the object’s position and deformation along the gizmo copy of the patch.

Patch: Displays the name of the selected patch object.

Pick Patch: Click this, and then click the patch you want to use for the deformation. A gizmo is created for the object that matches the patch. Once the patch gizmo is assigned, you can adjust the deformation using the controls below.

Note: Patch Deform can only be used with a rectangular quad patch form. This is a serious restriction that will need extensive documentation, because 3DS MAX makes no distinction between quad-style patches and other patch meshes. Examples of suitable patches are the primitive quad patch object, the primitive cylinder, and the primitive sphere. (The cylinder and sphere actually have tri-patches at each end, but since they are at the end of the list of patches, PatchDeform just ignores these extra faces.)

U Percent: Moves the object along the U (horizontal) axis of the gizmo patch, based on a percentage of the U distance. This spinner defaults to a setting of 50 percent, which places the object at the center of the gizmo patch. A percentage of 0 places the object at the left edge of the gizmo patch, as seen from the viewport in which the patch was created.

U Stretch: Scales the object along the U (horizontal) axis of the gizmo patch.

V Percent: Moves the object along the V (vertical) axis of the gizmo patch, based on a percentage of the V distance. A percentage of 0 places the object at the bottom of the gizmo patch.

V Stretch: Scales the object along the V (vertical) axis of the gizmo patch.

Move to Patch: Moves the object from its original offset position to an absolute position on the gizmo patch, based on the spinner settings.

Patch Deform Plane Area title

XY/YZ/ZX: Choose one of these options to specify which two-axis plane of the object is made parallel with the XY plane of the gizmo patch.

Flip: Check this to flip the direction of the gizmo path 180 degrees.

How To

To use the Patch Deform modifier, do this:

  1. Apply it to the object you want to deform,
  2. Click the Pick Patch button,
  3. Select a patch object.
  4. Deform the object by adjusting the various controls in the Patch Deform panel.


SurfDeform Modifer

The Surface Deform modifier works the same as the Patch Deform modifier, except that it uses a NURBS Point or CV surface instead of a patch surface.

Patch Deform Modifer

How To

To use the Surf Deform modifier, do this:

  1. Apply it to the object you want to deform,
  2. Click the Pick Surface button,
  3. Select a NURBS Point or CV surface.
  4. Deform the object by adjusting the various controls in the Surf Deform panel.


MeshSmooth Modifier

The MeshSmooth modifier smoothes geometry in your scene by adding faces at corners and along edges. The effect of MeshSmooth is to round over corners and edges as if they had been filed or planed smooth.When you apply MeshSmooth, an extra face is added for every vertex and edge. Use MeshSmooth parameters to control the size an number of new faces, and how they affect the surface of the object.

Note: If MeshSmooth detects an invalid mesh, it disables itself and displays an error message in its Parameters rollout stating “MeshSmooth Error - See Help.” The disabled MeshSmooth modifier ignores any changes to its parameters. MeshSmooth works only with meshes where no more than two faces share a single edge. Edges shared by more than two faces are usually the result of manual mesh editing. Try editing the mesh below the MeshSmooth modifier to remove invalid faces.

Note: Enhancements made to the MeshSmooth modifier may cause minor variations to the number of faces and vertices in a MeshSmooth modified object created in Max 1.x and imported into Max 2.0.

The following improvements have been made to the MeshSmooth modifier:

Cleaner Submaterial Assignment: The reassignment of material IDs has been improved, so when you apply MeshSmooth to an object assigned a Multi/SubObject material, the boundaries between the submaterials are cleaner and less likely to produce the fractal-like patterns of interlocking materials.

Mapping Coordinates and Vertices: MeshSmooth maintains mapping coordinates and supports color vertices. Note that, for best result with complex mapping coordinates, use the Quad Output checkbox option.

Works with "Ratsnest" Meshes: The MeshSmooth modifier now works with what were previously considered invalid meshes. For purposes of this function, a valid mesh would be a mesh in which each edge shares no more than two faces. An invalid mesh (sometimes called a ratsnest) is one in which an edge might share three or more faces. (You can create such a mesh by making a box, creating a vertex outside of the box, and then building a face between the new vertex and two corners of the box.)

Previously, when you applied MeshSmooth to an invalid mesh, its parameters appeared, but they had no effect on the object. Now, MeshSmooth can be used to modify such an object.

Cleaner Submaterial Assignment: The reassignment of material IDs has been improved, so when you apply MeshSmooth to an object assigned a Multi/SubObject material, the boundaries between the submaterials are cleaner and less likely to produce the fractal-like patterns of interlocking materials.

Reference

Mesh Smooth Parameters

Mesh Smooth Area

Strength: Sets the size of the added faces using a range from 0.0 to 1.0.

  • Values near 0.0 create small faces that are very thin and close to the original vertices and edges.
  • Values near 0.5 size faces evenly between edges.
  • Values 1.0 create large faces that span half the distance from the original vertex or edge to neighboring vertices and edges.

Relax Value: Applies a positive relax affect to smooth all vertices. See the help topic for the Relax modifier.

Sharpness: Determines how sharp a corner must be before faces are added to smooth it. Sharpness is calculated as the average angle of all edges connected to a vertex. A value of 0.0 prevents the creation of any faces. A value of 1.0 adds faces to all vertices even if they lie on a plane

Operate On: Face/Polygons: These two radio buttons replace the old Eliminate Hidden Edges checkbox. When the polygon button is chosen, it’s the same as checking Eliminate Hidden Edges, and when the Face button is chosen, it’s the same as unchecking Eliminate Hidden Edges.

Quad Output: When this is checked, MeshSmooth produces only four-sided facets (assuming you don’t look at the hidden edges, since the object is still made up of triangular faces). If you apply this with default parameters to a whole object, like a box, its topologically exactly the same as Tessellate, edge-style. However, rather than using tension to project face & edge vertices out of the mesh, you use the MeshSmooth Strength to relax the original vertices and the new edge vertices into the mesh.

Note: Although the above two options might seem similar, they’re not. The Face/Polygon buttons specify which type of facets to work on, while the Quad Output checkbox determines the type of facets to output.

Apply To Whole Mesh: When checked, any subobject selection passed up the Stack is ignored and MeshSmooth is applied to the entire object. Note that the subobject selection is still passed up the Stack to any subsequent modifiers.

Iterations Area

1/2/3/4: Use the options in the Iterations area to choose how many times to apply MeshSmooth. Each iteration generates new faces using the vertices created from the previous iteration.The number of vertices and faces in an object can increase as much as 4X for each iteration. Applying four iterations to even a moderately complex object can take a long time to calculate.You can press Escape to stop calculation and revert to your previous iteration setting.

Surface Parameters

Use options in the Surface Parameters area to apply smoothing groups to the object and restrict the MeshSmooth effect by surface properties.

Smooth Result: When checked, the same smoothing group is applied to all faces.

Seperate by Materials: When checked, prevents the creation of new faces for edges that separate Material Ids.

Seperate by Smoothing Groups: When checked, prevents the creation of new faces for edges that separate faces that do not share at least one smoothing group.

How To

To apply MeshSmooth to an Object:

  1. Select an object
  2. Choose MeshSmooth from the Modify panel.
  3. Set MeshSmooth parameters.

To apply MeshSmooth to Sub-Objects:

  1. Select an object.
  2. Apply an Edit Mesh modifier.
  3. Select a group of Vertices or Faces.
  4. Apply MeshSmooth.
  5. Set MeshSmooth parameters.


Smooth Modifier

Provides animated auto-smoothing ability. You can apply new smoothing groups to objects on a frame-by-frame basis.

A checkbox has been added to the Smooth modifier to modify the autosmoothing algorithm and fix certain rare smoothing problems.

Reference

Smooth Parameters

Auto Smooth: If Auto Smooth is checked, the object is auto smoothed using the (animatable) threshold specified by the spinner below it. Auto Smooth sets the smoothing groups based on the angle between faces. Any two adjacent faces will be put in the same smoothing group if the angle between their normals is less than the threshold angle.

Prevent Indirect Smoothing: Check this to prevent smoothing ‘leaks” when using Auto Smooth. If you apply Auto Smooth to an object, and portions of that object that should not be smoothed become smoothed, then check this item to see if it will correct the problem. Note that this option only has effect when Auto Smooth is checked. Note also that the problem it corrects is rare, and that checking this slows the Auto Smooth process. In other words, don’t use this checkbox unless you see something wrong with your existing smoothing.

Threshold: Set this to specify the threshold angle in degrees. Any two adjacent faces will be put in the same smoothing group if the angle between their normals is less than the threshold angle.

Smoothing Groups Area

The grid of 32 buttons shows which smoothing groups are used by the selected faces.

How To

To smooth an object, do this:

  1. Select the object to be smoothed.
  2. Select smooth in the modify panel.
  3. Adjust the parameters to achieve different effects.


Lathe Modifier

Creates a 3D Object by rotating a shape around an axis.

What's New in Max 2.0

Autosizing the Lathe Axis: The Lathe axis now autosizes itself to the height of the shape being lathed. This prevents the old problem of having a lathe axis sticking up in the air and messing up zoom extents.

Flip Normals: A Flip Normals checkbox has been added below the Weld Core checkbox. Depending on the direction of the vertices on your shape, and the direction of rotation, the lathed object might be inside-out. Toggle the Flip Normals checkbox to fix this.

Mapping the Caps: When the lathing is less than 360 degrees, and Generate Mapping Coords is checked, additional mapping coordinates are now applied to the end capsplacing a single 1 x 1 tile on each cap.

Generate Material IDs: When this new checkbox is checked, different material IDs are assigned to the sides and the caps of the lathed object. Specifically, the sides receive ID 3, and the caps (when Degrees is less than 360 and the lathed shape is closed) receive IDs 1 and 2.

This checkbox is checked as a default when you create a lathed object, but if you load a lathed object from an R1.x .max file, the checkbox will be unchecked, maintaining the same material ID assignment for that object as it had in R1.x.

Reference

Sub-Object Button:

Sub-Object Button: Click the Sub-Object button to transform the axis of revolution. This axis can be moved, rotated and scaled, and is completely animatable.

Lathe Parameters

Degrees: Determines the number of degrees that the object is spun around the axis of revolution (0-360, defaults to 360). It’s animatable, so you can animate the circular growth of any lathed object.

Weld Core: Simplifies the mesh by welding together vertices that lie on the axis of revolution. Keep unchecked if you intend to create Morph targets.

Flip Normals: Depending on the direction of the vertices on your shape, and the direction of rotation, the lathed object might be inside-out. Toggle the Flip Normals checkbox to fix this.

Segments: Determines how many interpolated segments are created in the surface between the start and end point. This parameter is also animatable (defaults to 12).

Capping Area

Determines whether or not caps are created for the interior of the lathed object if Degrees is set to less than 360.

Cap Start: When on, the start of the lathed object is capped.

Cap End: When on, the end of the lathed object is capped.

Grid: Arranges cap faces in a square grid trimmed at the shape boundaries. This method produces a surface of evenly sized faces that can be easily deformed by other modifiers

Morph: Arranges cap faces in a predictable, repeatable pattern necessary for creating morph targets. Morph capping can generate long, thin faces that do not render or deform as well as grid capping. Use morph capping primarily if you are lathing multiple morph targets.DirectionSets up the direction of the axis of revolution, relative to the pivot point of the object.

Generate Material IDs: When this is checked, different material IDs are assigned to the sides and the caps of the lathed object. Specifically, the sides receive ID 3, and the caps (when Degrees is less than 360 and the lathed shape is closed) receive IDs 1 and 2.

Direction Area

X/Y/Z: Choose one of thse to set the direction of the axis of revolution relative to the pivotpoint of the object.

Align Area

Min/Center/Max: Aligns the axis of revolution to the minimum, center, or maximum extents of the shape.

Output Area

Patch: Makes the lathed object a patch that can be modified with Edit Patch.

Mesh: Makes the lathed object a polygon mesh that can be modified with Edit Mesh.

Generate Mapping Coordinates: Creates the lathed object with mapping coordinates already applied.

How To

To Lathe a shape, do this:

  1. Create a Shape
  2. Select Lathe in the Modify panel
  3. Adjust the various parameters to achieve different effects.


Preserve Modifier

Preserves, as much as possible, the edge lengths, face angles, and volume of an edited and deformed mesh objectusing an unmodified copy of the object before it was deformed. When you push and pull vertices at the sub-object level, the process typically stretches the edges and often alters the face angles, resulting in irregular topology. You can use the Preserve modifier to generate more regular edge lengths, and a “cleaner” mesh.

Generally, you use the Preserve modifier in this way:

  • After creating an object, and before editing it, create a copy.
  • Working on the copy, edit it at the sub-object level (pushing and pulling vertices, faces, and so on).
  • Apply the Preserve modifier to the copy, click the Pick Original button, and then select the original, unmodified object.
  • Adjust the various controls in the Preserve modifier to fine tune the mesh.

Reference

Original: Displays the name of the selected original object. (Note that the so-called “original” object doesn’t actually have to be the original. It’s simply a copy of the object that represents its unmodified topology.)

Pick Original: Click this, and then select an unmodified copy of the current object. Note that the object you pick should be one with the same topology as the current object, and must have the same number of vertices. While you can select a completely different object with equal vertices, the results are unpredictable.

Iterations: Use this to specify the number of calculations toward the solution. The higher this number, the closer the object comes to matching the original objectand the slower the process. When this is set to zero, the original object has no effect, as if the Preserve modifier were never applied.

Preservation Weights Parameters

Edge Lengths,Face Angles,Volumes: Lets you adjust the relative importance of the three components you’re attempting to preserve edge lengths, face angles, and volume. In most cases, you’d leave these at their default settings, but you can achieve some interesting effects by altering them. Higher face angles, for example produce stiffer meshes.

Selection Parameters

Provides options that let you specify which selection level to take from previous selection modifiers in the Stack. The Preserve modifier acts on the specified selection.

Apply to Whole Mesh: When this is checked the other two checkboxes are disabled, and Preserve is applied to the entire object, regardless of the selection passed it from previous levels of the Stack.

Selected Verts Only: When checked, previous sub-object vertex selections are used by Preserve. Note that, it doesn’t matter if Sub-Object/Vertex mode is active in a previous Stack item. As long as vertices have been selected, Preserve will use that selection.

Invert Selection: When checked, the selection passed up the Stack is inverted.

Note: Note that, if all of the checkboxes are unchecked, Preserve uses whatever active selection is passed up the Stack. Thus, if a Mesh Select modifier is set to Sub-Object/Vertex, then that vertex selection is used. If the same Mesh Select Modifier is set to Object level, then the entire object is affected.

How To

Using Preserve on a Sphere

  1. Create a GSphere and SHIFT-move to make a copy of it.

    2. Tip: If you want to see the effect of Preserve on mapping, apply a checker-mapped material to the sphere and display it in the viewport s before making the copy.

  2. Convert the copy to an editable mesh.
  3. At Sub-Object/Vertex level, select about the top third of vertices at the top of the sphere, and move them upward (as seen from the Front) about one radius in distance.

    4. Notice the stretched edges between the moved vertices and the remaining vertices.

  4. While still in Vertex sub-object mode, apply the Preserve modifier.
  5. Click the Pick Original button, and then select the original (unedited) sphere.

    6. The selected vertices move back toward the sphere in an attempt to maintain the original volume and edge lengths.

  6. Check Invert Selection.

    7. The selected vertices return to their moved position, and the unselected vertices (the inverted selection) move up toward the selected vertices.

  7. Uncheck Invert Selection.
  8. Slowly reduce the Iterations to 0.

    9. The object now looks as it did before Preserve was applied.

  9. Increase Iterations to the default 25, and then increase it to approximately 75.

    10. The object is now almost completely spherical again.

  10. Set Iterations back to 25, and then try different Edge Lengths, Face Angles, and Volume settings, just to get a feel for their effect. (You can restore the defaults by settings Edge Lengths to 1.0, and Face Angles and Volume to 0.3.

    11. Keep this example, you’ll continue in the next exercise.

Animating a Preserved Object

Of course, you can animate the Preserve parameters, but the following shows you how to use Morph and Preserve together.

  1. Remove the Preserve modifier from the copied sphere, and go to Object level (instead of Sub-Object level).
  2. With the copied (and deformed) sphere still selected, choose Create/Compound Objects/Morph to make it into a Morph object.
  3. Make sure Instance is chosen in the Pick Targets rollout.
  4. At frame 0, click Pick Target, and then select the original sphere.
  5. In the Modify panel, go to frame 100, select sphere02 in the Morph Targets list, and click Create Morph Key.

    6. The object now morphs from a sphere to a deformed sphere.

  6. Apply Preserve to the morph object.
  7. Click Pick Original, and select the original sphere.

    8. The object now morphs from the sphere to a preserved and deformed sphere. Note that, because the object selection is passed up the Stack, the Preserve effect is applied to the entire sphere.

  8. Choose Selected Verts Only in the Selection area.

    9. Now, only the selected vertices are affected by Preserve. The morph still works, however.

Using the Selection Checkboxes

This exercise provides some examples of how to use the three checkboxes in the Selection area.

  1. Reset MAX, create a box, and collapse it into an editable mesh.
  2. SHIFT-Move it to make a copy.
  3. In the Modify panel, select the top four vertices in the second box and move them upward in Z making the box taller than the original.
  4. Apply Preserve, and pick the first box as the original.

    5. The selected vertices move down to match the original edge lengths.

  5. Set Iterations to 0 to move the vertices back up, then check Invert Selection, and set iterations back up to 25.

    6. The selected vertices stay in their original locations, but the unselected vertices move upward to restore the original edge lengths.

  6. Turn Iterations back down to 0, check Apply to Whole Mesh, and then turn Iterations back up to 25.

    7. Preserve is now applied to the whole mesh. Since all vertices are affected, the top and bottom of the box come together.

  7. Go back in the Stack and turn off the Sub-Object button (without changing the selected vertices).
  8. Return to Preserve and uncheck Apply to Whole Mesh.

    9. Nothing changes because the whole mesh is already being sent up the Stack.

  9. Unclick Invert Selection and click Selected Verts Only.

    10. You’re back to the original effect because, although you turned off Sub-Object selection, the previous vertex selection is still available and can be used by Preserve regardless of the state of the Sub-Object button. You can move the Iterations spinner up and down to see that you’re affecting the selected vertices.

Now, continue with a variation on this:

  1. Remove the Preserve modifier from the Stack.
  2. SHIFT-Move the second box, making a reference of it.
  3. Apply Preserve to the third, reference box, and choose the first box as the original.
  4. Select the second box, and go into Sub-Object/Vertex mode.

    5. The third box changes.

  5. Select and move a single vertex of the second box.

    6. The third box changes drastically.

  6. Go into Sub-Object/Face level.

    7. Again, the third box changes. Here’s how to avoid all of this:

  7. Leave Sub-Object mode, and select the third box.
  8. Check Apply to Whole Mesh.
  9. Select the second box again, go into Sub-Object/Vertex level and move some vertices.

    10. You can now switch sub-object levels without the third box jumping around. Changing vertices on the second box still affects the third box, but it’s not nearly as dramatic.

Cheap Cloth Tricks

The following provides an example of simple cloth simulation method.

  1. Reset 3DS MAX, create a Quad Patch Grid, and convert it to an editable mesh.
  2. Make a copy, and then make a reference of the copy (as you did with the boxes in the previous example).
  3. Apply Preserve to the third patch, using the first as the original.
  4. Check Selected Verts Only and check Invert Selection.
  5. Set Iterations to 100.
  6. Select the second patch, and go to Sub-Object/Vertex level.
  7. Select a single vertex in the middle of the patch and move it upward in Z.

    8. The third patch becomes a floating handkerchief.

  8. Undo the vertex move.
  9. Select the far two corner vertices of the second patch, and drag them upward in Z.

    10. Now, you’ve got the beginnings of a sheet hanging on the line.


Bevel Profile Modifier

This new shape modifier is a variation on the Bevel modifier. It extrudes a shape using another shape path as the “beveling profile.”

Reference

Bevel Profile Area

Path: Displays the name of the selected path shape.

Pick Path: Click this, and then click a shape or NURBS to be used for the profile path.

Note: The orientation of the path relative to the shape is used for the profile. If you subsequently rotate the path shape, the bevel is changed as well. Thus, you can animate the bevel by animating the path.

Generate UV Coords: Check this to assign UV coordinates.

Capping Area

Start: Check this to cap the bottom of the extruded shape.

End: Check this to cap the top of the extruded shape.

Cap Type Area

Morph: Choose this for a deterministic method of capping that will provide the same number of vertices for morphing between objects.

Grid: Choose this to create gridded caps that are better for cap deformations.

Intersections Area

Keep Lines From Crossing: Check this to prevent beveled surfaces from self-intersecting. Note that this requires more processor calculation and can be time consuming in complex geometry.

Separation: This sets the distance that sides should be kept apart to prevent intersections.

Note: Although this modifier might seem similar to a loft object with varying scale, it’s actually different because different outline values are used as distances between line segments rather than as scale values. This more complex method of resizing a shape results in some levels having either more or less vertices than others, and generally works better with text, for example.

How To

Generally, you use the Bevel Profile modifier in this way:

  1. Create the shape you want to bevel (preferably in the Top viewport).
  2. In the Front (XZ) viewport, create a shape to be used as the beveling profile.
  3. Select the first shape, and apply the Bevel Profile modifier.
  4. Click the Pick Path button in the Bevel Profile modifier, and then click the profile shape.


Fillet/Chamfer Modifier

The Fillet/Chamfer modifier lets you fillet or chamfer the corners between linear segments in Shape objects. Fillet rounds the corner between the lines, adding new control vertices. Chamfer bevels the corner, adding another vertex and line segment. Note that this modifier works on the splines at the sub-object level in the shape. It does not work between two or more independent shape objects.

When you apply Fillet/Chamfer, you’re placed in a Vertex sub-object selection level. You can select any vertex, but only corner vertices, or Bezier Corner vertices are valid. In addition, both segments in the Bezier Corner vertex must be linear rather than curved.

There are two methods to applying either fillets or chamfers:

  • Select one or more valid corner vertices, and then adjust either the Radius spinner to fillet the selected corners, or the Distance spinner to chamfer the corners.
  • Or, you can preset the Radius or Distance values, and then select one or more valid corner vertices, and click one of the Apply buttons to apply the specified value to the selected vertices.

Reference

Fillet Area

Radius: Adjust this to specify the radius of the filleted corner.

Apply: Use this when you want to apply the value specified in the Radius spinner to several selected vertices. For example, before selecting any vertices, set the Radius to the desired value, then select your vertices and click Apply to fillet the selection with the specified radius.

Chamfer Area

Distance: Set this to specify the distance of the new vertices from the original corner vertex.

Apply: Use this when you want to apply the value specified in the Radius spinner to several selected vertices. For example, before selecting any vertices, set the Distance to the desired value, then select your vertices and click Apply to Chamfer the selection with the specified distance.

How To

To Fillet/Chamfer a Star, do this:

  1. Create a Star.
  2. Choose Fillet/Chamfer in the modify panel.
  3. Adjust the parameters to achieve different effects


Extrude Modifier

Adds depth to a shape and makes it into parametric object.

What's New in Max 2.0

Grid Capping Change: In a minor change to this modifier, when you choose the Grid capping option, the grid lines are now hidden edges rather than visible. This primarily affects any objects using the Grid option that have wire material assigned, or are using the Lattice modifier.

Mapping the Caps: When Generate Mapping Coords is checked, additional mapping coordinates are now applied to the end capsplacing a single 1 x 1 tile on each cap.

Generate Material IDs: When this new checkbox is checked, different material IDs are assigned to the sides and the caps of the extruded object. Specifically, the sides receive ID 3, and the caps receive IDs 1 and 2.

This checkbox is checked as a default when you create an extruded object, but if you load an extruded object from an R1.x .max file, the checkbox will be unchecked, maintaining the same material ID assignment for that object as it had in R1.x.

Reference

Extrude Parameters

Amount: Sets the depth of the extrusion.

Segments: Specifies the number of segments available for path editing.

Capping Area

Cap Start/End: Generates a flat surface over the start or the end of the extruded object.

Grid: Arranges cap faces in a square grid trimmed at the shape boundaries. This method produces a surface of evenly sized faces that can be easily deformed by other modifiers.

Morph: Arranges cap faces in a predictable, repeatable pattern necessary for creating Morph targets. Morph capping can generate long, thin faces that do not render or deform as well as grid capping. Use morph capping primarily if you are extruding multiple morph targets.

Output Area

Patch: Makes the extruded object a patch that can be

Mesh: Makes the extruded object a polygon mesh that can be modified with Edit Mesh.

Generate Mapping Coordinates: Creates the extruded object with mapping coordinates already applied.

How To

To Extrude a Star

  1. Create A Star
  2. Select Extrude from the Modify panel.

    3. The Star now has depth

  3. Adjust the various parameters to achieve different effects.


Trim/Extend Modifier

The Trim/Extend modifier is primarily used to clean up overlapping or open splines in a multi-spline shape so that lines meet at a single point. As with the Fillet/Chamfer modifier, this modifier operates on the splines at the sub-object level in the shape. It does not work between two or more independent shape objects.

To trim you need intersecting splines. You click the portion of the spline you want to remove. The spline is searched along its length until it hits an intersecting spline, and deleted up to the intersection. If the section intersects at both ends, the entire section is deleted up to the two intersections. If the section is open on one end and intersects at the other, the entire section is deleted up to the intersection and the open end. If the section is not intersected, nothing happens.

To extend you need an open spline. The nearest end of the picked point is extended until it reaches an intersecting spline. If there is not intersecting spline, nothing happens. Curved splines extend in a direction tangent to the end of the spline. If the end of a spline lies directly on a boundary (an intersecting spline), the it looks for an intersection further along.

Reference

Trim/Extend Parameters

Pick Locations: Click this to turn on pick mode. While in this mode, click any spline to either trim or extend it, based on the settings below.

Operation Area:

The items in this area specify the type of operation that’s performed on the picked spline.

Auto: When this is chosen, a Trim is first looked for and, if not found, an Extend is attempted. In most cases, a Trim will occur when Auto is chosen. An Extend can occur, however, in cases where an open spline exists without intersecting other splines.

Trim Only: Choose this to perform only trims. Turn on Pick Locations, and then click the spline section you want to trim.

Extend Only : Choose this to perform only extends. Turn on Pick Locations, and then click the open spline section you want to extend.

Infinite Boundaries : For the purposes of calculating intersections, check this to treat open splines as infinite in length. For example, this lets you trim one linear spline against the extended length of another line that it doesn't actually intersect.

Note: As the number of open splines in the shape increases, the chance of finding an intersection, when using Infinite Boundaries, increases as well. This can produce results you might not have expected because of projected spline intersections you hadn’t consideredparticularly if you’re in Auto mode. For predictable results, avoid using Auto mode when using Infinite Boundaries.

Intersection Projection Area

The options in this area specify how the Trim and Extend determine a valid intersection.

View : Projects the lines onto the active viewport, and judges the intersections accordingly. These are the intersections as you see them in the active viewport.

Construction Plane : Projects the lines onto the current construction plane.

None (3D) : Considers only true intersections as the splines exist in 3D space. They must physically intersect to be considered.

How To

Generally to trim a shape using the Trim/Extend Modifier:

  1. Select Line from the Spline object rollout in the Shape panel.
  2. Create a open, multi-spline shape in a viewport by "drawing" roughly concentric overlapping lines.
  3. Select Trim/Extend from the Modifier panel.
  4. Click on Pick Locations. (The default operation is set to auto).
  5. Click on the inner spline sections of the concentric shape to "trim" them away, or click on the open spline section to extend the spline.


Mesh Select Modifier

The Mesh Select modifier lets you pass sub-object selection up the Stack to subsequent modifiers. It provides much of the same selection functions that were previously available in the Edit Mesh modifier. You can select vertices, faces, or edges, and you can change the selection from sub-object level to object level.

Note the following:

  • When you apply the Mesh Select modifier, the transform-and-select buttons in the toolbar are disabled, and the Select Object button automatically activated.
  • The Mesh Select modifier automatically turns off the Show End Result button, which becomes “spring loaded” while you’re in the modifier.
  • Mesh Select stores the current selection in a different way than Edit Mesh did. Thus, if you make a selection, go back to the creation parameters and change the topology, if you then restore the topology to its original state, the selection is also restored. You can see this by creating a sphere with the default 16 segments, then adding a Mesh Select modifier and selecting a pattern of faces. Now, go back to the creation parameters and reduce or increase the number of segments, thus changing the selected faces. Finally, return the Segments to 16, and the original selection pattern is restoredwhich would not be the case in the Edit Mesh modifier. Note, however, that if you alter the topology, and then return to the Mesh Select modifier and change the selection pattern, you’ve just created a new selection pattern, replacing the old one.

After applying a Mesh Select modifier, you can change selections at the following levels.

Reference

Object-Level Selection: When the Mesh Select modifier is applied, it’s set to Sub-Object/Face level by default. Turn off the Sub-Object button to restore the selection to the full object, and pass that selection up the Stack.

The Object Level has no other parameters or functions.

Face-Level Selection

At this level, you can select faces and pass that selection up the Stack. Face-Level selection provides the same selection controls as the Editable Mesh. In addition are two buttons:

Get Vertex Selection: Click this to select faces based on the last vertex selection. This selects all faces shared by any selected vertex. The selection is added to the current selection.

Get Edge Selection: Click this to select faces based on the last edge selection. This selects those faces that contain the edge.

Additional controls let you select faces based on their material ID. Set the Material ID spinner to the ID number you want to select, and then click the Select By Material ID button. Press CTRL while clicking the button to add to the current selection, or press ALT to remove from the current selection.

Vertex-Level Selection

At this level, you can select vertices using the Select Object tool in the usual way. There are two buttons at this level.

Get Face Selection: Click this to select vertices based on the last face selection. This selection is added to the current selection.

Get Edge Selection: Click this to select vertices based on the last edge selection.

Edge-Level Selection

At this level, you can select edges using the Select Object tool in the usual way. Besides the Copy and Paste buttons are the following:

Get Vertex Selection : Click this to select edges based on the last vertex selection. This selection is added to the current selection.

Get Face Selection : Click this to select additional edges based on the last face selection.

Select Open Edges : Click this to select all edges with only one face. In most objects, this will effectively show you where missing faces exist.

How To

Generally, To use the Mesh Select modifier:

  1. Create an mesh object
  2. Select Mesh Select in the Modify panel.
  3. Select vertices, faces, or edges.


Editable Mesh Modifier

The functions in an editable mesh are the same as those in the Edit Mesh modifier, with the exceptions bulleted below, plus new features described in the sections that follow. It’s important to note that there are several new features that have been developed for the editable mesh that are not included in the Edit mesh modifier. So, whenever possible, we recommend using the editable mesh rather than the Edit Mesh modifier.

To produce an editable mesh object, do one of the following:

  • Click the Edit Stack button in the Modify panel before assigning any modifiers, and select Editable Mesh from the Convert To list in the pop-up menu. (The Edit Stack button works differently depending on the state of the selected object.)
  • Use the new Collapse function in the Utility panel.
  • Import a non-parametric object, such as that found in a .3ds file.
  • Apply a modifier to a parametric object that turns the object into a mesh object in the Stack, and then collapse the Stack. (For example, you can apply a Mesh Select modifier.)

Editable Mesh Modifier (Object)

Editable Mesh Modifier (Face)

Editable Mesh Modifier (Vertex)

Editable Mesh Modifier (Edge)

Converting an object to an editable mesh replaces the creation parameters in the stack so that the base of the stack is “Editable Mesh,” which provides most functions that were previously found in the Edit Mesh modifier. Converting to an editable mesh freezes the creation parameters, which are no longer accessible or animatable. So, before converting to an editable mesh, you have to decide if you can do without the creation parameters

A number of functions that were once in the Edit Mesh modifier have been changed to individual modifiers. If you want to maintain the creation parameters, but perform certain functions that were in the Edit Mesh modifier, you can use these new modifiers instead. Examples of the new modifiers would be the Mesh Select Modifier , which provides all of the selection tools that were in the Edit Mesh modifier, and the Delete Mesh modifier, which performs parametric deletions of previously selected geometry.

In addition, although sub-object selection in an editable mesh is passed up the Stack to subsequent modifiers, you no longer use multiple Edit Mesh modifiers to change selection on different levels of the Stack. In fact, in most cases, you won’t want to use the sub-object selection of the Editable Mesh later in the Stack. To take care of this, a Mesh Select modifier has been added . In total the Edit Mesh functions that have been added as modifiers include:

  • Mesh Select Modifier
  • Delete Mesh Modifier
  • Tessellate Modifier
  • Face Extrude Modifier
  • Affect Region Modifier

What's New in 3DS Max 2.0

Attach Multiple button: This has been added at the Object selection level. Click the Attach Multiple button to display the Attach Multiple dialog, which contains a list of all other objects in the scene. Select the objects you want to attach to the current editable mesh, and then click OK. (The dialog is basically the same as the Select by Name dialog.)

Clear All button: This button is added to the Smoothing Groups section at Face selection level. Click Clear All to clear all smoothing groups in all selected faces.

Build Face & Flip Normals: Build Face has been changed slightly so that the face you build becomes the selected face. In addition, a keyboard shortcut (f) has been added for the Flip button in the Normals area. Put the two together, and you can easily flip the normals of your faces as you build them. Note that to use the Editable Mesh keyboard shortcuts, you must first enable the Plug-in Keyboard Shortcut Toggle.

Edge/Divide: Faces created with this function inherit the smoothing group(s) from the original divided faces.

Hidden Edge Displays: While in Edge selection mode, if you select so-called invisible edges, they become visible. Now, the selected invisible edges are displayed as dashed lines so you can distinguish them from visible edges within the same selection.

Detach: The Detach function, for both vertices and faces now has the ability to create elements within the same object, rather than a new object. In the Detach dialog is a checkbox, labeled Detach to Element. When this is checked, the object name field is disabled. When you click OK, the selected geometry is detached from the rest of the object, but it remains a part of the objectan element.

New or Improved Editable Mesh Functions

Animatable Vertices

When you move vertices while the Animate button is onat any selection levelthe vertices become animated. Essentially, this means that you can directly animate at the sub-object level.

As soon as you animate one or more vertices, a new track is created in the Track View, labeled Object [Editable Mesh]. The children of this track are numbered verticesone track for each animated vertex, labeled: Vertex 1, Vertex 2, and so on. Each Vertex track is assigned a Bezier Point3 controller.

Note: Keep the following in mind:

  • If you SHIFT-move a sub-object selection while the Animate button is on, the cloned vertices are animated. However, if you make a new object out of the cloned geometry, it’s not animated.
  • Other operations besides transforming vertices can create animation when the Animate button is on. For example, the Extrude and Align functions move vertices and result in animation. However, it is important to note that these effects are not procedural. So, for example, if you extrude some faces with the Animate button on, key frames will be created for those vertices and the final extrude position. Usually this will look like an animated procedural extrude, but not always since the points will be interpolated individually.
  • Other operations are not procedural and may not interact well with animated vertices. For example, if you animate some vertices and then apply tessellation, new vertices are created that are not be animated. The results are usually not what you want. In general, it’s important to do topological edits like tessellation before you start animating. On the other hand, simple topological edits like deleting vertices don't really matter.

Selecting Vertices Via the Track View

Since animated vertices generate tracks, you can also select vertices by clicking the associate green triangle icons in the Track View. You can add to the selection by holding CTRL while clicking, and subtract from the selection by holding ALT.

Warning: Selecting vertices in the Track View actually performs selection even if the object is not currently selected. In addition, if the deformation of your object is based on recent sub-object vertex selection that’s been passed up the Stack, this will change the vertex selection, and therefore the resultant modification of the object.

Local Vertex Movement

This is not a new function, but an implementation in Editable Mesh of the way local vertex transforms already work in the Edit Mesh modifier. That is, when you select several vertices and are in Local transform mode, tripods appear for every selected vertex oriented according to each vertex normal (the average of the face normals surrounding the vertex).

Assigning Vertex Colors

You can now assign colors to vertices. This ability is primarily added for game developers and developers of radiosity renderers. In most cases, the average user will not need to access this function.

The assignment of vertex colors is implemented in these two places:

  • An area titled Vertex Color appears at the bottom of the Edit Vertex rollout at vertex sub-object level. It contains a single color swatch.
  • An identical area is at the bottom of the Edit Surface rollout at face sub-object level.

The swatch in the vertex sub-object level lets you assign colors to selected vertices, while the swatch in the face sub-object level lets you assign colors to the vertices of selected faces.

At the simplest level, you assign a color to a vertex by selecting that vertex, clicking the color swatch to display the Color Selector, and then choosing a color. If more than one vertex is selected, the color is assigned to all of the selected vertices.

Similarly, at face sub-object level, you can select a face, and then click the color swatch. The color you choose at this selection level is assigned to the three vertices that make up the face. If more than one face is selected, all vertices of all selected faces are assigned the color.

Dealing with Commonality

As a default, all vertices are white. The color swatch displays the color of the selected vertices only if they’re all the same color. If one or more of the assigned colors is different, the swatch is black to show lack of commonality.

Keep in mind that a single face has three vertices, while a single vertex can share any number of faces. Likewise, a single vertex can be assigned any number of colorsone for every face it shares. As a result, you could select a single vertex with multiple colors and the color swatch would appear black.

Displaying and Rendering the Colors

Although vertex colors are primarily designed for programmers, you can display the results in the viewports or in the rendered scene using the following methods:

Displaying Vertex Colors in Viewports: Turn on the new Vertex Colors checkbox in the Display command panel. Note that vertex coloring only appears in Smooth or Smooth + Highlight shaded displays. It does not appear in non-shaded or faceted display modes. See for details.

Rendering Vertex Colors: You can render the colored vertices by applying a material to the object that has a Vertex Color map assigned to the diffuse channel.

The visual effect of vertex colors is a ramp of color generated between the vertices. Thus, three different colors assigned to the vertices of a face result in a tri-gradient of color across that face.

Important: Avoid changing vertex colors on an object using a second UVW mapping channel. The coordinates stored for vertex colors are also used to provide the second channel of UVW mapping coordinates. Since these coordinates are shared by two distinct functions (vertex colors and mapping coordinates) they can’t be used by both at the same time. If you do change the vertex colors, the mapping coordinates for the second UVW channel will become disordered.


Editable Spline Modifier

Similar to the Editable Mesh is the editable spline. Most of the functions of the Edit Spline modifier become part of the editable spline. Once a single spline shape has been converted to an editable spline, most of its creation parameters are frozen and no longer available. However, its interpolation settings (step settings) remain available in the editable spline.

To produce an editable spline object, do one of the following:

  • Create a shape with two or more splines. Any shape made up of two or more splines is automatically an editable spline.
  • Import a .shp file.
  • Apply an Edit Spline modifier to a shape, and then collapse the Stack.

Note: The Collapse utility, used to collapse mesh objects into a single, editable mesh, converts shapes to editable mesh objects rather than editable spline objects.

Animating Shapes at SubObject Level

You can now directly animate vertices by simply turning on the Animate button while using Edit Spline, and then adjusting the vertex or its vector handles in the viewports. This lets you animate subobject portions of your shape at spline, segment, or vertex level.

When you animate any portion of a shape, three animation tracks are created for each animated vertexone describing the translation of the vertex, and the other two describing the translation of its handles.

Important: Observe the following caveats:

  • Editing the three tracks in the Track View can result in changes in the tangency of the vertex. For example, if you animate the movement of a smooth Bezier vertex at frame 20, and then go into Track View and delete the vector keys while leaving the vertex key, the vectors remain behind at frame 1, while the vertex moves away from the, resulting in a Corner Bezier vertex at the destination rather than a smooth vertex.
  • If you change a vertex type (by right-clicking over the vertex and switching, say, from Bezier to Corner), the animation for that vertex is removed, and the vertex remains where it is at the frame at which you made the change. This is because different vertex types have different constraints, so they can’t carry the same type of animation information.
  • The following functions delete the animation on the spline because they alter the topology:
  • Vertex/Weld
  • Vertex/Break
  • Insert (at any level)

Reference

All of the functions in the editable spline are exactly the same as those in the Edit Spline modifier, with these exceptions:

Edit Object Parameters

At the object level are the following additions:

Attach Multiple: Works the same as in Editable Mesh. Click the Attach Multiple button to display the Attach Multiple dialog, which contains a list of all other shapes in the scene. Select the shapes you want to attach to the current editable spline, and then click OK.

Create Line: Adds more splines to the selected spline. Saves you having to return to the Create panel to draw lines.

Interpolation Area

The Interpolation area lets you adjust the number of steps in the shape, and specify the method by which the steps are calculated. It contains a Steps spinner, along with Optimize and Adaptive checkboxes. These controls work in the same fashion as the Interpolation controls found in the create parameters of any spline.

Rendering Area

Lets you turn on and off the renderability of the shape, specify its thickness in the rendered scene, and apply mapping coordinates..

Edit Spline Parameters

Close: Closes the selected spline by joining its end vertices.

Outline: Makes a copy of the spline, offset to the distance specified by the Outline Width spinner. You can adjust the outline position dynamically with the spinner. If the spline is open, the resulting spline and its outline will make a single closed spline.

Note: The algorithm has been changed to improve the result. To see the difference, create a V-shaped line. When you use the old Outline function, the width becomes narrower toward the crotch of the V. Using the new algorithm, the outline remains parallel.

Center: When this box is unchecked (default), the original spline stays still and the outline is offset on one side only to the distance specified by Outline Width. When this box is checked, the original spline and the outline both move away from an invisible center line to the distance specified by Outline Width.

Boolean: Combines two closed polygons by performing a boolean operation that alters the first spline you select and deletes the second one. There are three Boolean operations:

Union: Combines the two overlapping splines into a single spline, in which the overlapping portion is removed, leaving non-overlapping portions of the two splines as a single spline.

Subtraction: Subtracts the overlapping portion of the source spline from the target spline, and deletes the remainder of the source spline.

Intersection: Leaves only the overlapping portions of the two splines, deleting the non-overlapping portion of both splines.2D Booleans only work on 2D splines that are on the same 2D plane.

Mirror: Mirrors splines along the length, width, or diagonally. Click the direction you want to mirror first so it is active, then click Mirror.

Copy: If this box is checked, copies rather than moves the spline as it is mirrored.

Detatch: Copies selected spline(s) to a new spline object, and deletes them from the currently-selected spline if Copy is not checked.

Reorient: The spline being attached is moved and rotated so that its creation local coordinate system is aligned with the creation local coordinate system of the selected spline.

Vertex Count: Displays the number of vertices in the spline.

Reverse: Click this button to reverse the direction of the selected spline. If the spline is open, the first vertex will be switched to the opposite end of the spline. Reversing the direction of a spline is usually done in order to reverse the effect of using the Insert tool at vertex selection level.

Insert: This provides the same function as the Insert button in Vertex sub-object selection mode.

Delete: Deletes the selected spline.

Edit Segment

Break: Specifies a break point at any segment in the shape (you do not have to first select a segment). Click to turn on the Break button. The mouse icon changes to a Break icon You can now click on any spot on a segment. The clicked spot becomes two coincident vertices, and the segment is split into two parts.

Refine: Lets you click on any spot in a segment and add a vertex without altering the curvature values of the spline. Note that you don’t have to select a segment first, you can click anywhere on the shape.

Detach: Lets you select several segments in various splines and then detach them (or copy them) to form a new shape.

Reorient: The detached segment copies the position and orientation of the source object's creation Local coordinate system. The new detached object is moved and rotated so that its Local coordinate system is positioned and aligned with the origin of the current active grid.

Copy: Copies the detached segment rather than moving it.

Same Shape : When Same Shape is checked, the Reorient checkbox is disabled, and a Detach operation keeps the detached segment as part of the shape (rather than producing a new shape). If the Copy checkbox is also checked, then you end up with a detached copy of the segment in the same location.

Divide: This button, along with its associated Divisions spinner, lets you subdivide the selected segment into the number of division specified by the spinner. To use, select one or more segments, set the Divisions spinner, and then click Divide. Each selected segment is divided by the number of vertices specified in the Divisions spinner.

Insert: This provides the same function as the Insert button in Vertex sub-object selection mode.

Delete: Deletes any selected segments in the current shape.

Edit Vertex Parameters

Connect: Connects any two end vertices, resulting in a linear segment, regardless of the tangent values of the end vertices. Click on the Connect button, point the mouse over an end vertex until the cursor changes to a cross, and then drag from one end vertex to another end vertex.

Break: This provides the same function as the Insert button in Vertex

Refine: This is a modal button that lets you click on any spot in a segment and add a vertex without altering the curvature values of the spline. Very useful for quickly adding extra control points to an existing segment.

Insert: Inserts one or more vertices, creating additional segments. After turning on the Insert button, click anywhere in a segment to insert a vertex and attach the mouse to the spline. Then move the mouse and click to add vertices. A single click inserts a corner vector, while a drag creates a smooth vector. Right-click to complete the operation and release the mouse

Make First: Specifies which vertex in the selected shape is the first vertex. Select one vertex on each spline within the currently-edited shape that you want to change. On open splines, it must be the endpoint that is not already the first vertex. On closed splines, it can be any point that isn't already the first vertex. Click on the Make First button, and the first vertices will be set. Once set, the first vertices appear with boxes around them.

Weld: Converts two end vertices, or two adjacent vertices within the same spline, into a single vertex. Move either two end vertices or two adjacent vertices near each other, select both vertices, and then click on Weld. If the vertices are within the unit distance set by the Weld Threshold spinner, they’re converted into a single vertex. You can weld a selection set of vertices, as long as each pair of vertices is within the threshold.

Delete: Deletes the selected vertex or vertices, along with any segments in between

Lock Handles: When you select one or more vertices, vector handles appear on those vertices with smooth values. By default, dragging either handle moves both handles. SHIFT-click a handle to "break" the tangent and move each handle independently.

Alike: As you drag the handle of an incoming vector, all incoming vectors of the selected vertices move simultaneously.

All: Any handle you move affects all vectors in the selection, regardless of whether they’re broken. You can use All with a single vertex. As you move either handle, the adjacent vector


Spline Select Modifier

The Spline Select modifier lets you pass sub-object selection of shapes up the Stack to subsequent modifiers. It provides much of the same selection functions that were previously available in the Edit Spline modifier. You can select vertices, segments, or splines, and you can change the selection from sub-object level to object level.

This modifier is essentially the same as the Mesh Select modifier, except for the type of sub-object components.

How To

Generally, To use the Spline Select modifier:

  1. Create a multi Spline shape.
  2. Select Spline Select in the Modify panel.
  3. Select vertices, segments, or splines.


Make Unique

Make Unique: Converts an instanced modifier to a copy that’s unique to the current object.

What's New in Max 2.0

Making Objects Unique: You can now use the Make Unique button in the Modify command panel to make objects unique as well as modifiers. Go to the object level in the Stack for an instanced or referenced object, and click the Make Unique button.

Disabling the Make Unique Button: When a selected object is not an instance or reference, or it does not contain an instanced modifier, or when all objects in the selection don’t have an instanced modifier in common, the Make Unique button is disabled.

Reference

Making New Instances: When you click the Make Unique button for a selection of two or more objects, a dialog first appears that gives you a choice of how you want the objects made unique. The dialog first reports: Do you want to make the selected items unique with respect to each other?

Yes: Select this (the default) to achieve the same result as in 3DS Max 1.x. That is, the instanced modifiers assigned to the objects in the selection become unique for each object in the selection.

No: Select this and all instanced modifiers assigned to the objects in the selection remain instanced across the selected object, but become unique from other objects not in the selection.

How To

Example: Choosing Between the Two Make Unique Options

  1. Create a cylinder with some height segments, and then use SHIFT-Move to create an addition three copies, resulting in four identical cylinders.
  2. Select all four cylinders, apply a Bend modifiers, and adjust the Angle just enough to see the results of the bend.
  3. Choose Hold from the Edit menu.

    4. You now have four cylinders with a single instance of a Bend modifier applied to all.

  4. Select two of the cylinders, and click the Make Unique button.
  5. Choose Yes in the resulting dialog.

    6. The two selected cylinders now each have unique Bend modifiers, while the remaining two cylinders share the original Bend. You can see this by selecting each cylinder and tweaking the Bend Angle.

  6. Choose Fetch from the Edit menu, and answer Yes.
  7. Select two cylinders again, and click Make Unique.
  8. Choose No in the resulting dialog.

    9. The two selected cylinders now share an instance of a Bend, but it’s a different instance than that shared by the other two cylinders. Again, you can see this by selecting each of the cylinders and tweaking the Bend Angle spinner. You can also turn on Show Dependencies in the Views menu to see the relationship between the four cylinders and the Bend modifiers.

    Note: The Make Unique function in the Track View also provides these two options.


When Space Warps Become Modifiers

Space warps can now be created in two waysin the original method, as objects in the scene that are bound to the other objects they affect, or in a new way in which the space warps is assigned in the same way as an object modifier, and is carried with the object.

Reference

Space Warp: This is the original world space modifier in which you create an object and bind it to a target object. The target object is modified in world coordinates by the space warp.

World Space Modifier: For lack of a better term, at present, this document will refer to the second type of world-space modifier as... a “world space modifier,” since that term was never used in the original docs. Eventually, we’ll find a better terminology to break this down. At any rate, this new type of WSM does not exist as its own object, but is instead applied from the Modify panel, as you would a standard object modifier (or object space modifier).

The new world space modifier (or WSM) is applied exactly the same as an object modifier, but it uses world space rather than object space for its effect. You’ll find the new WSM’s by clicking the More button in the Modify panel and displaying the Modifiers dialog. The list of modifiers is now split into two categories, labeled “OBJECT-SPACE MODIFIERS” and “WORLD-SPACE MODIFIERS.” In addition, an asterisk precedes the WSM’s to distinguish them from the OSM’s. When you assign a WSM to an object, it appears in the Stack in the same area as the space warps, between the object modifiers and the transforms.


Camera Map (WSM)

The Camera Map world space modifier is similar to the Camera Map modifier, in that it applies UVW mapping coordinates to the object based on a specified camera. As a result, if you assign the same map as a Screen environment to the background as you apply to the object, the object is invisible in the rendered scene.

The main difference between the WSM version of Camera Map and the OSM version is that, when you move the camera or the object using the OSM version, the object becomes visible, because the UVW coordinates are fixed to the object’s local coordinates. When you move the camera or object using the WSM version, the object remains invisible because world coordinates are used instead.

The WSM Camera Map consists of a single Pick Camera button. Click the button, and then click the camera you want used.

Note: You can get a very similar effect to WSM Camera Map by applying a diffuse map to an object using environment mapping set to be the same method as the map used for the background. In that case, however, the object will remain invisible no matter which camera renders the scene. The WSM Camera Map, however, is set to a specific camera. Thus, you can manipulate the effect by alternating between two cameras that begin by sharing the same location. As you move the non-specified camera, the object becomes visible. If you switch back to the other camera, the object again is invisible.


Path Deform (WSM)

This world space modifier deforms an object based on a shape spline or NURBS curvea path. With the following exceptions, this world space modifier works the same as the PathDeform modifier. See the PathDeform modifier for a detailed description and reference of how Path Deform works.

Reference

Since this is a world space rather than an object space modifier, the object is affected in world space coordinates, and also affected by the relative position of the path to the object. Thus, if you transform the object relative to the path, or vice-versa, it has an affect on the deformation.

Generally speaking, this WSM Path Deform leaves the path in place while moving the object to the path, while the Path Deform modifier leaves the object in place while moving the path to the object.

There’s an additional Move to Path button in the command panel. Click this to move the object from its original position to the start of the path. Note that, when you first pick a path, the object is deformed by the path based on the offset distance between the first vertex in the path and the object’s location. Thus, as you adjust the Percent spinner, for example, the result will be distorted depending on the offset distance.

Important: Using the Move to Path button applies a transform to the object that’s not removed if you later remove the Path Deform binding from the object. (Although you can Undo the transform immediately after it’s been performed.) If the Animate button is on when you perform Move to Path, transform keys are created.

Note: This version of Path Deform replaces the space-warp version that shipped with previous versions of 3DS MAX, and it uses slightly different algorithms. As a result, when you load a scene containing an old Path Deform, the affected object will appear in a different location. To fix this, simply select the object, and then open the Modify panel, and go to the Path Deform level in the Stack. The object will jump to its correct position. You can also delete the original space warp icon, since it’s no longer used.

How To

Example: Using the Path Deform (WSM) Modifier

In the above example, a copy of the path was moved to the object, which remained, more or less, in place while being deformed by the path. The WSM version of the Path Deform modifier leaves the path in place, and moves the object.

  1. Select the text object, and then remove the Path Deform modifier from the Stack.
  2. Apply a Path Deform World Space Modifier.
  3. Click Pick Path, and select the circle.

    4. The text object flips around and moves in world space. Note that its orientation and deformation are difficult to analyze because there’s an offset distance between the path and the object. You’ll remove that in the next step.

  4. Click the Move to Path button.

    5. The text object is transformed so that its local Z axis is aligned with the path and its position is at the first vertex of the path.

    In the following steps, you’ll use various controls to re-orient the text object so that it’s at the front of the circle and readable from the Front viewport.

  5. Choose the X option in the Path Deform Axis area to place the length of the text object along the path.
  6. Adjust the Percent spinner to -25 to move the text to the front of the circle.
  7. Adjust the Rotation spinner to -90 to rotate the text so it faces the Front viewport.
  8. Turn on Animate, go to frame 100, and set Percent to -125.
  9. Play the animation to watch the text run around the circle.

Example: A Growing Vine

  1. Using the Line tool and Editable Spline to create a path of where the vine will grow.
  2. Create a Cone, and apply the Path Deform (WSM) modifier.
  3. Pick the path, and then click Move to Path. (The local Z axis of the cone should be along the path.)
  4. Go to frame 100, and turn on Animate.
  5. Increase the Stretch value to stretch the cone along the path until it reaches the end. There won’t be enough height segments in the cone, but you can fix that with the next step.
  6. Go back in the Stack to the Cone parameters, and increase the Height segments until the stretched cone is smooth on the path.
  7. Play the animation.

    8. The cone grows along the path, like a vine.


Patch Deform (WSM)

Deforms an object based on the contours of a patch object. This world space modifier works the same as the Patch Deform world space modifier, but uses a patch instead of a shape spline. With the exception of the Move to Patch button, its parameters are the same as those in the Patch Deform object modifier.

See Patch Deform object modifier


SurfDeform (WSM)

The Surface Deform (WSM) modifier works the same as the Patch Deform (WSM) modifier, except that it uses a NURBS Point or CV surface instead of a patch.

See Patch Deform (WSM) modifier.


Map Scaler (WSM)

Map Scaler maintains the scale of a map applied to an object. This lets you resize the object without altering the scale of the map. Typically, you might use this to maintain the size of a map regardless of how the geometry is rescaled.

Note that this WSM modifier warp is designed primarily for vertically oriented walls, such as those in an architectural model. Its use on other forms will be unpredictable.

Reference

Map Scaler Parameters

Scale: Represents the size of one repeat of the texture pattern. Size is measured in current scene units. Repeats occur across the object in the U direction. The default scale is 100.

Wrap Texture: When checked, Map Scaler attempts to wrap the texture evenly around the object. This option requires more computing, but usually produces the most satisfactory results.

Up Direction Area

World Z Axis : Choose this to align the map with the Z axis of the world.

Note: If you choose this option, when you rotate the object, the mapping will not rotate with it, but remain fixed to the world coordinates.

Local Z Axis: Choose this to align the map with the local Z axis of the object.

How To


Wave (Modify Panel)

Wave

The Wave modifier produces a wave effect in an object's geometry. You can set either of two waves or their combination. Wave uses a standard gizmo and center, which you can transform to increase the possible wave effects.

The Wave space warp has similar features. It is useful for applying effects to a large number of objects.

Wave Modifier Applied

Reference

Wave Parameters

Amplitude 1/ Amplitude 2: Amplitude 1 produces a sine wave from one edge to the other, while Amplitude 2 creates a wave between the opposite edges. Switching a value from positive to negative reverses the position of peaks and troughs.

Wave Length: Specifies the distance in current units between the crests of both waves.

Phase: Shifts the wave pattern over the object. Positive numbers move the pattern in one direction, while negative numbers moves it in the other. This effect is especially clear when animated

Decay: Limits the effect of the wave generated from its origin. A positive decay value decreases the amplitude at increasing distance from the center. As this value increases, the wave is concentrated at the center and flattened until it disappears (completely decays). A negative decay value increases the amplitude at increasing distance from the center. Even small negative values can have a large effect on the outer edges of a wave.

Phase effect on wave

Positive and negative decay effects on wave

How To

To wave an object:

  1. Select an object and choose Wave from the More list on the Modifiers rollout. To see the effect clearly, apply Wave to a broad, flat object with many segments.
  2. Set one or both values for amplitudeÑthe vertical height of the wave in current units.

    3. Amplitude 1 produces a sine wave from one edge to the other, while Amplitude 2 creates a wave between the opposite edges. Switching a value from positive to negative reverses the position of peaks and troughs.

  3. Set the length of the waveÑthe distance in current units between crests of both waves.

    4. The greater the length, the smoother and more shallow the wave for a given amplitude.

To add a phase effect:

  • Set a phase value to shift the wave pattern over the object. Positive numbers move the pattern in one direction, while negative numbers move them in the other. This effect is especially clear when animated.

To add a decay effect:

  • Set a decay value to increase or decrease the amplitude.

A positive decay value decreases the amplitude at increasing distance from the center. As this value increases, the wave is concentrated at the center and flattened until it disappears (completely decays).

A negative decay value increases the amplitude at increasing distance from the center. Even small negative values can have a large effect on the outer edges of a wave.


Ripple (Modify Panel)

Ripple

The Ripple modifier produces a concentric rippling effect in an objects geometry. You can set either of two ripples or their combination. Ripple uses a standard gizmo and center, which you can transform to increase the possible ripple effects.

The Ripple space warp has similar features. It is useful for applying effects to a large number of objects.

Ripple modifier applied

Reference

Ripple Parameters

Amplitude 1/ Amplitude 2: Amplitude 1 produces a ripple across the object in one direction, while Amplitude 2 creates a similar ripple at right angles to the first.

Wave Length: Specifies the distance between the peaks of the wave. The greater the length, the smoother and more shallow the ripple for a given amplitude.

Phase: Shifts the ripple pattern over the object. Positive numbers move the pattern inward, while negative numbers move it outward. This effect is especially clear when animated.

Decay: Limits the effect of the wave generated from its center. A default decay of zero means that the wave will generate infinitely from its center. Increasing the decay value reduces the distance that the wave is generated. A negative decay value increases the amplitude at increasing distance from the center. Even small negative values can have a large effect on the outer edges of a ripple.

How To

To ripple an object:

  1. Select an object and choose Ripple from the More list on the Modifiers rollout. To see the effect clearly, apply Ripple to a broad, flat object with many segments.
  2. Set one or both values for amplitudeÑthe vertical height of the ripple in current units.

    3. Amplitude 1 produces a ripple across the object in one direction; Amplitude 2 creates a similar ripple at right angles to 1.

  3. Set the length of the rippleÑthe distance in current units between the crests of both ripples.

    4. The greater the length, the smoother and more shallow the ripple for a given amplitude.

To add a phase effect:

Phase effect on Ripple

  • Set a phase value to shift the ripple pattern over the object. Positive numbers move the pattern inward, while negative numbers move it outward. This effect is especially clear when animated.

To add a decay effect:

  • Set a decay value to increase or decrease the amplitude in relation to the center.

A positive decay value decreases the amplitude at increasing distance from the center. As this value increases, the ripple is concentrated at the center and flattened until it disappears (completely decays).

A negative decay value increases the amplitude at increasing distance from the center. Even small negative values can have a large effect on the outer edges of a ripple.


STL-Check Modifier

Checks an object to see if it’s correct for exporting to an .stl (stereolithography).. Stereo lithography files are used with $100,000 machines that produce prototype physical models based on the data in the .stl file. To create a physical model, an .stl file must describe an object that is a complete and closed surface. Using STL-Check to test your geometry before you export it can save time and money when you create the physical model.

Reference

Errors Area

Choosing one of these options displays incorrect geometry specific to the choice, and marks it depending on the option chosen in the Selections area.

Open Edge: Checks for open edges (holes).

Double Faces: Checks for faces that share the same 3D space.

Spike: Checks for spikes, which are isolated faces that share only one edge with the object.

Multiple Edges: Checks for faces that share more than one edge.

Everything: Checks for all of the above.

Selections Area

The options in this area specify the level of incorrect geometry that’s selected based on the Errors options.

Don’t Select: No geometry is selected.

Select Edges: Edges are selected, assuming there are errors found.

Select Faces: Faces are selected, assuming there are errors found.

Change Mat-ID: When checked, the faces that are in error (as specified by the currently chosen Errors option) are assigned the material ID specified by the spinner below. This provides a method of visually displaying the offending faces in a shaded viewport, after first assigning a multi/sub-object material to the object.

(spinner) ??

Check: Check to perform the STL check. For complex objects, expect a pause between the time you check this, and the time you see the reported errors in the Status area.

Status Area:Displays the number of errors when Check is checked.

How To

To check an object for STL compatibility, do this:

  1. Select the object and apply the STL-Check modifier.
  2. Check the “Check” checkbox.

The Status area shows if errors are found. If so, STL-Check indicates the errors by selecting the problem geometry, assigning it a special material ID, or both.


Editable Mesh Modifier (Vertex)

Reference

Edit Vertex Parameters

Named Selections Area

Copy:

Paste:

Weld Area

Target: Enters weld mode, which allows you to select vertices and move them around. While moving, the cursor changes to the move cursor as usual, but when you position the cursor over an Unselected vertex the cursor changes to a + cursor. Letting go of the mouse at that point welds all selected vertices to the target vertex they were dropped on.

Selected: Welds selected vertices that fall within the tolerance specified in the Weld Threshold spinner. All line segments become connected to the resulting single vertex.

Break: Click this to break all selected vertices so that none of the selected vertices are used by more that one face. If a vertex is isolated or already only used by one face, it is unaffected

Weld Thresh:

Target Thresh:

Affect Region Area

Affect Region: Affects the action of the Move, Rotate or Scale functions. When checked, applies a spline curve deformation to the unselected vertices surrounding the transformed selected vertices. This provides a magnet-like effect with a sphere of influence around the transformation.

Ignore Backfacing: When this box is checked, deselected vertices whose normals are facing in the opposite direction to the average normal of the selected vertices are not affected by the affect region influence. This feature is especially useful when you want to pull points on the face of a thin two-sided object, such as a thin box, but don’t want to affect points on the other side of the object

Edge Distance: Check this to limit the region affected by the number of edges between the selected vertex and the affected vertices. In other words, the affected region is measured in terms of “edge-distance” space, along the surface, rather than real space.

Iterations: Set this to specify the maximum number of edges between the selected vertex and the regional vertices that will be affected.

Edit Curve: Displays a dialog box to allow editing of the spline curve that controls the sphere of influence of the applied transform.

Align To Area

Construction Plane: Aligns the selected vertices to the current construction plane. The current plane is specified by the active viewport in the case of the home grid. When using a grid object, the current plane is the active grid object.

Viewport: Aligns selected vertices to the 0,0,0 plane of the active viewport. In the case of orthographic viewports, this is the same effect as aligning to the construction grid when the home grid is active. When aligning to a perspective viewport (including camera and spotlight views), the vertices are reoriented to be aligned to a plane that is parallel to the camera’s viewing plane. (Perspective viewports have invisible camera planes.) In these cases, the selection of vertices is not translated but only rotated.

Miscellaneous Area

Create: Adds vertices to a single selected mesh object. After selecting the object and clicking on Create, click anywhere in space to add free-floating vertices to the object. The new vertices are placed on the active construction plane.

Delete: Deletes selected vertices.

Collapse: Collapses selected vertices into an averaged vertex

Detach: Detaches the selected vertices and attached faces as a separate object.

Hide: Hides the selected vertices. This does not hide the attached faces but simply makes the vertices unavailable for editing.

Unhide All: Unhides any previously hidden vertices.

Remove Isolated Vertices: Click this to delete all isolated vertices in the objectregardless of the current selection.

Select By Vertex Color Area

Select: Click to select all vertices whose RGB values either match the swatch labeled Color, or are within the range specified by the RGB spinners.

Color: Click to display the color selector, in which you can specify a color to match.

Range: Set these to specify a range for the color match. That is, all three RGB values in the vertex color must either match the color specified by the Color swatch in Select By Vertex Color, or be plus or minus the values in the Range spinners. The default setting for these spinners is 10.

How To

Generally, here are the steps you’d take to select vertices by color:

  1. Specify a “slop” range in the RGB Range spinners.
  2. Click the Color swatch, and specify the color of vertex you want selected.
  3. Click the Select button.

    4. All vertices matching the color, or within the RGB range are selected.

You can add to the selection by holding CTRL when you press the Select button, and you can subtract from the selection by holding the ALT key.

Tip: You can select all vertices of the same color by first selecting the vertex you want matched, dragging a copy of the Vertex Color swatch to the Select By Vertex Color swatch, and then clicking the Select button. (If you want an exact match, be sure and set the RGB Range spinners to zero first.)


Editable Mesh Modifier (Face)

Reference

Selection Area

The three icons at the top of the Edit Face rollout let you specify the method of face selection. From left to right, they are:

Face Icon: Click to select a triangular face beneath the cursor; region selection selects multiple triangular faces within the region.

Polygon Icon: Click to select all coplanar faces (defined by the value in the Planar Threshold spinner) beneath the cursor. Usually, a polygon is the area you see within the visible wire edges. Region selection selects multiple polygons within the region.

Element Icon: Click to select all contiguous faces in an object. Region selection selects the same.

By Vertex: When this box is checked, you can select faces by drawing regions around vertices or by clicking on vertices with the mouse. When you click a vertex, any faces that use that vertex are selected.

Ignore Backfaces: When this is on (the default), selection of faces selects only those faces whose normals are visible in the viewport. When off, selection includes all faces, regardless of the direction of their normals. Note that the state of the Backface Cull setting in the Display branch no longer affects face selection. Thus, if Ignore Backfaces is off, you can select faces even if you can’t see them.

Ignore Visible Edges: This checkbox is only enabled when the polygon face selection method is chosen. When the Ignore Visible Edges checkbox is off (the default), face selection works as it did in R1. That is, no matter what the setting of the Planar Thresh. spinner, when you click a face, the selection will not go beyond the visible edges. When this checkbox is on, face selection ignores the visible edges, using the Planar Thresh. setting as a guide. Generally, if you want to select a “facet” (a coplanar collection of faces), you’d set the Planar Threshold to 1.0. On the other hand, if you’re trying to select a curved surface, you’ll need to increase the value, depending on the amount of curvature.

Planar Threshold: Set this to specify the threshold value that determines which faces are coplaner for Polygon face selection.

Extrusion Area

ExtrusionExtrudes selected faces outward or inward, based on their normals or an average of their selected normals.

Tessellation Area

Tessellates (subdivides) the selected faces.

Tessellate: Click this button to tessellate selected faces based on the Edge, Face Center and Tension controls.

Edge/Face-Center: Edge inserts vertices in the middle of each face edge and draws three lines connecting those vertices. As a result, four faces are created out of one face. Face-Center adds a vertex to the center of each face and draws three connecting lines from that vertex to the three original vertices. As a result, three faces are created out of one face.

Tension: Active in Edge mode only. Increases or decreases the Edge tension value. A negative value pulls vertices inward from their plane, resulting in a concave effect. A positive value pulls vertices outward from their plane, resulting in a rounding effect.

Explode Area

Explodes the selected faces into multiple elements or objects based on the angles of its edges.

Angle Thresh: When this is on (the default), selection of faces selects only those faces whose normals are visible in the

Explode Into: Specifies whether the exploded faces become the elements of the current object or seperate objects.

Align To Area

Construction Plane: Aligns the selected faces to the current construction plane. The current plane is specified by the active viewport in the case of the home grid. When using a grid object, the current plane is the active grid object.

Viewport: Aligns selected faces to the 0,0,0 plane of the active viewport. In the case of orthographic viewports, this is the same effect as aligning to the construction grid when the home grid is active. When aligning to a perspective viewport (including camera and spotlight views), the faces are reoriented to be aligned to a plane that is parallel to the camera’s viewing plane. (Perspective viewports have invisible camera planes.) In these cases, the selection of faces is not translated but only rotated.

Miscellaneous Area

Detach: Creates a new object by detaching the selected faces under a new name. You're prompted to enter a name for the new object. Detached faces leave a hole in the original object when you move them to a new position.

Collapse: Collapses selected faces by welding their vertices to the vertex in the center.

Make Planar: Forces all selected faces to become coplanar. The plane's normal is the average surface normal of the selected faces.

Build Face: Allows you to build new faces by connecting three existing vertices of the same object. This button puts you into a drawing mode in which you click and drag lines between sets of three vertices to create faces.

Delete: Deletes selected faces.

Hide: Hides selected faces. (The Select Invert command on the 3DS MAX Edit menu is useful for selecting faces to hide. Just select the faces you want to focus on, choose Select Invert, then click the Hide button.)

Unhide All: Unhides any hidden faces.

Edit Surface Parameters

Material Area

ID: Cycles through the numbered materials in the multi/sub-object material.

Select by ID: Displays a dialog for you to enter the number corresponding to one of the materials in the multi/sub-object material. Faces with that numbered material assigned to them are selected.

Smoothing Groups Area

Auto Smooth: Sets the smoothing groups based on the angle between faces. Any two adjacent faces will be put in the same smoothing group if the angle between their normals is less than the threshold angle.

Select by Smooth Group: Displays a dialog that shows the current smoothing groups. Select a group by clicking the corresponding numbered button and clicking OK.

Threshold: Set this to specify the maximum angle between the normals of adjacent faces that determines whether those faces will be put in the same smoothing group.

Normals

Flip: Reverses the direction of the surface normals of the selected faces.

Flip Normal Mode: Click this to activiate Flip Normal Mode. While the button is active, the normal of any face you click is flipped.

Tip: The best way to use this function is to first set up your viewport in Smooth+Highlight mode along with Edged Faces. Secondly, if you use the function with default settings, you’ll be able to flip a face away from you, but you won’t be able to flip it back. For best results, turn off the Ignore Backfaces checkbox near the top of the Editable Mesh command panel. This will let you click on any face and flip the direction of its normal, regardless of its current direction.

Show Normals: Check this to display normals in the viewport. Normals are displayed as arrows.

Scale: Set this specify the size of the normals that are displayed in the viewport when Show Normals is selected.

Select By Normals: Click this button to select all faces whose normals are facing toward the active viewport, or facing away from the active viewport, depending on the active option button below this button.

Front Facing: When this option is chosen, and you click Select by Normals, all faces whose normals are toward the active viewport become selected.

Back Facing: When this option is chosen, and you click Select by Normals, all faces whose normals are away from the active viewport become selected.

If you hold down CTRL when you click Select By Normals, the selected faces are added to the currently selected faces. If you hold down ALT, the faces that would be selected are removed from the currently selected faces.

How To

To align faces, do this:

  1. Select the faces you want aligned.
  2. Click either the Construction Plane button or the Viewport button.

    3. You are now in a mode that awaits your next selection.

  3. Click in a viewport to select one of the selected faces.

    4. The selected face is aligned with either the construction plane or the viewport, depending on which button you chose. All of the other selected faces are moved with it, while maintaining their original relationship with each other.

Since the Face Align functions don’t collapse all the selected faces into a plane, you can use them to align elements within an object. First, select the element, and then align it by selecting one of its faces.


Editable Mesh Modifier ( Edge)

Reference

Edit Edge Parameters

Lets you extrude selected edges. The edges appear as dashed lines. Works in a similar fashion to Face extrusion.

Extrusion Area

Extrude: Click, then either drag to extrude the selected edge(s), or adjust the spinner to perform the extrusion.

Amount: Set this to specify the amount to extrude the edge.

Visibility Area

Sets the visibility of the edges. Invisible edges (also called construction lines) appear in the viewports when Edges Only is turned off in the Display command panel, or when you’re in Edge editing mode. The visibility of edges is primarily of importance when an object is being rendered using a wireframe material.

Visible: Makes selected edges visible.

Invisible: Makes selected edges invisible, so they won’t be displayed in Edges Only mode

Auto Edge: Automatically determines edge visibility based on adjacent edge angles, with the angle set by the Threshold spinner.

Angle Thresh: Set this to specify the angle threshold for the auto edge function.

Miscellaneous Area

.Divide: Divides the selected edge into two edges with a new vertex at the venter.

Turn: Rotates the edge within its bounding

Delete: Deletes selected edges

Collapse: Collapses selected edges by welding the vertex at one end of each selected edge to the vertex at the other end.

Create Shape: Creates a spline shape based on selected edges.

Select Open Edges: Click this to select all edges with only one face. In most objects, this will effectively show you where missing faces exist.

How To

To create a shape from one or more edges, do this:

  1. Select the edges you want to make into shapes.
  2. Click Create Shape.

    3. The Create Shape dialog appears.

  3. Enter the name of the shape you’re creating.
  4. Select the Shape Typeeither Smooth or Linear.
  5. Check whether or not you want to Ignore Hidden Edges.
  6. Click OK.

    7. The resultant shape consists of one or more splines whose vertices are coincident with the vertices in the selected edges. The Smooth option results in vertices using smooth values, while the Linear option results in linear splines with corner vertices.

    When you region-select edges, all edges are highlighted, including hidden edges, which are displayed as dashed lines. As a default, the Create Shape function ignores the hidden edges, even though they’re selected. Uncheck the Ignore Hidden Edges item if you want to include the hidden edges in the calculation.

    If the selected edges are not continuous, or if they branch, the resultant shape will consist of more than one spline. When the Create Curve function runs into a branching ‘Y’ in the edges, it makes an arbitrary decision as to which edge produces which spline. If you need to control this, select only those edges that will result in a single spline, and perform Create Curve repeatedly to make the correct number of shapes. Finally, use Attach in the Editable Spline to combine the shapes into one.


Editable Mesh Modifier (Object)

Reference

Attach: Attaches the selected mesh to another mesh in the scene. The object you’re attaching to must also be a mesh.hen you attach an object, the materials of the two objects are combined in the following way:

  • If the object being attached does not have a material assigned to it, it inherits the material of the object it is being attached to.
  • Likewise if the object you're attaching to doesn't have a material, it inherits the material of the object being attached.
  • If both objects have materials, the resulting new material is a multi/subobject material that encompasses the two input materials.

Attach Multiple: In 3DS Max 1.x, when you attached objects that had been assigned multi/subobject materials, you could get into situations in which the resultant multi/subobject material might have duplicate submaterials, or the face-level material assignments might even shift. Now, when you perform this type of attachment, a dialog appears offering three methods of combining the submaterials and the material IDs in the two objects.

The Attach Options dialog provides the following controls:

Match Material IDs to Material: The number of material IDs in the attached objects are modified so they’re no greater in number than the number of submaterials assigned those objects. For example, if you have a box with only two submaterials assigned to it, and you attach it to another object, the box will have only two material IDs, instead of the six it was assigned on creation. (See also the Condense Material ID’s checkbox, below.)

Match Material to Material IDs: Maintains the original ID assignment in the attached objects by adjusting the number of submaterials in the resultant multi/sub-object material. As an example, if you attach two boxes, both assigned single materials, but with their default assignment of 6 material IDs, the result would be a multi/sub-object material with 12 submaterialssix containing instances of one box’s material, and six containing instances of the other box’s material. Use this option when it’s important to maintain the original material ID assignments in your geometry.

Note: If you want to make the instanced submaterials unique, select them in the Track View, and click the Make Unique button in the Track View toolbar.

Do Not Modify Mat IDs or Material: This works as 3DS Max 1.x did. Note that, if the number of material IDs in an object are greater than the number of submaterials in its multi/subobject material, then the resultant face-material assignment might be different after the Attach.

Condense Material IDs: This only affects the Match Material IDs to Material option. When this is checked, duplicate submaterials or submaterials that aren’t used in the objects are removed from the multi/sub-object material that results from the Attach operation.

Warning: The warning message states that the Attach might not be completely undoable. This is because material and material ID assignment is not, generally, undoable. It depends on the material assignments to the objects, and the state of the Condense Material IDs checkbox.

  • If no materials are assigned to the object (other than their default object colors), the Attach operation is completely undoable.
  • If materials are assigned to the objects, but Condense is unchecked, you can partially undo the Attach. The attached object will be detached, but the original object will now have a Multi/Sub-Object material containing both its original material along with an instance of the previously attached object’s material.
  • If materials are assigned to the objects and Condense is checked, you can partially undo the operation. In this case, the attachment remains between the two objects, but a copy is created of the attached object. For example, if you attach Object B to Object A, and then Undo, you’ll now have two objects. One will consist of the original Object A and Object B, and the other will be a copy of the Object B.

Generally, when using Attach, we recommend the following:

  • In most cases, use the first option (Match Material IDs to Material) while keeping Condense Material IDs checked. This will maintain the appearance of the objects, and result in the fewest additional submaterials or IDs. Perhaps the only reason you would not use this option is if you needed to maintain the original ID assignments.
  • Use the second option (Match Material to Material IDs) only when you need to maintain the original material ID assignments.
  • Avoid using the third option, unless you need to repeat an R1 attachment for compatibility with a previous project.
  • Leave Condense Material IDs checked, unless you have an, as yet, unassigned submaterial that you want to keep for future assignment.
  • Perform an Edit/Hold before performing the Attach, and then you won’t have to worry about Undo.

Note: These options are not available when performing an Attach from the Edit Mesh modifier. In this case, the original R1 method is used.


Edit Spline Modifier

Provides editing tools specific to different levels of the selected shape (spline, segment, vertex). Most of the functions of the Edit Spline modifier become part of the editable spline. See Editable Spline for a complete Parameter reference.

Editable Spline


NSurf Sel Modifier

Two modifiers, NCurve Sel and NSurf Sel, let you place a NURBS sub-object selection on the modifier stack. This lets you modify only the selected sub-objects. Also, selected curve sub-objects are Shape objects that you can use as paths and motion trajectories.

NSurf Sel can select any kind of NURBS sub-objects except imports. NCurve Sel selects only objects available to top-level curve objects. In other words, it can select any kind of NURBS sub-objects except surfaces and imports. Each sub-object selection is of one particular sub-object level only.

How To

To use a NURBS select modifier:

  1. With a NURBS object selected in the Modify command panel, apply either NCurve Sel or NSurf Sel.

    2. The select modifiers have no controls at the object level.

  2. Click to turn on Sub-Object in the Modifier Stack rollout, and choose a sub-object level from the drop-down list.

    3. The select modifiers have the same selection controls you see for the corresponding sub-object type, except that selecting connected curves or surfaces is not available.

    While applying the modifier, you can also select NURBS sub-objects by name. Turn on the Plug-In Keyboard Shortcut Toggle button in the status bar, and then press the “H” key. This displays a select-by-name dialog that lists only sub-objects at the current level. Choose one or more objects in the list, and then click Select.

  3. Use the selection controls to create a selection set of the chosen sub-object type.

    4. With the NSurf Sel modifier, the selection can be of any NURBS sub-object level except imports. With NCurve Sel, the selection can be of any sub-object level except surfaces and imports.

Once you have used the modifier to create the selection, you can apply other modifiers to it. If the selected sub-object is a curve, you can also use it as a path or trajectory.

Note: The NURBS select modifiers don’t support copy and paste of selections as Mesh Select does. Copying and pasting mesh selections is based on vertex indexes. NURBS selections are based on object IDs, which are unique to each model.


NCurve Sel Modifier

Two modifiers, NCurve Sel and NSurf Sel, let you place a NURBS sub-object selection on the modifier stack. This lets you modify only the selected sub-objects. Also, selected curve sub-objects are Shape objects that you can use as paths and motion trajectories.

NSurf Sel can select any kind of NURBS sub-objects except imports. NCurve Sel selects only objects available to top-level curve objects. In other words, it can select any kind of NURBS sub-objects except surfaces and imports. Each sub-object selection is of one particular sub-object level only.

How To

To use a NURBS select modifier:

  1. With a NURBS object selected in the Modify command panel, apply either NCurve Sel or NSurf Sel.

    2. The select modifiers have no controls at the object level.

  2. Click to turn on Sub-Object in the Modifier Stack rollout, and choose a sub-object level from the drop-down list.

    3. The select modifiers have the same selection controls you see for the corresponding sub-object type, except that selecting connected curves or surfaces is not available.

    While applying the modifier, you can also select NURBS sub-objects by name. Turn on the Plug-In Keyboard Shortcut Toggle button in the status bar, and then press the “H” key. This displays a select-by-name dialog that lists only sub-objects at the current level. Choose one or more objects in the list, and then click Select.

  3. Use the selection controls to create a selection set of the chosen sub-object type.

    4. With the NSurf Sel modifier, the selection can be of any NURBS sub-object level except imports. With NCurve Sel, the selection can be of any sub-object level except surfaces and imports.

Once you have used the modifier to create the selection, you can apply other modifiers to it. If the selected sub-object is a curve, you can also use it as a path or trajectory.

Note: The NURBS select modifiers don’t support copy and paste of selections as Mesh Select does. Copying and pasting mesh selections is based on vertex indexes. NURBS selections are based on object IDs, which are unique to each model.


FFD (Box/Cyl) Modifier

The Box and Free Form Deformation (FFD) lets you create a modifier gizmo object that’s a box-shaped lattice free-form deformation object.

The Cylinder and Free Form Deformation (FFD) lets you create a modifier gizmo object that’s a Cylinder-shaped lattice free-form deformation object.

These modifiers act as supersets of the FFD Modifiers. Both FFD Box and FFD Cylinder are available as both object modifiers and a space warps.

FFDs provide a method of deforming an object by adjusting the control points of a lattice. The offset position of the control points to the original lattice source volume cause the distortion of the affected object.

The source lattice of an FFD modifier is fit to the geometry it’s assigned in the Stack. This might be a whole object, or a sub-object selection of faces or vertices.

Reference

FFD Parameters

Dimensions Area

Lets you adjust the unit dimensions of the source volume, and specify the number of control points in the lattice. Note that the point dimensions also show up beside the modifier name in the Stack list.

(label): Displays the current number of controls points in the lattice. For example: 3x4x4.

Set Number of Points: Displays a dialog containing three spinners, labeled Length, Width, and Height, plus OK/Cancel buttons. Specify the number of control points you want in the lattice, and then click OK to make the change.

Note: Changes to dimension should be made before you adjust the positions of the lattice control points. When you change the number of control points with this dialog, any adjustments you’ve already made to the control points are lost. (You can undo this use of this dialog, however.)

Display Area

Affects the display of the FFD in the viewports.

Lattice: When this item is checked, lines are drawn connecting the control points to make a grid. Although the viewports can sometimes become cluttered when these extra lines are drawn, it helps to visualize the lattice.

Source Volume: When this item is checked, the control points and lattice are displayed in their unmodified state. This is an important display when you’re adjusting the source volume to affect specific vertices that lie within or without it. See the All Vertices and Only in Volume options, next.

Deform

Provides controls that specify which vertices are affected by the FFD.

Only In Volume: When this option is selected, only vertices that lie inside the source volume are deformed. Vertices outside the source volume are not affected.

All Vertices: When this option is selected, all vertices are deformed regardless of whether they lie inside or outside the source volumedepending on the value in the Falloff spinner. The deformation outside the volume is a continuous extrapolation of the deformation inside the volume. Note that the deformation can be extreme for points far away from the source lattice.

Falloff : This spinner, which is only enabled when All Vertices is chosen, determines the distance from the lattice that the FFD effect will decrease to zero. When this spinner is set to 0, it’s effectively turned off, and there is no falloffthat is, all vertices are affected regardless of how far they are from the lattice. The units of the Falloff parameter are actually specified relative to the size of the lattice. So a falloff of 1 means that the effect will go to 0 for points that are a lattice width/length/height away from the lattice (depending on which side they are).

Tension/Continuity: Lets you adjust the tension and continuity of the deformation splines. Although you can’t actually see the splines in an FFD, the lattice and control points represent the structure that controls the splines. As you adjust the control points, you likewise alter the splines (which move through each of the points). The splines, in turn, deform the geometry of the object. By altering the tension and continuity of the splines, you alter their effect on the object.

Selection

The buttons here provide additional methods of selecting the control points. You can toggle the state of any combination of the three buttons to select in one, two, or three dimensions at once.

All X, All Y, All Z : When one of these buttons is on and you select a control point, all control points along the local dimension specified by the button are selected as well. By turning on two buttons, you can select all control points in two dimensions.

About: Click this to display a dialog with copyright and licensing information.


Hierarchy Panel

Provides access to tools to adjust the hierarchical linkage between objects.

By linking one object to another you create a parent-child relationship. Transformations applied to the parent are also transmitted to the child. By linking more objects to both parent and child objects you can create complex hierarchies.

Three common uses of linking are:

  • Creating complex motions
  • Simulating jointed structures
  • Providing the basis for inverse kinematics

The Hierarchy Panel is divided into 3 areas:

Pivot Panel

I K Panel

Link Info


Pivot Panel

Pivot

All objects in 3D Studio MAX have a pivot point. You can think of the pivot point as representing an object’s local center and local coordinate system. The pivot point of an object is used for a number of purposes:

  • Functions as the center for rotation and scaling when you select the Pivot Point transform center.
  • Sets the default location of a modifier center.
  • Defines the transform relationship for its linked children.
  • Defines the joint location for IK.

You can adjust the position and orientation of an objects pivot point at any time using the buttons in the Adjust Pivot rollout in the Hierarchy panel. Adjusting an objects pivot has no effect on any children linked to that object.

Note: The functions under the Adjust Pivot rollout cannot be animated. Adjusting an objects pivot on any frame changes it for the entire animation. Use caution when adjusting the pivot of an animated object. Adjusting the pivot on one frame might produce unexpected results in another part of the animation.

There are two rollouts in the Pivot panel:

Adjust Pivot

Adjust Transform


Adjust Pivot (rollout)

You can adjust the position and orientation of an object's pivot point at any time using the buttons in Hierarchy Panel/Adjust Pivot rollout. Adjusting an object's pivot has no effect on any children linked to that object.

The functions under the Adjust Pivot rollout cannot be animated. Adjusting an object's pivot on any frame changes it for the entire animation.

Reference

Move/Rotate/Scale area

Each of the buttons in the Move/Rotate/Scale area turn blue when selected to indicate you’re in a mode. When any one of the buttons is active, it determines which part of the object is affected by the three buttons in the Alignment area, as well as the toolbar Transform and Align commands.

Affect Pivot Only: Only the pivot point of the selected object(s) is affected.

Note: A Scale transform has no effect on the pivot.

Affect Object Only: Only the objects (and not the pivot point) is affected.

Affect Hierarchy Only: This option affects only the Rotation and Scale tools. It applies the rotation or scale to the hierarchy by rotating or scaling the position of the pivot point without rotating or scaling the pivot point itself.

The main purpose of this mode is to aid in adjusting bones to match existing geometry. You can scale a hierarchy of bones to match geometry, and it will behave as if you moved each bone individually without scaling the individual transformations of the bones.

Note: It’s important to remember that the Align, Normal Align, and Align to View functions in the toolbar are all affected by the state of Affect Pivot Only, Affect Object Only, and Affect Hierarchy Only. Snap mode allows you to snap the pivot to its own object, or any other object in the scene.

Alignment Area

The effect of these buttons depends on whether you have set Affect Pivot Only or Affect Object Only.

If you have set Affect Pivot Only, the buttons work as follows:

Center to Object: Moves the pivot to the center of its object.

Align to Object: Rotates the pivot to align with the object's transformation matrix axes.

Align to World: Rotates the pivot to align with the world coordinate axes.

If you have set Affect Object Only, the buttons work as follows:

Center to Pivot: Moves the center of the object to its pivot location.

Align to Pivot: Rotates the object to align its transformation matrix axes with the pivot.

Align to World: Rotates the object to align its transformation matrix axes with the world coordinate axes.

Pivot area

Reset Pivot: This button resets the pivot point to the position and orientation it held when the object was first created. This is not affected by the state of the Affect Pivot Only and Affect Object Only buttons.

How To

To reposition an objects pivot point:

  1. Select an object and then turn on Affect Pivot Only in the Adjust Pivot rollout.
  2. Move or rotate the pivot.

    3. You can also use the Align, Normal Align, and Align to View on the toolbar to align the pivot.

    See the Adjust Transform help topic for related information.


Adjust Transform (rollout)

You can transform an object and its pivot without affecting its children using the buttons in Hierarchy/Pivot/Adjust Transform rollout. Adjusting an object’s transforms has no effect on any children linked to that object.

Reference

Don’t Affect Children: Turn on to limit transforms to the selected object and its axis, not to its children.

Transform: Select to reset the orientation of an objects local axis coordinates to align with the world coordinate system, regardless of the current orientation of the object.

This does not affect descendants.

When applied to closed groups, it aligns the dummy node of the parent, but keeps the children in the same place. It reorients and resizes the dummy node to correctly bind the children of the group.

Scale: Resets the scale values in the transformation matrix to reflect the new scale of the object. There is no visual change in the object.

You can use the Scale to correct Non Uniform Scale inheritance problems. If Non Uniform Scale is inherited by a child object in a hierarchy, it can result in an undesirable deformation in the child object. To correct for this, use Scale in the Adjust Transform rollout on an object before linking.

You can view the scale values of the transformation matrix of a selected object. On the toolbar, turn on the Scale button, then right click over any of the three toolbar Transform buttons (move, rotate, and scale).

How To

To reinitialize the scale of an object:

  1. Select an object.
  2. Click Scale in the Adjust Transform rollout.

    3. The XYZ values are re-initialized to 100%. This operation will prevent Non Uniform Scale inheritance if a child object is linked to this object.

    See the Adjust Pivot rollout for related information.


I K Panel

I K

Inverse kinematics (IK) is a method of manipulating linked structures where the animator positions objects at the end of the linkage and the program calculates the positions and orientations of all other objects in the linkage.

With inverse kinematics you can quickly set up and animate complex motions. The basic procedure are:

  • Building a model of a jointed structure.
  • Linking the model together and defining pivot points.
  • Defining joint behavior at the pivot points.
  • Animating the model either by manipulating objects interactively or by applying an IK calculation to follow another object in the scene.
  • Animating the model by linking or skinning the model to a Bones hierarchy using the IK Controller and then manipulating the bones.

Inverse Kinematics

Object Parameters

Auto Termination

Sliding & Rotational Joints


Inverse Kinematics (rollout)

The Inverse Kinematics rollout provides controls for applied IK. Use Apply IK to calculate the IK solution and generate Transform keys (move, rotate) for all objects in an IK chain (the IK chain must include a Follow Object). By default, keys are created at every frame.

  • Applied IK requires that one or more parts of your IK structure are bound to animated follow objects. Once bound, you can select any object in your kinematic chain and click the Apply IK button.
  • The Apply IK method of animation works best when you want objects in the kinematic chain to match the motions of other objects exactly. An example of this would be a mechanical connection that should always appear to be attached to the Follow Object.
  • Applied IK is not necessary with IK Controllers. IK Controllers solve the IK Solution in real time. You can, however, use a follow object with IK Controllers.

Reference

Apply IK: Calculates the IK Solution for each frame of the animation and creates transform keys for every object in the IK Chain A bar graph appears in the prompt line to indicate progress of the calculations.

Apply only to Keys: Solve the IK solution for keyframes that already exist for one of the end effectors.

Update Viewports: View the progress of Apply IK frame by frame in the viewports.

Clear Keys: Removes all move and rotate keys from the selected IK chain before applying IK.

Start/End: Sets the range of frames to calculate the applied IK solution. The default settings for Apply IK calculates the IK solution for every frame of the active time segment.

How To

To use Apply IK:

  1. Bind objects in your IK structure to follow objects.
  2. Animate the follow objects.
  3. Select any object in the IK structure.
  4. Click IK in the Hierarchy panel and expand the Inverse Kinematics rollout.
  5. Click Apply IK.


Object Parameters (rollout)

Object Parameters (IK)

Terminator

Use the Terminator option in the Object Parameters rollout to stop calculation of the kinematic chain before it reaches the root object of the hierarchy. A terminator object stops calculation at the terminator’s child object, the terminator itself is not affected by the IK solution. This gives you very precise control over the behavior of the kinematic chain.

Reference

Terminator: Set the base of an IK chain by defining one or more selected objects as terminators.

Selecting Terminator with the IK Controller causes the associated joint of the selected bone to be displayed in red.

Position/Orientation/Bind to Follow Object Area

Precedence

Copying, Pasting and Mirroring Joint Parameters

How To

To create a Terminator in a kinematic chain:

  1. Select an object in a kinematic chain that that you want to be the Terminator.
  2. Select Terminator in Hierarchy/IK/Object Parameters rollout.


Position/Orientation/Bind to Follow Object Area

Position/Orientation/Bind to Follow Object Areas

Use the controls in these areas to bind objects in a kinematic chain to the world or to follow objects. Use the various options to modify the behavior of the bindings.

Use weighted and axis-specific binding controls to create different weights for each binding, and to specify which axes the bound follow object influences. Use the Relative buttons to establish a relative offset with Bind Position and Bind Orientation.

Binding an Object to the World

Bind an object to the world if you want the object to hold its position and orientation as long as possible during IK operations.

Binding an Object to a Follow Object

You can bind a selected object in your hierarchy to any other object that is not a descendant of the selected object. This other object is called the follow object.

Reference

Position Area

Bind Position: Bind the selected object in the hierarchy to the world (attempts to maintain it’s location), or to a follow object, if one has been assigned. If a follow object has been assigned, then the translation of the follow object affects the IK solution.

Note: This check box has no effect on the IK Controller Position end effectors, which are always bound to their assigned joints.

Orientation Area

Bind Orientation: Bind the selected object in the hierarchy to the world (attempts to maintain it’s orientation), or to a follow object, if one has been assigned. If a follow object has been assigned, then the rotation of the follow object affects the IK solution.

Note: This check box has no effect on the IK Controller Rotation end effectors, which are always bound to their assigned joints.

R: (button): Establish a relative position offset or rotation offset between follow object and end effector

This button has no effect on the IK Controller Position end effectors. They are created on top of the joint to which they’re assigned, and automatically absolute.

If you move the joint away from the end effector, and want to reset the end effector to an absolute position, you can delete and then recreate the end effector.

Axis X/Y/Z : If one of these is turned off, the specified axis is no longer influenced by the follow object or the IK Controller Position end effector.

If you turn off Axis X in the Position Area for example, movement of the follow object (or end effector) along the X axis has no affect on the IK solution, but movement along the Y or Z axes has.

Note: that these do not constrain the movement of the follow object or end effector.

Weight: Sets the influence of the follow object (or end effector) on its assigned object, and on the rest of the chain. A setting of 0 turns off the binding. Using this value you can set the relative influence of multiple follow objects or end effectors and their priority in solving the IK solution. The higher the relative Weight value, the higher the priority.

The Weight settings are relative, there’s no point in using them if there’s only one follow object or end effector in your IK hierarchy. However, if you have a single IK Controller chain with both Position and Rotation end effectors on a single joint, you can give them different weights to give priority to either the position or rotation solution.

You can adjust the Weight for multiple joints. Select two or more objects in the hierarchy, and the Weight value represents the commonality of the selection set.

Note: Differences in the Weight values only have an effect when there is no solution that satisfies two or more opposing end effectors in the chain. In this case, the end effector with the greatest weight “wins.”

Bind to Follow Object area

Controls to bind and unbind an object in a kinematic chain to a follow object.

Text: Displays the name of the selected follow object. Displays the word “none” if no follow object is set.

Bind: Bind an object in a kinematic chain to a follow object.

Unbind: Unbind the selected object in a kinematic chain from its follow object

How To

To bind an object to the world:

  1. Select the object to be bound.
  2. Click IK in the Hierarchy panel and expand the Object Parameters rollout.
  3. Select one or both of the Bind boxes.
    • Turn on Bind Position to cause the object to attempt to maintain its current location.
    • Turn on Bind Orientation to cause the object to attempt to maintain its current orientation.

To bind an object to a follow object:

  1. Turn on Bind and select the object in a kinematic chain to be bound.
  2. Drag over to the follow object and release.
  3. Turn on Bind Orientation if you want the bound object to match the rotation of the follow object. Bind Position is automatically selected.
    • Turn off an axis (Axis: XYZ). The specified axis is no longer influenced by the follow object or the New IK Position end effector.
    • Use Weight to set the relative influence of multiple follow objects or end effectors, and thus their priority in solving the IK solution. The higher the relative Weight value, the higher the priority.

    Note: As you drag, a dotted line is drawn from the pivot point of the selected object to the cursor. When the cursor is over a valid follow object, it changes to a push-pin cursor. Release to set the follow object. The name of the follow object will appear in the text area.

To unbind an object:

  • Select the object to unbind. Click Unbind.

In the text area, the name of the Follow Object is replaced with the word “none”.


Precedence

A <function_call> has a lower precedence than an <operand> and is therefore constructed from operands, but it has a higher precedence than all the math, comparison and logical functions. This means you have to be careful about parenthesizing function arguments correctly.

For example:

sin x + 1

is evaluated as:

(sin x) + 1

In general, you have to put arguments that are themselves expressions inside parentheses, as in:

sin (x + 1)

atan2 (y - 1) (z - 1)

This rule has one exception, the unary minus. It is recognized as one of the kinds of <operand> that you don’t have to parenthesize:

sin -x

is interpreted as:

sin (-x)

However, you do have to parenthesize function calls in order to negate them:

-(sin x)

If you had written:

-sin x      -- wrong

it would be interpreted as the following line:

(-sin) x


Copying, Pasting and Mirroring Joint Parameters

Use the Copy and Paste buttons in the Object Parameters rollout to copy and paste the joint settings between IK controllers. You can also copy joint settings from a non-IK controller to an IK controller, but you can’t copy from an IK controller to a non-IK controller. With an IK Controller hierarchy, you can paste to a multiple selection of joints.

Use Mirror Paste to mirror the IK joint settings about the X, Y, or Z axis during a Paste operation. It consists of four option buttons. One each for the X, Y, and Z axes, plus a None option that prevents mirroring altogether.

You can also mirror the IK joints using the Mirror tool in the main toolbar.

Reference

Sliding Joints area

Use these buttons to copy sliding joint parameters from one object to another. These buttons are not available for Path joints.

Rotational Joints area

Use these buttons for copying rotational joint parameters from one object to another.

Mirror Paste Area

Use to mirror the IK joint settings about the X, Y, or Z axis during a Paste operation.

How To

Copy and paste joint parameters:

  1. Select an object in a Kinematic chain.
  2. Set sliding or rotational joint parameters.
  3. Click Copy in either the Sliding Joints or Rotational Joints area of the Object Parameters rollout.
  4. Select a different object in the Kinematic chain.
  5. Select an axis to Mirror in the Mirror Paste area.
  6. Click paste in either the Sliding Joints or Rotational Joints area of the Object Parameters rollout.

    7. Both Sliding Joints and Rotational Joints maintain separate clipboards. The copied joint parameters are saved in the clipboard until you replace them with new copied parameters.


Auto Termination Rollout

Controls that temporarily assign terminators a specific number of links up the hierarchical chain from the selected object. This only works with Interactive IK; it does not work with Applied IK or with IK Controllers.

Reference

Interactive IK Auto Termination (check box): Check this to use the Auto Termination feature.

# of Links Up (spinner): The value in this spinner specifies how far up the chain the termination is applied.

For example, if you set this to 5, when you move any object in the hierarchy, the object that’s five links up the chain from the object you’re adjusting acts as a terminator. If you select a different object in the hierarchy, termination is switched to whichever object is five links up the chain from the newly selected object.

A setting of 1 simply locks the hierarchy, since it terminates the joint just beyond the currently selected object.

How To

Use Auto Termination:

  1. In the Auto Termination rollout, turn on Auto Termination.
  2. Enter a value in the # of Links Up field.
  3. Turn on the IK button on the toolbar.
  4. Select any object in an IK chain to move or rotate.


Sliding and Rotational Joints Rollouts

Activating Joint Axes

All joints operate by allowing motion on one or more axes and restricting motion on the remaining axes. You set whether an object can move or rotate about a given axis by using the Active check box in the joint rollouts. Joints have a maximum of six possible axes: three for rotation and three for position. You constrain the motion of a joint by setting which axes are active.

The setting of IK joint axes overrides any Inherit and Lock setting performed under Link Info.

Reference

The Sliding and Rotational Joints rollouts contain similar controls. Set these controls for position and rotation parameters accordingly.

Active: Turn on to activate an axis (XYZ). Allows the selected object to move or rotate along the activated axis.

Limited: Limits the range of motion or rotation allowed on an active axis. Use in combination with the From and To spinners. Most joints are limited in their range of motion along an active axis. For example, a piston only slides within the length of its cylinder.

From and To Spinners: Set values for position and rotation limits. Use in combination with the Limited function.

Visual aids in the Viewports are provided for rotational and positional limits using the IK Controller.

Ease: Causes a joint to resist motion as it approaches its From and To limits. Simulates an organic joint, or worn mechanical joint, moving or rotating freely in the middle of its range of motion but moving less freely at the extremes of its range.

Spring Back: Turn on to activate Spring Back.

Each joint has a rest position. As the joint moves further from the rest position, an increasingly larger force pulls the joint back to its rest position, like a spring.

Spring Back: Sets the rest position for the joint. For Rotational joints, this is the orientation of the joint in degrees; for Sliding joints, it’s the position in units. Adjusting this is similar to adjusting the From/To spinners. While performing the adjustment, you see the orientation/position, but then the object returns to its previous state when you release the spinner.

If you’re using the IK controller, you must check Show Initial State to see the affect on the geometry during the adjustment (Motion Panel, IK Controller Parameters rollout).

Spring Tension: Sets the strength of the “spring.” Higher values cause the spring to pull harder as the joint moves further from its rest position. A setting of 0 turns off the spring; very high settings can turn the joint into a limit because you can reach the point where the spring is too strong to allow the joint to move past a certain point.

Damping: Applies resistance over a joint's full range of motion or rotation. Simulates the natural effect of joint friction or inertia. As a joint corrodes, dries out, or is put under a heavy load, it resists motion along its active axes.

How To

To activate or deactivate an axis:

  1. Select an object.
  2. Click IK in the Hierarchy panel.
  3. Expand the rollout for a joint type.
  4. Click the Active check box for any available axis.
    • When selected, the axis is active and the object can move or rotate about that axis.
    • When cleared, the axis is inactive and the object cannot move or rotate about that axis.

To limit a joint:

  1. Select an object.
  2. Click IK in the Hierarchy panel.
  3. Expand a joint rollout.
  4. Click the Limited check box for any active axis. If an axis is inactive the limits settings are ignored.
    • When checked, the axis is limited and the object can move or rotate within the range set by the From and To fields.
    • When unchecked, the axis is not limited and the object moves or rotates freely about that axis.

    If you select Limited, specify limit values in the From and To fields. When setting limits, the object transforms to the position or rotation defined by the From or To field. When you exit the field or release the spinner, the object returns to its original position.

    You can also view joint limits in the viewport by pressing and holding the mouse button on the From or To label of a limit field. The object will move or rotate to the limit value until you release the mouse button.


Link Info

Locks: Lock an object's ability to Move, Rotate, or Scale about any of its local axes using options in the Locks rollout.

Inherit: By default, a child inherits all of the transforms of its parent. You can limit what transforms a child inherits in the Inherit rollout.


Locks (rollout)

Provides controls to prevent transforms along particular axes.

Reference

XYZ: Turn on any axis in the Move, Rotate, or Scale areas to Lock the axis.

For example, if X and Y Rotate boxes are checked, you'll only be able to rotate the object around the Z axis in the viewport.

Locks are all relative to an object's local coordinate system.

How To

To lock all move transforms:

  1. Select an Object, in the Locks rollout turn on XY and Z.

    2. Only rotate transforms will work.

    The object does not have to be part of a hierarchy.

See Inherit (rollout) for related information.


Inherit (rollout)

Constrain the links between a selected object and its parent for any axis of position, rotation, or scale.

Reference

XYZ: Turn of any axis in the Move, Rotate or Scale areas to prevent inheritance.

When a box is checked, transform information from the parent is passed on to the child for the selected axis. When a box is unchecked, transform information on that axis is ignored by the child.

How To

Prevent inheritance of X rotation in a hierarchy:

  • Select an object, then turn off X in the rotate area of the Inherit rollout.

See Locks (rollout) for related information.


Motion Panel

Provides access to tools to adjust the motion of the selected object.

The Motion Panel is divided into Parameters and Trajectories.

Parameters

Provides an alternative to Track View for adjusting transform controllers and key information.

Assign Transform Controller

PRS Parameters

Key Info (Basic)

Key Info (Advanced)

Trajectories: Provides tools for working with objects' trajectories.


Trajectories

Trajectories (Motion Panel)

Use the Trajectories button in the Motion panel to display the path an object travels over time. Controls to convert splines into trajectories, trajectories into splines, and to collapse any transform controller into editable keys are also available in Motion Panel/Trajectories.

Using trajectories, you can do the following:

  • Display the 3D path for selected objects position tracks.
  • Add and Delete keys from the path.
  • Move, rotate, and scale keys on the path.
  • Convert the path to a Spline object.
  • Derive a new path from a Spline object.
  • Collapse Transforms.

Values in the Sample Range area are used in the Spline Conversion and Collapse Transform functions.

Reference

Sub-Object: Enable key editing. Use the Move, Rotate, and Scale transforms to change the location of a key(s) displayed on a trajectory.

Delete Key: Deletes the selected key(s) from the trajectory.

Add Key: Adds key(s) to the trajectory. This is a modeless tool. When you click this button once, you can add several keys in succession. Click the button again to turn off Add Key mode.

Start Time/End Time: Specify the interval for the conversion. If you are converting from position keyframes to a spline object, this is the time interval for which the trajectory will be sampled. If you are converting from a spline object to position keys, this is the interval over which the new keys will be placed.

Samples: Sets the number of samples for the conversion. When converting in either direction, the source is sampled at regular intervals, and keys or control points are created on the target object.

Convert To/Convert From: Converts keyframe position tracks to and from spline objects. This gives you the ability to create a spline trajectory for an object and then convert that spline to keyframes for that object’s position track in order to do various keyframe-specific functions (such as applying constant velocity to the keys and normalizing the time). Or, you can convert an object’s position keyframes into a spline object.

Collapse Transform area

Generates keys based on the current transformation of the selected object. You can apply this for any type of transform controller assigned to an object, but the main purpose of this function is to “collapse” a parametric transform effect, such as that generated by a Path controller, into standard, editable transform keys.

Collapse: Collapse the transform of the selected object.

Position, Rotation, Scale: Select one or more check boxes to specify which transforms you want to collapse.

At least one check box must be chosen for the Collapse button to be active.

How To

To transform keys on a trajectory:

  1. Select one or more objects.
  2. Click Trajectories on the Motion panel.
  3. Click Sub-Object to enable editing.
  4. Select one or more keys.

    5. or

    Use the transform tools on the toolbar to Move, Rotate, or Scale the selected keys.


Assign Controller (Motion Panel)

Lets you assign and append different transform controllers to individual objects. you can assign those controllers that apply to move, rotate, and scale operations in the Motion Panel/Assign Controller rollout.

Animation Controllers are plug-ins that handle all of the animation tasks in 3D Studio Max. For a complete list of available Animation Controllers, see the Assign Controller (Track View) help topic.

Reference

Assign Controller: Display the Assign Controller dialog. If no track is selected, the Assign Controller button is grayed out.

Assign Controller dialog

Select a controller from a list of available controllers in this dialog.

Depending on the type of track you have selected, the Choose Controller dialog displays a subset of the different types of controllers. Rotation controllers, for example are only available for rotation tracks.

How To

Assign a controller:

  1. Select an object.
  2. Select Motion Panel/Parameters/Assign Controller rollout.
  3. Select the rotation track in the Assign Controller list window.
  4. Click the Assign Controller button, then select Euler XYZ from the Assign Controller dialog.

    5. The default TCB Rotation Controller is replaced with the Euler XYZ controller.


PRS Parameters (Motion Panel)

PRS Parameters

Provides tools for creating and deleting keys. PRS stands for the three basic transform controllers: Position, Rotation, and Scale.

Reference

Create Key/Delete Key: The six buttons in the PRS Parameters rollout let you create or delete a transform key at the current frame. These buttons become active or inactive depending on the existence of a key type at the current frame.

For example, if you're on a frame containing a Scale key, the Scale button is inactive in the Create column because a key already exists. At the same time, the Position and Rotation buttons are inactive in the Delete column because there are no keys of that type to delete.

Position/Rotation/Scale: Determines the contents of the Key Info rollouts that appear below the PRS Parameters rollout on the Motion Panel.

How To

To create PRS transform key:

  1. Select an object.
  2. In Motion Panel/Parameters, drag the time slider to the frame where you want to place a key.
  3. Click one of the following buttons in the Create Key area of the PRS Parameters rollout:
    • Click Position to create a Position key.
    • Click Rotation to create a Rotation key.
    • Click Scale to create a Scale key.

    If a particular Position, Rotation, or Scale controller does not use keys, then that button is not available in the Create Key area. For example, you cannot create Position Keys if a Noise Position controller is being used.


Key Info (Basic)

Allows you to change the animation value, time, and interpolation methods of one or more selected keys.

The following parameters are available with the Bezier controller, the default position controller. The Key Info controls for a TCB position controller are different.

Reference

Key number: Click the right or left arrows to go to the next or previous key. The field shows the current key number.

Time: Enter a value to specify when in time the key occurs.

Time Lock: Turn on to prevent horizontal key movement in Track View edit modes.

X/Y/Z: Adjusts the position of the selected object at the current key.

Key Tangent flyouts: Two large flyouts that set the interpolation properties of the in tangent and out tangent of the key.

Tangent Copy buttons: Use the arrow buttons at either side of the Key Tangent flyouts to copy the tangent type between the tangents of the current key or between the tangents of the previous and next key.

  • The left arrow of the In tangent copies to the Out tangent of the previous key.
  • The right arrow of the In tangent copies to the Out tangent of the current key.
  • The left arrow of the Out tangent copies to the In tangent of the current key.
  • The right arrow of the Out tangent copies to the In tangent of the next key.

How To use Key Info (Basic)

To set the tangent type for a key:

  1. Select an object and open the Key Info (Basic) rollout.
  2. Use the arrows to select a key.
  3. Choose a tangent type from the In or Out tangent flyouts.


Key Info (Advanced)

Use the Key Info (Advanced) properties to control velocity in three ways:

  • You control the absolute velocity at a key using the Velocity Fields.
  • You average velocity over a specified amount of time using Normalize Time.
  • You force constant velocity from one component key to the next using Constant Velocity.

Reference

In/Out: The In field is the rate of change as the parameter approaches the key. The Out field is the rate of change as the parameter leaves the key.

These fields are only active for keys using the Custom tangent type.

The number in the field is the rate of change expressed as parameter units per Tick.

Lock button: When Lock is selected, changing one Custom tangent changes the other by an equal but opposite amount. For example, if the Lock button is on and the In value is 0.85, then the Out value is -0.85.

Normalize Time: Averages out the position of the keys in time and is applicable to any consecutive blocks of selected keys. Useful if you have an object that speeds up and slows down repeatedly, and you want to smooth out the motion.

Constant Velocity: When this check box is set for a key, values in between that key and the next one are interpolated so the object move at a constant velocity across that curve segment.

Bezier Scale Controller (Lock X): In the Key Info dialog for the Bezier Scale controller, a Lock button is added beside the X Scale spinner. When turned on, only the X value affects all three axes of scale. The Y and Z values are ignored and their function curves are not displayed.

When X is locked, the Y and Z values are not affected by changes in the X value. If you lock X when all three axes are at identical values, alter the X value, and then unlock X, the Y and Z values remain where they were while X retains its new value.

How To use Key Info (Advanced)

To Normalize Time for a key:

  1. Select an object and then choose a key to Normalize.

    2. You can use the arrows in the Key Info (Basic) rollout to step through Keyframes.

  2. In the Key Info (Advanced) rollout, click Normalize Time.

    3. The key is moved in time to average the velocity through the key.


Display Panel

Provides access to tools that control the display of objects in the scene.

Reference

Use the Display panel to hide, unhide, freeze, or unfreeze objects, to alter their display characteristics, to speed up viewport displays, or to simplify your modeling procedures. Targets are considered part of their spotlight or camera for hiding purposes.

Display Color

Hide by Category

Hide

Freeze

Display Properties

Link Display


Display Color

Specifies whether 3D Studio MAX displays objects using their object colors or their diffuse material colors. This option is on the Display panel.

Reference

You can choose one method for wireframes and a different one for shaded viewports.


Hide by Category

This rollout is available from the Display panel. The options toggle the display of objects by their category (objects, cameras, lights, and so on).

Reference

By default, 3D Studio MAX displays all objects in the scene. Objects hidden by category are not evaluated in the scene, so hiding objects by category improves performance.

Set the check boxes to hide objects of that category. You can use the All, None, and Invert buttons to quickly change the settings of the check boxes.


Hide

This rollout is available from the Display panel. The buttons let you hide or unhide individual objects by selecting them, regardless of their category.

Reference

Hide Selected: Hides the selected object(s).

Hide Unselected: Hides all visible objects except the selected ones. Use this to hide all objects except the one you're working on. Objects hidden by category are not affected.

Hide By Name: Lets you select the objects to hide by name.

Hide By Hit: Causes any object you click in the viewport to be hidden. If you hold the CTRL key while selecting an object, that object and all of its children are hidden. To exit Hide by Hit mode, right-click, press Escape, or select a different function. This mode is automatically turned off if you hide all objects in the scene.

Unhide All: Unhides all hidden objects. The unhide buttons are available only when you have specifically hidden one or more objects. They won't unhide objects hidden by category.

Unhide By Name: Displays a dialog in which you can unhide objects you select from a list.


Freeze

This rollout is available from the Display panel. The buttons let you freeze or unfreeze individual objects by selecting them, regardless of their category.

Frozen objects remain on the screen, but can’t be selected, transformed, or modifed. Frozen objects turn dark grey. Frozen lights and cameras, and their associated viewports, continue to work as they normally do.

Reference

Freeze Selected: Freezes the selected object(s).

Freeze Unselected: Freezes all visible objects except the selected ones. Use this to quickly freeze all the objects except the one you're working on.

Freeze By Name: Lets you select the objects to freeze by name.

Freeze By Hit: Causes any object you click in the viewport to be frozen. If you hold the CTRL key while selecting an object, that object and all of its children are frozen. To exit Freeze by Hit mode, right-click, press Escape, or select a different function. This mode is automatically turned off if you freeze all objects in the scene.

Unfreeze All: Unfreezes all frozen objects.

Unfreeze By Name: Displays a dialog in which you can unfreeze objects you select from a list.

Unfreeze By Hit: Causes any object you click in the viewport to be unfrozen. If you hold the CTRL key while selecting an object, that object and all of its children are unfrozen.


Display Properties

Provides controls that alter the display of selected objects.

The first three options reduce the geometric complexity of selected objects in a scene, resulting in faster response time because the computer has less to calculate.

See also

Link Display.

Reference

Display as Box: Toggles the display of selected objects, including 3D objects, 2D shapes, and particle systems, as bounding boxes. Produces minimum geometric complexity.

Particle systems appear as bounding boxes when adaptive degradation takes effect. Since particle systems naturally exist in world space, their bounding box is always oriented parallel to the world planes.

Backface Cull: Toggles the display of faces with normals pointing away from view. When selected, you see through the wireframe to the back faces. Applies to Wireframe viewport display only.

Edges Only: Toggles the display of face edges. When set, only faces appear. When clear, all mesh geometry appears. Applies to Wireframe viewport display only.

Vertex Ticks: Displays the vertices in the selected geometry as tick marks.

If the current selection has no displayed tick marks, the check box is clear. If some of the vertices in the current selection display tick marks, the check box contains a gray X. If all vertices in the current selection display tick marks, the check box contains a black X.

Trajectory: Toggles trajectory display for the selected object so you can display its trajectory wherever you are in 3D Studio MAX.

Vertex Colors: Displays the effect of assigned vertex colors. You assign vertex colors in the editable mesh in vertex or face sub-object level.

The Shaded button determines whether the object with the assigned vertex colors appears shaded in the viewport. When this button is off, the colors are unshaded and appear in their pure RGB values, looking a little like self-illuminated materials. When the Shaded button is on, the colors appear like any other assigned color in the viewports.

How To

To display Trajectories using the Display panel

  1. Select one or more objects.
  2. Expand the Display Properties rollout in the Display panel.
  3. Set Trajectory On.

By default, object trajectories appear with the following properties:

  • The trajectory curve is drawn in blue.
  • Frame increments display as white dots on the curve.
  • Position keys display as red boxes surrounding the appropriate frame dot on the curve.

You can change the colors for these items on the Colors page of the Preferences dialog box.


Link Display

This rollout is available from the Display panel. It provides controls that alter the display of hierarchical linkages.

Reference

Display Links: Displays a wireframe representation of the hierarchical link(s) affecting the selected object.

Link Replaces Object: Replaces the selected object with the wireframe representation of the hierarchical link. This option offers another way to reduce the geometric complexity of selected objects in a scene. See also Display Properties.

The Draw Links as Lines option in the Viewports panel of the Preferences dialog further reduces the display of links to a single line.


Utilities Panel

Provides access to utility plug-ins, often created by 3rd Party developers. 3DS MAX ships with the utilities listed below.

The Utilities panel has been redesigned to work in the same way as the Modify panel with regard to setting up buttons sets. As in the Modify panel, the following controls appear at the top:

More: Click to display a dialog listing all utilities that are not already displayed in the Utilities panel. Click a utility in the list to display its controls in the Utilities panel.

Sets: Click to display a pop-up list of button sets created in the Configure Button Sets dialog.

Configure Buttons Sets: Click to display the Configure Button Sets dialog, where you can create button sets of up to 32 buttons.

Click one of these buttons to display the utility in rollout(s) below. The button remains active until you click it again, which closes the utility. Alternatively, you can click the Close button that appears at the bottom of most utilities.

ASCII Object Output Utility

Asset Manager Utility

Assign Vertex Colors Utility

Camera Match Utility

Collapse Utility

Color Clipboard Utility

Dynamics Utility

Follow/Bank Utility

IFL Manager Utility

Level of Detail Utility

Link Inheritance (Selection) Utility

MAXScript Utility

Measure Utility

Motion Capture Utility

Rescale World Units Utility

Reset Transform Utility

Strokes Utility


ASCII Object Output Utility

Saves the definition of an object in an ASCII text file.

Reference

Pick Object: Selects the object to be saved.

Object Space: Unchecked by default, when checked, the object’s coordinates are output as object-space coordinates, instead of world-space coordinates, with no transforms applied.

Shapes as Bezier: This affects only shape objects. When unchecked (the default), shapes are output in polyline format, with a vertex for each interpolated point on the shape. When checked, the output is specified as knot coordinates and vectors for each knot, letting a parser restore the original Bezier spline.

How To

To export an object as an ASCII text file, do this:

  1. Select ASCII Object Output in the Utilities panel
  2. Click the Pick Object button.
  3. Select the object you want to save as an ASCII file in any viewport.

    4. When you select an object, a file requester appears asking you to enter a file name. The utility then writes out the state of the object at the current frame to a text file. The resulting file is compatible with 3D Studio Release 4 .asc files.


Asset Manager Utility

The Asset Manager utility lets you browse thumbnail displays of the bitmaps or .max files on your hard disk, and then either view them, or drag and drop them into valid map buttons or slots in 3DS MAX.

Dragging and Dropping with the Asset Manager

You can assign files represented by the thumbnail images by dragging the thumbnails and dropping them over various parts of the Asset Manager or the MAX UI. There are three basic methods of using drag-and-drop in the Asset Manager:

Local Drag and Drop: You can drag thumbnails to the directory tree. This lets you copy or move files from one directory to another. The dragging and dropping work in the same way as the Microsoft Explorer. As a default, if you drag to a folder within the same partition or device, a move is performed. If you drag beyond the current partition or device (to another drive, for example), a copy is performed. If you hold the CTRL key down, a copy is performed regardless of the destination. If you hold the SHIFT key down, a move is performed. Both bitmap thumbnails and .max scene thumbnails can be manipulated in this way.

Bitmap Drag and Drop: You can drag the thumbnails that represent bitmap files to any bitmap or map slot in the 3DS MAX interface.

Scene Drag and Drop: You can drag the thumbnails representing .max scene files directly over an active viewport to merge the scene with the current scene. When you drag the thumbnail over the active viewport and release the mouse, the merged objects appear attached to the mouse. Place them where you want them, and then click to complete the merge, or right-click to cancel.

Reference

When you select Asset Manager from the Utilities panel, a modeless dialog appears that’s the Asset Manager. There are no controls for the Asset Manager in the Utilities panel itself.

Asset Manager Utility Toolbar

Provides buttons for tasks performed in the Asset Manager.

View Selected Image: Displays the currently selected thumbnail in a virtual frame buffer. You can achieve the same thing by double-clicking a thumbnail.

Properties: Displays information about the image. This is exactly the same information you see when you click the Info button in a file selector.

Cache Settings: Displays the Cache Settings dialog, which lets you specify the directory and size of the cache in which the thumbnail files are stored. The dialog contains the following settings:

Directory: Displays the path of the cache directory. This is where the thumbnail images are stored. You can change the path either by editing the field, or by clicking the button to the right of the field. This displays a file dialog in which you can specify a new path.

Button: Click this to display a file dialog in which you can specify the cache path.

Note: When you change directories, you’re asked if you want to clear the cache from the previous directory. If you choose to do so, all thumbnail files are erased from the cache directory you were previously using.

Maximum Size: Sets the maximum size of the cache directory. When you exit the Asset Manager, the size of the cache directory is checked. If it’s over the Maximum Size, the oldest thumbnail files are deleted until the total size is 50 percent of the Maximum Size setting.

Clear Cache: Click this to delete all thumbnail files in the cache directory.

Sort by Name: Click this to sort the thumbnails by their filenames.

Sort by Type: Click to sort by file extension.

Sort by Date: Click to sort by file date.

Sort by Size: Click to sort by file size.

Display Small Thumbnails: Click to set the size of the displayed thumbnails to small.

Display Medium Thumbnails: Set the thumbnail size to medium.

Display Large Thumbnails: Set the thumbnail size to large.

Filter: This lets you filter the displayed thumbnails by selecting a file extension you want displayed. Note that when All Images is chosen, all supported bitmap types are displayed, but not .max scene files. To display thumbnails of .max files, you must choose *.max from the list.

Automatic Thumbnail Update: When this is on (the default), thumbnails not already in the cache, or those with dates newer than those in the cache are generated each time you enter a directory. When this is off, only those thumbnails already in the cache are displayed when you enter a directory. Other images display a blank thumbnail. Since it can be time-consuming to navigate several levels of directories holding new images, you can turn this button off, quickly move to the directory you want, and then turn the button back on to display new images.

View All Images in Cache: Click to display thumbnails of all images stored in your cache directory. When this is on, the directory window goes away, and the thumbnails you see can be in various directories. Since the thumbnails point to the correct directories, you can still access the files via the thumbnails to either display them, or to drag and drop them into areas in MAX.

Important: If a file has been subsequently renamed, deleted, or moved from the directory it was in when its thumbnail was first created, the thumbnail will represent only the thumbnail bitmap itself, and if you assign that image to a map slot in MAX, you’ll be assigning the thumbnail bitmap rather than the original image.

  • Refresh: Click this to re-read the directory and redraw the thumbnails.

Directory Hierarchy Window

Displays the available directories on your system. Here, you can navigate and select the directories in which you want to view images. When you select and enter a directory containing bitmaps that are valid in 3DS MAX, their thumbnails are displayed in the window at right.

Thumbnail Window

Displays thumbnail images of the bitmaps or .max scenes in the selected directory. Double-click on any of the thumbnails to display the full-sized image. Right-click on a thumbnail to display a pop-up menu of the following items:

View: Displays the full image. Same as double-clicking the thumbnail.

Properties: Same as selecting Properties in the toolbar.

Preferences: Same as selecting Preferences in toolbar.


Directory Hierarchy Window

Displays the available directories on your system. Here, you can navigate and select the directories in which you want to view images. When you select and enter a directory containing bitmaps that are valid in 3DS MAX, their thumbnails are displayed in the window at right.


Thumbnail Window

Displays thumbnail images of the bitmaps or .max scenes in the selected directory. Double-click on any of the thumbnails to display the full-sized image. Right-click on a thumbnail to display a pop-up menu of the following items:

View: Displays the full image. Same as double-clicking the thumbnail.

Properties: Same as selecting Properties in the toolbar.

Preferences: Same as selecting Preferences in toolbar.


Dragging and Dropping with the Asset Manager

You can assign files represented by the thumbnail images by dragging the thumbnails and dropping them over various parts of the Asset Manager or the MAX UI. There are three basic methods of using drag-and-drop in the Asset Manager:

Local Drag and Drop: You can drag thumbnails to the directory tree. This lets you copy or move files from one directory to another. The dragging and dropping work in the same way as the Microsoft Explorer. As a default, if you drag to a folder within the same partition or device, a move is performed. If you drag beyond the current partition or device (to another drive, for example), a copy is performed. If you hold the CTRL key down, a copy is performed regardless of the destination. If you hold the SHIFT key down, a move is performed. Both bitmap thumbnails and .max scene thumbnails can be manipulated in this way.

Bitmap Drag and Drop: You can drag the thumbnails that represent bitmap files to any bitmap or map slot in the 3DS MAX interface.

Scene Drag and Drop: You can drag the thumbnails representing .max scene files directly over an active viewport to merge the scene with the current scene. When you drag the thumbnail over the active viewport and release the mouse, the merged objects appear attached to the mouse. Place them where you want them, and then click to complete the merge, or right-click to cancel.


Assign Vertex Colors Utility

Assigns vertex colors based on the material assigned to the object and the lighting in the scene. To do this, the utility applies a Vertex Colors modifier to the object. Note that the Vertex Colors modifier has no parameters, and can only be applied via the Assign Vertex Colors utility.

The general process in using the Assign Vertex Colors utility is as follows:

  1. Assign materials to the objects you want to affect. These can be mapped or unmapped materials.
  2. (Optionally) light the objects.
  3. Turn on the Vertex Colors display properties for the objects.
  4. Select the objects you want to affect.
  5. Access the Assign Vertex Colors utility.
  6. Choose one of the Light Model options.
  7. Click Assign to Selected.

At this point, Vertex Color modifiers are applied to the selected objects, and the vertex colors for the objects are taken from their materials and (optionally) from the lighting in the scene, depending on the options you choose under Light Model.

Changing the material or the lighting in the scene will not change the vertex colors. To do this, click the Update All button.

Note that the new vertex colors are stored in the Vertex Color modifiers. If you want to access them, you can collapse the object and Vertex Color modifier to an editable mesh, and then edit the vertex colors using the editable mesh.

Reference

Assign Vertex Colors Parameters

Light Model Area

Provides options that let you specify how the surface of the object appears to be illuminated.

Scene Lights: Uses the current lighting in the scene to affect the vertex colors.

Diffuse: Applies the equivalent of a white omni light floating just outside of every vertex.

Assign to Selected: Click to assign vertex colors to the selected objects based on the assigned material and the specified light model. A Vertex Colors modifier is created and added to the Stack of the selected objects.

Update All: Click to recalculate the vertex colors for all objects in the scene that carry a Vertex Colors modifier.

How To

Using The Assign Vertex Colors Utility

  1. Create a sphere with 24 segments.
  2. Apply a mapped material to the sphere, and turn on Show Map in Viewports.

    3. The mapped sphere is displayed in the viewport.

    Note: Choose a simple, well-defined map with large, easily-distinguished areas.

  3. Open the Object Properties dialog for the sphere, check Vertex Colors, and click OK.

    4. The sphere turns black because you’re now displaying its vertex colors, and they’re all black as a default. If you turned off Vertex Colors, the map would reappear.

  4. With the sphere selected, open the Assign Vertex Colors utility.
  5. Choose Scene Lights.
  6. Click Assign to Selected.

    7. A blurred version of the mapping appears on the sphere. The vertices are now colored based on the material and the lighting in the scene. The mapping is blurred because the resolution of the mesh at 24 segments is much lower than the pixel resolution of the map.

  7. Go to the Modify panel and note the Vertex Color modifier.
  8. Move down in the Stack to the creation parameters, and increase the Segments to 70.

    9. The new vertices shift the already assigned vertices.

  9. Return to the Utilities Panel, and click either Update All or Assign to Selected. (Since there’s only one object, it doesn’t matter.)

    10. The mapping appears slightly more defined.

Tip: Vertex colors will only show up in a rendered scene if you assign the Vertex Map to the diffuse channel. However, if you do this, you can’t properly update your vertex colors with the Assign Vertex Colors utility. The solution is to assign a Blend material to your object. Assign the straight diffuse bitmap to Material 1, and the Vertex Map to Material 2 of the Blend. Switch to 100% of Material 2 when rendering, and 100% of Material 1 when updating the vertex colors.


Using the Assign Vertex Colors Utility

1 Create a sphere with 24 segments.

  1. Apply a mapped material to the sphere, and turn on Show Map in Viewports.

    2. The mapped sphere is displayed in the viewport.

    Note: Choose a simple, well-defined map with large, easily-distinguished areas.

  2. Open the Object Properties dialog for the sphere, check Vertex Colors, and click OK.

    3. The sphere turns black because you’re now displaying its vertex colors, and they’re all black as a default. If you turned off Vertex Colors, the map would reappear.

  3. With the sphere selected, open the Assign Vertex Colors utility.
  4. Choose Scene Lights.
  5. Click Assign to Selected.

    6. A blurred version of the mapping appears on the sphere. The vertices are now colored based on the material and the lighting in the scene. The mapping is blurred because the resolution of the mesh at 24 segments is much lower than the pixel resolution of the map.

  6. Go to the Modify panel and note the Vertex Color modifier.
  7. Move down in the Stack to the creation parameters, and increase the Segments to 70.

    8. The new vertices shift the already assigned vertices.

  8. Return to the Utilities Panel, and click either Update All or Assign to Selected. (Since there’s only one object, it doesn’t matter.)

    9. The mapping appears slightly more defined.

Tip: Vertex colors will only show up in a rendered scene if you assign the Vertex Map to the diffuse channel. However, if you do this, you can’t properly update your vertex colors with the Assign Vertex Colors utility. The solution is to assign a Blend material to your object. Assign the straight diffuse bitmap to Material 1, and the Vertex Map to Material 2 of the Blend. Switch to 100% of Material 2 when rendering, and 100% of Material 1 when updating the vertex colors.


Camera Match Utility

The Camera Match utility uses a bitmap background photo and five special “CamPoint” objects to create or modify a camera so that its position, orientation, and field-of-view matches that of the camera that originally created the photo. This utility is primarily designed for architects and like professionals who need to create geometry that perfectly matches the photograph of existing structures.

Reference

CamPoint Info Parameters

list window: Displays a list of the CamPoint helper objects in the scene. You select the CamPoint objects from this list to assign screen coordinate points. Note that if you select a CamPoint object in the viewport, it becomes selected in this list as well.

Input Screen Coordinates

X/Y: Use these two spinners to fine-tune the position of the screen coordinate points in 2D space.

Use This Point: Lets you turn off a specific coordinate point without deleting it. Select the corresponding CamPoint in the list, and then uncheck Use This Point. This feature is typically used for troubleshooting when the Current Camera Error is too high (greater than 5, for example).

Assign Position: Click this button, and then click a location on the viewport bitmap to place a screen coordinate point visually against the background image. The point you place corresponds to the currently selected CamPoint object. The process is as follows: After activating the Assign Position button, you select a CamPoint object from the list, and then click in the viewport at a position on the bitmap background that corresponds with where the associate CamPoint object is supposed to be in the 3D scene. After repeating this process with each CamPoint object in the list, you can click the Create Camera button to create a camera that matches the placed coordinates with their associate CamPoint objects.

Current Camera Match: X/Y (text): After a camera is created, this displays the coordinates at which the camera projects the currently selected CamPoint to be. This should be close to the Input Screen Coordinates.

Camera Match Parameters

Create Camera: Click this to create a camera in the scene whose position, orientation, and FOV is based on the current location of the CamPoint helpers and the assigned screen coordinates points.

Modify Camera: Modify the position, orientation and FOV of an existing, selected camera based on the CamPoint helpers and assigned screen coordinates points.

Iterations: Maximum number of iterations used to calculate the camera position. Default is 500, though a stable solution is usually found in less than 100 iterations.

Freeze FOV: Click this to prevent the FOV (field of view) of the camera from being changed when using the Create Camera or Modify Camera buttons. Use this if the FOV of the camera that took the photograph is known, and you want to preserve it.

Current Camera Error: Displays the total error that remains between the placed screen coordinate points, the CamPoint helpers and the camera position after the final computation. The calculations involved in Camera Match are seldom, if ever perfect. However, a good error range is in the area of 0-1.5. If you’re over 10, however, one of your points is way off.

Close: Click this to exit the Camera Match utility.

How To

Using Camera Match

The following exercise shows how to set up a camera to match the perspective view of a bitmap background. It requires the file cmlib.jpg, which is not really a photograph, but you can use your imagination.

First, establish the bitmap background for both the Renderer and the viewport:

  1. Reset 3DS MAX, and enlarge the Perspective viewport to full screen.
  2. Open the Materials Editor, click Get Material, and choose Bitmap from the Browser.
  3. Click the Bitmap button, and load cmlib.jpg.
  4. Choose the Environment option, and set the Mapping pop-up list to Screen.
  5. Select Environment in the Rendering window. Drag the sample slot containing the cmlib map over the Environment Map button in the Environment dialog. Make sure Instance is chosen in the alert dialog, and click OK.
  6. Close the Environment dialog, the Material Editor, and the Browser.
  7. Open the Render Scene dialog, and set the Output Size Width and Height to match that of the cmlib.jpg bitmap (640x480).

    8. Tip: You can see the resolution of any bitmap by first viewing it using File/View File, and then right-clicking over the image in the Virtual Frame Buffer.

  8. Select Background Image from the Views menu.
  9. Check Use Environment Background and Display Background, and then click OK.

    10. The viewport displays a row of shelves.

  10. Right-click the viewport label, and turn off Show Grid.

Next, create five CamPoint helper objects, using Keyboard Entry to place them in pre-defined 3D coordinates that match those of the real shelves. (The bitmap image is of a 3D model based on a real set of shelves. To do this in reality, you would need to know specific coordinates for the actual structure.) The following list provides suggested, descriptive object names along with each object’s 3D coordinates.

Object Name Coordinates

1st shelf, Left-Front 0, 0, 0

1st shelf, Left-Back 0, 11.2, 0

3rd shelf, Left-Front 0, 0, 24

3rd shelf, Left-Back 0, 11.2, 24

5th shelf, Left-Front 0, 0, 48

5th shelf, Right-Front 31, 0, 48

Begin by creating the CamPoint objects:

  1. In the Helpers branch of the Create command panel, open the pop-up list, and select CameraMatch.
  2. Click the CamPoint button.
  3. Open the Keyboard Entry rollout.
  4. Enter the coordinates of the first CamPoint object (0,0,0), click the Create button, and then enter the name (1st shelf, Left-Front) in the name field.

    5. Tip: To use the keyboard, first click in the X field, enter its value, then press Tab to move to the next field and enter its value. Continue this until you tab to the Create button, then press Enter to create the CamPoint, followed by Tab to move back to the X field, where you can start again. You can create all six objects with default names, and then use the Select by Name floater (Tools/Selection Floater) to select and rename the six pointers.

  5. Repeat the above step for the remaining CamPoint objects.

    6. Note: An alternative method is to create the CamPoint objects anywhere in the scene, and then reselect each of them and enter their absolute coordinates using the Transform Type-In dialog.

    You now have six point objects occupying real-world coordinate positions that correspond to the structure in the bitmap image. The last sequences of steps is to use the Camera Match utility to specify six screen coordinate pointsone for each CamPoint objectand generate a camera position based on the data.

Use the Camera Match Utility:

  1. In the Utilities panel, click the Camera Match button.

    2. The Camera Match utility appears, listing the CamPoint objects in its list window.

  2. Select the first CamPoint object (1st shelf, Left-Front), and click the Assign Position button.
  3. Point the mouse cursor at the left-front corner of the bottom shelf (you’ll use the top of all of the shelves in this example), and click to create a screen coordinate point.

    4. A small red cross appears where you clicked.

  4. If the dot is not in the right position, you can either click again with the mouse, or adjust the Input Screen Coordinates to tweak its position.
  5. Select the second object in the list, and repeat steps 3 and 4.

    6. The second dot is placed at the back-left corner of the same shelf. The third and fourth points are placed in the equivalent positions, but on the third shelf from the bottom, and the fifth and sixth points are placed on the front two corners of the fifth shelf.

  6. Once you have all of the points set, click the Create Camera button.

    7. A camera is created in the scene based on the location of the CamPoint objects and the specifications of the screen coordinates points.

    Note: If the Current Camera Error reading is greater than 5, at least one of your screen coordinate points is placed wrong. Double-check each of them, and take another look the description following step 5. After reassigning the points, select the existing camera, and click the Modify Camera button to recalculate the camera position.

  7. Press C to switch the Perspective view to the new camera.
  8. Create a cylinder object, and move it in space to place it on the lower shelf. It should look like it belongs there.


CamPoint Info (rollout)

(list window): Displays a list of the CamPoint helper objects in the scene. You select the CamPoint objects from this list to assign screen coordinate points. Note that if you select a CamPoint object in the viewport, it becomes selected in this list as well.

Input Screen Coordinates (text)

X/Y (spinners): Use these two spinners to fine-tune the position of the screen coordinate points in 2D space.

Use This Point (checkbox): Lets you turn off a specific coordinate point without deleting it. Select the corresponding CamPoint in the list, and then uncheck Use This Point. This feature is typically used for troubleshooting when the Current Camera Error is too high (greater than 5, for example).

Assign Position (button): Click this button, and then click a location on the viewport bitmap to place a screen coordinate point visually against the background image. The point you place corresponds to the currently selected CamPoint object. The process is as follows: After activating the Assign Position button, you select a CamPoint object from the list, and then click in the viewport at a position on the bitmap background that corresponds with where the associate CamPoint object is supposed to be in the 3D scene. After repeating this process with each CamPoint object in the list, you can click the Create Camera button to create a camera that matches the placed coordinates with their associate CamPoint objects.

Current Camera Match: X/Y (text): After a camera is created, this displays the coordinates at which the camera projects the currently selected CamPoint to be. This should be close to the Input Screen Coordinates.


Using Camera Match

The following exercise shows how to set up a camera to match the perspective view of a bitmap background. It requires the file cmlib.jpg, which is not really a photograph, but you can use your imagination.

First, establish the bitmap background for both the Renderer and the viewport:

  1. Reset 3DS MAX, and enlarge the Perspective viewport to full screen.
  2. Open the Materials Editor, click Get Material, and choose Bitmap from the Browser.
  3. Click the Bitmap button, and load cmlib.jpg.
  4. Choose the Environment option, and set the Mapping pop-up list to Screen.
  5. Select Environment in the Rendering window. Drag the sample slot containing the cmlib map over the Environment Map button in the Environment dialog. Make sure Instance is chosen in the alert dialog, and click OK.
  6. Close the Environment dialog, the Material Editor, and the Browser.
  7. Open the Render Scene dialog, and set the Output Size Width and Height to match that of the cmlib.jpg bitmap (640x480).

    8. Tip: You can see the resolution of any bitmap by first viewing it using File/View File, and then right-clicking over the image in the Virtual Frame Buffer.

  8. Select Background Image from the Views menu.
  9. Check Use Environment Background and Display Background, and then click OK.

    10. The viewport displays a row of shelves.

  10. Right-click the viewport label, and turn off Show Grid.

Next, create five CamPoint helper objects, using Keyboard Entry to place them in pre-defined 3D coordinates that match those of the real shelves. (The bitmap image is of a 3D model based on a real set of shelves. To do this in reality, you would need to know specific coordinates for the actual structure.) The following list provides suggested, descriptive object names along with each object’s 3D coordinates.

Object Name Coordinates

1st shelf, Left-Front 0, 0, 0

1st shelf, Left-Back 0, 11.2, 0

3rd shelf, Left-Front 0, 0, 24

3rd shelf, Left-Back 0, 11.2, 24

5th shelf, Left-Front 0, 0, 48

5th shelf, Right-Front 31, 0, 48

Begin by creating the CamPoint objects:

  1. In the Helpers branch of the Create command panel, open the pop-up list, and select CameraMatch.
  2. Click the CamPoint button.
  3. Open the Keyboard Entry rollout.
  4. Enter the coordinates of the first CamPoint object (0,0,0), click the Create button, and then enter the name (1st shelf, Left-Front) in the name field.

    5. Tip: To use the keyboard, first click in the X field, enter its value, then press Tab to move to the next field and enter its value. Continue this until you tab to the Create button, then press Enter to create the CamPoint, followed by Tab to move back to the X field, where you can start again. You can create all six objects with default names, and then use the Select by Name floater (Tools/Selection Floater) to select and rename the six pointers.

  5. Repeat the above step for the remaining CamPoint objects.

Note: An alternative method is to create the CamPoint objects anywhere in the scene, and then reselect each of them and enter their absolute coordinates using the Transform Type-In dialog.

You now have six point objects occupying real-world coordinate positions that correspond to the structure in the bitmap image. The last sequences of steps is to use the Camera Match utility to specify six screen coordinate pointsone for each CamPoint objectand generate a camera position based on the data.

Use the Camera Match Utility:

  1. In the Utilities panel, click the Camera Match button.

    2. The Camera Match utility appears, listing the CamPoint objects in its list window.

  2. Select the first CamPoint object (1st shelf, Left-Front), and click the Assign Position button.
  3. Point the mouse cursor at the left-front corner of the bottom shelf (you’ll use the top of all of the shelves in this example), and click to create a screen coordinate point.

    4. A small red cross appears where you clicked.

  4. If the dot is not in the right position, you can either click again with the mouse, or adjust the Input Screen Coordinates to tweak its position.
  5. Select the second object in the list, and repeat steps 3 and 4.

    6. The second dot is placed at the back-left corner of the same shelf. The third and fourth points are placed in the equivalent positions, but on the third shelf from the bottom, and the fifth and sixth points are placed on the front two corners of the fifth shelf.

  6. Once you have all of the points set, click the Create Camera button.

    7. A camera is created in the scene based on the location of the CamPoint objects and the specifications of the screen coordinates points.

    Note: If the Current Camera Error reading is greater than 5, at least one of your screen coordinate points is placed wrong. Double-check each of them, and take another look the description following step 5. After reassigning the points, select the existing camera, and click the Modify Camera button to recalculate the camera position.

  7. Press C to switch the Perspective view to the new camera.
  8. Create a cylinder object, and move it in space to place it on the lower shelf. It should look like it belongs there.


Collapse Utility

This utility lets you collapse the Stack of one or more selected objects into an Editable Mesh and, optionally, perform a Boolean operation on them at the same time.

Reference

Collapse Parameters

Selected Object Area

Displays the name of the current selection. If more than one object is selected, this displays: “Multiple Selected.”

Collapse Selected: Click this button to collapse the selected objects. The method of collapse depends on the settings of the options below this button.

Output Type Area:

Specifies the type of object that will result from the collapse.

Modifier Stack Result: When this option is used, the resultant object will be the same as if you had collapsed its Stack. In most cases, this will result in a mesh object, as when using the Mesh option button, below. However, if the object has an Edit Patch modifier so that its Stack produces a patch, then the result will be a patch object rather than a mesh. Likewise, a shape with and Edit Spline modifiers becomes an editable spline. When this option is used, the Collapse To options are not available, and all selected objects remain single objects.

Mesh: When this option is used, all selected objects become editable meshesregardless of their type before they were collapsed.

Collapse To Area

Provide options that let you specify how the selected objects are combined. These options are only available when the Mesh option is chosen.

Multiple Objects: Collapses each object in the selection, but maintains each as an independent object. When this option is selected, the Boolean options are disabled.

Single Object: Collapses all selected objects into a single, editable mesh object.

Boolean: When this is checked, you can perform Boolean operations on the selected objects. During the Boolean calculation, a progress bar appears along with a Cancel button. If any objects in the Boolean operation fail, that object is skipped, but the Collapse proceeds. Note that the result is not an animatable, compound Boolean object, as results from using the Create/Boolean command, but a single, editable mesh. The type of Boolean is specified by the options below.

Union: Combines the several objects, removing intersecting geometry.

Intersection: Removes all but the intersecting geometry.

Subtraction: Maintains the first object selected while subtracting the subsequently selected objects. For example, to subtract several cylinders from a box, click to select the box, then hold CTRL, and region-select the cylinders.

Close: Closes the Collapse utilities panel.

How To

To collapse the Stack of an object into an editable mesh, do this:

  1. Select Collapse in the Utilities Panel.
  2. Select the object that you want to collapse.
  3. Click the Collapse Selected button.

    4. All modifiers ae removed from the modifier stack and the object becomes an editable mesh.


Color Clipboard Utility

The Color Clipboard Utility stores color swatches for copying from one map or material to another. For example: If, in the material editor, you wanted to copy a color from a swatch in one level of a material to a swatch in another level (or from another material) there would be no way to do it with drag and drop because you can't have two materials/maps visible at the same time. However, you can drag the color from one material to the color clipboard, switch to the other material and then drag the color from the clipboard to the swatch in the new material.

Reference

Color Clipboard Parameters

New Floater: Displays a floating clipboard with 12 slots. You can open up as many of these floaters as you want and you can minimize them. If you exit the Utility panel or select the Close button to exit the Color Clipboard utility, any visible floaters are kept.

Close: Click this to exit the the Clipboard Utility.

How To

To copy a color from a swatch to the color clipboard, do this

  1. Select Color Clipboard In the Utilities Panel.
  2. Open the materials editor.
  3. Select a color from any swatch in a material.
  4. Drag the color to a swatch in the color clipboard.

    5. A dialog box appears asking if you want to copy or swap the material. Choose copy to replace the swatch in the color clipboard with the swatch from the material you selected. Choose swap to swap colors on the Color Clipboard swatch and material swatch.

    You can Save and load color clipboard files. The saved file, which is given an extension of .ccb (color clip board) is an ASCII file containing 12 lines of three RGB numbers, so you can easily edit or create your own clipboard files.


Dynamics Utility

The term dynamics, as used in 3DS MAX, refers to a system of controls that generate keys to produce animation that simulates real-world physics. For example, using standard keyframing techniques to animate a bouncing ball, you create keys that move the ball down to the floor, create keys to squash the ball, create more keys to move the ball back up, and so on. Using a dynamics system, you assign physical properties to the ball and the floor (friction, amount of bounce, etc.), specify which object will collide against which other object (the ball with the floor), place an effect, such as gravity, in the scene, and then let the dynamics system calculate a solution over a range of frames. The result is a number of keys that produce an animation in which the ball drops, due to the gravity effect, collides with the floor and reacts naturally based on its surface characteristics.

You use one or more of three basic components to calculate a dynamics solution:

Surface dynamics properties: These specify the characteristics of an object’s surfaceits bounciness, friction, and so on. A rubber ball, for example, bounces high and has a “sticky” surface, while a bowling ball doesn’t bounce as high (depending on the surface it hits) and has a more slippery surface.

Effects: Effects are special space-warp objects that emulate natural phenomena, such as wind or gravity. In a dynamics simulation, you must place gravity in the scene if you want the objects in your simulation to fall.

Collisions: Collisions are the interactions between two objects that touch during the simulation. The reaction to a collision depends on such things as the velocity of the two objects and their surface dynamic properties. Because any dynamics simulation is processor-intensive, you must specify each object that might collide in the simulation. For example, when bouncing a ball, both the floor and the ball are assigned collisions.

In 3DS MAX, the dynamics system is accessed in the following areas of the interface:

  • The Dynamics Properties Rollout of the Materials Editor: This rollout lets you assign the dynamics properties of the surface of an object. Using a Multi/Sub-Object material, you can have different surface properties at the face level of any object. Note that you can also assign or adjust these properties at the object level from within the Dynamics utility.
  • The Dynamics Rollout: This is the main control center for dynamics simulations. Here, you specify which objects are used in the simulation, what their interactivity is with each other and with the effects in the scene, and then you calculate the dynamic effect, generating the keyframes.
  • The Create/Space Warps/Particles & Dynamics Panel: Certain space warps, such as Wind and Gravity, are created here. You then use the Dynamics utility to specify which objects are to be influenced by which effect.

This section outlines all of the surface dynamics controls in the Utilities Panel Dynamics Parameters. The sub-dialogs that some of these controls display are separately cross-referenced because in many cases the dialogs are far more detailed than the surface controls of the command panel.

Time & Simulation Rollout

Using Linked Hierarchies

Reducing Keys

Bouncing a Ball (Example)

Reference

Dynamics Parameters

Simulation Name: This is the label for the pop-up list displaying the name of the current simulation. You can create any number of simulations in your scene. Each must have a unique name and is stored in the .max file. As an example, you might have a simulation named Bouncing Ball that bounces a ball down a flight of stairs, while another simulation, named Paper Airplane flies a paper airplane across the room.

Combo list: Displays the name of the current dynamics simulation, and lists all simulations in the scene. All of the settings in the remaining controls in the command panel are specific to the displayed simulation.

New: Click to create a new simulation. The name of the previous simulation (if there is one) is numerically incremented. You can edit the name in this field to rename any existing simulation.

Remove: Click to remove the current simulation displayed in the pop-up list. Dynamic simulations can use a lot of memory. Removing old or unused simulations reduces the size of your .max files. When you remove a simulation, all of the timings and other settings are deleted. However, any keys that were generated by the simulation remain.

Objects in Simulation Area

The buttons in this area let you add and remove objects from the simulation, and edit the various properties of the objects that are included in the simulation.

Edit Object List: Displays the Edit Object List dialog, which lets you specify which of all objects in the scene are to be included in the simulation.

Edit Object: Displays the Edit Object dialog. This is the main “control room” of the dynamic utility.

Select Objects in Sim: Click this to add all objects in the simulation to the current selection set. In addition to being generally for selecting the participating objects, a specific use for this is to bring just those selected objects into TrackView for further manipulation, keyframe reduction, and so on.

Effects Area

The options in this area let you specify which effects are included in the dynamics calculation.

Effects by Object: When this option is chosen, only those effects that are assigned to specific objects through the Assign Object Effects button in the Edit Object dialog are considered in the calculation.

Global Effects: When chosen, only those effects included in the Assign Global Effects dialog (accessed by clicking the button of the same name) are included in the calculation.

Assign Global Effects: Displays the Assign Global Effects dialog.

Collisions Area

The options in this area let you specify which collisions are included in the dynamics calculation.

Collisions by Object: When chosen, the collisions assigned to specific objects through the Assign Object Collisions button in the Edit Object dialog are included in the calculation.

Global Collisions: When chosen, the collisions assigned in the Assign Global Collisions dialog (accessed by clicking the button of the same name) are included in the calculation.

Assign Global Collisions: Displays the Assign Global Collisions dialog.

Solve Area

Update Display w/ Solve: When this is checked, each frame of the solution is displayed in the wireframe viewports during the calculations. Note that this slows down the calculation process.

Solve: Click to calculate the dynamics solution, generating keys over the range of frames specified in the Timing area. A progress bar appears in the status/prompt area. You can press ESC if you want to cancel the calculation.

How To

To set up dynamics in general:

  1. Assign materials to the objects included in the simulation, and adjust the surface characteristics in the Dynamics Properties rollout of the Materials Editor. (For a bouncing ball, you’d use this to create a rubber-like surface.)
  2. If you’re using a linked hierarchy, set the Move and Rotate locks in the Hierarchy/Link Info panel to limit the motion and rotation of the linked objects.
  3. Create space-warp effects in the scene, where needed. (For a bouncing ball, you’d need a gravity effect.)
  4. Use the Dynamics utility to create a new simulation. Specify which objects are included in the simulation, which effects influence which objects, and which objects are to collide with which. (For the bouncing ball, the ball and the floor are in the simulation because one collides with the other. The ball is assigned to collide with the floor, and the gravity effect is assigned to the ball.)
  5. Use the Dynamics utility to specify the range of frames to which keys will be generated, and to calculate the animation and generate the keys. (In the case of a bouncing ball, a number of Position and Rotation keys are generated for the ball.)
  6. Play the animation to see if the effect is what you were looking for. If one or more objects either fly off into space, or drift through objects they should have bounced off of, its likely that Calc Intervals Per Frame spinner needs to be increased to increase the sampling for the calculations.


Dynamics Properties Materials Editor Rollout

The three spinners in the Dynamics Properties rollout let you specify surface properties that affect the animation of an object upon collision with another object. Note that if there are no collisions in your simulation, these settings have no effect.

Since the Dynamics Properties rollout is available at the top level of any material (including submaterials), you can specify different surface dynamic properties for each face in an object, if you wish. There are also controls in the Dynamics utility that let you adjust the surface properties at the object level, but only the Materials Editor lets you alter the surface properties at the subobject level (through use of a Multi/Sub-Object material).

As a default, the values in the Dynamics Properties rollout provide a surface that’s similar to Teflon-coated hardened steel. This is with values of Bounce Coefficient equal to 1; with both Static Friction and Dynamic Friction set to 0,

Bounce Coefficient (spinner): How far an object bounces after hitting a surface. The higher the value, the greater the bounce. A value of 1 represents a “perfectly elastic collision,” or a bounce in which no kinetic energy is lost. If you’ve seen the desktop toy with four ball bearings swinging back and forth on strings and hitting one another, you’ve seen an example that comes very close to a bounce coefficient of 1. Generally, hardened steel or a super ball have a bounce near 1, while lead has a bounce near 0.

Static Friction (spinner): How difficult it is for the object to start moving along a surface. The higher this value, the more difficult. If something weighs ten pounds and sits on Teflon (a static friction of near zero), it takes almost no force to make it move sideways, On the other hand, if it sits on sandpaper, then the static friction might be very high, on the order of .5 to .8. A static friction near 1 is very difficult to create in the real world without adhesives or friction material.

Sliding Friction (spinner): How difficult it is for the object to keep moving over a surface. The higher this value, the more difficult for the object to keep moving. Once two objects begin to slide over one another, static friction disappears and sliding friction takes over. Generally, sliding friction is lower than static friction due to surface tension effects. For example, once steel starts sliding over brassa value of static friction that might run from .05 to .2the sliding friction drops to a significantly lower value, on the order of .01 to .1. For some materials, such as specific friction materials like brake linings, sliding friction is just as high as static friction because it is used in conjunction with a nearly frictionless material such as hardened polished steel.


Time & Simulation Rollout

The controls in this rollout let you specify the range included in the calculation. Other controls in this rollout let you specify how IK is included in the simulation, and what the air density is for the simulation.

Timing Area

The controls in this rollout control how the keys are generated over time.

Start Time: Specifies the first frame to generate a key, and the first frame to be considered for the solution.

End Time: Specifies the last key generated for the simulation. Note that this spinner is set to the last frame of the active segment when you create a new simulation. For example, if your active segment ends at frame 200, when you click New to create a new simulation, the End Time is set to 200.

Calc Intervals Per Frame: Specifies how many calculations are performed for each frame of the simulation time range. You can increase this as high as one calculation per tickthough that would definitely be overkill. Finding the right number for this spinner is a matter of experimentation. As a general rule, the faster things are moving in the simulation, the higher you should set this value. If things are supposed to move slowly and ponderously, you can set this to 1.

Note: If you find that objects are not colliding properly with other objects (they’re going through them), increase the Calc Intervals Per Frame value.

Keys Every N Frames: Specifies the frequency with which keys are generated, per object. Thus, if this were set to 2, keys would be generated on every other frame.

Time Scale: Generally, this value lets you slow down or speed up the overall effect of the simulation. It does this by applying a linear scale factor to the outside forces affecting each object (gravity, wind, and so on). The default value of 1 results in normal speed. You can scale down the simulation (make it slower) by using values below 1 (from 0.1 to 1), and you can scale up the simulation (make it faster) by using values greater than 1 (from 1 to 100). As is always the case, if you speed up your simulation and objects begin to behave incorrectly (going through objects, for example), increase the Calc Intervals Per Frame value to compensate.

Simulation Controls Area

Controls in this area relate to IK settings and the transfer of momentum.

Use IK Joint Limits: When checked, the current IK joint limit settings are used as constraints by hierarchies in the simulation.

Use IK Joint Damping: When checked, the IK damping settings are used as constraints by hierarchies in the simulation.

Air Resistance Area

Density %: Sets the air density in the simulation. A setting of 100 is the air at sea level. A setting of 0 is a total vacuum. When anything moves, it hits air resistance (except in space). The faster it moves, the higher the relative air resistancewith the square of the speed. Thus, air resistance imposes an upper limit on the speed of things that are falling with gravity, and also makes objects tumble due to the effect of air resistance on each face of the object.

Close: Click to close the Dynamics utility.

Edit Object List Dialog: Click this to display a dialog that lets you specify which objects in the scene will be calculated as part of the simulation. The dialog functions in the same way as the lighting Exclude dialog, so its components are not described here. Basically, you highlight objects from the Objects in the SCENE list window at left, and then click the > button to place them in the Objects in the SIMULATION list window at right. The Exclude and Include option buttons above the rightmost window determine whether the items listed are excluded or included in the simulation.

Edit Object Dialog: Displays a dialog that lets you set dynamic properties for any object in the simulation. This is the dialog in which you’ll spend most of your time setting up your dynamics simulation.

Object: Displays the name of the object for which you’re setting the dynamic properties. All settings in the Edit Object dialog affect the object listed here. To change the object you’re affecting, open the pop-up list, and choose from a list of all objects assigned to the simulation. (Objects are assigned to the simulation using the Edit Object List dialog, described in the previous section.)

Recalculate Properties Area

The options here let you choose if you want to recalculate the properties of an object that changes over the course of the animation. Specifically, the properties refer to the mass moment of the object. The mass moment of an object can be defined as the measure of how the mass in an object is distributed with respect to the center of mass of that object. Altering the mass moment changes the way an object responds to torque. For example, a spinning ice skater can alter her mass moment, and thereby increase her spin, by pulling her arms in toward her body. Thus, if your object is changing shape over time, and you want to take this into account for the simulation, you should recalculate the properties.

Never: No calculation is performed, beyond the first calculation for the dynamics solution.

Every Frame: The object’s properties are recalculated for every frame.

Every Calc Interval: The object’s properties are recalculated at each “Calc Interval.” The Calc Interval (interval of calculation) is set in the Time Parameters rollout, and specifies how many calculations are performed for each frame of the simulation time range.

Collision Test Area

The options in this area specify which type of boundary is used for collision testing.

Box: A bounding box is used to test collision. This is the fasted method. If your object is a box or close to a box shape, this option is both fast and accurate.

Cylinder: A cylindrical form is used to test collision. The “height” axis of the cylinder is aligned with the local Z axis of the object.

Sphere: A spherical form is used to test collision.

Mesh: Uses the surface of the object to calculate the collision. This option is the most accurate, but also takes far longer to calculate than the previous three methods. Use this only when your object is too complex to work properly with the first three options.

Assign Effects/Collisions Area

Provides two buttons that display subdialogs letting you specify which effects in the scene will affect the current object, or which objects in the scene can collide with the current object.

Assign Object Effects: Click to display a subdialog that lets you specify which effects in the scene will affect the current object. The dialog consists of two list windows. All effects in the scene are listed in the window at left. Highlight from the list, and then click the > button to transfer the highlighted effects to the window at right.

Assign Object Collisions: Click this to display a subdialog that lets you choose which objects in the scene are considered for collision with the current object. This dialog works the same as the Assign Object Effects dialog, except that it lists only the objects that are in the scene. Objects included for collision in this dialog can collide with the current object.

Misc Dynamic Controls Area

Use Initial State: When this is checked, the simulation solves for the motion, energy, and momenta of the object at the input time for the simulation. (The frame specified in the Start Time spinner in the Time Parameters rollout.) If Use Initial State is unchecked, the object is assumed to be sitting motionless at the input time for the simulation. The Dynamics utility overwrites keys, and it can’t deal with things moving through the simulation without specific keys, so either the object’s keys are clocked with the simulation, or it’s not moving (or both). Thus, if you don’t solve for the initial state, the object’s keys are interpolated at the instant the simulation starts and all subsequent motion comes from the interaction of the simulation itself.

This Object is Immovable: When this is checked, the object will not move throughout the simulation. Its mass and inertia are infinite, and it cannot be affected by anything that collides with it.

Move Pivot to Centroid: When this button is on (green), and you exit the Edit Object dialog by clicking OK, then the object’s pivot point is moved to its center of mass. Having the pivot aligned with the center of mass speeds up the dynamics calculation, and makes manual keyframing of the objects appear more natural. However, if the pivot point is already positioned as part of a linked hierarchy, doing this will alter the positioning of your hierarchical linkage.

Load/Save Parameters Sets Area

Lets you save the current Edit Object parameter settings, or load previously saved parameter settings. Among other things, you can use these controls to save the settings for one object, and then apply them to another object. To save the settings, enter a name in the Set Name field, and then click the Save button. The saved parameters appear in the list window. To load previously saved settings, highlight a name in the list window, and then click the Load button. To delete saved parameter settings, highlight a name in the list window, and then click Delete.

Set Name (edit field)

Available Parameters Sets (list window)

Load (button)

Save (button)

Delete (button)

Physical Properties Area

Provides a number of controls that specify the physical properties of the current object.

Density g/cc: Specifies the density of the object in grams per cc. A setting of 1 is the equivalent of water, and good for anything wooden, plastic, or organic. The more dense an object, the slower it will react to forces. There is a direct relationship between Density and Mass, so when you alter the Density, the Mass value changes (when it’s automatic value is not overridden).

Static Friction: Static friction specifies how hard it is to start moving on a surface. The value used for static friction is taken from the Dynamics Properties of the material assigned to the object, and this spinner is disabled unless Override Mat’l Static Friction is checked.

Override Mat’l Static Friction: Check this to enable the Static Friction spinner when you want to use a specific value that’s different than that assigned by the object’s material. Note that, when using a Multi/SubObject material, you can assign different static friction values to the submaterials, and thus to different faces of an object. But if you use an override value, it affects the whole object only.

Copy to Object’s Materials: Check this and, when you exit the Edit Object dialog by clicking OK, the value in the Static Friction spinner is copied to the top level of the material assigned to the object.

Sliding Friction: Sliding friction determines how hard it is for an object to keep moving over a surface. These settings are also taken from the Dynamic Properties of the assigned material. The associated checkboxes work in the same way as well.

Bounce : Specifies how much the object bounces after collision. These settings are also taken from the Dynamic Properties of the assigned material. The associated checkboxes work in the same way as well.

Mass : Technically, mass is the measure of how many subatomic particles are in an object. In 3DS MAX, it’s calculated as a result of density times volume. Practically speaking, mass can be described as the resistance to acceleration given a constant force. The greater the mass, the more resistance. Note that this value (when not overridden) is derived from the Density and Volume, and that Volume (when automatically calculated) is affected by the Calculate Properties Using options.

Override Automatic Mass: Check this to enable the Mass spinner so you can specify your own mass value. When you override the automatic value, the Mass value is no longer affected by the Density or Volume values.

Volume cc: This is the volume of the object, measured in cubic centimeters. When automatically calculated, this value depends on the option chosen under Calculate Properties Using.

Override Automatic Volume: Check this to enable the Volume spinner so you can specify your own mass value. When you override the automatic Volume value, it’s no longer affected by the Calculate Properties Using options, and it no longer affects the Mass value.

Calculate Properties Using: The options in this area let you specify what type of geometry the simulation will use to calculate the mass, the volume and the mass moment. When the Mass and Volume values are automatically calculated (their Overrides are unchecked), changing these options affects the Volume, and therefore the Mass values. This dialog works the same as the Assign Object Collisions dialog, except that it lists only the effects that are in the scene.

Vertices: When this is chosen, the object is treated as a “point cloud,” or a collection of vertices without segments. Each vertex is given a mass of 1 gram, but the object itself has no volume.

Surface: This option treats the object as a hollow shell whose thickness is 1 centimeter. The mass is derived from the surface area and the 1-centimeter thickness, but the object has no volume.

Bounding Box: A bounding box surrounding the extents of the object is used to calculate both the volume (of a solid bounding box) and the mass (based on the volume).

Bounding Cylinder: Similar to the Bounding Box option, except that a bounding cylinder is used, whose Z height axis is aligned with the local Z axis of the object.

Bounding Sphere: Similar to Bounding Box, except that a bounding sphere is used.

Mesh Solid: The geometry of the object is used to calculate both the volume and the mass.

Property Estimate Resolution: The items here become enabled only when the Mesh Solid option is chosen, and affect the accuracy with which the mass moment is calculated. This, in turn, determines how accurately the rotation of the object responds to torque.

Grid cm: A sampling grid is used to calculate the mass moment. The smaller the cells in the grid, the more accurate the calculation. The grid cells are measured in centimeters, regardless of the current display unit.

Automatic Resolution: Check this to let the Dynamics utility automatically set the grid size based on the complexity and size of the object. In addition, when you check this, the lowest value that will be automatically calculated is plugged into the Grid spinner (which is also disabled). Thus, if you want to specify your own grid value using the Grid spinner, but want some idea of where to start, you can check and then uncheck Automatic Resolution.

Assign Object Effects Dialog

Click to display a dialog that lets you specify which effects will globally affect all objects in the simulation. The dialog is the same as the lighting Exclude dialog, so its components are not described here. All available effects appear in the list window at the left of the dialogs. Select the effects from that list window, and then click the > button to place them in the Effects on all OBJECTS window at right.

Assign Object Collisions Dialog

Click to display a dialog that lets you specify which objects in the simulation are globally considered for collisions in the simulation. This dialog works the same as the Assign Global Effects dialog. The list window at left lists all of the objects in the simulation. Choose the objects from that list, and click the > button to place them in the Objects in the COLLISION LIST window at right.


Using Linked Hierarchies

When linked hierarchies are included in your simulation, you must set locks for the children in the simulation to confine the dynamics results to specific axes. This is done in the Locks rollout of the Hierarchy/Link Info command panel.

The Locks rollout contains three rows of checkboxes affecting the XYZ axes of the three possible transforms: Move, Rotate, and Scale. For the purposes of a dynamics simulation, the Scale transforms are ignored, and only the Move and Rotate locks are used. Generally, when a checkbox is checked, that axis of the specific transform is locked.

Ignoring the dynamics system for a moment, when you manipulate a forward-kinetix hierarchy directly, using the Move or Rotate tools, you might not bother with the Link Info locks, because to can specify axis constraints using the X/Y/Z/XY buttons in the toolbar. However, when that same hierarchy is in a dynamics simulation, where there are various forces at work (gravity, wind, collisions), the only thing that maintains the linkage between the objects is the locks you set in the Link Info/Locks rollout. As a result, no matter what combination you use of Move and Rotate locks, you’ll always want at least one Move lock in place, or your object will not really be linked.

The following lists all of the combinations of Move and Rotate locks that make sense within a dynamics simulation, and the effect on the link of such combinations. An asterisk (*) indicates those combinations that are more typically useful.

1 Move Lock: Any single Move is checked. The physical interpretation of this is of a long pin sliding in a loose, long slot. In this case, the joint can transmit force in one direction only. The objects can slide with respect to each other in two directions and rotate freely.

2 Move Locks: Any two Moves are checked. This is a sliding ball joint; a freely rotating joint at the end of a sliding shaft, which can slide and rotate in a hole.

* 3 Move Locks: All three Moves are checked.This is a ball joint, or the theoretical “pin joint” of the statics and dynamics texts, in that it transmits any force but never transmits any torque.

1 Move + 1 Rotate (unique): Any one Move and any one Rotate are checked, but not in the same column. The physical interpretation of this is two long pins, parallel, sliding in a single long slot. The joint can transmit force in one direction only and restrain rotation about the axis of the “pins.” This combination is of limited application.

2 Moves + 1 Rotate (matching): Two Moves checked, plus one Rotate checked that’s in the same column as one of the checked Moves. The physical interpretation is the same as 1 Move + 1 Rotate, above, except that the pins can no longer slide vertically in their slot. If the assembly rotates so that one pin travels further into the slot, the other must ride higher in the slot. This is of limited application. The possible checkbox combinations are shown below:

XXO XXO XOX or XOX OXX OXX

OXO XOO XOO OOX OOX OXO

* 2 Moves + 1 Rotate (complementary): Two Moves checked, plus one Rotate that’s not in the same column as any of the checked Moves. This is a sliding universal jointlike the splined output shaft between the automatic transmission of a rear-drive car and the drive shaft. It can transmit torque and constrain translation in two directions, both orthogonal to the axis of rotation. The possible checkbox combinations are shown below:

XOX XXO OXX

OXO OOX XOO

3 Moves + 1 Rotate: Three Moves checked plus one Rotate checked. This is a universal joint without the sliding. It’s typical of automative applications where the rear axle is located with the trailing driveshaft. This is an uncommon application.

* 1 Move (complementary) + 2 Rotates: One Move checked that’s complementary to the two checked Rotates. This is like a hockey puck on ice. That is, the joint can slide anywhere on a plane, but cannot fall or tip, and cannot leave the surface of the plane. The possible checkbox combinations are shown below:

XOO OXO OOX

OXX XOX XXO

2 Moves (one complementary) + 2 Rotates: Two Moves checked, one of which is complementary to one of the two Rotates that are checked. This is like a hockey puck with a nail through it, and the nail is sliding along a groove in the ice. It’s free to travel in one direction, and to rotate about an orthogonal axis. One example of the possible checkbox combinations would be as follows:

XXO

XOX

* 2 Moves + 2 Rotates (matching): Two Moves checked and two matching Rotates. This results in a sliding axle. Imagine a shaft that can both slide in and out of a hole, and rotate with the hole. The unchecked Move and Rotate axis specifies the axis along which the joint can slide and rotate. The possible checkbox combinations are shown below:

XXO XOX OXX

XXO XOX OXX

* 2 Moves + 3 Rotates: Two Moves checked and all three Rotates.This is a prismatic or sliding joint. The joint transmits no torque, and force in only one direction. You can use this in conjuction with the Push effect to make a hydraulic cylinder. The one unchecked Move specifies the axis of movement.

* 3 Moves + 2 Rotates: All three Moves checked, and any two Rotates. This is an axle. Probably the most common type of joint. The one unchecked Rotate specifies the axis of rotation.

All Locked: All six checkboxes checked. This is a completely rigid joint.


Reducing Keys

When you Solve a dynamics simulation, Position and Rotation keys are generated at every frame of the specified range for every object affected in the simulation. Not only does this result in an excess of keys for later editing, but it can increase the size of the .max file tremendously. The following steps show how to reduce the number of keys by using the Track View.

To reduce the keys generated by the Dynamics Utility, do this:

  1. After Solving the simulation, check the animation to make sure it’s what you want, and then save that version of the scene.
  2. Deselect every object in the scene.
  3. In the Objects in Simulation area of the Dynamics panel, click the Select Objects in Sim button.

    4. All objects included in the simulation are selected.

  4. Open a Track View window, and then set its filter to show Animated Tracks Only and Selected Objects Only.
  5. Right-click over the top object in the hierarchy list, and choose Expand All.

    6. The Track View now shows all tracks in the simulation that have keys.

  6. Go to Edit Time display mode.
  7. Select all of the tracks containing keys (or simply right-click over the hierarchy, and choose Select All).
  8. Double-click within any of the selected tracks to select all keys in all tracks.
  9. Click the Reduce Keys button, set the Threshold to what you want (or leave it at its default setting), and then click OK.

    10. All selected keys are reduced.

  10. Save the reduced version of the scene (either under a new name, or by replacing the original file).


Bouncing a Ball

This exercise shows you how to bounce a ball against a box.

  1. In the center of the Top viewport, create a box that’s about 200 length, 200 width, and 20 height. This is your floor.
  2. Create a sphere that’s about 30 radius, and position it so it’s about 100 units over the center of the floor.
  3. In the Create/Space Warps/Particles & Dynamics branch, click the Gravity button.
  4. In the Top viewport, drag anywhere to create a Gravity icon.

    5. You don’t need to bind the space warp to an object. You’ll use the Dynamics utility instead. Note, also, that the position of the gravity icon doesn’t matter, but its orientation does. In this case, you create it in the Top viewport so that gravity will pull downward.

  5. Create a material with a Checker map (tiled 4x4), and assign it to the sphere. (You can use the default Dynamics Properties of the material.)

    6. The purpose of the checker material is so you can see the rotation of the sphere.

  6. Click Time Configuration, set the animation Length to 200 frames, and click OK.
  7. Save your scene.

Now that you’ve got a scene, your next steps are to create a new simulation, and then tell the dynamics system which objects are going to be considered in the simulation.

  1. In the Utilities panel, click the Dynamics button, and then click the New button to create a new simulation.

    2. A new simulation name appears in the pop-up list.

  2. Click the Edit Object List to specify the objects that will be in the simulation.
  3. Select all three of the spheres listed in the window at left, click the > button to place them in the Include window at right, and then click OK.

    4. (Note that, since all objects will be included in this simulation, you could alternatively have simply chosen the Exclude option in the dialog and left the objects in the window at left.)

And now, you’ll enter the Edit Object dialog, which contains most of the settings for the Dynamics utility. Here, you’ll specify the properties and relationships for each of the objects included in the simulation.

  1. Click Edit Object.

    2. The Edit Object dialog appears.

  2. Choose Box01 in the pop-up list in the upper-left corner of the dialog. All controls in the dialog are specific to the object displayed in this pop-up list.

    3. The first thing to specify for any object is whether or it’s immovable. As you’ll see, if the object is immovable, most other options in the dialog become disabled. Since the box object is the floor, it’s definitely immovable. (You don’t want it to move downward when hit by the sphere.)

  3. Check This Object is Immovable in the Misc Dynamic Controls area.

    4. Much of the dialog becomes disabled.

  4. Choose Box in the Collision Test area.

    5. This tells the dynamics system that a bounding box will be used to represent this object during collisions. If your floor was complex in shapesuch as irregular terrainyou’d have to use the Mesh option, which would require much more calculation.

  5. Choose Sphere01 in the pop-up list.
  6. Make sure that Use Initial State is checked in the Misc Dynamic Controls area.

    7. This means that, at the start frame of the simulation, the initial keyed transform of the object will be extrapolated.

  7. In the Collision Test area, choose Sphere.
  8. In the Calculate Properties Using area, choose Bounding Sphere. (This determines what type of mass and volume is used for the calculations.)

    9. Now, assign gravity to the sphere so it’ll fall.

  9. Under Assign Effects/Collisions, click Assign Object Effects.
  10. In the resulting dialog, move Gravity to the rightmost window, and click OK.

    11. And, finally, specify the object with which the sphere will collide. (Notice that the sphere has to be aware that it will collide with the box, but the box doesn’t have to be aware of the sphere because the box is not reacting to the sphere.

  11. Click Assign Object Collisions, move the Box01 to the rightmost window of the dialog, and click OK.
  12. Click OK to exit the Edit Object dialog.
  13. Save your scene (you’ll be using the saved version later).

You’re almost done. The final steps are to set your ranges, and then solve the animation.

  1. In the Timing & Simulation rollout, set the Start Time to 0 and the End Time to 200. (End Time is probably already 200 because it picks up the current last frame when you begin a New simulation.)
  2. Click the Solve button.

    3. The progress bar travels across the Status/Prompt area.

  3. Play the animation.
  4. The ball drops and bounces on the box.

If you look in the Track View for the sphere, you’ll see that Position, Rotation, and Scale tracks have been generated for the sphere for each frame of the animation. Once you have an animation that works for you, you can reduce the number of keys by going into Edit Time display in the Track View, selecting all keys in all of the tracks, and then clicking the Reduce Keys button. This can take time, but it greatly reduces the size of your scene file.

Next, you’ll expand on the animation slightly by adding a couple of boxes.

  1. Reload your original scene (the one you saved just before solving the simulation).
  2. From the Front viewport, SHIFT-move the box diagonally down and to the right to create a second box below and to the right of the first.
  3. Repeat the above step to create a third box below and to the right of the second.

    4. The three boxes should be arranged as the equivalent of three stair steps.

  4. Also from the Front viewport, move the sphere horizontally to the left so it’s hovering over the left edge of the top box. (If you were to drop it straight down, it would just miss the edge of the box.)
  5. Go to frame 10, and turn on the Animate button.
  6. In the Front viewport, move the sphere to the right until it’s just over the left side of the box.
  7. Turn off Animate.

Before solving this, you’ll need to tell the simulation about the new boxes.

  1. Click Edit Object List, and add the new boxes to the window at right.
  2. Click Edit Object.
  3. Choose each of the new boxes in the pop-up list, and then check This Object is Immovable for both of them. (Also, make sure that Box is chosen under Collision Test for each of them.)
  4. Choose the sphere in the pop-up list, click Assign Object Collisions, and then add the two new boxes to the window at right, so that all three boxes are considered for collisions.
  5. Click OK to exit the Edit Object dialog.
  6. In the Timing area, set the Start Time to 5. (The simulation picks up the movement of the sphere at frame 5 and extrapolates.)
  7. Set the End Time to 200.
  8. Click Solve.
  9. Play the animation.

The sphere bounces down the stairs.

Depending on the positioning of the three boxes, and the amount of movement of the sphere before frame 5, the sphere might bounce past one or more of the boxes. Here are some adjustments you can try:

  • Reposition the boxes, and then click Solve again to see the result.
  • In the Materials Editor, go into the Dynamics Properties for the material assigned to the sphere, and reduce the Bounce Coefficient (so the ball isn’t as bouncy).
  • Assign materials to the boxes, and reduce their Bounce Coefficients, as well. (You can assign different materials to each box so the ball bounces differently with each it strikes.)

Some other things to try:

  • Uncheck This Object is Immovable for one of the boxes (such as the center one) and see what happens.
  • Experiment with the Static Friction and Sliding Friction settings in the material Dynamics Properties. Watch how it affects the spinning of the sphere as it hits a surface.
  • Replace one or more of the boxes with more complex objects. For example, make a bowl object by deleting half the vertices in a sphere, and then flipping its normals. Don’t forget to set the Collision Test to Mesh for an object like this. Otherwise, it’ll simply use the bounding box of the object.


Follow/Bank Utility

This utility applies Rotation keys to an object that already has a motion trajectory. The settings are similar to those found in the Path Controller. Essentially, you use this when you have an object for which you’ve already assigned motion and want it to follow or bank along its trajectory, but do not want to use a Path controller.

Although many of the settings are the same as in the Path controller, note the following differences:

  • It’s not dynamic. You have to click the Apply Follow button each time. When adjusting banking settings, move to the point at which the object is at the sharpest turn, then alternately click Apply Follow and adjust the banking settings to get the right affect at the extreme corner.
  • There is no undo for this utility, so use the Edit/Fetch command, or save your file before applying the banking.

Reference

Follow/Bank Parameters

Selected Object Area

Displays the name of the selected object.

Apply Follow: Click this to apply the settings and generate the Rotation keys. Each time you click this button, the Rotation keys in the specified range of frames (set in the Samples area) are deleted and regenerated.

Follow Options Area

Contains the parameters that specify whether or not to use banking, and the banking settings.

Bank: Check this if you want to bank as well as follow the trajectory.

Bank Amount: Adjusts the amount of the banking to one side or the other, depending on whether the value is positive or negative

Smoothness: Controls how rapidly the roll angle changes as the object moves through bends in the trajectory. Smaller values will make the object more responsive to subtle changes in the curve while larger values smooth out jerking. The default value is a good value for general damping along the curve. Values below 2 tend to make the action jerky, but values around 3 can be very useful for simulating a certain degree of a certain degree of realistic instability.

Allow Upside Down: Check to avoid the situation in which an object flips when going around a vertically oriented path.

Samples Area

Specifies the range of frames for which Rotation keys are generated, and the number of keys to be generated.

Start: Specifies the first frame for which Rotation keys are generated.

End: Specifies the last frame for which Rotation keys are generated.

Samples: Specifies the number of Rotation keys to be generated in the specified range.

Close: Click to close the utility.

How To

  1. Select Follow/Bank in the Utilities panel.
  2. Adjust the options in the Follow/Bank Parameters rollout
  3. Select the object you wish to follow/bank.
  4. Click the Apply Follow Button.

    5. The object now follows or banks along its trajectory


IFL Manager Utility

This utility generates an .ifl file from a single selected image file that’s part of a numbered sequence.

Reference

IFL Manager Parameters

Working File Prefix Area

After using the Select button to select a sequentially numbered file, the prefix name of the file appears in this area. For example, if the files are Tree0000.jpg, Tree0001.jpg, Tree0002.jpg, and so on, the title in this area would be Tree.

Start : Displays the number of the first image file in the selected sequence. Increase this to specify a different starting image for the .ifl file.

End: Displays the number of the last image file in the selected sequence. Decrease this to specify a lower ending image for the .ifl file.

Every nth: Set this to a number greater than 1 to skip a specified number of images in the list.

Multiplier: Adds a multiplier after each file in the .ifl list. Thus, if you set this to 3, each image is used three times before the next image in the list is used.

Select: Click this to display a file dialog from which you can select any file in a sequential list. The number appended to the file doesn’t matter, as long as the prefix and extension are the same. After selecting the file, the spinners in the IFL Manager are enabled.

Create: Click to display a file dialog from which you can name and save your .ifl file.

Edit: Displays a file dialog from which you can select an .ifl file. The selected file is then displayed in the Notepad.

Close: Closes the utility.

How To

Generally, to use the IFL Manager Utility, do this:

  1. Click the IFL Manager button in the Utilities panel.
  2. Click the Select button to display a file selector.
  3. Select any one of the sequentially numbered image files that you want included in the IFL list, and then click Open.

    4. The prefix name of the file appears in the Working File Prefix area, and the spinners in the IFL Manager panel become enabled.

  4. Set the Start spinner to specify the first numbered file in the sequence. (For example, set this to 5 to begin with file tree0005.jpg.)
  5. Set the End spinner to specify the last numbered file in the sequence. (This and the Start spinner default to the first and last number in the existing numbered files.

    6. Note: You can invert the Start and End valuessetting the greater value in Start and the lesser in Endto create a reversed list in the .ifl file.

  6. Click Create to display a file dialog in which you can name and then save your .ifl file.
  7. Click the Edit button to display a file dialog from which you can choose an .ifl file, which then appears in the Notepad.


Level of Detail Utility

The Level of Detail utility lets you construct an object that alters its geometric complexity or level of detail based on its size in the rendered image. You do this by creating several versions of the same object each with different levels of detail, grouping them as one, and then assigning the Level of Detail utility, which automatically creates a special LOD controller as a Visibility track. The LOD controller then hides and unhides the various objects in the group, depending on their size in the rendered scene.

The main purpose of this utility is to save time both in rendering complex objects and in manipulating objects in the viewports. Since a portion of rendering speed is directly related to the number of faces that must be rendered in a scene, using the Level of Detail utility lets you reduce the number of rendered faces as an object reduces its apparent size. In addition, you can use this utility to display a simple stand-in for a more complex object in the viewports. Since the Stack is not calculated for objects hidden in the viewports, you can speed up viewport manipulation by using this utility to substitute complex Stack objects with simple stand-ins.

Reference

Level of Detail Parameters

Level of Detail Set Area

Lets you create a new set, and add or remove objects from the current set.

Create New Set: Click this to create a new Level of Detail set based on a currently selected group object.

Add To Set: Click this to add an object to the Level-of-Detail set. To do this, you must first attach the object you want to add to the group object. To add an object to the set, use Align to center the object with the group object. Select the object you want to add, and then choose Attach from the Group menu, and then click the group object. Finally, click the Add to Set button, and then click the object you want added.

Remove from Set: Removes the object highlighted in the list window from the current set. Note that the object then becomes visible in the viewports, but is still part of the group. To remove the object from the group, choose Open in the Group menu, select the object you want removed, and choose Detach in the Group menu. Finally, select the group object again, and choose Close in the Group menu.

Image Output Size Area

Width/Height: The Width and Height spinners in this area are set to the current rendering output size each time you enter the Level of Detail utility. Using the spinners, you can change this to any resolution. If the % of Target Image option is selected (below), as you change the Target Image Size, the threshold values change as well.

Reset to Current: Click this to reset both spinners to the current rendering output size.

List window: Lists all of the objects in the group by complexity, with the least complex at the top of the list. The numbers at the left of each object name are the threshold values that indicate at what size the object will be displayed in the rendered scene. The numbers can be one of two types of unitspixels, or percentage of the target image. You set the type of unit in the Threshold Units area.

Display in Viewports (checkbox): Check this to display in the viewport the object highlighted in the list window. Only one object in the group is displayed in the viewports at any time. As a default, the least complex object is displayed, but you can look at the other objects by highlighting them in the list and checking this item. Note that double-clicking the object name in the list performs the same function as this checkbox.

Threshold Units Area

The options in this area let you choose between two types of threshold units. Note that, switching between these two options does not alter the effect; it only alters the method by which you set the thresholds.

Pixels: The thresholds are determined by specifying the maximum pixel size of the image (measured diagonally). Use this when you want to set the transfer thresholds using absolute rather than relative values.

% of Target Image: Sets the thresholds based on the percentage of the size of the image (measured diagonally) relative to the size of the rendered output.

Thresholds Area

Min Size/Max Size: These two spinners let you set the minimum size of the object before it’s replaced by the less complex object, and the maximum size of the object before it’s replaced by the more complex object. The values vary depending on the current type of Threshold Unit. The default threshold values are initialized so that the most complex object is 100 percent of the image output size. The remaining thresholds are set using an algorithm based on a ratio of the number of faces between each object. It assumes that all faces are the same size, and then picks thresholds so that the faces would remain a constant size as displayed on the screen. Usually, this will provide the type of smooth transition you need. But you can customize the threshold values to fit your needs. Note that the threshold values are interrelated between the objects, so altering the minimum size of one object, for example, will also alter the maximum size of the next object.

Reset All: Resets all thresholds for all objects in the list, using the previously described algorithm.

Tip: As mentioned, you can use the Level of Detail utility to create objects that display very simple geometry in the viewports, while displaying complex geometry in the rendered scene. Create a grouped Level of Detail object consisting of only two objects, the complex object and the simple object. Select the simple object in the list window and, in the Thresholds are, set its Min Size and its Max Size to 0. This will display the simple object in the viewports, but the complex object will always appear in the rendered scene, regardless of its apparent size.

Accessing the Grouped Objects

Accessing an Object’s Stack

If you need to access the Modify panel for one of the objects in the Level-of-Detail group, do this:

  1. Select the Level-of-Detail object, and then choose Open in the Group menu.
  2. In the Level of Detail utility, choose the object you want to access from the list window, and then check Display in Viewports (or simply double-click the object’s name in the list window).
  3. Select the object in the viewport.
  4. Open the Modify panel to access that object’s parameters.
  5. When finished, choose Close in the Group menu.

Assigning Materials

You can assign different materials to the various objects in the group. For example, you might want a very detailed map in the complex object, and a lightly detailed map in the less complex objects. It’s easiest to make these assignments before grouping the objects in the first place, but here’s how to assign materials to the objects within the group:

  1. Select the grouped object.
  2. Use the Display in Viewports checkbox in the Level of Detail utility to display the grouped object to which you want to assign the material.
  3. Drag the material from the Materials Editor (or the Browser) over to the object in the viewport.
  4. Choose Assign to Object in the Assign Material alert, and then click OK.

    5. Note: Be sure and choose Assign to Object. If you choose the default Assign to Selection, all objects in the group will be assigned the same material.

Dismantling a Level-of-Detail Object

If you look at a Level of Detail object in the Track View, you’ll only see the tracks for the subobject that’s currently displayed in the viewports. This is because, as a default, Show Only/Visible Objects is checked in the Track View Filters dialog. To see all subobjects in Track View, you need to uncheck Visible Objects.

If you need to dismantle a grouped Level-of-Detail object, and restore its subobjects to their independent states, do this:

  1. Open the Filters dialog in the Track View, and uncheck Visible Objects in the Show Only area.

    2. The tracks for all of the subobjects in the Level-of-Detail object are now visible.

  2. Open the hierarchy of each of the subobjects, and then select each of their Visibility tracks.
  3. Click the Delete Visibility Track button in the Track View toolbar.
  4. If you also want to remove the grouping, select the grouped objects, and then choose Explode in the Group menu.

How To

To set up an object for the Level of Detail utility, you do the following:

  1. Create two or more objects that are identical except for their complexity. Typically, this might be four objects, depending on how much the object will change in size, relative to the screen, over the course of the animation, and how extreme the complexity must be for the objects.

    2. Note: It’s best to assign materials and mapping coordinates, as well as all modifiers while the objects are still separate. You can access them later, but it’s easier to do it at this point in the operation.

  2. Select all of the objects, and use the Align tool to center all of them about a common center.
  3. Group the objects.
  4. Choose the Level of Detail utility.
  5. While the grouped object is selected, click the Create New Set button.

    6. The name of the objects within the group appear in the Level of Detail list window, in order of complexity, only the least complex object in the group is displayed in the viewports, while all other objects are made invisible.

  6. Use the controls in the Level of Detail rollout to adjust when the objects will switch their display in the rendered scene.


Link Inheritance (Selection) Utility

This utility works exactly the same as the Inherit rollout in the Link Info area in the Hierarchy panel, except that it lets you adjust link inheritance for multiple objects in a selection set, while the functions in the Hierarchy panel work only on single objects.

Reference


Measure Utility

Provides various measurements of a selected object or shape.

Reference

Measure Parameters

Text display: Displays the name of the object in the current selection. If more than one object is in the selection, this reports: Multiple Objects Selected.

Lock Selected: Check this to prevent the displayed data from changing when you change selection. For example, you might need to select and manipulate another object that affects the currently selected object.

Objects Area

Displays information about renderable mesh objects.

Surface Area: Displays the total surface area of all objects in the selection, in units squared.

Volume: Displays the total volume of all objects in the selection, in units cubed. Note that objects with “holes” caused by missing faces can result in inaccurate volume values. When an object has one or more holes, an asterisk appears beside the Volume number.

Center of Mass: Displays the world coordinates of the location of the center of mass for the object or the center of mass of the selected objects.

Create Center Poin: Creates a helper point object at the center of mass.

Shapes Area

Displays information about shape objects.

Length: Displays the sum of the length of all splines in all selected shapes.

Dimensions Area

Displays the dimensions of the object, as they appear in world space. For example, if it were a box with the created dimensions of 15x10x25, and that box were scaled 200 percent, then this area would report dimensions of 30x20x50.

New Floater: Launches a modeless Measure dialog that displays the same information found in the Objects and Shapes area of the Utilities panel. In addition, the dialog can be expanded horizontally, in case the values are too long to be viewed in the default dialog size, or in the command panel.

Tip: While the Measure floater is displayed, you can view the length of a spline while you’re creating it.

Close: Click this to close the utility, or simply reclick the Measure utility button.

How To

To measure an object

  1. Select Measure in the Utilities panel
  2. Select the object you want to measure.

    3. If both an object and a shape are in the selection, information is displayed for both types. If several objects are in a selection, the sum of their measurements is displayed.


Motion Capture Utility

The Motion Capture utility lets you drive your animation via peripheral devices, such as MIDI keyboards, joysticks, the mouse, and so on. While driving the animation, you can record it in real time.

The motion capture system in 3DS MAX is handled in the following way:

  • In the Track View, you assign motion-capture animation controllers to the specific tracks you want controlled by external devices.
  • After assigning the motion-capture controller, you open the Properties dialog for the track and bind the type of peripheral device(s). As an example, the Rotation Motion Capture controller has three rotational axes to which you can bind one device each. Typically, you’d use the same device for all three axes, but you could have a MIDI keyboard driving X rotation, a joystick driving Y rotation, and the mouse driving Z rotation.
  • After binding devices, adjust their settings and parameters in the lower portion of the Track Properties dialog. These controls vary depending on the type of device.
  • In the Utilities panel, access the Motion Capture utility. Here, you can test and record your motion for any combination of tracks over any range of frames.

The following motion-capture devices ship with 3DS MAX:

Mouse Input Device

Keyboard Input Device

Joystick Input Device

MIDI Device

Reference

Motion Capture Parameters

Record Controls Area

The buttons in the Record Controls area let you test and record your animation. The first three buttons let you control the recording directly, while the Start/Stop button lets you use a MIDI device to control the recording.

Start: Starts a recording, using the values set in the Record Range area below the track list window. In our example, you click Start, and the time slider begins to move. While this is happening, you move the mouse to flap the wings. At the specified Out frame, the recording stops. Note that the state of the Animate button is ignored.

Stop: Click this button to stop the recording before the Out frame is reached. You can also stop a recording by pressing ESC, or by pressing the right mouse button.

Test: Click on this to test your motion. No recording takes place, but you can, in the example below, move your mouse and watch the wings flap. Exit this mode either by clicking Test again, or pressing ESC or the right mouse button.

Play During Test: When this is checked, and you click Test, the animation in the scene plays in a loop while you test your motion. Note that tracks in the Motion Capture list that are selected (marked red) will not play back because they’re awaiting input from the assigned peripheral device.

Start/Stop: Click to display the Start/Stop Trigger Setup dialog. Here, you can choose the type of MIDI device that will control the recording. The dialog contains the following controls:

Start/Stop Trigger Setup Dialog

Presets: Choose the type of MIDI device. If the Media Control Station 2 is chosen, you can use its buttons to Stop, Play, and Record. (The Media Control Station is a MIDI device containing standard VCR-style playback buttons along with a jog wheel.) By choosing Custom, you enable the remaining spinners in the dialog, where you can set specific channels and note numbers. You can also use Custom to customize the controls used by the Media Control Station.

Channel: Use this to specify the channel to which your MIDI device is assigned.

Note Number: The spinners in this area let you specify which note event triggers which function.

Stop: This note event stops the playback or the recording. On the Media Control Station, this would be the square button. This is the equivalent of clicking the Stop button under Recording Controls.

Play: Plays the animation. This is the arrow button in the Medial Control Station.

Record: When this note is sent by itself, it’s the equivalent of clicking the Test button under Record Controls. To actually record the motion capture, you must press both Play and Record at the same time (the equivalent of clicking the Start button under Record Controls). Note that you can press the Play button before or after the Record button and release the Play button before or after the Record button. When releasing one of these two buttons, the other button is pressed. The recording starts when the button is released.

Enable: Check to use the assigned MIDI device for recording, instead of the Start, Stop and Test buttons.

Tip: In the Time Configuration dialog, you can reduce the viewport playback speed, test or record at the lower speed, and then reset the speed to normal to view the results.

Tracks Area

The Tracks area displays all tracks that have been assigned Motion-Capture controllers. Here, you select the tracks that will be affected by the three buttons in the Record Controls area. Click a track to toggle its selection box on or off. Only the selected tracks displaying the red box are affected by the Record Controls.

You can select the tracks either by clicking them, or by using the All, Invert, None buttons. In addition, you can create named selection sets of tracks. To create a named selection, click the tracks you want, and then enter a name in the edit field above the track list. To select a previously named set, open the edit window, and select it from the list. To delete a named set, select it from the pop-up list, and then click the delete button to the right.

Important: A specific track can be in only one named selection at a time. Put another way, you can’t have the same track in more than one named selection.

All: Assigns all tracks to the Record Controls Area

Invert: When tracks are selected, assigns the unselected tracks to the Record Controls Area.

None: Assigns none of the tracks to the Record Controls Area.

Record Range Area

The Record Range area specifies the frame range affected by the recording. You can also set a preroll range of frames.

Preroll: Specifies the frame number at which the animation begins playing when you press the Start button. Note that if this number is the same or greater than the In number, the Preroll number is ignored. For example, if In: 0 and Out: 200, then a Preroll of -100 would give you 100 frames before the recording started, while a Preroll of 50 would be meaningless. If the range defined by Preroll and Out is larger than the current segment, the segment is temporarily enlarged during the recording.

In: Specifies the frame number at which the recording begins after you click the Start button.

Out: Specifies the frame number at which the recording ends after you click the Start button. You can stop the recording before this by clicking the Stop button.

Live During Preroll: When this is active, the motion capture is live through the preroll frames. That is, it’s the same as when the Test button is on. The motion occurs, but is not recorded. Note that this can cause sudden motion shifts at the In frame because your live motion might not match the animation when you reach the In frame. When this option is inactive, the motion is disabledor frozen until you reach the In frame.

Samples Area

When the motion data is captured, it is sampled at a rate relative to the current frame rate, which defaults to 30 frames per second. Increasing the frame rate increases the sample rate. The two radio buttons in this section allow you to choose 1 or 2 samples per frame. This is a short cut to let you sample at a field rate. If you’re rendering to fields, you don’t necessarily need to capture at 60 frames per second. Controllers will interpolate between the samples.

Reduce Keys: When selected, the keys generated by the motion capture are automatically reduced.

Threshold: The value you enter in the Threshold field constrains how much 3DS MAX changes the selected track. The difference between the new animation and the original animation, at any frame, will be less than the threshold value.

  • Low threshold values closely match the original animation but may not greatly reduce the number of keys.
  • High threshold values produce the fewest keys but may not match the original animation with much accuracy.

Note: When Reduce Keys is active, there is additional calculation time after each completed recording.

How To

Assigning a Motion-Capture Controller

As mentioned, the first step in using motion capture is to assign motion-capture controllers to the tracks you want. We’ll use a simple example of a bird with segmented wings that you want to flap using your mouse. The pivot point of each wing segment has been moved so that the segments rotate as hinges about their local Y axis.

You’ll set it up so that the vertical motion of the mouse rotates only the wing segments attached to the bird’s body, while horizontal mouse motion rotates the remaining segments, making the wings curl.

To assign a motion-capture controller, do this:

  1. In the Track View, find the Transform track of one of the wing segments.
  2. Select the Rotation track, and click the Assign Controller button.
  3. Choose Rotation Motion Capture from the dialog, and click OK.

When you assign a Motion-Capture controller, the previously assigned controller is maintained as a child of the Rotation controller. This lets you continue to adjust the rotation of the object using standard transform controls, while still making motion-capture control available.

Binding and Adjusting Devices

After assigning a motion-capture controller, you next determine the type of device that will drive the motion. Depending on the type of controller, you might be able to bind one or more devices. For example, a Rotation motion-capture controller can have three devices, one for each axis of rotation. On the other hand, a controller for the radius of a cylinder would have only one device to control the radius value.

You bind the devices in the Properties dialog for the track.

To specify a device:

  1. Click the Properties button while the Rotation track is selected.

    2. The properties dialog for rotation motion capture includes three binding buttonsone for each axis. In this example, you want to drive the Y rotation with the mouse.

  2. Click the Y Rotation button. In the resulting dialog, choose Mouse Input Device, and click OK.

    3. The lower half of the Properties dialog display controls specific to the new device. Assuming this is a wing segment that is not attached to the body, you want the horizontal mouse movement.

  3. In the Mouse Input area, choose Horizontal.

The Scale spinner lets you adjust the relative effect of the mouse movement to the rotation. The Flip checkbox reverses the rotational direction with respect to the mouse movement.

You would next repeat the above steps for each wing segment. On the two segments linked to the bird’s body, you would specify Vertical instead of Horizontal mouse movement. You might also lower the Scale for these two segments so the wings don’t react to quickly to your mouse movement.


Binding and Adjusting Devices

After assigning a motion-capture controller, you next determine the type of device that will drive the motion. Depending on the type of controller, you might be able to bind one or more devices. For example, a Rotation motion-capture controller can have three devices, one for each axis of rotation. On the other hand, a controller for the radius of a cylinder would have only one device to control the radius value.

You bind the devices in the Properties dialog for the track.

To specify a device:

  1. Click the Properties button while the Rotation track is selected.

    2. The properties dialog for rotation motion capture includes three binding buttonsone for each axis. In this example, you want to drive the Y rotation with the mouse.

  2. Click the Y Rotation button. In the resulting dialog, choose Mouse Input Device, and click OK.

    3. The lower half of the Properties dialog display controls specific to the new device. Assuming this is a wing segment that is not attached to the body, you want the horizontal mouse movement.

  3. In the Mouse Input area, choose Horizontal.

The Scale spinner lets you adjust the relative effect of the mouse movement to the rotation. The Flip checkbox reverses the rotational direction with respect to the mouse movement.

You would next repeat the above steps for each wing segment. On the two segments linked to the bird’s body, you would specify Vertical instead of Horizontal mouse movement. You might also lower the Scale for these two segments so the wings don’t react to quickly to your mouse movement.


Using the Motion Capture Utility

After binding the mouse device to each of the wing segments, you can now exit the Track View, and use the Motion Capture utility to test and record the motion.

After selecting Motion Capture in the Utilities panel, a number of controls appear that are described here.

Record Controls Area

Tracks

Naming Tracks

Record Range

Samples


Record Controls Area

The buttons in the Record Controls area let you test and record your animation. The first three buttons let you control the recording directly, while the Start/Stop button lets you use a MIDI device to control the recording.

Start (button): Starts a recording, using the values set in the Record Range area below the track list window. In our example, you click Start, and the time slider begins to move. While this is happening, you move the mouse to flap the wings. At the specified Out frame, the recording stops. Note that the state of the Animate button is ignored.

Stop (button): Click this button to stop the recording before the Out frame is reached. You can also stop a recording by pressing ESC, or by pressing the right mouse button.

Test (button): Click on this to test your motion. No recording takes place, but you can, in the given example, move your mouse and watch the wings flap. Exit this mode either by clicking Test again, or pressing ESC or the right mouse button.

Play During Test (checkbox): When this is checked, and you click Test, the animation in the scene plays in a loop while you test your motion. Note that tracks in the Motion Capture list that are selected (marked red) will not play back because they’re awaiting input from the assigned peripheral device.

Start/Stop... (button): Click to display the Start/Stop Trigger Setup dialog. Here, you can choose the type of MIDI device that will control the recording. The dialog contains the following controls:

Presets (pop-up list): Choose the type of MIDI device. If the Media Control Station 2 is chosen, you can use its buttons to Stop, Play, and Record. (The Media Control Station is a MIDI device containing standard VCR-style playback buttons along with a jog wheel.) By choosing Custom, you enable the remaining spinners in the dialog, where you can set specific channels and note numbers. You can also use Custom to customize the controls used by the Media Control Station.

Channel (spinner): Use this to specify the channel to which your MIDI device is assigned.

Note Number (text): The spinners in this area let you specify which note event triggers which function.

Stop (spinner): This note event stops the playback or the recording. On the Media Control Station, this would be the square button. This is the equivalent of clicking the Stop button under Recording Controls.

Play (spinner): Plays the animation. This is the arrow button in the Medial Control Station.

Record (spinner): When this note is sent by itself, it’s the equivalent of clicking the Test button under Record Controls. To actually record the motion capture, you must press both Play and Record at the same time (the equivalent of clicking the Start button under Record Controls). Note that you can press the Play button before or after the Record button and release the Play button before or after the Record button. All that matters is that when releasing one of these two buttons, the other button is pressed. The recording starts when the button is released.

Enable (checkbox): Check to use the assigned MIDI device for recording, instead of the Start, Stop and Test buttons.

Tip: In the Time Configuration dialog, you can reduce the viewport playback speed, test or record at the lower speed, and then reset the speed to normal to view the results.


Tracks

The Tracks area displays all tracks that have been assigned Motion-Capture controllers. Here, you select the tracks that will be affected by the three buttons in the Record Controls area. Click a track to toggle its selection box on or off. Only the selected tracks displaying the red box are affected by the Record Controls.

You can select the tracks either by clicking them, or by using the All, Invert, None buttons. In addition, you can create named selection sets of tracks. To create a named selection, click the tracks you want, and then enter a name in the edit field above the track list. To select a previously named set, open the edit window, and select it from the list. To delete a named set, select it from the pop-up list, and then click the delete button to the right.

Important: A specific track can be in only one named selection at a time. Put another way, you can’t have the same track in more than one named selection.


Naming Tracks

As a default, each track is provided a name consisting of the name of the object followed by a backslash and the name of the parameter. For example: Sphere01\Angle is an Angle parameter applied to one of the modifiers assigned to a sphere. You can rename the tracks in the Properties dialog, which can be accessed in the standard way through the Track View, or by double-clicking the track name in the list window of the Motion Capture utility. The upper rollout of each properties dialog includes a Track Name field. Any name entered in the Track Name field appears in the track list in the command panel, in the title bar of the Properties dialog, and beside the Data track in the Hierarchy window of the Track View.


Record Range

The Record Range area specifies the frame range affected by the recording. You can also set a preroll range of frames.

Preroll: Specifies the frame number at which the animation begins playing when you press the Start button. Note that if this number is the same or greater than the In number, the Preroll number is ignored. For example, if In: 0 and Out: 200, then a Preroll of -100 would give you 100 frames before the recording started, while a Preroll of 50 would be meaningless. If the range defined by Preroll and Out is larger than the current segment, the segment is temporarily enlarged during the recording.

In: Specifies the frame number at which the recording begins after you click the Start button.

Out: Specifies the frame number at which the recording ends after you click the Start button. You can stop the recording before this by clicking the Stop button.

Live During Preroll: When this is active, the motion capture is live through the preroll frames. That is, it’s the same as when the Test button is on. The motion occurs, but is not recorded. Note that this can cause sudden motion shifts at the In frame because your live motion might not match the animation when you reach the In frame. When this option is inactive, the motion is disabledor frozen until you reach the In frame.


Samples

When the motion data is captured, it is sampled at a rate relative to the current frame rate, which defaults to 30 frames per second. Increasing the frame rate increases the sample rate. The two radio buttons in this section allow you to choose 1 or 2 samples per frame. This is a short cut to let you sample at a field rate. If you’re rendering to fields, you don’t necessarily need to capture at 60 frames per second. Controllers will interpolate between the samples.

When Reduce Keys is active, the keys generated by the motion capture are automatically reduced, using the same algorithm found in the Reduce Keys function in the Track View. The Threshold spinner is also the same as the Threshold function in Track View Reduce Keys. (Spinner Value: float, 0 to 999,999)

Note: When Reduce Keys is active, there is additional calculation time after each completed recording.


Properties of Specific Motion Capture Devices

The following motion-capture devices ship with 3DS MAX:

Mouse Input Device

Keyboard Input Device

Joystick Input Device

MIDI Device


Mouse Input Device

Controls animation using the horizontal or vertical motion of the mouse. The available settings include:

Horizontal/Vertical: Choose one or the other of these to specify which mouse motion drives the animation.

Scale: Scales the relative effect of the mouse movement to the animation response. (Spinner Value: float, 0 to 999,999)

Flip: Flips the direction of the response relative to the mouse movement. For example, if moving the mouse horizontally to the right produces a clockwise effect on a Rotation controller, activating Flip will reverse the rotation to counterclockwise.


Keyboard Input Device

Lets you assign most keyboard keys to drive the animation.

Reference

Key Assignment Area

Click the Assign button, and then press any key. The assigned key appears in the drop-down list window at right. Alternatively, you can open the drop-down list and select a key from there.

Assign: Click the Assign button, and then press any key. The assigned key appears in the drop-down list window at right.

Drop-Down List: You can open the drop-down list and select a key from there.

Envelope Graph Area

Displays a representation of the amplitude curve over time.

Envelope Parameters Area

Provides controls that let you specify the time over which the envelope of the action takes effect, relative to the key press and release.

Attack : The time it takes after pressing the key for the value to reach its maximum level.

Decay: The time it takes after having reached maximum for the value to fall to that specified by the Sustain spinner.

Sustain: After the Attack and Decay, the value specified here is sustained until you release the key.

Release: After releasing the key, this is the time it takes for the value to fade out to zero.

Parameter Scaling Area: Provides controls that let you set the scale of the envelope and the range of the output value.

Time: Specifies the scale of the Attack, Decay, and Release parameters. The value represents the number of seconds that 1 unit is. For example, if this value is 1.0, then an Attack value of 1.0 equals 1 second.

Range: Sets the maximum output value of the controller.

Note: This controller ignores the state of the CTRL, ALT and SHIFT keys.

Tip: Since a single keyboard key can only generate either a positive or negative value, if you want to, say, control both directions of a Bend Angle, you do this by using a List controller. First, make sure there’s a standard controller (such as a Bezier controller) assigned first in the list to maintain the center position. Then add two Keyboard motion capture controllers to the listone assigned to one keypress, and the other assigned to a different keypress. Set the Range of one to the positive extent and the Range of the other to the negative extent.


Joystick Input Device

The Joystick Input Device driver was designed for the Microsoft Sidewinder joystick, which contains more controls than the standard joystick. Nevertheless, you can use this device driver for standard joysticks as well. The available settings include:

Reference

Joystick Axis Area

X, Y, Z : Choose one of these to specify which joystick direction drives the animation. (Standard joysticks provide X and Y axes only. The Sidewinder provides the Z axis when you twist the joystick.)

Throttle: On the Sidewinder, this is a slider next to the stick.

Scale: Scales the relative effect of the joystick action to the animation response. (Spinner Value: float, 0 to 999,999)

Flip: Flips the direction of the response.

Accumulate: When unchecked, the joystick position represents an absolute position, and you’re limited to the “rectangle” defined by the limits of the joystick. When the joystick returns to its rest position, the value generated returns to zero. When this is checked, the joystick represents a change in the current position. Moving the joystick forward (for example) can cause an object to start moving, and it will continue to move until you return the joystick to its rest position.

Joystick Buttons Area

Point-of-View Hat (Left-Right, Up-Down) : The Sidewinder includes a mini joystick on the tip of the main joystick. Specify the direction this joystick controls the animation

1, 2, 3, 4: These options specify one of four buttons in the Sidewinder joystick. They work similarly to the Point-of-View Hat, except that each button increases a direction value only while pressed. When you release the button, the value returns to zero (centered).

Inc./Dec.: One of three options that are only available when one of the numbered joystick button options is chosen. This option (Increment/Decrement) means that the value is incremented when the button is down, and decremented when the button is up.

Inc.: When this is chosen, the value increments when the button is down, and stays at that value when the button is released.

Absolute: When this is chosen, the assigned parameters jumps to the value set in the Speed spinner when the button is down, and then jumps back to zero when the button is released. Use this for on/off animations, such as blinking lights.

Speed: Controls the rate at which the value changes when using either the Point-of-View Hat or the four buttons. When using a button option and the Absolute option, this specifies the value that’s output when the button is pressed. (Spinner Value: float, -999,999 to 999,999)

Increment Based On Direction Area

Provides controls that let you derive the direction of movement from a Rotation controller. These options are used primarily when you’re animating a first-person flythroughsuch as when you’re controlling a camera.

Note: The items in this area are only available when Accumulate is checked in the Joystick Axis area.

Controller: Click to assign a Rotation controller from which the direction will be derived. Typically, this would be the Rotation controller of the camera you’re moving.

Clear: Click to remove the assigned controller.

Direction X/Y/Z: Specifies the local axis that will be used as the direction. For a Free Camera, for example, this would be Z, because the camera points in the Z direction. However, if you had a car that pointed along its Y axis, you’d use Y.

Component X/Y/Z: Specifies the which edit binding to use. Match this to the Edit Binding button in the Device Bindings area. For example, if the Y Edit Binding button is selected, choose the Y Component option.

How To

Setting Up Increment Based On Direction

In this example, you set up the Joystick controller to move a Free Camera around on the XY plane. The Y movement of the joystick will affect the camera’s forward and backward movement, and the X movement of the joystick will rotate the camera. You’ll use Increment Based On Direction to allow the Y movement to be local to the camera rather than to the world.

  1. Create a Free Camera in the Front viewport.
  2. In the Track View, assign a Rotation Motion Capture controller to the Rotation track of the camera.
  3. Right-click in the Rotation track to display the Motion Capture properties dialog.
  4. Click the button beside Z Rotation, and assign a Joystick Input Device.
  5. In the Joystick Axis area, choose the X option (if it’s not already chosen).
  6. Check Accumulate so that the rotation won’t return to zero each time you release the joystick.

The rotation of the camera about its world Z axis will be controlled by the X motion of the joystick. Next, you’ll set up the Position controllers of the camera to move the camera forward and back with the Y motion of the joystick.

  1. Assign a Position Motion Capture controller to the camera’s Position track, and access its Properties dialog.
  2. Assign a Joystick Input Device to both the X Position and Y Position buttons.
  3. Click the Edit Binding X button, and then choose the Y option under Joystick Axis.
  4. Check Accumulate.
  5. Click the Edit Binding Y button, and also choose Y under Joystick Axis.
  6. Check Accumulate.

    7. The Y motion of the joystick will now affect both the X and Y positions of the camera.

If you tested the camera motion at this point, moving the joystick forward or backward along the Y would produce a diagonal motion because the Position tracks would receive equal amounts of X and Y values. Adding the Increment Based On Direction options will change this.

  1. Click the X Edit Binding button.
  2. In the Increment Based On Direction area, click the button beside Controller.
  3. A dialog appears with a list of controllers.
  4. Find and select the Rotation Motion Capture controller for the camera.
  5. Set the Direction option to Z (the local axis along which the direction points).
  6. Set the Component option to X (matching the Edit Binding button).

    7. You’ll now repeat the same steps for the Y binding.

  7. Click the Y Edit Binding button.
  8. Click the button beside Controller, and assign the Rotation Motion Capture controller.
  9. Set the Direction option to Z.
  10. Set the Component option to Y.
  11. Open the Motion Capture utility, turn on both tracks in the list, click the Test button, and move the camera, while observing it in the Top viewport.

    12. As you move the joystick in the Y direction, the camera moves forward or back. Moving the joystick in the X direction rotates the camera, but then, as you continue moving the joystick in the Y direction, the camera moves forward and back along its local axis.


MIDI Device

Controls animation using a MIDI device.

Reference

MIDI Channel Area

Contains 16 buttons. Click to specify the channel to which your MIDI device is assigned.

MIDI Trigger Area:

In this area, you define the type of MIDI event (message) that will drive the motion. There are four options.

Note : When this option is chosen, the note number or pitch defines the output value. The value is derived from where the note falls within the Note Range, specified in the area below. When the note is at the bottom of the range, the value takes on the Min value specified in the Parameter Scaling area. When the note is at the top of the range, the value takes on the Max value from the same area. Anything in between is interpolated between the Min and Max values. (Note that Min doesn’t have to be less than Max.) The generated value will slide around as different keys are pressed. The harder a key is pressed, the faster the value changes. The Speed setting defines how fast, overall, the value changes as keys are pressed.

Velocity: When this option is chosen, the velocity of the note pressed determines the output value. The notes set in the Note Range area merely specify which notes are valid to press. The value takes on the Min value until a key within the Note Range is pressed. When the key is pressed, the value approaches the Max value based on how hard the key was pressed. (The value actually travels along a parabola toward the Max value.) The Sustain setting defines how long it takes the value to move through the parabola. When the Variable check box is chosen, the sustain length is also scaled by how hard the key was pressed.

Pitch Bend: The MIDI instrument's pitch bend knob defines the value. The Note Range doesn't apply in this case and is disabled.

MIDI Controller: Use this option to specify a note event when you’re hooked up to a different type of MIDI controller than the typical keyboard. For example, if you’re using a MIDI slider box, you would select the MIDI Controller option, and then use the # spinner to specify the note event for the specify slider.

# (spinner)

Note Range Area

Low Note/ High Note: Set these to specify the low and high ends of the note range when the Note option in the MIDI Trigger Area is chosen.

Parameter Scaling Area

Contains the Min and Max spinners, which specify the range of generated values. See Note and Velocity, above.

MIDI Channel Viewer: Displays a sub-dialog that lets you test your MIDI device to see which MIDI channel is receiving events, and which notes are being triggered.

MIDI Channel Area

Provides a column of 16 buttons and progress bars represent the 16 MIDI channels. Select the channel from which you want to view note activity. The channel progress bars light up when any channel has an event.

MIDI Note Area

The 11 Octave buttons let you select which octave you want to view. When a note is played in that octave, a corresponding progress bar lights up in the Note column.

MIDI Controller #: When using a different type of MIDI controller, such as a slider box, you can specify a note event, and then watch the corresponding progress bar light up when you activate that event. (You can find the correct note number by activating the event while watching the Note Number field in the area below.)

Channel: This is one of four text fields that display all of the values being generated by the MIDI device as you activate an event. The Channel field displays the currently selected channel.

Event: Displays the type of MIDI event being sent. This can be:

Note On: 9

Note Off: 8

Pitch Bend: 14

MIDI Controller: 11

Velocity: Displays the velocity, which has a different meaning, depending on the event. For the most common event, a note being pressed, this value represents the velocity at which the key was struck. Other events, however, might generate a continuous value. For example, a pitch bend event transmits the position of the pitch bend.

Note Number : Displays the corresponding note number for the event. When you’re using a non-keyboard MIDI device, such as a slider box, you can use this to identify the note numberof a specific slider, for example.


Rescale World Units Utility

This utility lets you rescale the world units of either the entire scene, or selected objects in the scene. To use, select the objects whose world units you want to scale, and then click the Rescale button. A dialog appears that lets you choose between scaling the entire scene, or scaling only the selected objects. Set the Scale Factor spinner, and then click OK to perform the unit scale operation. As an example, if you select two objects in a scene, and scale their world units by a factor of 2.0, the objects will be twice as large as all others in the scene.

For More information this utility see Using The Rescale World Units Utility.

Reference

Rescale World Units Parameters

Rescale: After selecting the objects you wish to rescale, click this to start the rescale utility.

Rescale Dialog

Scale Factor: Set this to specify the scaling factor.

OK: Click the to apply the scale.

Cancel: Click this to cancel the operation.

Affect Area

Scene: Select this to apply the scale to the entire scene.

Selection: Select this to only apply the scale to the selection.

How To

To Rescale an Object:

  1. Select an object in the viewport.
  2. Click the Rescale button in the Utiliities panel.
  3. Set the scale Factor to the desired scale. Setting the scale to a value of 2.0 will double the size of the object that it is applied to.
  4. Select the Selection option in the Affect Area.
  5. Click OK to apply the scale..


Reset Transform Utility

Use the Reset Transform utility to push object Rotation and Scale values onto the Modifier Stack and align object pivot points and bounding boxes with the World coordinate system. Reset Transform removes all Rotation and Scale values from selected objects and places those transforms in an XForm modifier.

To reset the transform of a group, use the Transform button in the Reset area of the Hierarchy/Pivot command panel.

Reference

Reset Transform Parameters

Reset selected: Removes all Rotation and Scale values from selected objects and places those transforms in an XForm modifier.

How to

To reset an object’s transform:

  1. Select objects.
  2. Choose Reset Transform from the Utilities list in the Utility panel.
  3. Click Reset Selected.

    4. Object rotation and scale are now carried by an XForm modifier placed at the top of the Modifier Stack.

When you apply Reset Transform from the Utility panel, the new XForm modifier that carries the rotation and scale values is placed to the top of the modifier stack. You can apply other modifiers above and below the XForm modifier. You can select the XForm modifier and add other Move, Rotate, and Scale transforms. You can delete the XForm modifier to completely remove the transforms from the object.You can collapse the object to absorb the rotation and scale values into the object mesh.


Strokes Utility

This utility lets you launch commands by dragging mouse patterns in the viewport. When you click the Strokes utility button, and modeless dialog appears containing a single “Draw Strokes” button. The Strokes system is also available as a middle-mouse button option that doesn’t require the utility or the modeless dialog.

Reference

Strokes Parameters

Draw Strokes: Click this, and then drag in the viewport to draw a stroke

How To

  1. Select Strokes in the utility panel
  2. Click Draw Strokes
  3. Click and hold the mouse while dragging in any pattern.
  4. Release the mouse button.

    5. A dialog box appears asking you to define the pattern or continue.

  5. Click define.

    6. The define stroke dialog box appears.

  6. Choose a command from the command to execute Area.

    7. The pattern is now defined for the chosen command.


Track View

You create animation by setting keys on specific frames and allowing 3D Studio MAX to interpolate the animation on frames between your keys. Track View contains the tools to view and edit all the keys that you create, and to set the methods used by 3DS MAX to interpolate between those keys.

A total of 13 Track Views can be named and stored in the Track View buffer for later recall. Track Views are stored with the .max file.

Use Track View to perform the following tasks:

  • Display a list of everything in your scene and their parameters.
  • Change key values.
  • Change key timing.
  • Change interpolation between keys.
  • Edit ranges of multiple keys.
  • Edit blocks of time.
  • Add sound to your scene.
  • Create and manage notes about the scene.
  • Animate object visibility.
  • Change the behavior of the animation outside the range of keys.
  • Change controllers for animated parameters.
  • Select objects, vertices and hierarchies.
  • Navigate the Modifier Stack in the Modify Panel by clicking the modifier items in the Track View hierarchy list.

Note: Tracks are created for animated vertices in Track View. A Bezier Point3 controller is the default vertex interpolation controller.

Choosing Track View Edit Modes

You choose an Edit mode by clicking one of the Edit mode buttons in the Track View toolbar. Each mode has its own uses; of the five modes, you will probably spend most of your time in the Edit Keys and Function Curve modes.

How To

Put Track View into Edit Keys mode:

  • Click the Edit Keys button on the Track View toolbar.

The Track View toolbar buttons to the right of the Lock Selection button change.

Edit Keys is useful for getting a global view of your animation because you can display animation timing for all tracks. Use this mode for key and range editing when you want to view your changes in context of the total animation.


Track View Edit Window

Displays tracks and function curves. You select and change animation values and timing in this window. The edit window also indicates the active time segment. Time within the active time segment is highlighted with a light gray background.

Track View Edit Window items:

Tracks

Every item in the hierarchy has a track that displays what happens to the item over time. There are two types of tracks:

Range tracks indicate when items below the track are animated. A range bar in the track displays the range of time over which the animation occurs.

Animation tracks contain the actual animated values for an item. These values are usually represented as keys

Keys

Whenever you change a parameter with the Animate button on, you create a key at the current time in that parameter's track. Keys are normally displayed in their track as dots, but they can also be displayed as ranges and vertices on a function curve.

Range Bars

When animation keys have been created, range bars appear, to indicate the range of time over which the animation occurs. Ranges always appear in Range tracks, but in some display modes and certain controllers, Animation tracks also display ranges.

Function Curves

Displays the values of keys and the interpolated values between keys as a curve. These curves fully express how a parameter varies over time. Only Animation tracks can display function curves.

Time Ruler

Measures time. Markings on the ruler reflect the settings in the Time Configuration dialog.

Current time line

The current time set by the time slider is shown as a dark vertical line running through the edit window. Dragging the time slider moves the current time line.


Time Ruler

Measures time in the edit window. Markings on the time ruler reflect the settings in the Time Configuration dialog. You can drag the time ruler vertically in the edit window to align it with any track.


Track View (Toolbar)

The Track View Toolbar contains the tools for working with items, tracks, and function curves.

The Track View Toolbar buttons are divided into three functional groups. From left to right the groups are:

  • Global Track View buttons apply to all items regardless of the current Edit mode.
  • Edit mode buttons change the way you view and edit values in the edit window.
  • Edit buttons vary according to the current Edit mode. You use these buttons to make changes to the animation values.

Reference

The Track View Toolbar (shown above in Edit Keys mode).

Edit Time mode buttons

Edit Curve mode buttons

Position Ranges mode has one button to recouple ranges

How To

Move the world track:

  1. Select Edit Ranges in Track View Toolbar

    2. This puts Track View into Edit Ranges mode.

  2. Select the world track item in the hierarchy list window.
  3. Move the Time Ruler in the Edit Window down.

    4. This allows you to see the world range bar.

  4. Click Modify Subtree.

    5. The world range bar appears

  5. Click and drag the world range bar horizontally in the Edit Window.

    6. Everything in the edit window moves back and forth, in time.


Filters

Filters allows you to filter or limit the items displayed in the Hierarchy List and the function curves displayed in the Edit Window. You can also right-click the Filters button to display a menu for quick selection of items.

Tip: You can set up a default filter configuration by resetting 3DS MAX, opening a single Track View, setting the filters the way you want them to come up, closing the Track View, and then saving the (empty) scene as maxstart.max.

Reference

The Filters dialog contains the following options:

Show area

The Show filters are a collection of item display check boxes, and three buttons that operate on the full set of check boxes.

All: Sets all Show check boxes on.

None: Clears all Show check boxes to off.

Invert: Reverses the state of all Show check boxes.

Hide by Controller Type area

Hide by Controller Type contains a window displaying a list of all controllers plugged into 3DS MAX. Select any one or more controllers in the list to hide its display in the hierarchy window. You can use the standard multiple-selection methods of CTRL-click, SHIFT-click, or drag.

All/None/Invert: These standard buttons select either all items in the list, none of the items in the list, or invert the current selection.

Note: When you hide a controller, its subcontrollers (if any) are hidden as well. For example, if you hide a PRS Transform controller, its Position, Rotation, and Scale controllers are also hidden.

Hide by Category area

Contains a list of check boxes that let you hide tracks based on categories similar to those found in the Display branch. Checking one of these hides the entire node and all of its sub-components.

Show Only area

Animated Tracks: Displays only items that contain animation. When a parameter is animated, that parameter and items on all levels above it are considered to contain animation.

Selected Objects: Displays only items for objects selected in the scene. As you select objects in the scene, the display in the Hierarchy List changes to show the current selection. The display of sound and materials branches are not affected by this filter.

Selected Tracks: Displays only items that you select prior to setting this filter. All of the displayed items are left justified in the Hierarchy List regardless of their level in the hierarchy.

Visible Objects: Determines whether objects that are hidden in the viewports will appear in the hierarchy list. (On by default.) Note that this does not consider objects with tracks, but only objects that have been hidden.

Function Curve Display area

Clear the appropriate check boxes to suppress display of function curves.

How To

To select the animated Transform tracks for an object using the pop-up Filters menu:

  1. Select an object, then open Track View.
  2. Right click on the Filters button.
  3. Choose Animated Tracks only.

    4. The Filters pop-up menu disappears.

  4. Right-click on the Filters button again.
  5. Choose Selected Object.


Copy Controller

Copies the selected item to the Track View clipboard.

You can use the Copy and Paste buttons to copy object and modifier tracks, controllers, objects, and containers, depending on what you are working on. You can copy and paste sub-controllers when using Euler and List controllers, as well as all other types of sub-controller.

Not all tracks can be copied or pasted; there are restrictions governing what type of information can be pasted into a given track. The basic restrictions for using Copy and Paste in Track View are:

  • Only a single selected item can be copied.
  • A copied item can only be pasted into another item of the same type.
  • A copied item can be pasted into a selection of multiple items only if all of the items are of the same type.

Reference

Copy: Copy the selected item to the Track View clipboard.

How To

To copy and paste a modifier:

  1. In the Track View hierarchy, select a modifier track.
  2. Click the Copy button on the Track View toolbar.
  3. Select the object track for an object in the Track View Hierarchy.
  4. Click the Paste button.

    5. The Paste dialog appears.

  5. Set the options in the Paste dialog, and click OK.

    6. The pasted modifier is inserted above the object track you selected. Note that it does not replace any of the tracks in the target object.


Paste Controller

You can use the Copy and Paste buttons to copy tracks, controllers, objects, and containers, depending on what you are working on.

Reference

Paste: Pastes an item from the Track View clipboard.

The Paste dialog contains the following options:

Copy/Instance: Determines whether the cloned item is a simple copy or an instance of the original.

Replace All Instances: If this box is checked, when you paste to any track that contains an instanced object, all instances of the object will be replaced with the object on the clipboard. If it is unchecked, only the object in the selected track will be replaced. Any instanced objects will remain as they are.

How To

See Copy Controller,


Assign Controller (Track View)

You can assign controllers to any parameter in Track View using the Assign Controller button in the Track View toolbar.

You can also assign the same controller type to a selection of multiple parameters as long as all the selected parameters can use the same type of controller. For example, you could select the Length, Width, and Height parameters for multiple Box objects and assign the same controller type to all of them. They all use controllers that work on floating point data.

When you select a track with a controller assigned to it, the Properties button in the toolbar becomes active if that controller has parameters that you can set.

You can assign different controllers to animated loft deformation points. For example, if you’ve animated the points of a loft object's Scale deformation, you can go into the Track View and assign some other controller besides the default Bezier Point 3.

Special case controllers

The IK Controller is not assigned using the Assign Controller button. It is applied when a Bones hierarchy is created.

Following is a list of available Animation Controllers:

Attachment Controller: A Position controller that attaches an object's position to a face on another object (the target object doesn't have to be a mesh, but must be able to convert itself to a mesh).

Audio Controller: Allows you to animate a parameter or object using a sound file.

Bezier Controller: Assign a Bezier controller when you want all of the function curves between transform keys to be smooth, to give the effect of continuous, natural movement. The Bezier Controller is the default controller for position and scale.

Barycentric Morph Controller: Applied during the creation of a morph object. Each morph key represents a series of weights for all morph targets.

Color RGB Controller (Point 3 XYZ Controller): Creates 3 separate tracks for red, green and blue.

Euler XYZ Rotation Controller: A compound controller that combines separate, single-value float controllers to specify an angle of rotation about each of the X, Y, and Z axes. The order in which the axes are rotated can be specified.

Expression Controller: Use mathematical expressions to control object parameters such as length, width, and height, or to control transform and modifier values such as the object's position coordinates.

IK Controller: Automatically assigned to a Bones hierarchy during the creation of Bones. Objects can be linked to a Bones hierarchy to take advantage of this controller.

Linear Controller: Makes the function curves between each of the keyframes into straight lines.

List Controller: This controller allows you to combine controllers.

Link Controller: Animates the transfer of hierarchical links from one object to another. You can, for example, have the same object passed from object to object.

Look At Controller: Takes over the entire Transform controller of an object, and then forces that object to constantly look at another.

Motion Capture Controller: Allows you to control and record an objects motion or parameter using an external device. Supported devices are mouse, keyboard, MIDI device, and joystick.

Noise Controller: Generates random values, which you can see as peaks and valleys in the function curve.

On\Off Controller: Provides only binary on and off control.

Path Controller: Allows you to assign a spline as a trajectory (path) for an object so that the object follows the path.

Position XYZ Controller: Splits the X, Y, and Z components into three separate tracks.

PRS Transform Controller: A compound controller that creates sub controllers for position, rotation and scale.

Script Controller: Similar to an Expression Controller. You can use the Max Scripting language to control objects and parameters.

Smooth Rotation Controller: Creates smooth rotations.

Surface Controller: Positions an object along the surface of another object.

TCB Controller: Provides Tension, Continuity, and Bias controls for the function curves between keys.

Waveform Controller: A float controller that provides regular, periodic waveforms. Blinking lights and rhythmic object motion are two examples of where this controller could be used.

Reference

Assign Controller: Choose a controller type from the Assign Controllers dialog. Depending on the type of track you have selected, the Choose Controller dialog displays a subset of the different types of controllers.

How To

Assign an animation controller in Track View.

  1. Select one or more parameter items of the same type.
  2. Click Assign Controller on the Track View toolbar.
  3. Choose a controller type from the Assign Controller dialog.

    4. If a parameter has already been animated, then assigning a new controller has one of the following effects:

    • The existing animation values are recalculated to produce a similar animation with the new controller. For example, replacing TCB Position with Smooth Position closely preserves the animation.
    • The existing animation values are discarded. For example, replacing Smooth Rotation with Noise Rotation discards the Smooth Rotation animation values.


Make Controller Unique

Make Controller (or Object) Unique

Converts an instanced clone of a controller to a copy that’s unique to the current object. Objects and modifiers can also be made unique.

Your result depends on whether or not the data flow branches at the selected container:

  • If the data flow does not branch anywhere below the selected container, nothing happens.
  • If the data flow does branch at or below the selected container, the data flow above the branch is split from the current dataflow as a unique object. The data flow from the selected container to the master object is copied and attached to the new unique object.

Reference

Make Contoller Unique: Converts an instanced clone of a controller to a copy that’s unique to the current object.

How To

To convert an instance or a reference to a unique object:

  1. Select a Modified Object container or an Object container.
  2. Click Make Unique.


Parameter Out-of-Range Types

Defines how the object is to behave outside the range of the keys you've defined.

Use Parameters Out-of-Range Types to create loops and cycles. The idea is to create a short pattern of keys that produce an animated effect and then loop or cycle through those keys throughout the animation.

Using the Parameter Curve Out-of-Range Types dialog, you select from four ways of repeating your animation and two ways of applying a linear value.

The typical steps in using Parameter Out-of-Range Types are:

  1. Animate an object to loop or cycle.
  2. Use Position Ranges to adjust the relationship between a range bar and its keys. The loop or cycle will occur within the range bar.
  3. Click Parameter Out-of-Range Types to select how your animation behaves outside the time covered by the range bar.

Reference

Parameter Curve Out-of-Range Typed dialog

Select from the different ways of repeating your animation and two ways of applying a linear value.

Constant: Holds the value of the end key of the range for all frames. Use constant when you want no animated effect before the first key of the range or after the last key. Constant is the default Out-of-Range type.

Cycle: Repeats the same animation as within the range. If the first and last keys in the range have different values, the animation will show an abrupt "jump" from the last key to the first. Use Cycle when you want an animation to repeat but do not need the ends to match.

Loop: Repeats the same animation as within the range but interpolates between the last key and first key in the range to create a smooth loop. If the first and last key are both at the extreme ends of the range, Loop will behave exactly like Cycle. If you use Position Ranges to extend the range bar beyond the keys, the added length determines the amount of time used to interpolate between the last key and the first key. Use loop with an extended range bar to produce smoothly repeating animation.

Ping Pong: Alternates between a forward and backward repeat of the animation within the range. Use Ping Pong when you want your animation to alternate back and forth.

Linear: Projects the animation value along a line tangent to the function curve at the end of the range. Use Linear when you want the animation to enter and leave the range at a constant velocity.

Relative Repeat: Repeats the same animation as within the range but offsets each repetition by the value at the end of the range. Use Relative Repeat to create animations that build on each other as they repeat.

How To

To use Parameter Out-of-Range Types to create a loop:

  1. On the Create Panel, click Geometry, then click Box.
  2. On the left side of the Front viewport create a small box.
  3. Turn on the Animate button and move the Time Slider to frame 10.
  4. Turn on Toolbar/Select and move the box to the right side of the Front viewport.
  5. Open Track View, right click on Filters, then select Animated Tracks Only.
  6. Choose the Position track for the box in the Hierarchy list, then select the Parameter Out-of-Range button.
  7. In the Parameter Curve Out-of-Range Types dialog, select Ping Pong and click OK.
  8. Click Play in the Viewport Controls.

    9. The box moves back and forth repeatedly.

    While the animation is playing, experiment by turning on Position Ranges in Trackview/Toolbar and moving the ends and middle of the Position Track Bar back and forth in the Track View Edit Window. This allows you to adjust the range bar independent of it’s keys and changes the nature of the loop.


Add Note Track

Any item in the Hierarchy list can have a Note track added as a branch below it. You can add a Note track to an item in any of the Track View modes but the most convenient mode to work with Notes is the Edit Keys mode.

Note tracks are inserted as branches directly below the selected items. The icon for a Note track is a yellow triangle, indicating that it is a special type of non-animated controller.

Once you have created a Note track for an item, you insert Note keys using Add Keys and edit the notes using the Notes dialog box.

Reference

Add Note Track: Inserts a Note track directly below the selected items in the Hierarchy list.

Notes dialog

Provides a dialog to add or edit Notes on the animation in Track View.

The first line of your note appears as a label to the right of the note key. You should type a short one or two word description as the first line of your note and then press ENTER to start the body of the note.

Note Number: This control has left and right arrows beside a non-editable numeric field. The field indicates which Note key you are working with. Click the arrows to move back to the previous note or forward to the next note.

Time: This field sets the time position for the Note key. Change the value to move the note to a new time.

Lock Key: Set this check box to lock the key to the time in the Time field. When set, the key ignores all operations performed with the Move, Slide, and Scale key buttons. The only way to change the key's time is to use the Time field in the Notes dialog.

How To

To add a Note Track:

  1. On the Track View/Toolbar, click Edit Keys.
  2. Select one or more item labels in the Hierarchy list.
  3. Click Add Note Track.

    4. Note tracks are inserted as branches directly below the selected items. The icon for a note track is a yellow triangle, indicating that it is a special type of non-animated controller.

To add a Note key to a Note track:

  1. Click Add Keys.
  2. Click in a Note track to place a note at that location.

To edit notes:

  1. Right-click a Note key to display the Notes dialog.
  2. Enter your note in the edit box.

    3. The first line of your note appears as a label to the right of the note key. You should type a short one or two word description as the first line of your note and then press ENTER to enter the body of the note.


Delete Note Track

Use Delete Note Track to delete a note track and its associated keys.

Reference

Delete Note Track: Delete the selected Note Track(s).

How To

To delete a Note track from items:

  1. Click Edit Keys.
  2. Select one or more Note labels in the Hierarchy list.
  3. Click Delete Note Track.


Edit Keys

Displays your animation as a series of key dots and range bars in the Track View Edit Window. Only controller items (items with a green triangle icon) can display key dots. All other items display range bars indicating the time span of key dots for controller items in their subordinate branches.

Edit Keys is most useful for getting a global view of your animation because it displays animation timing for all tracks. Use this mode for key and range editing when you want to view your changes in the context of the total animation.

Use Edit Keys mode to:

  • Select and change one or more keys.
  • Drag range bars to change all animation in multiple tracks.

Reference

Edit Keys: Switch Track View to Edit Keys Mode. The Track View toolbar to the right of the Lock Selection button changes to reflect the current editing mode.

How To

To turn on Edit Keys Mode in Track View:

  • Turn on the Edit Keys button on the Track View toolbar.

In Edit Keys mode, the following buttons are displayed: Add Visibility Track, Delete Visibility Track, Align Keys, Delete Keys, Move Keys, Slide Keys, Scale Keys, Modify Subtree and Add Keys.

Modify Subree is also available in Edit Time and Edit Ranges mode.


Snap Frames (Track View)

Snap Frames

All key and range bar positions changed, while Snap Frames is on, will be forced to absolute frame increments. This includes selection sets of multiple keys. When Snap Frames is on, each key in a selection set will snap to the nearest frame when the selection is moved or scaled.

When using the Time Display Format of MM:SS:Ticks (which does not use frames), Snap Frames snaps to time values that match frame boundaries.

Reference

Snap Frames: Forces keys to single frame increments.

How To

To use Snap Frames:

  1. In Edit Keys mode, turn on Snap Frames, then select a key(s).
  2. Use move or scale to move keys.

    3. With Snap Frames on, each key in a selection set snaps to the nearest frame when the selection is moved or scaled.


Lock Selection (Track View)

Lock Selection toggles selection locking on and off in the Track View.

Reference

Lock Selection (Track View): Toggles selection locking on and off in Track View.

How To

To use Lock Selection in Track View:

  1. Turn on Edit Keys mode, then select key(s) in the Track View edit window.
  2. Turn on Lock Selection, click and drag inside the Track View edit window.

    3. All the selected keys move regardless of where inside the Track View edit window you click and drag.


Add Visibility Track

A visibility track controls when you can see an object. Visibility tracks can only be added to objects, and the track doesn’t exist until you create it in Edit Keys mode of Track View.

All visibility values are set in Track View by adding keys and adjusting key values. You cannot animate visibility by turning on the Animate button and manipulating objects in your scene.

Gradual Visibility

When you first assign a Visibility track to an object, an On/Off Controller is automatically assigned. You can replace the On/Off controller with a Bezier Float controller for gradual visibility. Objects are invisible at values of 0, and are increasingly visible at values greater than 0, achieving full opacity at 1.

Variable opacity is supported in the shaded viewports. For ease of use, the object never completely disappears from the viewports.

Visibility Inheritance

An object can inherit the visibility of its parent (as determined by the parent’s Visibility track in the Track View). Use the Object Properties/Inherit Visibility check box to determine the visibility inheritance of an object.

Groups and Visibility

All members of a Group inherit the visibility of the parent when a visibility controller is assigned to the parent. Transparent materials and hidden objects have no effect on this function.

Level of Detail Utility and Visibility

The Level of Detail utility lets you construct an object that alters its geometric complexity or level of detail based on its size in the rendered image. You create several versions of the same object each with different levels of detail; you group them as one, and then assign the Level of Detail utility. This automatically creates a special LOD controller as a Visibility track.

Reference

Add Visibility Track: Adds a visibility track to a selected object(s). Assigns the On/Off controller by default.

How To

To add a visibility track to objects:

  1. Click Edit Keys on the Track View toolbar.
  2. Select one or more item labels for objects in your scene.
  3. Click Add Visibility Track on the Track View toolbar.

    4. A visibility track appears below the selected object(s). A solid blue line in the Track View Edit Window represents visibility. The On/Off Controller is assigned to a visibility track by default.

To add visibility keys:

  1. Click Edit Keys on the Track View toolbar.
  2. Click Add Keys.
  3. Click in a visibility track to add a key at that time location.

    4. The blue visibility line is broken. Add and move visibility keys to control visibility. The blue line represents visibility. The On/Off Controller does not allow for editing of the key values.


Delete Visibility Track

Use Delete Visibility Track to remove visibility tracks from Track View.

Reference

Delete Visibility Track: Delete the visibility track of an object.

How To

To delete a visibility track:

  1. Click Edit Keys on the Track View toolbar.
  2. Select one or more Visibility labels.
  3. Click Delete Visibility Track on the Track View toolbar.


Align Keys

Use the Align Keys button to move selected keys to the current time. You first select the keys to align by using one of the Move, Slide, or Scale Keys buttons.

Align Keys is useful for taking a group of scattered keys and moving them all to the same time location.

  • Align Keys is available in Edit Keys and Function Curves mode.
  • Align Keys ignores the state of the Snap Frames button and always uses the exact time set by the time slider.

Reference

Align Keys: Moves all selected key dots to the current frame.

How To

To move all selected key dots to the current frame:

  1. Make sure Edit Keys is active.
  2. Drag the time slider to the time where you want the keys aligned.
  3. Select one or more keys using Move, Slide, or Scale Keys.
  4. Click Align Keys.

    5. The leftmost selected key in each track is moved to the current time. Multiple selected keys on the same track maintain their relative distance from the leftmost key.


Delete Keys

You delete keys by first selecting keys and then clicking the Delete Keys button.

To delete all keys associated with an object, select the object name label in the hierarchy list and click Delete Key or the DEL key. A Delete Keys dialog appears warning that you are about to delete all animation keys for the object.

If you delete all of the keys in a track, the value for the parameter associated with the track will be set to the value at the current time. This applies to Edit Keys, Edit Time, and Function Curves mode.

Reference

Delete Keys: Delete selected keys in Track View. May be accessed by pressing the DEL key, but make sure that the Track View window is active (otherwise, the selected geometry in the scene will be deleted).

How To

To delete selected keys:

  1. Select one or more keys.
  2. Click the Delete Keys button.

To delete all keys for a selected object in Track View:

  1. Click the object name label of the object from which you want to delete all keys.
  2. Press DELETE.

    3. A Delete Keys dialog appears warning that you are about to delete all animation keys for the object.


Move Keys

Moves selected keys horizontally in time.

While the move key is active, you can move the selected key dots by clicking and dragging them. You can clone key dots by moving them while holding down the SHIFT key. You can move one or more keys horizontally in their track to change when the keys occur.

Reference

Move Keys: Use Move Keys in Edit Keys mode to drag a selection of keys to a new time location.

How To

To move a selection of keys:

  1. Click Edit Keys mode.
  2. Click Move Keys.
  3. Select one or more keys.
  4. Drag the selection to a new time location, or press SHIFT and drag the selection to add copies of the keys at the new time location.
  • The new time and time offset are displayed in the Track View prompt line as you drag.


Slide Keys

With Slide Keys you can move a group of keys (your selected keys plus all the keys) to one end of the animation. The direction that you drag determines which group of keys moves:

  • Dragging to the right moves the selected keys plus all keys to the last key of the animation forward in time.
  • Dragging to the left moves the selected keys plus all keys to the first key of the animation backward in time.

Think of Slide Keys as a way to split an animation at the selected keys and spread the ends apart.

Slide Keys is available in Edit Keys mode.

Reference

Slide Keys: Use slide in Edit Keys mode to slide the selected key(s) forwards and backwards in time. Dragging to the right moves the selected keys plus all keys to the last key of the animation forward in time. Dragging to the left moves the selected keys plus all keys to the first key of the animation backward in time.

How To

To slide a selection of keys:

  1. Turn on Edit Keys on the Track View toolbar.
  2. Click Slide Keys.
  3. Select one or more keys.
  4. Drag to slide the keys to a new location.
    5. #ENDNUMBLOCK#


Scale Keys (Edit Keys Mode)

Scale Keys

Moves all selected keys proportionally towards or away from the current frame.

Use the Scale Keys button in Edit Keys mode to change the location and amount of time covered by one or more selected keys.

The scale center is defined by the current time set by the time slider. You can scale keys about any moment in time, by dragging the time slider before you use Scale Keys.

Reference

Scale Keys: Moves all selected keys proportionally towards or away from the current frame.

How To

To use Scale Keys:

  1. Click Edit Keys.
  2. Drag the time slider to the time you want to use as the scale center.
  3. Click Scale Keys.
  4. Select one or more keys.

    5. Drag to scale the selected keys or press SHIFT and drag to add scaled copies of the selected keys.

  5. Drag away from or towards the current time line for the following results:
    • Dragging away from the current time line expands the keys away from the current time. Expanding the selection increases time between the selected keys and slows that part of the animation.
    • Dragging towards the current time line shrinks the keys towards the current time. Shrinking the selection reduces time between the selected keys and accelerates that part of the animation.
    • Dragging through the current time reverses the keys and expands the keys away from the current time.

    The scale percentage is displayed in the Track View prompt line as you drag the selection.


Add Key

Adds a key at the point where you click.

Add Keys is a mode that remains active until you activate another mode. While Add Keys is on, you click in any animation track to add a key at that location in time.

Reference

Add Key: Adds a key at the point where you click.

How To

To add keys in Track View:

  1. Turn on Add Keys.
  2. Click in an animation track to add a key.

    3. The location where you click sets the time of the key as measured on the time ruler.

    The value of the new key is set by one of the following conditions:

    • Keys added before the first key of a track receive the same value as the former first key.
    • Keys added between two keys receive an interpolated value based on the values of the original keys.
    • Keys added after the last key in the track receive the same value as the former last key.

    If you are unable to add keys to a track, check the following conditions:

    • Only animation tracks can accept keys. Animation tracks are identified as parameter items in the Hierarchy list with a controller icon (green triangle).
    • The animation controller must be a type that uses keys. Not all controllers use keys. Examples of controllers that do not use keys include expression controllers, list controllers, and parametric controllers such as Noise.


Properties (Track View Toolbar)

Clicking the Properties button on the Track View toolbar displays a dialog to change animation values. The type of dialog displayed depends on the type of Animation Controller the selected track is using:

  • Tracks with keys display a Key Info dialog. You can change the values in the Key Info fields to change the animation value, time, and interpolation methods of one or more selected keys.
  • Tracks with parametric controllers, such as Noise, display a properties dialog. You change the values in the properties dialog to change the behavior of the controller over its entire range.

You can also display the Key Info dialog by right-clicking a key in the Edit Window. Parametric controller dialogs can also be displayed by right clicking their range bars.

The Properties button is grayed out in ambiguous cases. For example, if a key and a parametric controller item are both selected.

Reference

Properties (Track View Toolbar): Displays the Properties dialog for the selected item in the Track View.

How To

To display Key Info Dialog:

  1. Select an item in Track View.
  2. Click the Properties button.


Track View Utilities

This button displays a dialog listing plug-in Track View utilities. A typical Track View utility displays a modeless dialog (though utilities can be modal) and provides functions that can be applied across multiple selected keys and tracks. You can launch more than one utility by selecting the Track View Utilities button again.

Available Utilities

Randomize Keys Utility: This utility applies random offset values to Time or Value of selected keys or selected time.

Create Out of Range Keys Utility: This utility creates keys in the out-of-range time of a track, when the Out of Range type is something other than Constant. Thus, it converts the specified out-of-range area to a keyed area that you can edit and otherwise adjust. To use this utility, you first select one or more tracks, then set the parameters of the utility and click its Apply button. In Function Curve display mode, you must select the curve as well as the track.

Select Keys by Time: This utility lets you select keys within a specified start and end range of time. Its main purpose is to let you select a large range of time, when using the mouse might be awkward.

Reference

Track View Utilities: Lists the available Track View utilities in a dialog. Click to select the utility you want, and then click OK.

Choose from three available utilities:

Randomize Keys Utility

Create Out of Range Keys Utility

Select Keys by Time

How To

To select a Track View Utility:

  1. On the Track View toolbar, click the Track View Utilities button.
  2. In the Track View Utilities dialog, select a utility and click OK.
  3. Choose from three available utilities.


Randomize Keys Utility

This utility applies random offset values to Time or Value of selected keys or selected time.

Reference

Randomize Keys modeless dialog options

Randomize Time : When this is checked, values are randomly shifted in time, based on the spinner settings below. For example, if the + spinner is set to 20, and the - spinner is set to 10, the values could shift up as much as 20, and down as much as 10.

+ : The amount of random shift in a positive direction.

- : The amount of random shift in a negative direction.

Randomize Value: When this is checked, the values are randomly shifted, based on the spinner settings below.

+ : The amount of random shift in a positive direction.

- : The amount of random shift in a negative direction.

Randomize area: You can apply the randomization either with selected keys or with selected time. When applying to selected keys, this area reports: “All selected keys.” However, when selecting a block of time in Edit Time mode, this area reports: “Keys in selected tracks that are in the range: n to n.”

Apply: Applies the specified random offset values to the selection. Note that you can click this button repeatedly to further the randomization.

How To

To use the Randomize Keys utility:

  1. Select one or more keys, or a block of time in one or more tracks. In Edit Keys mode, all selected keys are affected. In Edit Time mode, the keys in the selected tracks that are within the selected range of time are affected. In Function Curve display mode, the selected keys on selected curves are affected.
  2. Display the Randomize Keys utility, if it’s not already displayed.
  3. Choose either Randomize Time or Randomize Value, or both.
  4. Set the +/- spinners to specify the range of randomized offset.
  5. Click the Apply button.


Create Out of Range Keys Utility

Creates keys in the out-of-range time of a track when the Out of Range type is something other than Constant. It converts the specified out-of-range area to a keyed area that you can edit and adjust. To use this utility, you first select one or more tracks, then set the parameters of the utility and click its Apply button.

In Function Curve display mode, you must select the curve as well as the track.

Reference

Use the Track View/Utilities button to access the Create Out of Range Keys utility.

Create Out of Range Keys modeless options:

Time Range area

Lets you set the time after the range for which you’ll generate keys. For example, if your range of keyed animation is from frame 31 to 54, the out-of-range animation might be from 0-30 and from 55-100.

Before: Specifies the number of frames before the range for which you’ll generate keys. Given the previous example, if you set this to 20, it would generate keys over frames 10 to 30. When you set this to 0, no keys are generated before the range.

After: Specifies the number of frames after the range for which you’ll generate keys. Given the first example, if you set this to 40, it would generate keys over frames 55 to 95. When you set this to 0, no keys are generated after the range.

Samples: The number of keys to be generated for both the before and after time range, based on the settings in the Before and After spinners. In the example we’ve been using, if Samples were 20, there would be 20 new keys generated over frames 10 to 30, and another 20 new keys generated over frames 55 to 95.

Apply: Click to generate the keys.

Note: Keys are generated only for non-Constant out-of-range types. If the area before or after the range is the default, Constant type, no keys are generated in that area.

How To

To use Create Out of Range Keys Utility:

  1. Select the Position track of an animated object in the Track View Hierarchy.
  2. On the Track View toolbar, use the Parameter Curve Out-of-Range Types button to apply an out-of-range type curve to the selected track.
  3. Use any curve type except constant (the default).
  4. Select Track View Utilities, then select Create Out of Range Keys.
  5. Set the desired parameters in the Create Out of Range Keys dialog.
  6. Click Apply.

    7. Keys are created in the out-of-range areas of the position track. The Track Bar expands to the boundaries of the newly created keys.


Select Keys by Time

This utility lets you select keys within a specified start and end range of time. Its main purpose is to let you select a large range of time, when using the mouse might be awkward.

Note: Although this utility works in Edit Time mode, you can’t see the key selection because keys are not displayed in that mode.

Reference

Select Keys by Time dialog:

Start Time: Specifies the start range for key selection.

End Time: Specifies the end range for key selection.

The Start Time and End Time spinners are initialized to match the current time selection.

Clear Previous Selection: If Clear Previous Selection is selected, all keys are cleared before keys within the specified time range are selected.

If the Modify Subtree button is on, you can select all keys in the descendants of a single track by just selecting that track.

How To

To use Select Keys by Time:

  1. On the Track View toolbar, turn on Edit Keys.
  2. In the Track View hierarchy, select a track(s).
  3. Click Track View Utilities, then choose the Select Keys by Time utility.
  4. Set a range and click OK.
    • Keys in the selected tracks within the range are selected.
    • If Clear Previous Selection is selected, all keys are cleared before keys within the specified time range are selected.
    • If the Modify Subtree button is on, you can select all keys in the descendants of a single track by just selecting that track.


Sound Options dialog

The Sound track in the Track View hierarchy contains two sound options. Use the Metronome to generate a series of beeps using your computer's system speaker or load a sound file to play back through your computers sound card.

Sound is one way to provide the timing for your animation. You can scrub the Time Slider to locate a particular sound and coordinate your visuals around it.

You can display this dialog by right-clicking the Sound item in the Track View hierarchy list, or right click a sound track in the Edit Window.

Reference

Audio area

Choose Sound: Displays a file selector from which you choose a sound file.

Remove Sound: Deletes the wave form from Track View.

Reload Sound: Reloads the last loaded file. This allows the sound file to be reloaded when it has been changed on disk by another program.

Active: Check this box to hear the wave form during animation play back.

Metronome area

The Metronome track produces a regular beat using two tones. You specify three settings in the Sound Options dialog to control the Metronome:

Beats per minute: Sets the frequency of beats. The beats display in the Metronome tracks as black vertical bars. Default setting = 60.

Beats per measure: Sets which beat is emphasized with a higher pitch tone. Emphasized beats display in the Metronome track as black pluses. For example, a setting of 4 generates a higher pitched tone every fourth beat. Default setting = 4.

Active: Set on to hear the beats during animation playback.

How To

Add a sound track:

  1. Right click on the Sound item in the Track View hierarchy and select properties.

    2. The Sound Options dialog appears.

  2. Click Choose Sound and select a sound file, then click OK.

    3. A Wave Form branch appears in the Track View hierarchy. A waveform appears in the Track View Edit Window.

    Turn on Real Time in the Time Configuration dialog to hear the sound track when you play your animation.


Edit Time

Use Edit Time mode to work directly with selected blocks of time as opposed to working with keys and range bars. A block of time is any contiguous time segment, across one or more tracks, and is independent of key locations.

In Edit Time mode, keys and range bars of your animation are there only for reference. All of your work is performed by selecting blocks of time and then applying time editing functions to your selection.

Copy and Paste Tracks in Edit Time Mode

You’re not limited to selecting only the correct track types before performing a Paste Track operation. You can select a contiguous range of tracks that include Position tracks. The Paste Track function is enabled and will paste copies to all of the valid track types (in this case, Position).

Copy and Paste Tracks Without Keys in Edit Time Mode

You can copy and paste controller tracks regardless of whether they have animation keys. When a track has no key, its value at frame 0 is used. You must select some block of time before cutting or pasting, though the time is ignored.

An important feature of Edit Time mode is the ability to cut, copy, and paste time to and from the time clipboard. After selecting a block of time you can cut or copy time to the clipboard, and then paste time to selected tracks.

You can use the clipboard to copy time, with keys, to different places in the same track or from one track to another.

Reference

Edit Time: Select to switch Track View to Edit Time mode.

The Track View toolbar to the right of the Lock Selection button changes to reflect the current editing mode.

In Edit Time mode you can perform the following tasks for one or more tracks:

Select time

Delete time

Cut, Copy, and Paste time

Reverse time

Insert time

Scale time

Reduce keys

How To

To put Track View into Edit Time mode.

  • On the Track View toolbar, click the Edit Time button.

On the Track View toolbar, to the right of the Lock Selection button, the Edit Time mode buttons display.


Select Time

Select Time allows you to select a block of time by clicking and dragging without changing the selection.

The first step in editing time is to select the block of time you want to work with. You can use one of two buttons to select time in the Edit Time Window:

  • Select Time to select time without changing the selection.
  • Scale Time to select time with the option to begin scaling the selection immediately.

Reference

Select Time: Allows you to select a block of time by clicking and dragging without changing the selection.

How To

To select time:

  1. Select one or more item labels in the hierarchy list to select those tracks for time editing.
  2. Click Select Time or Scale Time.
  3. Select time from the selected tracks by dragging in the Edit Time window.

    4. If a selected track does not support time operations, time selection in that track is ignored.


Delete Time

Deletes a selected block of time. The deleted block is not copied to the clipboard.

Reference

Delete Time: Deletes a selected block of time along with any keys inside the selected block.

Keys to the right of the deleted block slide to the left to fill the deleted time.

How To

To delete a block of time:

  1. Select item labels in the Hierarchy list to select tracks for time editing.
  2. Select a block of time.
  3. Click Delete Time.


Cut Time

Before you can paste time into a track you must have time in the clipboard to paste. After selecting a block of time, you place it into the clipboard by using either Cut Time or Copy Time.

Cut Time

Deletes the selected block of time and places it on the clipboard.

Copy Time

Leaves the selected block of time unchanged and places a copy of it in the clipboard.

Reference

Cut Time: Deletes the selected block of time and places it in the clipboard.

How To

To cut time from tracks:

  1. Select item labels in the Hierarchy list to select tracks for time editing.
  2. Select a block of time.
  3. Click Cut.

The block of time is deleted from the selected tracks and stored in the time clipboard. Keys to the right of the cut block slide left to fill the deleted time.


Copy Time

After selecting a block of time you can cut or copy time to the clipboard, and then paste time to selected tracks.

You can use the clipboard to copy time, with keys, to different places in the same track or from one track to another.

Reference

Copy Time: Leaves the selected block of time unchanged and places a copy of it in the clipboard.

How To

To copy time from tracks:

  1. On the Track View toolbar, select Edit Time.
  2. Select item labels in the Hierarchy list to select tracks for time editing.
  3. Select a block of time.
  4. Click Copy.

    5. The selected block of time is copied to the time clipboard. The original selection remains unchanged.


Paste Time

Use Paste Time to paste a block of time from the clipboard into one or more tracks.

The conditions for pasting time into a track are:

  • If the block of time on the clipboard came from a single track, you can paste it into any track using the same type of controller.
  • If the block of time on the clipboard came from multiple tracks, you can paste it into a selection of multiple tracks as long as the controllers for the selected tracks include valid track types. Position tracks in the clipboard are pasted to position tracks in the selection, for example
  • If the above conditions are not met, the Paste Time button is not available.

In Edit Time mode, you can copy and paste controller tracks that have no animation keys. When a track has no key, its value at frame 0 is used. You must select a block of time before cutting or pasting, though the time is ignored.

Relative and Absolute Pasting

The values of all the pasted keys are adjusted so that the first pasted key has a value equal to the value at the time of the insertion point. As an example, assume that the value of the controller at frame 50 is 10. The clipboard holds three keys spanning 50 frames with values 20, 30, and 40. When you paste the three keys at frame 50, the first key has a value of 20, but the insertion point has a value of 10. MAX subtracts 10 from the pasted key to maintain the value at the insertion point. 3DS MAX then subtracts 10 from the remaining pasted keys, resulting in three pasted keys valued at 10, 20, and 30. In addition, any keys after the insertion range are also adjusted by the net change over the range being pasted. The net change is the value of the last key pasted minus the value of the first key pasted. In this case 40-20=20. Every key after the insertion point is increased by 20.

Reference

Paste Time: Pastes a block of time from the clipboard into one or more tracks.

Paste Track dialog options

Paste Absolute: Replaces the current animation values with the values in the clipboard. Use this method when you want to replace one animated effect with another.

Paste Relative: Adds the animation values in the clipboard to the current animation values. Use this method when you want to layer animation on to an existing effect.

How To

To paste time into tracks:

  1. Select item labels in the Hierarchy list.
  2. In the edit window drag to select a block of time or click to define an insertion point.
  3. Click Paste.


Reverse Time

Reverse Time flips the selected time.

You can reverse time by scaling a selection past its left edge but this also changes the position of the selection and the remaining keys around it. Use the Reverse Time button to reverse within a selected block of time.

Reference

Reverse Time: Use the Reverse Time button to reverse within a selected block of time.

How To

To reverse time:

  1. On the Track View toolbar, select Edit Time.
  2. Select item labels in the Hierarchy list to select tracks for time editing.
  3. Select a block of time.
  4. Click Reverse Time.

The position of the selected block of time does not change but keys within the selection are mirrored in reverse order.


Insert Time

Use the Insert Time button to insert time and remove time from selected tracks.

Inserting time adds time at a selected point in your animation. Removing time is a way of deleting time, or inserting negative time, in your animation without deleting any keys.

Reference

Insert Time: Inserts or deletes empty time.

How To

To insert positive time into tracks:

  1. Select item labels in the Hierarchy list to select tracks for time editing.
  2. Click Insert Time.
  3. Drag to the right anywhere in the edit window to insert time into the selected tracks.
    • Time is inserted and the start point defined wherever you place the cursor and click.
    • As you drag to the right, time is inserted after the start point. The inserted time appears as a dark bar in the selected tracks.
    • All keys to the right of the start point in the selected tracks slide right as time is inserted.


Scale Time

Scale Time scales a block of time, you can scale down to fit into less time or expand it to fill more time.

Reference

Scale Time: Selects time and allows you to scale the selection.

How To

To scale time:

  1. Click Scale Time.
  2. Select item labels in the Hierarchy list to select tracks for time editing.
  3. Select a block of time, then do one of the following:

    4. Drag to the right within the selection to expand time from the left edge of the selection. All keys to the right of the selection slide right as the selection expands.

    Drag to the left within the selection to reduce time towards the left edge of the selection. All keys to the right of the selection slide left as the selection shrinks.

    Drag past the left edge of the selection to reverse time and expand it with a negative scale factor. Keys inside the selection, and keys to the right of the selection, can overlap keys to the left of the selection.


Exclude Left End Point

If you paste the same block of time repeatedly, one block following the other, you can create a looping segment in your animation. To create a smooth looping animation you need to exclude either the first or last key of the copied block to prevent keys from doubling up at the ends.

Use the exclude endpoint buttons to exclude the beginning or end key in a selected block of time.

The key to be excluded must be at the exact start or end time of the selected block of time.

Reference

Exclude Left End Point: Prevents a key at the first frame of a selected block of time, from being copied to the clipboard.

How To

To create an animated loop:

  1. In Edit Time mode, Select Exclude Left End Point.
  2. Select the Position item label for the animated object in the Hierarchy list.
  3. Select a block of time.

    4. For a smooth loop, the first and last frame of the selection should be the same.

  4. On the Track View toolbar, select Copy Time.

    5. The selection is copied to the clipboard (minus the first frame).

  5. Click to define an insertion point.

    6. The last position key should be your insert point.

  6. Click Paste Time.


Exclude Right End Point

If you paste the same block of time repeatedly, one block following the other, you can create a looping segment in your animation. To create a smooth looping animation you need to exclude either the first or last key of the copied block to prevent keys from doubling up at the ends.

Use the exclude endpoint buttons to exclude the beginning or end key in a selected block of time.

Reference

Exclude Right End Point: Prevents a key at the last frame of a selected block of time, from being copied to the clipboard.

How To

To create an animated loop:

  1. In Edit Time mode, Select Exclude Left End Point.
  2. Select the Position item label for the animated object in the Hierarchy list.
  3. Select a block of time.

    4. For a smooth loop, the first and last frame of the selection should be the same.

  4. On the Track View toolbar, select Copy Time.

    5. The selection is copied to the clipboard (minus the first frame).

  5. Click to define an insertion point.

    6. The last position key should be your insert point.

  6. Click Paste Time.


Reduce Keys

Using Inverse Kinematics or creating any complex animation, can leave you with many keys. In the case of Applied Inverse Kinematics, 3D Studio MAX generates a key on nearly every frame. Often, the same animation can be produced with fewer keys. Having fewer keys in a track makes it easier to change your animation.

Use Reduce Keys in Edit Time mode to analyze the pattern of keys in a block of time and create a new pattern of fewer keys that produces nearly the same animation. You specify how closely the new animation matches the original.

Reference

Reduce Keys: Display the Reduce Keys dialog.

Threshold: Sets a threshold value.

How To

To reduce keys within a block of time:

  1. Select item labels in the Hierarchy list to select tracks for time editing.
  2. Select a block of time.
  3. Click Reduce Keys to display the Reduce Keys dialog.
  4. Enter a value in the Threshold field to specify how closely 3DS MAX must match the original animation.

    5. If you apply key reduction to multiple tracks, the threshold value is applied to each track using the track’s value type. For example, if you select both a position track and a bend angle track and apply key reduction with a threshold value of 0.5, positions will be held within 0.5 units of the original, and bend angles will be held within 0.5 degrees of the original.


Edit Ranges

Edit Ranges displays all tracks as range bars. This mode is useful for quickly scaling and sliding complete animation tracks.

  • Drag the range bar of an animation track to change all animation in that track.
  • Drag range bars in higher-level tracks to change all animation in multiple tracks.

You cannot access individual key values in this mode.

Reference

Edit Ranges: Click to switch the Track View to Edit Ranges mode.

The Track View toolbar to the right of the Lock Selection button changes to reflect the current editing mode.

How To

To drag the ranges of an object and all of its linked descendants:

  1. Click Edit Ranges.
  2. Turn on Modify Subtree.
  3. Drag an object range or the World Range.

    4. With Modify Subtree on, a range bar displays in the Objects track. The Objects branch is the default parent of all named objects in the scene.

    Dragging a parent object range bar, with Modify Subtree on, affects all tracks subordinate to the object and all tracks of all of its linked descendants.


Position Ranges

Switches the Track View to Position Ranges mode. the Track View Toolbar to the right of the Lock Selection button changes to reflect the current editing mode. Position Ranges mode allows you to position range bars independently from their associated keys to produce special effects.

The process of adjusting a range bar independent of its keys is called decoupling the range. Positioning a range bar so it matches the first to last keys of a track is called recoupling the range.

Recouple Ranges.

You decouple a range bar for two reasons:

  1. You want some keys at the start or end of an animation range to be ignored.

    2. Keys outside of the range bar are ignored during animation playback. The keys outside the range still affect interpolated values inside the range, but the applied Out-of-Range type is used to animate time outside the range bar.

  2. You want to add extra time before the first key or after the last key that is not affected by the applied Out-of-Range type.

    3. Time beyond the first or last key of the track, but still within the range uses the constant value of the nearest key within the range.

Reference

Position Ranges: Use Position Ranges to adjust the relationship between a range bar and its keys.

The Track View toolbar to the right of the Lock Selection button changes to reflect the current editing mode.

How To

To decouple a range bar from its keys:

  1. Click Position Ranges.
  2. Drag the entire range bar to shift it to the left or right of the keys or drag either end of the range bar to make it longer or shorter than the keys.

    3. Using Out-of-Range types in conjunction with this procedure allows you to change the behavior of an animated loop. Positioning either end of a range bar changes the loop.


Recouple Ranges

Recouple Ranges resizes the range bar so that the beginning and end of the range matches the first and last keys in the track. This is useful to quickly realign the range with the keys after editing.

Reference

Recouple Ranges: Resize the range bar to fit the first and last key of the selected track.

How To

To recouple a range:

  1. Click Position Ranges.
  2. Select one or more item labels in the Hierarchy list to select tracks to be recoupled.
  3. Click Recouple Ranges

    4. The range bars for the selected tracks are positioned to match up with the first and last keys in their track.

    Using the Position Ranges mode in Track View allows you to decouple the range bar from the animation keys. Recouple Ranges is a quick way to realign the range bars.


Function Curves

Function Curves displays selected controller items as curves, charting the controller's change of value over time.

Selecting a controller item icon, or selecting a curve in the Edit Window, displays keys for that item as vertices on the function curve. You can then select and change the key values.

You can view and add keys to function curves for tracks that are not yet animated, and therefore have no controller. The curves appear as straight lines. As soon as you add a key to a function curve, a controller is created for that track.

Reference

Function Curves: Select to switch Track View to Function Curves mode.

The Track View toolbar to the right of the Lock Selection button changes to reflect the current editing mode.

How To

To display function curves:

  1. Put Track View into Function Curves mode.
  2. Click a controller item label containing animation values to display the item’s function curve.

    3. Press CTRL and repeat step 2 to add or remove function curves from the display.


Move Keys, Horizontal, Vertical

This three button flyout allows you to move one or more selected keys to change both the timing and value of the keys.

Reference

Move Keys: Moves keys in both horizontal and vertical axes.

Horizontal: Constrains movement to the horizontal axis.

Vertical: Constrains movement to the vertical axis.

You can clone the keys by holding down SHIFT while dragging.

How To

To move a selection of keys:

  1. Click one of the Move Keys buttons.
  2. Select one or more keys.
  3. Drag the selected keys to a new location or press SHIFT and drag the selected keys to add copies at the new location.


Scale Keys (Function Curves)

Scale Keys (Function Curve)

Use Scale Keys to scale function curve keys horizontally.

Reference

Scale Keys: Changes the horizontal location and amount of time covered by selected keys.

The scale center for scale time is the current time set by the time slider. You can scale keys about any moment in time by dragging the time slider before you use Scale Keys.

How To

To scale a selection of keys horizontally:

  1. Drag the time slider to the time to use as the scale center.
  2. Click Scale Keys.
  3. Select one or more keys.
  4. Drag horizontally to scale selected keys or press SHIFT and drag to add scaled copies of selected keys.
  5. Drag left or right for the following results:

    6. Dragging right expands the keys away from the current time.

    Dragging left shrinks the keys towards the current time.

    Dragging left past the current time reverses the keys and expands the keys away from the current time.


Scale Values

Use Scale Values to scale function curve keys vertically.

Reference

Scale Values: Scales the selected vertices to and from zero.

The scale center of Scale Values is always the horizontal base line at the value of 0.

How To

To scale a selection of keys vertically:

  1. Click Scale Values.
  2. Select one or more keys.
  3. Drag horizontally to scale the selected keys or press SHIFT and drag to add scaled copies of the selected keys.
  4. Drag up or down for the following results:
    • Dragging up expands the keys away from zero and increases their values.
    • Dragging down shrinks the keys towards zero and decreases their values.
    • Dragging down past zero reverses the keys and expands the keys away from zero with negative values.


Add Keys (Function Curves)

Add Keys is a mode that stays active until you click another mode. While Add Keys is active you click anywhere on a function curve to add a key at that location on the curve.

If the selected curve is part of a multi-curve controller, vertices are added to each curve at the time location where you clicked. For example, adding a key to the red X curve of a position track will also add keys at the same time to the green Y curve and the blue Z curve.

Adding keys to a multi-curve controller

The value of each key is set by one of the following conditions:

  • Keys added between keys receive the interpolated value shown by the function curve at that location.
  • Keys added before the first or after the last key on the curve receive the same value as the nearest key.

Another way to add keys is to copy them using one of the transform buttons with Shift-Clone.

Reference

Add Keys (Function Curves): Adds a key to any curve you click.

How To

To add keys to a function curve:

  1. Select a function curve.
  2. Click Add Keys.
  3. Click the function curve where you want to add the key.

    4. If the selected curve is part of a multicurve controller, vertices are added to each curve at the time location where you clicked. For example, adding a key to the red X curve of a Position track also adds keys at the same time to the green Y curve and the blue Z curve.


Show Tangents

Show Tangents allows you to adjust the tangents of the selected vertices in Function Curves mode. Selected keys must have the Bezier Controller with Custom tangent type assigned.

Custom Tangent

You can assign the Custom Tangent type only to items using a Bezier controller. The easiest way to tell whether a displayed function curve uses a Bezier controller is to turn on the Controller Types filter.

The tangent handles can be either continuous or discontinuous.

  • Continuous handles behave like a single lever with its pivot point at the key location. Moving either end of the handle also moves the opposite end, maintaining the continuity of the tangent.

The function curve, and the animation it represents, moves smoothly through a key with continuous tangent handles.

  • Discontinuous handles behave like leaves on a hinge, with the hinge pin at the key location. Either end moves independently of the other.

Converting a discontinuous tangent to a continuous tangent requires changing the tangent type from Custom to Smooth and back to Custom again. Note that this technique is performed at the key level and can affect unselected vertices if they belong to the same key as one of the selected vertices.

Reference

Show Tangents: Allows you to adjust the tangents of the selected vertices.

By holding down the SHIFT key, you can edit the tangents of a vertex separately.

How To

To assign a Custom tangent type:

Put Track View into Function Curves mode.

  1. In the Track View hierarchy list, select a track that uses a Bezier controller (a position track, for example).
  2. Select one or more keys on the curve.
  3. Click Properties in the Track View toolbar to display the Key Info dialog.
  4. Choose the Custom tangent type from either the In or Out flyouts at the bottom of the Key Info dialog.

    5. Tangent handles appear on the selected vertices.

To drag continuous tangent handles:

Use any of the Move Keys buttons to drag either end of a continuous tangent handle. You can use the Lock Tangents button and the SHIFT key to modify the effect of dragging the tangent handles.

  1. 1 To drag continuous tangent handles:
  2. Click one of the Move Keys buttons.
  3. Select one or more keys.
  4. Click Lock Tangents to set one of the following modes:

    5. Inactive: Dragging a tangent handle affects only the single key displaying the handle.

    Active: Dragging a tangent handle affects the handles of all selected keys.

  5. Drag either end of the handles to rotate both handles about the key location or press SHIFT and drag the end of one handle to break continuity and rotate only that handle about the key location.


Lock Tangents

When Lock Tangents is inactive, dragging a tangent handle affects only the single key displaying the handle. When Lock Tangents is active, dragging a tangent handle affects the handles of all selected keys.

Reference

Lock Tangents: Keeps tangents oriented relative to one another after the SHIFT key has been used to manipulate them.

How To

To drag discontinuous tangent handles:

  1. Click one of the Move Keys buttons.
  2. Select one or more keys.
  3. Click Lock Tangents to set one of the following modes:

    4. Inactive: dragging a tangent handle affects only the single key displaying the handle.

    Active: Dragging a tangent handle affects both handles of all selected keys.

  4. Drag the end of one handle to rotate it about the key location or press SHIFT when Lock Handles is on and drag the end of one handle to rotate the matching handle about all selected key locations.


Apply Ease Curve or Multiplier Curve

Creates an ease curve or multiplier curve track. Once you apply an Ease or Multiplier curve, you can edit its keys, ranges, and properties just like any other animation track.

This button is a flyout that contains two functions:

Ease Curves

Ease curves vary the timing of a superior function curve. A normal function curve charts an animated parameter value over time. An Ease curve charts changes to the time of a function curve over time.

Multiplier Curves

The value of a multiplier curve is a scale factor applied to the value of its superior function curve.

You apply Ease and Multiplier curves in Function Curves mode. Once you apply an Ease or Multiplier curve, you can edit its keys, ranges, and properties just like any other animation track.

Reference

Apply Ease Curve: Applies a curve to alter time of the selected function curve.

Apply Multiplier Curve: Applies a curve to scale the value of the selected function curve.

How To

To apply an Ease Curve or Multiplier curve:

  1. Activate Function Curves mode.
  2. Select a controller item in the Hierarchy list.

    3. Not all controller items can receive Ease or Multiplier curves. For example, the Path position controller cannot receive an Ease or Multiplier curve, but its subordinate Percent controller can. If the selected controller is incapable of receiving Ease or Multiplier curves, the buttons are grayed out.

  3. Click Apply Ease Curve or Apply Multiplier Curve.

    4. The ease or multiplier curve appears as a subordinate item to the selected controller.

    You can apply ease and multiplier curves to most controllers in 3D Studio MAX. This includes applying ease or multiplier curves to other ease or multiplier curves. Experiment with this technique to produce complex effects.


Delete Ease/Multiplier Curve

You can remove an Ease or Multiplier curve at any time using the Delete Ease/Multiplier Curve button.

Reference

Delete Ease/Multiplier Curve: Deletes the currently selected ease curve or multiplier curve from the Track View.

How To

To delete an Ease or Multiplier curve:

  1. Select one or more Ease or Multiplier curve tracks in the Track View hierarchy.
  2. Click Delete Ease/Multiplier Curve on the Track View toolbar.


Enable Ease/Multiplier Curve Toggle

A disabled curve has no effect on its assigned track, but can be enabled to restore the effect.

Use this when you want to work with the original function curve rather than a curve altered by Ease and Multiplier curves.

Reference

Enable Ease/Multiplier Curve Toggle: Toggles the state of the selected ease curve or multiplier curve.

How To

To toggle the active state of an Ease or Multiplier curve:

  1. Select one or more Ease or Multiplier curves.
  2. Click the enable Ease/Multiplier Curve toggle on the Track View toolbar.


Ease Out-of-Range Types

Displays a dialog in which you can assign out-of-range types for the current ease curve.

Ease and Multiplier curves use the same Out-of-Range types as other function curves, with two exceptions:

  • Out-of-Range types for Ease and Multiplier curves are applied with their own buttons.
  • Ease curves have one extra Out-of-Range type called the Identity type.

You will usually want to use the same Out-of-Range type for Ease and Multiplier curves that you use for their superior function curve.

Reference

Ease Out-of-Range Types: Displays a dialog in which you can assign out-of-range types for the current ease curve.

Ease Out-of-Range Types dialog

Identity: Projects the Ease curve along a line with a slope of 1.0 from either end of the range. This causes time to flow at a normal, constant rate outside the range of the Ease curve. Use Identity when you want the Ease curve to be a localized, non-repeating effect.

Identity for an Ease curve produces an effect similar to constant for other types of curves.

Identity is not available for Multiplier curves.

Identity is the default Out-of-Range type for Ease curves.

Constant: Holds the value at the ends of the range for all frames. Use Constant when you want no animated effect before or after ends of the range.

The time value at the end of the range is held for all frames before or after the range.

Constant is the default Out-of-Range type for Multiplier curves.

Linear: Projects the animation value along a line tangent to the Ease or Multiplier curve at the end of the range. Use Linear when you want the animation to enter and leave the range at a constant velocity.

Cycle: Repeats the same animation as within the range. Use Cycle when you want an animation to repeat exactly.

Loop: Repeats the same animation as within the range but interpolates between the last key and the first key of the range to create a smooth loop. Use Loop with an extended range bar to produce smoothly repeating animation.

Ping Pong: Alternates between a forward and backward repeat of the animation within the range. Use Ping Pong when you want your animation to alternate back and forth.

Relative Repeat: Repeats the same animation as within the range but offsets each repetition by the value at the end of the range. Use Relative Repeat to create animations that build on each other as they repeat.

How To

To set the Out-of-Range type for an Ease or Multiplier curve:

  1. Select one or more Ease or Multiplier curve items in the Hierarchy list.
  2. Click Ease Curve Out-Of-Range Types to display the Ease Curve Out-Of-Range Types dialog.

    3. or

    Click Multiplier Curve Out-Of-Range Types to display the Multiplier Curve Out-Of-Range Types dialog.

  3. Click an Out-of-Range Type image to apply that type to both the incoming and outgoing curves of the selected Ease or Multiplier curves.

    4. or

    Click the Left Arrow button below an Out-of-Range Type image to apply it to only the incoming curve of the selected Ease or Multiplier curves.

    or

    Click the Right Arrow button below an Out-of-Range Type to apply it to only the outgoing curve of the selected Ease or Multiplier curves.


Multiplier Out-of-Range Types

Displays a dialog in which you can assign out-of-range types for the current multiplier curve. Ease and Multiplier curves use the same Out-of-Range types as other function curves, with two exceptions:

  • Out-of-Range types for Ease and Multiplier curves are applied with their own buttons.
  • Ease curves have one extra Out-of-Range type called the Identity type.

You will usually want to use the same Out-of-Range type for Ease and Multiplier curves that you use for their superior function curve.

Reference

Multiplier Out-of-Range Types: Displays a dialog where you can assign out-of-range types for the current multiplier curve.

Multiplier Out-of-Range Types dialog

Constant: Holds the value at the ends of the range for all frames. Use Constant when you want no animated effect before or after ends of the range.

The time value at the end of the range is held for all frames before or after the range.

Constant is the default Out-of-Range type for Multiplier curves.

Linear: Projects the animation value along a line tangent to the Ease or Multiplier curve at the end of the range. Use Linear when you want the animation to enter and leave the range at a constant velocity.

Cycle: Repeats the same animation as within the range. Use Cycle when you want an animation to repeat exactly.

Loop: Repeats the same animation as within the range but interpolates between the last key and the first key of the range to create a smooth loop. Use Loop with an extended range bar to produce smoothly repeating animation.

Ping Pong: Alternates between a forward and backward repeat of the animation within the range. Use Ping Pong when you want your animation to alternate back and forth.

Relative Repeat: Repeats the same animation as within the range but offsets each repetition by the value at the end of the range. Use relative repeat to create animations that build on each other as they repeat.


Freeze Nonselected Curves

Makes all nonselected curves uneditable.

Click Freeze Nonselected Curves again to clear the mode and return to normal function curve display.

Reference

Freeze Nonselected Curves: Makes all nonselected curves uneditable.

How To

To freeze Nonselected Curves:

  1. Set Freeze Nonselected Curves to On.

    2. Freeze Nonselected Curves is a selection modifier with the following properties:

    • Selected curves display as solid lines with black squares at their vertices.
    • Nonselected curves display as a dotted lines.
    • You can only select vertices from selected curves in the edit window.
    • You select other curves by clicking their icon in the Hierarchy list.
  2. Click Freeze Nonselected Curves again to clear the mode and return to normal curve display.


Zoom Selected Object

Place the currently selected object at the top of the hierarchy window in Track View.

The Zoom Selected Object button affects the hierarchy as well as the edit window. (In the case of the Function Curve display mode, it only affects the hierarchy window.) Clicking this button scrolls the hierarchy to place the track of the currently selected object at the top of the hierarchy window. If the object is a child of a closed hierarchy, the hierarchy is opened to display the selected object. If more than one object is selected in the scene, the uppermost selected object in the hierarchy list is placed at the top of the window. If no objects are selected, nothing happens. This function works only on object tracks.

Reference

Zoom Selected Object: Click this to place the currently selected object at the top of the hierarchy window in Track View.

How To

To place the selected object at the top of the hierarchy window:

  1. Select an object in the Viewports.
  2. Open a Track View, then click Zoom Selected Object.

    3. The currently selected object is placed at the top of the hierarchy window.

    This is handy to quickly find objects located in a hierarchy, for example a characters finger, and place it at the top of the hierarchy window.


Select by Name

Select tracks in the hierarchy window by typing their names (including optional wildcards) in the editable field. If the Controller Type display is active, you can specify by controller type as well. The number of tracks selected is displayed in the status line.

Reference

Select by Name: Select tracks in the hierarchy window by typing their names in the editable field.

  • The search is not sensitive to case, except for the text within parentheses, which is case sensitive.
  • Only those tracks that are open and displayed are selected.
  • You can use wildcard characters

How to

Limit the search to a specific node by first specifying that node in parentheses:

(Cone01)Position selects only the Position track under Cone01.

(Cone*)Position selects the Position track under all objects that begin with “Cone.”


Prompt Line (Track View)

Displays reminders of what action is expected in the Edit Window.

The text changes according to the currently selected mode.


Key Time Display

Key Time Display (Track View)

This is editable field displays the frame number (position in time) of the selected key. You can enter a new frame number or enter an expression to move the key to a frame.

Using Expressions in the Time and Value Fields

You can type any expression into the time and value type-in fields of Track View. The variable 'n' is predefined to stand for the key time or value. The expressions can be as complex as you want and can involve any function the expression controller uses. For example you could have an expression like: n/2+sin(n)*40^n.

  • The expression parsing in the time field works only when the time display mode is set to frames. The expression parser doesn't understand SMPTE or Frame:Ticks.

Reference

Key Time Display (Track View): Displays the frame number of the selected key. You can enter a new frame number or enter an expression.

How to

To add 10 to each key time:

  1. 1 Type n+10 in the Key Time field.

10 is added to each key time.


Value Display

Displays the value (position in space) of the selected key. This is an editable field. You can enter a new number or expression to change the value.

Using Expressions in the Time and Value Fields

You can type any expression into the time and value type-in fields of Track View. The variable 'n' is predefined to stand for the key time or value. The expressions can be as complex as you want and can involve any function the expression controller uses. For example you could have an expression like: n/2+sin(n)*40^n.

  • The expression parsing in the time field works only when the time display mode is set to frames. The expression parser doesn't understand SMPTE or Frame:Ticks.

Reference

Value Display: Displays the value of the selected key. You can enter a new number or enter an expression.

How to

To add 10 to each key value:

  1. 1 Type n+10 in the Key Time field.

10 is added to each key time.


Show Selected Key Statistics

Displays the statistics represented by the currently selected key in Function Curves mode.

The frame number and value appear to the right of the key in the Edit Window. For example, 68,40.620 (frame=68, value=40.620 ).

Reference

Show Selected Key Statistics: Select to display the statistics represented by the currently selected key.


Zoom Horizontal Extents

This two button flyout contains Zoom Horizontal Extents and Zoom Horizontal Extents Keys.

Reference

Zoom Horizontal Extents: Adjusts the size of the Track View Edit Window horizontally so that all of the active time segment is visible at once.

Zoom Horizontal Extents Keys: Scales your view horizontally to display the full range of all animation keys. Depending on your animation, this view could be larger or smaller than the Active Time Segment.

How to

To Display the active time segment in the Track View edit window:

  • Select Zoom Horizontal Extents on the Track View status bar.

The active time segment (displayed in a lighter color) centers itself in the edit window.


Zoom Value Extents

In Function Curves mode, adjusts the size of the Track View Edit Window vertically so that the full height of the curves in the active time segment is visible.


Pan (Track View)

Allows you to click and drag the Edit Window to move it left and right or up and down. Click once to enable panning. Pan remains active until you right-click to cancel or click another button. The button is green while it is active.

Zooming and Panning with the Intellimouse

You can use the wheel on the Intellimouse to zoom and pan the Track View edit window. Drag with the wheel to pan, and roll the wheel to zoom. (If you have a standard 3-button mouse, you can pan but you can’t zoom.)

Reference

Pan (Track View): Click and drag the Edit Window to move it left and right or up and down.

Drag horizontally in all modes to slide the view forward and backward in time.

Drag vertically (in Function Curve mode only) to slide the view up and down in value.


Zoom (Track View)

This three button flyout on the Track View status bar allows you to zoom horizontally, vertically and in both directions at simultaneously.

Reference

Zoom: Allows you to simultaneously zoom your view of time and values.

Click once to enable zooming. Zoom remains active until you right-click to cancel or click another button. The button is green while it is active.

Drag down to zoom out and see more time and a larger range of values. Drag up to zoom in and see less time and a smaller range of values.

Zoom Vertically: In Function Curves mode, allows you to dynamically zoom the contents of the Edit Window vertically.

Drag up to increase magnification. Drag down to decrease magnification.

Zoom Horizontally: Allows you to dynamically zoom the contents of the Edit Window horizontally.

Drag right to increase magnification. Drag left to decrease magnification.

How to

To zoom your view of time in the Track View edit window:

  1. 1 Select Zoom on the Track View status bar.
  2. 2 Click and drag to the right in the Track View edit window.

    3. You view of time expands horizontally in the edit window.


Zoom Region (Track View)

Zoom Region allows you to drag a region in the Edit Window and scale that region to fill the window.

Reference

Zoom Region (Track View): Click once to enable region zooming.

Region Zoom remains active until you right-click to cancel or click another button. The button is green while it is active.

In Function Curves mode, both time and value are scaled to fit the Edit Window. In all other modes, only time is scaled to fit the Edit Window.

How to

To zoom a region of the Track View edit window:

  1. 1 Select Zoom Region on the Track View status bar.
  2. 2 Drag a window in the Track View edit window.

The selection zooms to fill the Track View edit window.


Track View Hierarchy

Displays all items in your scene in a hierarchical fashion.

Reasons for selecting items in the Hierarchy list are:

  • Selecting item labels for Track View operations.
  • Selecting object icons to select objects in the scene.
  • Selecting material or map icons when working in the Material Editor.
  • Navigate the modifier stack in the Modify panel.

Reference

The Scene Hierarchy

World

At the root of the scene hierarchy is the World. This item collects all keys in your scene as a single range for quick global operations.

By default, the World track shows the range of the Sound, Environment, Medit Materials, and Scene Materials branches. The Modify Subtree button in Edit Ranges mode causes the World track to include the range of all tracks in the Objects branch as well.

Note: The default location of the time ruler covers the World animation track. Move the time ruler to see the World track.

Sound

You can synchronize your animation to a sound file or to a metronome. If a sound file is used, a Wave Form item appears in the hierarchy list and a waveform is displayed in the edit window. A sound file plays on your installed sound card. You set the Metronome and the Wave Form parameters in the Sound Options dialog.

Global Tracks

Global Tracks is an area in which you can store controllers. Using expression controllers, for example, you could point to a controller in the Global Tracks from several other tracks. By altering the expression in the Global Tracks, all of the other tracks are changed.

By pasting an instance of a controller in Global Tracks to a number of other tracks, you can change many tracks by altering the controller in Global Tracks.

As a default, Global Tracks contains List tracks of the different controller types. To assign a controller, open one of the List tracks, highlight the Available track, and then click Assign Controller. Once the controller is assigned, you can point to it from an expression controller assigned to any other track, or you can copy and paste it to any number of matching controller types.

Video Post

Animated parameters for Video Post plugins can be managed in the Video Post branch.

Environment

The Environment branch contains items that control the background and scene environment effects. Examples of such items include, Ambient Light, Background definition, Fogs, and Volumetric Lighting.

Scene Materials

The Scene Materials branch contains the definitions for all materials in the scene. It is empty until you begin assigning materials to objects. When you select materials in this branch, you are working with instances of materials assigned to objects in your scene. These materials might not be in any of the Material Editor samples.

Medit Materials

The Medit Materials branch contains global material definitions. The Medit Materials branch contains the six material definitions in the Materials Editor. When you select materials from this branch, you are working with global material definitions that might not yet be assigned to objects in your scene.

Objects

The Objects branch contains a dual hierarchy for all the objects in your scene.

Item Categories

Each type of item in the Hierarchy list is represented by an icon. You can use these icons to quickly identify what each item represents.

Objects

Yellow cubes indicate objects in the scene. Branches below the square icon next to a yellow cube contain linked descendants of the object. Branches below the circle icon next to a yellow cube contain transforms, modifiers, and materials applied to the object, as well as the objects creation parameters.

Controllers

Green triangles indicate controllers, the animation workhorses of Track View. They contain the animation values for parameters and are the only item in the Hierarchy list that can have a track containing keys.

Certain types of controllers can contain other controllers. Examples of these are Transform Controllers and List Controllers.

Maps

Green parallelograms indicate map definitions. All branches below a map definition are part of that map. This includes values used by parametric maps and other map definition that are part of a map tree.

Material

Blue spheres indicate material definitions. All branches below a material definition are part of that material. Because a material can be composed of multiple materials, it is possible to have nested material definitions in Track View. Blue spheres also appear in an objects modifier branch when a material is assigned to an object.

Container

Blue cylinders indicate a container of other items. Branches below a blue cylinder can contain any number of other items. Blue cylinders are how 3D Studio MAX organizes complex items in the Hierarchy.

Modifier

Orange diamonds indicate modifiers and Space Warp bindings. Branches below a modifier contain the modifiers sub-objects and parameters.

Hierarchy Pop-Up Menu

Right click any item in the hierarchy list to display the pop-up menu.

Expand Objects: Expands branches for all descendants of the object.

Expand Tracks: Expands all levels of all non-object branches below the item.

Expand All: Expands all non-object branches and descendants of the object.

Collapse Objects: Collapses all branches for descendants of the object.

Collapse Tracks: Collapses all non-object branches below the item.

Collapse All: Collapses all branches in the hierarchy.

Select All: Selects all tracks.

Select Invert: Inverts the current selection pattern of tracks, deselecting selected tracks, and selecting deselected tracks. Has no effect on collapsed tracks.

Select None: Deselects all selected tracks.

Selecting Children: Lets you select all child nodes.

Properties (Menu): Displays the Properties dialog for the selected item in the Track View.

For example, this button displays the Key Info dialog for the selected Key or the Sound Options dialog if an item in the Sound Track is selected.

How To

To select objects in the scene using Track View:

  1. Do the following to select the first object(s):

    2. Click an object's yellow box icon to select a single object.

    Double-click a parent object's yellow box icon to select the object and its descendants.

  2. Add to or subtract from the selection by doing one of the following:

    3. Press SHIFT and click an object icon to select all objects between the object you click and the previously selected object.

    Press CTRL and click an object icon to add or remove the object from the selection.

When objects are selected in the scene, their icons are also highlighted in Track View.

All objects in your scene are always displayed in Track View. However, selecting object icons in Track View follows the same rules as selecting objects in the scene:

  • You cannot select the icon of a hidden object.
  • You cannot select the icon of a frozen object.
  • If you select the icon of an object that is part of a closed group, the icons for all objects in the group plus the group's icon are selected.

To select and deselect item labels by clicking:

  1. Select the first item by clicking its label.
  2. Add to or subtract from the selection by doing the following:
    • Press SHIFT and click an item label to select all items between the item you click and the previously selected item.
    • Press CTRL and click an item label to add or remove that item from the selection.
    • · Hold down the ALT key while clicking on an item label selects all item labels in that column
    #ENDNUMBLOCK#.

    Right-clicking an item displays a pop-up menu with three options for globally selecting items in the Hierarchy list.

    To select objects with the pop-up menu:

    1. Right-click any item label.
    2. Globally change the selection pattern by choosing one of the following menu items:
      • Choose Select All to select all items visible in the Hierarchy list. Collapsed items are not selected. Press CTRL and choose Select All to select only visible transform items.
      • Choose Select Invert to reverse the selection pattern.
      • Choose Select None to clear all items from the selection.
      • Choose Selected Children to select the linked descendants of a parent object.

    When working with function curves, you can also select a controller icon (instead of the label) to select that function curve for vertex editing.

    To select Children:

    1. Right-click over an object track in the hierarchy list window.

      2. (The Select Children item only appears when right-clicking over an object track.)

    2. Choose Select Children from the pop-up menu.

      3. All object tracks that are children of the selected track are selected.

    To select a material or map as the active material in the Materials Editor:

    1. Open the Material Editor.
    2. Open the Medit Materials branch in the hierarchy window and select a material.

      3. The selected material becomes the active item in the Material Editor dialog.

    To navigate the modifier stack in the Modify panel using the Track View hierarchy:

    1. Create a cylinder.
    2. In the Modify Panel add a Bend and a Twist modifier to the cylinder.
    3. In the Track View hierarchy expand the Cylinder branch.
    4. Expand the Modified Object branch.
    5. Select the the orange diamond of the Twist modifier.

      6. The Twist modifier displays on the Modify Panel.

    6. Select the orange diamond of the Bend modifier in the hierarchy window.

      7. The Bend modifier displays on the Modify Panel.


Hierarchy Pop-Up Menu

Contains quick-access commands for expanding and collapsing the hierarchy.

Expand Objects: Expands branches for all descendants of the object. Expand Tracks: Expands all levels of all non-object branches below the item.

Expand All: Expands all non-object branches and descendants of the object.

Collapse Objects: Collapses all branches for descendants of the object. Collapse Tracks: Collapses all non-object branches below the item. Collapse All: Collapses all branches in the hierarchy.

Select All: Selects all tracks.

Select Invert: Inverts the current selection pattern of tracks, deselecting selected tracks, and selecting deselected tracks. Has no effect on collapsed tracks.

Select Children: All object tracks that are children of the selected track are selected.

Select None: Deselects all selected tracks.

Properties (Menu)


Properties (Menu)

Properties (Track View Toolbar)

Displays the Properties dialog for the selected item in the Track View. For example, this button displays the Key Info dialog for the selected Key or the Sound Options dialog if an item in the Sound Track is selected.

Reference

Properties: Display the properties dialog for the selected key or item.

How to

Properties for most of the animation controllers available in 3DS Max can be displayed using the Properties button on the Track View toolbar.

To display the properties dialog for a bezier key:

The Bezier Controller is the default position controller when an object is animated.

  1. 1 Select an objects position key in the Track View edit window.
  2. 2 Select Properties on the Track View toolbar.

    3. The Bezier Controller dialog displays.

    Note: You can also display the Properties dialog by right-clicking on the key in the Track View edit window.

To display the properties dialog of a waveform controller:

  1. 1 Select the item using the waveform controller in the Track View hierarchy.
  2. 2 Select the properties button on the Track View toolbar.

    3. The Wave Form controller dialog appears.

    Note: You can also display the Properties dialog for the wave form controller track by right-clicking on the item in the Track View hierarchy and selecting properties or, right-clicking the range bar in the Track View edit window (waveform controllers don't have keys).

To display the Sound Options dialog (to add a sound track):

  1. 1 Select the Sound item in the Track View hierarchy.
  2. 2 Select Properties on the Track View toolbar.

    3. The Sound Options dialog appears.


Modify Subtree

Modify Subtree is available in three modes: Edit Keys, Edit Time and Edit Ranges. This function works differently in each mode:

Reference

Modify Subtree (Edit Keys): Parental tracks display not only their own keys, but all of their children’s keys, as well. (If the parental track previously displayed a range bar, it displays key dots, instead.) Anything you do to the keys in the parental track (cut, paste, move, etc.) affects the child keys as well.

When this button is on and you edit the range of a parent object, the child objects are also effected.

Note: Adding keys only affects the current track.

Modify Subtree (Edit Time): The Track View edit window display switches in the same manner as in Edit Keys mode, displaying all children’s keys in parental tracks. Cutting and pasting a selected parental track, cuts and pastes the child values, as well.

Modify Subtree (Edit Range): Affects the tracks of an object and all of its descendent objects. When this button is on and you edit the range of a parent object, the child objects are also effected.

  • When you switch from one display mode to another (such as from Edit Keys to Edit Time), the Modify Subtree button is automatically turned off.
  • When Modify Subtree is active, the Slide Keys button is disabled.

How To

To use Modify Subtree in Edit Ranges mode to drag the ranges of an object and all of its linked descendants:

  1. Click Edit Ranges.
  2. Turn on Modify Subtree.
  3. Drag an Object range bar or the World range bar.

    4. With Modify Subtree on, a range bar appears in the Objects track. The Objects branch is the default parent of all named objects in the scene.

    Dragging a parent object range bar, with Modify Subtree on, affects all tracks subordinate to the object and all tracks of all of its linked descendants.

    Dragging the World range bar, with Modify Subtree on, affects all tracks in the scene, including Sounds, Materials, and all tracks of all objects.


Status Bar/Viewport Controls

Contains an area for prompt and status information and for buttons to control the display of 3D Studio MAX viewports.

Status Bar Controls

Viewport Controls

Viewports


Status Bar Controls

Contains an area for prompt and status information.

Prompt Line

Status Line

Time Slider

Plug In Keyboard Shortcut Toggle

Lock Selection

Coordinate Display

Grid Setting Display

Window/Crossing Toggle

Degradation Override

2D Snap, 2.5D Snap, 3D Snap

Angle Snap

Percent Snap

Spinner Snap


Prompt Line (Viewports)

Provides an ongoing help system based on the current cursor position and the current program activity.

Reference

Depending on what you are doing, the Prompt Line displays instructions that tell you what 3D Studio MAX expects or what you can do next. For example, when you click the Move button, the Prompt Line reads "Click and drag to select and move objects."

The Prompt Line is located at the bottom of the screen under the Status Line.


Status Line

Status Line (Viewports)

Displays the number and type of object.

If multiple objects are selected and all are of the same category, the number of the objects and the category is displayed (for example, 2 cameras, 3 lights, etc.) If multiple objects of different categories are selected, it displays the number plus the word "objects" (for example, 6 objects).

The Status Line is located at the bottom of the screen above the Prompt Line.


Time Slider

Shows the current frame and lets you move to any frame in the active time segment.

Reference

By default, the active time segment is frame 0 to frame 100. The slider bar displays time in frames, SMPTE numbers, or other measurements, depending on the current setting in the Time Configuration dialog.

The slider bar displays the current frame you're on, followed by a slash (/), followed by the total frames in the active time segment. For example 25/100 means frame 25 of 100 frames. The current frame also appears in the current frame field. If animation exists in the scene, it's played back as you drag the time slider.

The buttons on either side of the time slider bar move one frame to the left and one frame to the right, like the Previous Frame and Next Frame buttons in the time controls. If Key Mode Toggle is on, these buttons duplicate the Previous Key and Next Key buttons.


Plug-in Keyboard Shortcut Toggle

Lets you toggle between using the 3D Studio MAX shortcut keys and using shortcut keys assigned by 3rd-party plug-ins.

Reference

When you turn this on, the prompt line reports that the plug-in shortcuts have been either enabled or disabled. Functions in the command panels are considered 3rd-party plug-ins even if they ship with 3D Studio MAX.


Lock Selection

Toggles selection locking on and off.

Reference

This button is off by default.

Click to set it on (it turns yellow). When it is on, you can click anywhere in the screen and 3D Studio MAX takes it as a click on the selected object(s). This is useful when you want to keep objects selected while you make a different viewport active or when the selection is tiny and difficult to select.

How To

To avoid accidental deselection

  1. Make your object selection.
  2. Click the Lock button in the status line or press SPACE to turn on locked selection mode.

To exit sub-object selection mode, do one of the following

  • Turn off the Sub-Object button.
  • Open another command panel. This turns off the Sub-Object button.

If you've turned off the Sub-Object button and object selection is still not restored, one of the following may be true:

  • Your selection is locked. Turn off the Lock button in the prompt line.
  • You've set the Selection Filter in the toolbar to a specific category of object, so you can't select any of the other categories. To fix this, select All in the Selection Filter list.


Coordinate Display

Displays the position of the mouse in world coordinates whenever you are not actively manipulating an object.

Reference

When you are transforming an object, the status line displays the pertinent information, depending on the type of transform:

Move: Displays the offset XYZ coordinates based on the current coordinate system. For example, if you’re moving an object and you’re constrained to the X axis, only the X readout will change, displaying the offset of the move along the local X axis.

Rotate: Displays the offset angle in degrees about the axis or axes the rotation is performed around. This is dependent on both the axis coordinate system, and the local/center toggle button.

Scale: Displays the offset XYZ scale in percentages.

You can get the absolute as well as offset information through the Transform-Type-in dialog on the Edit Menu.


Grid Setting Display

Displays the size of one grid square.

Reference

This value is based on the current zoom factor in the active viewport. It changes if you zoom in very close or zoom out very far. For example, if you zoom in so that one grid square fills the viewport, 3D Studio MAX displays a new grid, the squares of which are a fraction of a single square in the original grid.


Window/Crossing Toggle

Switches between window and crossing modes when you select by region (by drawing an invisible shape as a boundary to select objects). The button's icon shows which mode is active.

Reference

In crossing mode (the default), objects that are within the region boundary or that are crossed by it are selected.

In window mode, only those objects that are entirely within the region boundary are selected.

The Select Region Rectangle, Circle, Fence flyout on the toolbar allows you to create boundaries of various shapes.

This setting is saved in the 3dsmax.ini file.


Degradation Override

Overrides the adaptive degradation that occurs when 3D Studio MAX cannot display shaded rendering modes during animation playback in the viewport.

Reference

When you turn Degradation Override on, degradation occurs as specified in the Viewport Configuration dialog. To display the adaptive degradation panel of the Viewport Configuration dialog, right-click on this button.

When Degradation Override is on, the icon shows a wireframe box,

When you turn Degradation Override off, no degradation occurs and 3D StudioMAX displays the animation in shaded mode, dropping frames as a result. When Degradation Override is off, the icon shows a shaded box.

How To

To turn off adaptive degradation do one of the following

  • Click the Degradation Override button in the status bar.
  • Press o (lower-case O for override)


2D Snap, 2.5D Snap, 3D Snap

Provides control over the range of 3D space where snaps are active. Object snapping lets you snap to specific portions of existing geometry during creation and transforms of objects or subobjects. You can also snap to the grid, and you can snap to tangents, midpoints, and so on.

The mode you choose maintains its state when you switch levels.

When snapping is on (but Animate is off), rotations and scales are performed about the snap point. For example, if you’re using Vertex snapping and rotating a box, you can rotate it about any of its corner vertices.

When the Animate button is on and either Select and Rotate or Select and Scale are selected, the Snap Toggle button is disabled and rotation and scaling is performed about the pivot point of the object.

The mouse snaps absolutely to the active snap types. However, relative snapping is available, as well. As a default, when you turn on the Snap Toggle button, only the Grid Points snap type is active. If you perform a Move operation, the cursor will snap to the grid, but you can select and pick up an object that’s not aligned to the grid. When you move the object and snap it to grid points, the object’s original position relative to the grid is maintained as an offset to each grid point, providing relative snapping.

To move the same object in an absolute fashion, add the Vertex snap type. Then, when you select the object to move, you select one of its vertices, and snap that vertex to any grid point, resulting in an absolute snap.

You can also achieve variations on relative snaps by turning on the Lock Selection Set button in the status line.

The various snap types are plug-ins, offering a wide variety of snap types, and are available from a modeless dialog that lets you activate different snap types as you work.

Reference

This is a flyout button that provides three modes:

2D Snap: The cursor snaps only to the active construction grid, including any geometry on the plane of that grid. The Z axis, or vertical dimension, is ignored.

2.5D Snap: The cursor snaps only to the active grid, but it will snap to the vertices or edges of the projection of an object.

Suppose you create a grid object and make it active. You position the grid object so you can see through the grid to a cube further off in 3D space. Now, with 2.5D set, you can snap a line from vertex to vertex on the distant cube, but the line is drawn on the active grid. The effect is like holding up a sheet of glass and drawing the outline of a distant object on it.

3D Snap: This is the default. The cursor snaps directly to any geometry in 3D space. 3D snapping lets you create and move geometry in all dimensions, ignoring the construction plane.

Right-clicking this button displays the Snap Settings panel so you can quickly change snap values.


Angle Snap

Angle snap determines the incremental rotation for a number of features in 3D Studio MAX, including the standard Rotate transform. As you rotate an object (or group of objects), the object moves around a given axis in the increment you set.

Reference

Angle snap also affects Pan/Orbit camera controls, FOV and Roll camera settings, and Hotspot/Falloff spotlight angles.

The angle increment is set in the Grid and Snap Settings dialog. Right-click the Angle Snap button to display the Grid and Snaps Settings dialog box. The default is 5 degrees.

How To

To turn angle snap on

  • Click the Angle Snap button on the prompt line.

When turned on, angle snap affects all rotational transforms.

When you move an object with snap set, a pair of buttons in the status line determine the kind of snapped move you can make.


Percent Snap

Increments scaling of objects by the specified percentage.

Reference

The snap percent increment is set in the Grid and Snap Settings dialog. The default is 10 degrees. Right-click the Percent Snap button to display the Grid and Snap Settings dialog box.

This is a general-purpose snap system that applies to any operation involving a percentage, such as scaling or squashing.


Spinner Snap

Sets the single-click increment/decrement value for all of the spinners in the system.

The amounts for Spinner Snap are controlled by settings in the General panel of the Preferences dialog. The default is 1.

How To

To set and toggle spinner snap

  1. Do one of the following:
    • Choose File/Preferences and click the General tab on the Preference Settings dialog.
    • Right-click the Spinner Snap button in the status line.

    Either method brings up the General panel. The two controls for spinner snap are in the Interaction area of this panel.

  2. Set a value in the Spinner Snap field.
  3. Select Use Spinner Snap.

    4. When you exit the dialog, the Spinner Snap button is turned on.

  4. As you work, use the Spinner Snap button to toggle the alternate setting.


Time Tag

Time tags are text labels that let you easily jump to a spot by selecting its tag name. The tags can be locked to a specific frame, relative to the scale of the animation, or relative to other tags.

The Time Tag slot is directly to the right of the Prompt Line.

Reference

Left-click or right-click the Time Tag slot to display a menu with the following items:

Add Tag: Displays a dialog that lets you define a tag name for the current spot in time.

Edit Tag: Displays a dialog that lets you rename, delete, or edit any defined tag.

The remainder of the menu displays frame numbers and their tag names. Choose a tag name to jump to the spot in time defined by the tag.


Add Time Tag

Displays a dialog that lets you define a tag name for the current spot in time.

Reference

Tag Time: Displays the current frame, to which the tag will be assigned.

Tag Name: Enter the name of the tag. You can create a long tag name in this field, but the tag slot will display only 15 characters.

Lock Time: Locks the tag to the current frame, regardless of subsequent scaling of time.

For example, with Lock Time off, if you have a tag named Forty at frame 40, and you scale time up 200 percent, the Forty tag will be at frame 80. If Lock Time is on, the Forty tag remains at frame 40.

Relative To: Lets you assign another tag to which the current tag will maintain a relative offset.

For example, if you have a tag at frame 10 called First and you create a second tag at frame 30 called Second, if you move the position of First to frame 25, Second will move to frame 45 to maintain the 20-frame offset between the two tags.

This is a one-way offset. If you changed the time position of the second tag in the example, the first tag is not affected. Circular dependencies are not allowed: you can’t have First relative to Second and Second relative to First.

How To

To use tags:

  1. Move to the spot in time where you want to add a tag.
  2. Click the tag slot and choose Add Tag from the menu.
  3. In the Add Time Tag dialog, enter the name of the tag. Choose whether to lock it to time and whether to make it relative to another tag, and click OK.

    4. The name of the tag appears in the tag slot, and will reappear whenever you go to that spot in time.

    To jump to a defined tag, click the Time Tag slot and choose the tag name from the list.

    To rename, delete, or change the properties of a tag, click the Time Tag slot and choose Edit Tag.


Edit Time Tag

Displays a dialog that lets you rename, delete, or otherwise alter the properties of any of the defined tags.

Reference

All of the current tags, along with their associate frame numbers, appear in the window at the top of the Edit Time dialog. Select the tag to edit, then adjust the controls below the window.

Tag Name: Use this field to rename the selected tag. You can create a long tag name in this field, but the tag slot will display only 15 characters.

Time: Lets you change the time at which the tag is assigned.

Lock Time: Locks the tag to the current frame, regardless of subsequent scaling of time. For example, with Lock Time off, if you have a tag named Forty at frame 40, and you scale time up 200 percent, the Forty tag will be at frame 80. If Lock Time is on, the Forty tag remains at frame 40.

Relative To: Lets you assign another tag to which the current tag will maintain a relative offset. For example, if you have a tag at frame 10 called First and you create a second tag at frame 30 called Second, if you move the position of First to frame 25, Second will be moved to frame 45 to maintain the 20-frame offset between the two tags.

This is a one-way offset. If you changed the time position of the second tag in the previous example, the first tag is not affected. In addition, circular dependencies are not allowed: you can’t have First relative to Second and Second relative to First.

Delete Tag: Deletes the selected tag.


Viewport Controls

These buttons control the display of the viewports.

Some of the buttons change for camera and spotlight viewports. The Field of View button changes for Perspective viewports.

The state of the navigation-button flyouts for all viewport types is saved in the 3dsmax.ini file.

Viewport Controls:

Animate

Go to Start

Previous Frame

Play/Stop

Next Frame

Go to End

Current Frame (and Goto Frame)

Key Mode

Time Configuration

Zoom

Zoom All

Zoom Extents, Zoom Extents Selected

Zoom Extents All, Zoom Extents All Selected

Region Zoom

Pan

Arc Rotate/Arc Rotate on Selection

Full-Screen Toggle

Camera Viewport Controls

Spotlight Viewport Controls


Zoom

Adjusts view magnification only in the viewport where you drag.

Reference

By default, this button zooms in and out of the center of the viewport.

How To

To zoom a view

  1. Click Zoom or Zoom All.
  2. Drag in a viewport to change magnification:
    • Drag up to increase magnification.
    • Drag down to decrease magnification.

    The default zoom is centered on the viewport. You can set zoom to center on the cursor.


Zoom All

Adjusts view magnification in all non-camera viewports.

Reference

By default, this button zooms in and out of the center of the viewports.

Hold down the CTRL key while dragging to inhibit zooming in Perspective viewports.

How To

To zoom a view

  1. Click Zoom or Zoom All.
  2. Drag in a viewport to change magnification in all viewports:
    • Drag up to increase magnification.
    • Drag down to decrease magnification.

    The default zoom is centered on the viewport. You can set zoom to center on the cursor.


Zoom Extents, Zoom Extents Selected

Centers and magnifies the view in the active viewport to display all visible or selected objects.

Reference

This flyout provides two functions:

Zoom Extents: Centers and magnifies the views in the active viewport so that all the visible objects in the scene are shown.

Zoom Extents Selected: Centers and magnifies the view in the active viewport so that just the selected objects in the scene are shown. If no objects are selected, the effect is the same as a normal Zoom Extents.

How To

To use zoom extents

  1. Activate the viewport that you want to zoom to extents.
  2. Click one of the four Zoom Extents buttons.


Zoom Extents All, Zoom Extents All Selected

Centers and magnifies the view in all non-camera viewports to display all visible or selected objects.

Reference

This flyout provides two functions:

Zoom Extents All: Centers and magnifies the views in all non-camera viewports so that all the visible objects in the scene are shown.

Zoom Extents All Selected: Centers and magnifies the view in all non-camera/spotlight viewports so that the selected objects in the scene are shown. If no objects are selected, the effect is the same as a normal Zoom Extents.

How To

To use zoom extents

  1. Activate the viewport that you want to zoom to extents.
  2. Click one of the four Zoom Extents buttons.


Region Zoom

Zooms a rectangular region.

Reference

Use Zoom Region to drag a rectangular region within the active viewport and magnify that region to fill the viewport. Zoom Region is available only when the active viewport is an Orthographic or User-Axonometric view.

Zoom Region stays active until you right-click or select another command.

How To

To zoom a region

  1. Click Zoom Region or press CTRL+W.
  2. Drag a rectangular region in any viewport displaying a non-perspective view.

    3. When you release, the region is magnified to fill the viewport.

To perform a Zoom Region in a Perspective view.

  1. To convert the Perspective view to a User view, right-click the viewport label, then choose User from the menu.
  2. Use Zoom Region in the User view.
  3. Convert the view back to a Perspective view.


Pan

Moves your view parallel to the current viewport plane.

Reference

Pan is modal (it stays active until you right-click or select another command).

To constrain panning of any viewport to a single axis, hold down the SHIFT key. The pan is constrained to the axis you first move while the SHIFT key is down.

To accelerate panning, hold down the CTRL key before panning.

How To

To pan a non-camera viewport

  1. Click Pan or press CTRL+P.
  2. Point to a viewport and drag in the direction you want to move.

To constrain Pan and Orbit to be vertical or horizontal

  • Hold down CTRL as you drag in the viewport.

The initial direction of the drag sets the constraint. If you drag vertically at first, the pan or orbit is constrained to be vertical; if you drag horizontally at first, the constraint is horizontal.

The Zoom Extents All flyout and the Full-Screen toggles remain visible. These controls aren't specific to camera views. Clicking Zoom Extents All affects other kinds of viewports but does not affect camera viewports.


Arc Rotate/Arc Rotate on Selection

Use Arc Rotate to rotate your viewpoint around your view.

Arc Rotate is modal and remains active until you right-click or choose another command.

You can constrain the rotation to a single axis by pressing SHIFT before beginning the rotation. The rotation is constrained to the axis you begin rotating about.

Reference

Arc Rotate: Uses the view center as the center of rotation. If objects are near the edges of the viewport, they may rotate out of view.

Arc Rotate Selected: Uses the center of the current selection as the center of rotation. The selected objects remain at the same position in the viewport while the view rotates around their center.

Clicking either of the View Rotate buttons displays the view rotation trackball (a circle with handles placed at the quadrant points). Dragging the mouse on and around the trackball produces different types of view rotations. The cursor changes to indicate what type of rotation you are about to perform.

Drag inside the trackball to rotate the view freely about the viewplane. If your cursor crosses outside the trackball during dragging, you convert to spinning rotation. When the cursor crosses back into the trackball you revert to free rotation.

Drag outside the trackball to rotate the view about the depth axis that is perpendicular to the screen.

How To

To rotate a view with keyboard shortcuts

  1. Press CTRL+R to activate Arc Rotate mode.
  2. Press the following keys to rotate the view.
    • LEFT ARROW and RIGHT ARROW rotate the view horizontally.
    • UP ARROW and DOWN ARROW rotate the view vertically.
    • SHIFT+LEFT ARROW and SHIFT+RIGHT ARROW roll the view.


Full-Screen Toggle

Toggles the active viewport between its normal size and full-screen size.

Reference

Click this button to make the active viewport fill the whole viewport area. If the viewport is already filling the viewport area, click this button to reduce it to its normal size.

Keyboard shortcut: W


Camera Viewport Controls

A camera viewport shows the view from the camera, looking at its target. Camera viewport controls include:

  • Dolly Camera, Target, or Both
  • Perspective
  • Roll Camera
  • Zoom Extents All, Zoom Extents All Selected
  • Field of View
  • Truck Camera
  • Orbit/Pan Camera
  • Full Screen Toggle

Reference

Keyboard shortcut to activate a camera viewport: c

If you press "c" to activate a camera view and you have more than one camera in the scene (and no camera is selected), choose a camera from the Select Camera dialog that appears.

You can also activate camera or spotlight views from the right-click viewport menu (under Views). If there are more than ten cameras or spotlights listed, the last entry in the list is "More Cameras" or "More Lights." Choose this to display the Choose a View dialog, which shows the complete list.


Dolly Camera, Target, or Both

Moves the camera along its line of sight.

Reference

The buttons on this flyout replace the Zoom button when a camera viewport is active.

A free camera moves along its depth axis in the direction its lens is pointing. Unlike a target camera, its target distance remains fixed, no matter how far you dolly.

Neither free cameras nor free spots have targets. When you activate one of their viewports, the navigation button appears as a flyout, but only Dolly Camera or Dolly Light is available. If you reactivate a viewport belonging to a targeted object, the three choices are again provided.

Dolly Camera: Choose this option and drag the mouse to move only the camera to and from its target. If you go past the target, the camera flips 180 degrees and moves away from its target.

Dolly Target: Choose this option and drag the mouse to move only the target to and from the camera. This causes no visual change in the camera viewport, unless you dolly the target to where it passes through the camera to the other side, at which point the camera view is reversed. However, changing the relative position of the target to the camera affects other adjustments, such as Orbit Camera, which uses the target as its rotational pivot.

Dolly Camera + Target: Choose this option and drag the mouse to move both the target and the camera to and from the camera.

How To

To dolly a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Dolly Camera/Spotlight.
  3. Drag to move the camera or spotlight.
    • Drag up to move the camera or spotlight forward along its line of sight.
    • Drag down to move the camera or spotlight backward along its line of sight.


Perspective

Performs a combination of FOV and Dolly for either target-cameras or free cameras.

Reference

This button replaces the Zoom All button when a camera viewport is active. It increases the amount of perspective flare, while maintaining the composition of the scene.

Hold down the CTRL key to magnify the effect of the mouse on perspective adjustment.

A target camera can pass through its target object while you are using Perspective. When this happens the FOV reaches its maximum angle of 180 degrees at the target location and cursor motion is reversed until you release the drag.

A free camera continues moving along an infinite path but uses an implied target position to control the FOV change rate. This implied target is defined as a point specified by the Target Distance field in the free camera Parameters rollout.

How To

To change perspective

  1. Activate a Camera viewport.
  2. Click Perspective.
  3. Drag to change FOV and dolly simultaneously.
    • Drag up to move the camera closer to its target, widen the FOV, and increase perspective flare.
    • Drag down to move the camera away from its target, narrow the FOV, and decrease perspective flare.


Roll Camera

Rotates the camera about the horizontal plane.

Reference

This button replaces the Zoom Extents button when a camera viewport is active.

Drag the mouse horizontally to roll a target camera or rotate a free camera about its local Z axis.

How To

To roll a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Roll Camera/Spotlight.
  3. Drag horizontally to roll the view.


Truck Camera

Moves the camera (and its target) parallel to the view plane.

Reference

This button replaces the Pan button when a camera viewport is active.

For a target camera, dragging the mouse moves the locked camera and target parallel to the camera view. For a free camera, dragging the mouse moves the camera along its X/Y axes.

To constrain trucking of any viewport to a single axis, hold down the SHIFT key. The truck is constrained to the first axis you move while the SHIFT key is down.

To accelerate trucking, hold down the CTRL key.

How To

To truck a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Truck Camera/Spotlight.
  3. Drag to move the camera or spotlight and its target.

    4. The camera or spotlight and its target move parallel to the view plane, which is perpendicular to the camera's line of sight.


Orbit/Pan Camera

Rotates a camera about the target (Orbit) or rotates the target about the camera (Pan).

Reference

This button replaces the Arc Rotate button when a camera viewport is active.

You can constrain the rotation to a single axis by first pressing SHIFT before beginning the rotation. The rotation is constrained to the axis you begin rotating about.

To accelerate panning, hold down the CTRL key before you pan.

Orbit Camera: Rotates the camera about its target. Free cameras use the invisible target, set to the target distance specified in the camera Parameters rollout.

Pan Camera: For a target camera, rotates the target about the camera. For a free camera, rotates the camera about its local axes.

How To

To pan a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Pan Camera/Spotlight.
  3. Drag to rotate the view about the camera or spotlight.
    • Dragging rotates the view freely using the world X and Y axes.
    • Press CTRL and drag horizontally to lock view rotation about the world Y axis. This produces a horizontal pan.
    • Press CTRL and drag vertically to lock rotation about the world X axis. This produces a vertical pan.

To orbit a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Orbit Camera/Spotlight.
  3. Drag to rotate the view around the target.
    • Dragging rotates the view freely using the world X and Y axes.
    • Press CTRL and drag horizontally to lock view rotation about the world Y axis. This produces a horizontal orbit.
    • Press CTRL and drag vertically to lock rotation about the world X axis. This produces a vertical orbit.


Spotlight Viewport Controls

A spotlight viewport shows the view from the spotlight, looking at its target.

Spotlight viewport controls include:

Spotlight Hotspot

Spotlight Falloff

Dolly Spotlight

Orbit/Pan Spotlight

Roll Spotlight

Truck Spotlight

How To

To activate a spotlight, do one of the following

  • Press the keyboard shortcut $.

If you have more than one spotlight in the scene (and no spotlight is selected), 3D StudioMAX displays the Select Spotlight dialog for you to select the spotlight you want.

  • Right-click the Viewport label for the viewport containing the spotlight you want. Click Views and select a spotlight.

If there are more than ten cameras or spotlights listed, the last entry in the list is "More Cameras" or "More Lights." Choose this to display the Choose a View dialog, which shows the complete list.


Spotlight Hotspot

Adjusts the angle of a spotlight's hotspot.

Reference

This button replaces the Zoom All button when a spotlight viewport is active.

Click this button, then move the mouse in the spotlight viewport to make the cone of the hotspot narrower or wider (the hotspot cone is shown in blue, the falloff cone is in gray).

Hold down the CTRL key while moving the mouse to lock the initial angle separation of the hotspot and falloff cones.

You can’t adjust the hotspot larger than the falloff, because that would change the falloff value. Likewise, when you reduce the falloff, it stops at the hotspot size (in both cases, separated by the Angle Separation, specified in the Preferences/Rendering page).

To override the separation of the hotspot and falloff parameters and cause the parameters to affect each other, hold down the SHIFT key.

How To

To change a spotlight's hotspot

  1. Activate a Spotlight viewport.
  2. Click Spotlight Hotspot.
  3. Drag in the Spotlight view to change the hotspot angle:
    • Dragging down widens (increases) the hotspot angle and illuminates more of the scene.

    The hotspot grows inside the falloff as its angle increases. If you increase the hotspot angle far enough, the falloff angle also increases to stay 2.0 degrees greater than the hotspot angle.

    • Dragging up narrows (decreases) the hotspot angle and illuminates less of the scene.

    The hotspot shrinks inside the falloff as its angle decreases.


Spotlight Falloff

Adjusts the angle of a spotlight's falloff.

Reference

This button replaces the Region Zoom button when a spotlight viewport is active.

Click this button, then move the mouse in the spotlight viewport to make the cone of the falloff narrower or wider (the falloff cone is shown in gray, the hotspot is in blue).

Hold down the CTRL key while moving the mouse to lock the initial angle separation of the hotspot and falloff cones.

You can’t adjust the hotspot larger than the falloff, because that would change the falloff value. Likewise, when you reduce the falloff, it stops at the hotspot size (in both cases, separated by the Angle Separation, specified in the Preferences/Rendering page).

To override the separation of the hotspot and falloff parameters and cause the parameters to affect each other, hold down the SHIFT key.

How To

To change spotlight falloff

  1. Activate a Spotlight viewport.
  2. Click Spotlight Falloff.
  3. Drag in the Spotlight view to change the falloff angle:
    • Dragging down widens (increases) the falloff angle and illuminates more of the scene.

    The inner hotspot appears to shrink as the difference between the hotspot angle and the falloff angle increases.

    • Dragging up narrows (decreases) the falloff angle and illuminates less of the scene.


Dolly Spotlight

Moves the spotlight along its line of sight.

Reference

The buttons on this flyout replace the Zoom button when a spotlight viewport is active.

Neither free cameras nor free spots have targets. When you activate one of their viewports, the navigation button appears as a flyout, but only Dolly Camera or Dolly Spotlight is available. If you reactivate a viewport belonging to a targeted object, the three choices are again provided.

Dolly Spotlight: Choose this option and drag the mouse to move only the spotlight to and from its target. If you go past the target, the spotlight flips 180 degrees and moves away from its target.

Dolly Target: Choose this option and drag the mouse to move only the target to and from the spotlight.

Dolly Camera + Target: Choose this option and drag the mouse to move both the target and the spotlight to and from the spotlight.

When you dolly a spotlight, the light source moves closer and away from its target. Dollying a spotlight closer to its target causes the area illuminated at the target to shrink. Dollying a spotlight away from its target causes the area illuminated at the target to expand.

How To

To dolly a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Dolly Camera/Spotlight.
  3. Drag to move the camera or spotlight.
    • Drag up to move the camera or spotlight forward along its line of sight.
    • Drag down to move the camera or spotlight backward along its line of sight.


Orbit/Pan Spotlight

Rotates a spotlight about the target (Orbit) or rotates the target about the spotlight (Pan).

Reference

This button replaces the Arc Rotate button when a spotlight viewport is active.

This button is a flyout that contains two functions:

Orbit Spotlight: Rotates the spotlight about its target. Free spotlights use the invisible target, set to the target distance specified in the spotlight Parameters rollout.

Pan Spotlight: For a target spotlight, rotates the target about the spotlight. For a free spotlight, rotates the spotlight about its local axes.

To constrain panning or orbiting to a single axis, hold down the SHIFT key. The pan or orbit is constrained to the axis you first move while the SHIFT key is down.

To accelerate panning or orbiting, hold down the CTRL key before you pan or orbit.

How To

To pan a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Pan Camera/Spotlight.
  3. Drag to rotate the view about the camera or spotlight.
    • Dragging rotates the view freely using the world X and Y axes.
    • Press CTRL and drag horizontally to lock view rotation about the world Y axis. This produces a horizontal pan.
    • Press CTRL and drag vertically to lock rotation about the world X axis. This produces a vertical pan.

To orbit a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Orbit Camera/Spotlight.
  3. Drag to rotate the view around the target.
    • Dragging rotates the view freely using the world X and Y axes.
    • Press CTRL and drag horizontally to lock view rotation about the world Y axis. This produces a horizontal orbit.
    • Press CTRL and drag vertically to lock rotation about the world X axis. This produces a vertical orbit.


Roll Spotlight

Rotates the spotlight about its own line of sight (the light’s local Z axis).

Reference

Although Roll does change the spotlight view, it affects the spotlight object only if the spotlight casts a rectangular beam or is a projector.

This button replaces the Zoom Extents button when a spotlight viewport is active.

Drag the mouse horizontally to roll a target spotlight or rotate a free spotlight about its local Z axis.

How To

To roll a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Roll Camera/Spotlight.
  3. Drag horizontally to roll the view.


Truck Spotlight

Moves the spotlight (and its target) parallel to the view plane.

This button replaces the Pan button when a spotlight viewport is active.

For a target spotlight, dragging the mouse moves the locked spotlight and target parallel to the spotlight view. For a free spotlight, dragging the mouse moves the spotlight along its X/Y axes.

To constrain trucking of any viewport to a single axis, hold down the SHIFT key. The truck is constrained to the first axis you move while the SHIFT key is down.

To accelerate trucking, hold down the CTRL key.

How To

To truck a camera or spotlight

  1. Activate a Camera or Spotlight viewport.
  2. Click Truck Camera/Spotlight.
  3. Drag to move the camera or spotlight and its target.

    4. The camera or spotlight and its target move parallel to the view plane, which is perpendicular to the camera's line of sight.


Animate

Turns keyframing mode on or off.

Reference

All animatable transformations and modifications are keyframed while the Animate button is on. When it's off, modifications are applied to frame 0.

Keyboard shortcut to toggle the Animate button: n

How To

To begin animating an object

  1. Turn on the Animate button.
  2. Drag the time slider to a time other than 0.
  3. Do one of the following:
    • Transform an object.
    • Change an animatable parameter.

    For example, if you have a cylinder that has not been animated yet, it has no keys. If you turn on the Animate button, and on frame 20 you rotate the cylinder 90 degrees about its Y axis, Rotate keys are created at frames 0 and 20. The key at frame 0 stores the original orientation of the cylinder, while the key at frame 20 stores the animated rotation of 90 degrees. When you play the animation, the cylinder rotates 90 degrees about its Y axis over 20 frames.

To animate an object between three points

  1. Turn on the Animate button.

    2. The Animate button and the highlight border around the active viewport both turn red.

  2. Drag the time slider to frame 25, for example.
  3. Move the object from point A to point B.

    4. A Move key is created at frames 0 and 25. The establishing key at frame 0 describes the object's position at point A. The key at frame 25 describes the object's position at frame 25.

  4. Drag the time slider to frame 50, for example.
  5. Move the object from point B to point C.

    6. A Move key is created at frame 50 that describes the object's position at point C.

  6. Click the playback button.
  7. The object moves from point A to point B over frames 0 to 25, then proceeds to point C over frames 26 to 50.
  8. The playback button has turned into a stop button. Click this to stop playback.

To animate a deformation curve

  1. Turn on the Animate button.
  2. Set a current frame with the Time Slider.
  3. Select one or more control points.
  4. Use the Move Control Point or Scale Control Point buttons to transform the control points.

To animate the ring array

  1. Turn on the Animate button.
  2. Move to a non-zero frame.
  3. Adjust ring array parameters.

    4. You can't animate the number of boxes in the ring.

  4. Repeat steps 2 and 3 for other frames.

To animate an IK structure interactively

  1. Click IK on the toolbar to activate IK transform mode.
  2. Click Animate to activate animation.
  3. Select and move objects in the IK structure on different frames.

    4. The interactive method of IK animation is best suited for expressive character animation or animations where the exact placement of objects is restricted to a few keyframes.


Go to Start

Moves the Time Slider to the first frame of the active time segment.

Reference

Keyboard shortcut: HOME


Previous Frame

Moves the Time Slider back one frame (or one keyframe if the Key Mode button is on).


Play/Stop

Plays the animation in either the current viewport or all viewports, depending on the settings in the Time Configuration dialog.

Reference

This button is a flyout that contains two options:

Play: Click the button to play the animation. Click again to stop playing an animation.

Play Selected: Click the button to play the animation for the selected object(s) only. Click the button again to stop playing an animation.

The animation plays in the active viewport. If you click another viewport to make it active, the animation continues playing in that viewport.

To stop the animation, right-click the active viewport or press ESC.


Next Frame

Moves the Time Slider forward one frame (or one keyframe if the Key Mode button is on).


Go to End

Moves the Time Slider to the last frame of the active time segment.

Reference

Keyboard shortcut: END


Current Frame (and Goto Frame)

Displays the current frame number and lets you enter a frame number to go to.

Reference

Type the frame number and press ENTER to go to the specified frame.


Key Mode

Moves the Time Slider to the next or previous transform keyframe, based on the settings in the Time Configuration dialog.

Reference

When the Key Mode button is active, each click of the Forward Frame button moves to the next frame containing a transform key. Each click of the Back Frame button moves to the previous frame containing a transform key.

The Time Configuration dialog contains settings that let you specify which objects and which transforms are considered when in Key Mode.

How To

To configure Key Mode

  1. Click Time Configuration.
  2. Adjust the controls in the Key Steps area.


Time Configuration

Provides access to settings for animation creation and playback.

Reference

You can also display this dialog by right-clicking any of the time control buttons to the right of the Animate button.

Frame Rate

These four option buttons, labeled NTSC, Film, PAL, and Custom let you set the frame rate in frames-per-second (FPS). The first three buttons force the standard FPS for that choice. The Custom button lets you specify your own FPS by adjusting the spinner.

Time Display

Specifies the method by which time will be displayed in the Time Slider and throughout the program (in frames, in SMPTE, in frames and ticks, or in minutes, seconds, and ticks). For example, if the Time Slider is at frame 35, and the Frame Rate is set to NTSC, the Time Slider would display the following numbers for the different Time Display settings:

  • Frames: 35
  • SMPTE: 0:1:5
  • FRAME: TICKS: 35:0
  • MM:SS: TICKS: 0:1:800

Playback

Real Time: Causes viewport playback to skip frames to keep up with the current Frame Rate setting. There are 5 playback speeds. 1x is normal speed, 1/2x is half speed and so on. The speed settings affect only the playback in the viewports. These speed settings can also be used with the Motion Capture utility.

When Real Time is not selected, all frames are displayed during viewport playback.

Active Viewport Only: Causes playback to occur only in the active viewport. When clear, all viewports display animation.

Animation

Start Time/End Time: Sets the active time segment displayed in the Time Slider. Choose any time segment before or after frame 0. For example, you can set an active time segment from -50 to 250.

Length: Displays the number of frames in the active time segment. If you make this greater than the total frames in the active segment, the End Time field increases accordingly.

Current Time: Specifies the current frame for the time slider. As you adjust this, the time slider moves accordingly.

Re-scale Time: Stretches or shrinks the animation for the active time segment to fit into the new time segment you specify. Relocates the position of all keys in all tracks. As a result, the animation plays over a greater or lesser number of frames, making it faster or slower.

Key Steps

Lets you configure the method used when you turn on Key Mode.

Selected Objects Only: Considers only the transforms of the selected objects when you use Key Steps mode. The check box is set by default. If you clear it, the transforms of all (unhidden) objects in the scene are considered.

Use Current Transform: Disables Position, Rotation, and Scale and uses the current transform in Key Mode. For example, if the Rotate button is selected in the toolbar, you stop at each rotation key. If none of the three transform buttons are on, Key Mode considers all transforms.

Position, Rotation, Scale: Specifies which transforms are considered by Key Mode. Clear Use Current Transform to make the Position, Rotation, and Scale check boxes available.

How To

To display the Time Configuration dialog

  • Click Time Configuration near the bottom-right of the 3D Studio MAX window.

To set the active time segment

  1. Click Time Configuration.
  2. Set Start Time to specify the beginning of your active time segment.
  3. Do one of the following:
    • Set End Time to specify the end of your active time segment.
    • Set Length to specify the amount of time in the active time segment and automatically set the correct End Time.

    You can enter positive or negative values in any spinner, but you must use the same format used by the time display.

    You can change the active time segment without affecting the keys you've created. For example, if you have keys scattered over a range of 1000 frames, you can narrow your active time segment to work on only frames 150-300.

    Changing the active time segment has the following effects:

    • Restricts the range of time you can use with the time slider.
    • Restricts the range of time displayed when using the animation playback buttons.

    The default setting for the active time segment runs from frames 0 to 100, but you can set it to any range.

To move to an exact time using the Current Frame field

  • Enter a time value in the Current Frame field, and press ENTER.

To move to an exact time using the Time Configuration dialog

  1. Click Time Configuration.
  2. Enter a time value in the Current Time field.

To configure Key Mode

  1. Click Time Configuration.
  2. Adjust the controls in the Key Steps area.

To set the frame rate of your animation

  1. Click Time Configuration.
  2. In the Frame Rate area of the dialog do one of the following:
    • Choose one of the standard frame rates.
    • Choose Custom and specify a frame rate in the FPS field.

To configure viewport playback

  1. Click Time Configuration.
  2. In the Playback area, select or clear the Real Time and Active Viewport Only boxes.


Viewports

When you start 3D Studio MAX, the main screen contains four equal-sized viewports. The one in the lower right is a perspective view, and the others correspond to the three views used in traditional drafting: top, front, left. By default, the perspective view is Shaded + Highlight. You can choose different views to display from the right-click Viewport menu.

Reference

One viewport, marked with a white border, is always active This is where commands and other actions take effect. Only one viewport at a time can be active. Other viewports are set for observation only; unless disabled, they simultaneously track actions taken in the active viewport.

In general, a viewport becomes active as you work in it. You can move an object in one viewport, then drag the same object in another viewport to continue the move.

When you are not in sub-object mode, and the cursor pauses over an object in the viewports, a tooltip appears with the name of that object. Tooltips can be turned on or off on the General page of the Preferences Settings dialog.

You can control many aspects of a viewport with the Right-Click Viewport Menu .

How To

To make a viewport active, do either of the following:

  • Click in any viewport. If you click on an object in the viewport, it is selected. If you click on a space where there are no objects, any selected objects are deselected.
  • Right-click in any viewport. A right-click activates a viewport without changing the selection state of objects.


Field of View

Adjusts the amount of the scene that is visible and the amount of perspective flare.

Reference

Field of View defines the width of your view as an angle with its apex at your eyepoint and the ends at the sides fo the view. The effect of changing FOV is similar to changing the lens on a camera. As the FOV gets larger, you see more of your scene and the perspective becomes distorted, similar to using a wide-angle lens. As the FOV gets smaller, you see less of your scene and the perspective flattens, similar to using a telephoto lens.

Although this button appears to have an effect similar to a zoom, you're actually changing the perspective, resulting in increased or decreased distortion in the viewport. In a camera viewport, Field of View controls the width of the area a camera views and represents the arc of the camera’s horizon in degrees. You can adjust the Field of View value for a camera in its creation parameters, accessible through the command panel.

The Field of View (FOV) button appears in place of the Region Zoom button when a Perspective view is active. If you want to zoom in close on an area of the Perspective view, switch the viewport to User view first (press u). Use the Region Zoom to zoom in, then switch back to Perspective view (press p).

FOV is modal and stays active until you right-click or select another command.

How To

To adjust the Field of View

  1. Activate a Camera viewport.
  2. Click Field of View.
  3. Drag in the viewport to adjust the FOV angle.
    • Dragging down widens (increases) the FOV angle, reduces lens length, displays more of your scene, and exaggerates perspective.
    • Dragging up narrows (decreases) the FOV angle, increases lens length, displays less of your scene, and flattens perspective.

To view a narrower area, do either of the following

  • Change the FOV parameter to decrease the camera's field of view.
  • Click a button with a longer focal length. Use the Lens parameter to give the focal length a value other than the preset, stock values on the buttons.

In a camera viewport, the FOV button lets you adjust the field of view interactively.

The camera viewport Perspective button also changes the FOV in conjunction with dollying the camera.

Note: Only the FOV value is saved with the camera. The focal length value is another way to express and select the FOV.

To type an FOV value in a Perspective view

  1. Activate a viewport with a Perspective view.
  2. Right-click Field of View to display the Viewport Configuration dialog.
  3. Click the Rendering Methods tab.
  4. Enter an angle in the FOV field.


Right-Click Viewport Menu

Displays commands to change what is shown in the active viewport.

Reference

When you right-click the label of any viewport, you'll see a menu, where you can select cameras, spotlights, directional lights, targets, or grids. For example, right-click the Camera01 label of a viewport and you’ll see two items: Select Camera and Select Camera Target. Select either item to select the camera or target representing that view.

A grid object must be active before you can select it from its viewport.

Shape viewports track the selected shape, so this doesn’t work for them.

The menu also contains the following commands:

Smooth + Highlight: Turns on this shading mode. Allows you to see the smoothness and lighting of your objects. You can also display maps on the surface of objects (see the Show Map in Viewport topic under the Material Editor).

Wireframe: Turns on this shading mode (default).

Other: Displays a cascading menu of the remaining shading modes.

Edged Faces: Available only when the current viewport is in a shaded mode. When Edged Faces is on in these modes, the wireframe edges of the objects appear along with the shaded surfaces. This is helpful for when you want to edit meshes in a shaded display.

Edges are displayed using the object wireframe color, while surfaces use material colors (if assigned). This lets you create contrasting colors between the shaded surfaces and the wireframe edges. You can switch these around in the Display Color rollout in the Display branch.

Shaded viewports support self-illuminated materials and 32 lights.

Show Grid: Turns on and off grid display. Shortcut: SHIFT + G

Show Background: Turns on and off display of any background image (or animation). You specify the background image in the Viewport Background dialog (choose Background image from the Views menu).

Show Safe Frame: Turns on and off display of video safe frames. You define the safe frames in the Viewport Configuration dialog (see Configure below).

Texture Correction: Redraws the viewport using pixel-interpolation (perspective corrected), and it will stay that way until you force the viewport to redraw for any reason. This command is only available when the viewport is shaded and at least one object's map is displayed.

Disable View: Disables the active viewport. A disabled viewport behaves like any other viewport while it is active. However, when you change the scene in another viewport, the view in the disabled viewport does not change until you next activate it. Use this function to speed up screen redraws when you are working on complex geometry.

Views: Displays a secondary menu that allows you to choose another view to display in the viewport (Front, Top, Back, etc.).

Swap Layouts: Switches between two complete layouts. Layout A (the default) uses four viewports, and Layout B uses three viewports with Track View assigned to the wide viewport on top.

Undo: Undoes the last viewport change.

Redo: Cancels the last undo.

Configure: Displays the Viewport Configuration dialog, which contains many options for further control of the viewports (see the Viewport Configuration help topic for further information).

How To

To display Track View in any viewport

  1. Right-click any viewport label.
  2. Choose Views and then Track from the menu.

    3. Keyboard shortcut=E

    Advantages of displaying Track View in a viewport include:

    • It displays permanently in one place.
    • It doesn't overlap other parts of the 3D Studio MAX interface.
    • You can quickly switch between it and other viewport types.

To swap between viewport layouts

  1. Right-click a viewport label.
  2. Choose Swap Layouts from the menu.

    3. Keyboard shortcut=|

To change a viewport to Camera view

  1. Right-click a viewport label to access the Viewport Properties menu and then click Views.
  2. Choose one of the cameras in the Views list.

    3. This assigns the camera to the viewport and changes the label to the camera name.

    A camera viewport tracks the view through the perspective of that camera. As you move the camera (or target) in another viewport, you see the scene swing accordingly. If you alter the camera's field of view on the Modify command panel, you see the changes as they are applied.

To access the Layout panel, do one of the following

  • Choose Views/Viewport Configuration from the menu bar, then click the tab marked Layout.
  • Right-click a viewport label and choose Configure, then click the tab marked Layout.

To hide the home grid, do one of the following

  • Choose Views/Grids from the menu bar and clear Show Home Grid.
  • As a shortcut, right-click a viewport label and clear Show Grid on the Viewport Properties menu.

When either option is clear, the home grid disappears in the active viewport.

To assign Shape view to a viewport

  1. Right-click a viewport label.
  2. Choose Views/Shape from the menu.

To turn on Safe Frame display, do one of the following

  • Right-click a viewport label and then choose Show Safe Frame from the viewport properties popup menu.

Default keyboard shortcut: SHIFT+F

  • Choose Views/Viewport Configuration and use the Safe Frames panel in the dialog.

The check boxes for the three kinds of safe frame let you individually choose which to display. You can set options for safe frames in the Viewport Configuration dialog.


Material Editor (Toolbar)

Provides functions to create and edit materials and maps.

Sample Windows

Material Editor Tool Buttons

Type (Material/Map Browser)

Animating Materials

How To

To view the Material Editor:

  • Click the Material Editor button on the 3D Studio MAX toolbar.

The Material Editor dialog has sample windows for viewing previews of materials. When you first view the Material Editor, the material previews have default colors.


Sample Windows

Let you maintain and preview materials and maps. The sample windows show spheres by default. Each window previews a single material. You can change the material by using the Material Editor controls, and you can assign the material to objects in the scene. The easiest way to do this is to drag the material from the sample window to objects in viewports.

A sample window is "hot" when the material in the window is assigned to one or more surfaces in the scene. When you use the Material Editor to adjust a hot window, the material in the scene changes at the same time.

You can have the same material (with the same name) in more than one sample window, but only one window containing that material can be hot. You can have more than one hot sample window, as long as each has a different material.

If you drag-copy a material from a hot window to another window, the destination window is not hot. This is one way to work on a material in the Material Editor without directly affecting the scene. You can also "cool" a hot window by clicking the Make Material Copy button below the sample windows. This basically copies the material in the sample window on top of itself so that it's no longer used in the scene.

Note: Maps that use environment coordinates (Cylindrical Environment, Shrink-Wrap Environment, or Spherical Environment) are now displayed in the sample windows so you can get a better idea of what they look like. The method of doing this “fakes” the view vector to be the normal to the surface. This provides better visual feedback when you use sample spheres; don’t use sample cylinders or cubes for environment-mapped materials.

Reference

Dragging and Dropping Maps and Materials

You can drag and drop materials from sample windows to objects. You can also drag to and from map and material buttons. Specifically, you can drag from:

  • Sample windows
  • Browser lists (text or iconic)
  • The sample-sphere preview window in the Browser.
  • Material map buttons, including:
  • The buttons in the Maps rollout
  • The small shortcut map buttons on the Basic Parameters rollout
  • Any map buttons at any level
  • Submaterial buttons, such as those found in the Multi/Sub-Object material
  • A projector light map button
  • Environment Background map button
  • Fog Color and Opacity map buttons

And you can drag to:

  • Objects in viewports
  • The Type button in the Materials Editor (only from the Browser)
  • All of the items in the previous list, with this exception: you can drag to the Browser only when it displays the material library.

You can assign materials to objects in the scene by dragging a material button, sample window, or Browser listing into the viewport and over an object. When you release the mouse, the material is assigned. If you drag a material over two or more selected objects, an alert message asks if you want to assign the material to the object or to the selection. Choose the option you want, and click OK.

Note: The content dragged from a sample window is always the top level of the sample window, regardless of which level is currently displayed. Thus, if the sample slot contains a material, you can’t drag from the sample slot to a map button, even if you’re at the map level of the material.

When the Browser is set to browse from the Material Library, you can drag materials and maps from elsewhere into the Browser, and add them to the library this way. For example, you can drag a sample window into the Browser, or a projector map into the Browser.

You cannot drag and drop from the modal version of the Browser (when OK and Cancel buttons are present).

Note: Drag-and-drop distinguishes between material maps and bitmaps. A bitmap is an image file, such as a TGA or JPEG file. A material map can include bitmaps, but it can also be a parametric image such as Checkers or Noise. You can drag any map window or button to any other map window or button: including the sample windows. However, you can drag a bitmap from one button only to another button that specifies a bitmap file.

Sample Window Hot Material Indicators

The corners of a sample window indicate whether the material is a hot material assigned to the scene.

Left: "Hot" material assigned to currently selected object
Middle: "Hot" material -- assigned to scene but not to current object
Right: "Cool" material -- active but not assigned to scene

Specifically, these are the possibilities:

  • No triangle: The material is not used in the scene.
  • Outlined white triangle: The materials is hot. In other words, it’s instanced in the scene. Changes you make to the material in the sample window will change the material displayed in the scene.
  • Solid white triangle: The material is not only hot, but is assigned to the currently selected object.

Popup Menu

When you right-click the active sample window, a popup menu appears. For other sample windows, click or right-click once to select them, then right-click to use the popup.

The popup has these options:

Drag/Copy: Sets dragging a window to copy mode. When this item is checked, dragging a sample window copies the material from one sample window to another, or from the sample window to an object in the scene or a material button.

Drag/Rotate: Sets dragging a window to rotate mode. When this item is checked, dragging in the sample window rotates the sample object. This is an aid to previewing the material. Drag over the object itself to rotate the object about its X or Y axis; drag in the corners of the sample window to rotate the object about its Z axis. In addition, if you press SHIFT before dragging in the center, the rotation is constrained to the vertical or horizontal axis, depending on your initial drag direction.

If you have a 3-button mouse and are using Windows NT, the middle mouse button rotates the sample object while Drag/Copy mode is active. This doesn't work in Windows 95.

Reset Rotation: Resets the sample object to its default orientation.

Render Map – Renders the current map, creating a bitmap or an AVI file (if the map is animated). Only the current map level renders. That is, the rendering shows the image displayed when Show End Result is turned off.

If you’re at a material level instead of a map level, this menu item is disabled.

Options: Displays the Material Editor Options dialog. This is an alternative to clicking the Options button.

Magnify: Generates a magnified view of the current sample window. The magnified window appears in its own, floating (modeless) dialog. You can display up to 24 magnified widnows, but you can’t display the same sample window in more than one magnified window at a time. You can resize magnify windows. Clicking a magnify window activates the sample window, and vice versa.

Shortcut: Double-click a sample window to display the magnified window.

The magnify window’s title bar displays what is in the editable material name field. It varies depending on which level of the material is active.

You can turn off the Auto toggle to prevent the magnified window from updating automatically. This can save rendering time, especially when you have resized the manified window to make it larger. You can update the window manually by clicking Update.

Dragging a different sample window to the magnify window changes the contents of the magnify window.

3 X 2 Sample Windows: Specifies a 3 x 2 array of sample windows. (The default: 6 windows.)

5 X 3 Sample Windows: Specifies a 5 X 3 array of sample windows. (15 windows.)

6 X 4 Sample Windows: Specifies a 6 X 4 array of sample windows. (24 windows.)

Creating a Custom Sample Object

By default, the sample object in a sample window is a sphere. You can use the Sample Type flyout to change this to a cube or a cylinder. You can also create a custom sample object by creating a MAX scene that shows the object.

The scene you create should contain a single object that fits into an imaginary cube that is 100 units on each side. The object must be at the root level of the scene – it can’t be linked to other objects. If more than one object is in the scene, only the first object listed in the Track View hierarchy is used as the sample object.

If the object is of a type that doesn’t have a Generate Mapping Coords toggle, apply a UVW Map modifier to it.

After you have saved the single-object scene as a .max file, use the Material Editor Options dialog’s Custom Sample Object area to specify the file. When you specify the file, a new button appears at the right of the Sample Type flyout – this button, which shows an object with a question mark, displays the sample object file you chose.

If the sample object scene contains only the object, sample windows display it with the default sample window lighting. If the scene also contains a camera and lights, you can use the camera to specify the view, and the lights to light the object as you choose. For this to take effect, you must turn on the Load Camera and/or Lights toggle in the Custom Sample Object area.

How To

To use a sample window:

  • Click the sample window to make it active.

The active sample window is displayed with a white border around it.

The sample window shows a sample object shaded with a material. (By default, the sample object is a sphere.) The sample object is lit by a light source above it and slightly toward the viewer. For the sphere, the highlight is in the upper-left quadrant, the diffuse color shows most clearly above and to the left of the highlight, shading toward the ambient color at the sphere's lower right.

To change the preview shape:

  1. Make sure the sample slot of the material you want to view is active.
  2. Use the Sample Type flyout to choose the shape you want to view.

    3. The new shape appears in the sample slot, with the material mapped to it.

    The flyout gives you three options: sphere (the default), cylinder, or box.

To render the current mapping level:

  1. Move to the level of the map hierarchy that you want to render.
  2. Right-click in the sample window, and choose Render Map from the pop-up menu.

    3. The Render Map dialog appears.

  3. To render a single bitmap, choose Single. To render an animated map, specify the range of frames you want to render.
  4. In the Dimensions area, specify the pixel resolution of the map.
  5. Click the File button, and specify a path and filename for the file. Make sure Save to File is checked unless you only want to see the image in a virtual frame buffer.
  6. Click Render.

    7. A virtual frame buffer appears displaying the map. If Save to File is checked, the image is also saved to disk.

To set up a custom sample object:

  1. Create a scene with a single object, such as a teapot.

    2. The object should fit into an imaginary cube that’s 100 units on each side. Also, the object must be at the root level of the scene: it can’t be linked to other objects.

    If more than one object is in the scene, the Material Editor uses the first object listed in the Track View hierarchy.

  2. If the object does not have built-in mapping coordinates (via a Generate Mapping Coords toggle), then assign a UVW Map modifier to it to provide mapping coordinates.

    3. If the object has a Generate Mapping Coords toggle, turning it on is optional. The Material editor uses the default . If you want to use coordinates other than those built into the object, assign a UVW Map modifier and set up your own coordinates.

  3. Save the scene.
  4. In the Material Editor Options dialog, click the File Name button in the Custom Sample Object area, and select the .max file that contains your object.
  5. Activate the sample window in which you want to see the custom object, then choose the button at the far right of the Sample Type flyout.

    6. Your custom object appears in the sample window.

    If the size of your object is not quite right for the sample window, adjust its size and resave the scene. To update the sample window so it uses the newly saved .max file, open the Material Editor Options dialog, and then click OK.

To use a camera and lights with the custom sample object:

  1. Create a camera in the scene that contains your sample object, and then adjust the camera to show the object as you want it seen in sample windows.

    2. If more than one camera is in the scene, the Material Editor uses the first camera listed in the Track View hierarchy.

  2. If you want to use your own lighting rather than the default sample-window lighting, set up as many lights as you need. If you want to use the sample-window lighting, do not add any lights to the scene.
  3. Save the .max file.
  4. If you haven’t done so already, use the Material Editor Options dialog to specify the file as the Custom Sample Object file.
  5. Turn on Load Camera and/or Lights.

    6. Sample windows set to use the custom object now display the object as seen through the camera. If lights are in the scene, those lights are used in the sample window instead of the default lights.


Material Editor Tool Buttons

Provide access to the tools and options listed below.

Sample Type (Sphere, Cube, Cylinder, Custom Object)

Backlight

Pattern Background

Sample UV Tiling

Video Color Check

Make Preview, Play Preview, Save Preview

Material Editor Options

Select By Material

Get Material (Material/Map Browser)

Put Material to Scene

Assign Material to Selection

Clear Material Settings

Make Material Copy

Put to Library

Material Effects Channel

Show Map in Viewport

Show End Result

Go to Parent

Go Forward to Sibling

Material/Map Navigator

Pick Material From Object

How To

To use the Material Editor Options dialog:

  1. Click Options to the right of the sample windows.
  2. Set the options as you want, and then click OK.

To check for illegal video colors:

  • In the Material Editor, turn on Video Color Check.

The active sample slot now renders "illegal" pixels - pixels whose color is beyond the safe video threshold - as black.

If Video Color Check detects illegal colors, try reducing the saturation of the material colors in question.

The default video system checked is NTSC. In the Rendering page of the Preference Settings dialog (File/Preferences), you can change the video checking to PAL.

The sample slot does not automatically update when you change the video system preference. Turn video checking off and back on to see the change.

You can also check for legal video colors when you render a scene.

Note: The Rendering page also shows options for choosing alternate ways to display illegal pixels - these apply to renderings only, not to the sample slots in the Material Editor.

To assign a material a material effects channel ID:

  • Choose a channel number from the Material Effects Channel flyout.

The channel number can be from 1 to 15. Zero (0) means that no ID is assigned to the material's effects channel.

If you assign the same effects channel number to more than one material, all materials with that number are used in Filter or Layer masking, or receive special post-processing.

Note: Giving a material a non-zero effects channel number tells the Renderer to generate an RLA channel containing such numbers. This information is saved only if you save the rendered scene to a .rla file. However, the effects channel data is available to Video Post when it post-processes your rendered scene.

To change the preview shape:

  1. Make sure the sample slot of the material you want to view is active.
  2. Use the Sample Type flyout to choose the shape you want to view.

    3. The new shape appears in the sample slot, with the material mapped to it.

    The flyout gives you three options: sphere (the default), cylinder, or box.


Sphere, Cube, Cylinder

Sample Type (Sphere, Cube, Cylinder, Custom Object)

Determines the type of preview object used in the sample windows: sphere (the default), cube, cylinder, or custom object.

Sample Windows describes how to create and use a sample object.

If you have used the Material Editor Options dialog to assign a Custom Sample Object scene, an additional button appears at the right of this flyout. The button, which shows a question mark, displays the custom sample object in the active sample window.


Backlight

Adds a backlight to the sample window.

This option is on by default. The effect is most easily seen with the sample spheres, where the backlight highlights the lower-right edge of the sphere.

Backlight is especially useful whenever you’re creating metal-shaded materials. Backlight lets you see and adjust the specular highlight created by glancing light, which is much brighter on metals.


Pattern Background

Adds a multi-colored checkered background to the sample window.

The pattern background is helpful when you want to see effects of opacity and transparency.

The Material Editor Options dialog also lets you assign a bitmap to use as a custom background.


Sample UV Tiling

Adjusts the repetition of the bitmap pattern on the sample object when you render mapped materials.

The buttons specify the number of times the pattern repeats over the surface of the object. Because bitmaps are mapped spherically around the sample sphere, the tiling repetition covers the entire surface of the sphere. This applies to the cylinder and custom objects as well. Cubes use box mapping -- the tiling appears on all sides of the cube.

Note that the tiling pattern set with this option affects the sample window only. It has no effect on the tiling on the geometry in the scene, which you control with parameters in the Bitmap Coordinates rollout.


Video Color Check

Checks the material on the sample object for colors that are beyond the safe NTSC or PAL threshold.

Such colors tend to blur or fuzz when transferred from computer to video. Pixels containing these “illegal” or “hot” colors are flagged on the sample object.

You can have 3DS MAX correct illegal colors automatically when you render, depending on the settings in the Rendering panel of the Preferences dialog.

Use this option as a guide only. The colors in a rendered scene depend not only on the material color but also on the intensity and color of the lighting. A material that shows as safe in the sample window may become illegal if rendered under several bright lights. A safe practice for video is to use colors less than 8085% saturated.


Make Preview, Play Preview, Save Preview

Allows you to view a real-time AVI preview of the effect of animating the material on your sample sphere (or cube or cylinder or custom object).

Without this option, the only other way to preview a complex animated material in real time is to render a sequence with the scanline renderer to either an AVI file, to a digital disk recorder, or to a video tape recorder.

When the preview is complete, 3DS MAX starts the Media Player with the preview file loaded and ready to play. This animation is named Medit.avi. You can also open the Media Player with the last preview loaded by selecting the Play Preview flyout button. To save the preview, select the Save Preview flyout button.

The Create Material Preview dialog has the following options:

Preview Range: Specifies the frames to be included in the preview, either the active time segment for a range of frames.

Frame Rate: Specifies the playback rate in frames per second. Use Every Nth Frame to preview a regular sampling of the animation. For example; a value of 8 includes only every eighth frame in the preview.

Image Size: Specifies the size of the preview as a percent. 100% is 101 x 99 (the size of a sample window in the 3 x 2 array).


Material Editor Options

Provides display adjustment for the sample windows.

The Material Editor Options dialog contains the following controls:

Manual Update: When this is on, the sample windows don’t update their display until you click them. This option affects only the updating of the sample windows; it doesn’t affect the icon displays in the Browser.

Don’t Animate: When this is on, animated maps are not updated in the sample windows while you play an animation or drag the time slider. However, the animation is updated to the current frame when you stop the animation or release the time slider.

Anti-alias: Turns on antialiasing in the sample windows.

Progressive Refinement: Turns on progressive refinement in the sample windows. When on, samples are rendered quickly, with large pixels, then rendered a second time in greater detail.

Simple Multi Display Below Top Level – When on (the default), the sample sphere for a multi/sub-object material displays the multiple patches only at the top level of the multi/sub-object material. The submaterials themselves are displayed over the entire sphere. When you use nested multi/sub-object materials, the multiple patches again appear at the top level of the nested multi/sub-object material, but the sample sphere is again whole when displaying any of the submaterials.

Custom Background – Lets you specify a custom background for the sample windows, to be used instead of the default checkers background. Click the file-assignment button to display a file dialog from which you can select the custom background. This can be any bitmap format supported by 3DS MAX. Check the Custom Background checkbox to use the new background in place of the checkered background. The specified background is stored in the 3dsmax.ini file, so it is available from session to session.

Renderer

This area lets you specify which renderer the sample windows will use.

Scanline: (Default.) Renders the samples with the full scanline renderer.

Current: Renders samples with the production renderer currently specified for 3DS MAX. The name of the current renderer appears in the text field. You assign the current renderer using the File/Preferences dialog. If you want to use the scanline renderer for samples, no matter which renderer is currently assigned for the scene, use the Scanline option.

Light #1 Color and Light #2 Color: These controls let you adjust the two lights used in the sample windows. Light #1 is the top light and Light #2 is the back light. Click the color swatch to alter the color of either light. Adjust the Multiplier spinners to multiply the values (intensity) of the lights.

Use the Default buttons to return to the initial settings.

Ambient Light Intensity: Sets the ambient light intensity in the sample windows. The range is from 0 to 1.

Use the Default button to return to the initial settings.

Background Intensity: Sets the background intensity in the sample windows. The range is from 0 (black) to 1 (white).

Use the Default button to return to the initial settings.

3D Map Sample Scale: Sets the scale of the sample sphere to any size, in order to make it consistent with the object(s) in the scene that have the texture on them. (This option changes the scale of all six sample windows.) It allows you to correctly preview the scale of 3D procedural maps such as noise without having to render. For example, if you have an object that is about 50 units across, set this parameter to 50 to see the noise map correctly scaled on the sample sphere.

Use the Default button to return to the initial settings.

Custom Sample Object

This area lets you specify a custom sample object to use in the sample windows.

File Name: Use this button to select the 3DS MAX scene.

The 3DS MAX scene should contain a single unlinked object that fits in an imaginary cube 100 units on a side. The object must either be a primitive with a Generate Mapping Coords toggle, or have a UVW Map modifier applied to it. The 3DS MAX scene can contain a camera and lights.

Load Camera and/or Lights: Turn on to have sample windows use the camera and lights in the scene, instead of the default sample window lighting.

UVW 2 Mapping

These controls affect the way the second UVW mapping channel appears in the sample windows. They have no effect on the way mapping appears in the rendered scene.

Generated by Object: (The default.) The second mapping channel is mapped using the coordinates of the sample-window object: spherical for the sphere, cylindrical for the cylinder, and Box mapping for the box. In this case, both the first and the second mapping channel use the same coordinate system.

Custom sample objects must have their own mapping coordinates supplied in the scene (unless the object has a Generate Mapping Coords toggle and no UVW Map modifier applied, in which case the Material Editor uses the default mapping coordinates whether the toggle is turned on, or not).

Planar: When this is chosen, the second mapping channel uses planar mapping regardless of the mapping coordinates. Use this when you want to use the second mapping channel for decals and such.

Windows

These options let you choose how many sample windows to display.

3 X 2: Specifies a 3 x 2 array of sample windows. (The default: 6 windows.)

5 X 3: Specifies a 5 X 3 array of sample windows. (15 windows.)

6 X 4: Specifies a 6 X 4 array of sample windows. (24 windows.)

Apply: This button lets you apply the current settings without leaving the Material Editor Options dialog. This is useful when you adjust lighting values for the sample windows.

OK: Closes the dialog and applies any changes you made.

Cancel: Closes the dialog and cancels any changes you made: including changes you applied with the Apply button.


Select By Material

Allows you to select objects in the scene, based on the selected material in the Material Editor.

Clicking this button displays the Select Objects dialog. All objects that have the selected material assigned to them are highlighted in the list.

Hidden objects don’t appear in this list, even if the material is assigned to them. However, in the Material/Map Browser, you can browse from the scene with By Object turned on. This lists all objects in the scene, hidden or unhidden, along with their assigned materials.


Get Material (Material/Map Browser)

Displays the Material/Map Browser to allow you to choose a material or map.

Note: When you click Get Material, the Browser that appears is modeless (you can leave it displayed while you do other work). However, when you display the Browser by clicking the Type button, a map assignment button in the Environment dialog, or from a projector light, it appears as a modal dialog with OK and Cancel buttons.

You can leave the modeless Browser displayed, and drag materials from its listings to any material or map window in the 3DS MAX user interface. When the Browser displays a Material Library, you can also add materials to the library by dragging them from the Material Editor sample windows.

When you drag a material or map from one location to another, an alert appears, where appropriate, that lets you choose between making a copy of the material or an instance of the material.

When you double-click a material or map in the Browser, it places that material or map in the active window of the Material Editor. It automatically chooses between an instance or a copy, as follows:

  • Browsing New Materials: Creates a new material.
  • Browsing a Library: Makes a copy.
  • Browsing the Material Editor, Scene, or Selected:
  • If the material or map is already in the active window, nothing happens.
  • If the material or map is in some other window, it puts a copy in the active window.
  • In all other cases, it makes an instance.

Using the Browser to Navigate Materials

Here is the recommended way to navigate materials, using the Browser in conjunction with the Materials Editor.

  • Use the Browser primarily in Root Only mode, to see only the top levels of the materials.

This provides a simpler view of your materials, and speeds redraws when you’re using any of the icon display modes. (You can also create thumbnails to speed up redraws, as described below in the "How To" section.)

  • In the Materials Editor, choose any sample window you want that contains a complex, multi-level material.
  • In the Browser, choose Active Window mode to display the entire branch of the active window.
  • Click any of the items in the Browser list window to move to that level of the current material.
  • When you want to switch to a different material, select its window in the Materials Editor, and its hierarchy will appear in the Browser.
  • Again, click the items in the Browser to change levels.

Removing Materials and Maps

To delete an assigned map, choose New in the Browser, and drag the NONE item over the button containing the map you want to remove.

Tip: You can remove a material completely from an object in the scene by dragging the NONE item from the Browser over to the object.

Reference

The Material/Map Browser contains the following controls:

Text Entry: As you enter a material name in this field, the first matching text item is selected in the list window. Press ENTER, to select next matching name, and so on.

For example, if you enter ch when the list includes the material names Cherry Red, Chrome Blue, and Chrome Zinc, Cherry Red is selected first. Press ENTER, and the Chrome Blue is selected. Press ENTER again, and Chrome Zinc is selected.

The search is not case-sensitive.

Sample Window: Below the text-entry field is a single sample window. The window displays a sample of the current selection, and you can drag the sample to any other material window in 3DS MAX. The window display is interruptable, so you can quickly click from one list item to the next without waiting. In addition, displays are cached, so if you complete the display of one sample, then move on to another sample, when you return to the first sample, it displays instantly.

Tool Buttons

The first part of this row of buttons controls how you view the list. The second part is for managing material libraries.

To speed up the display of the sample spheres in the Browser, the smaller of the sample spheres (those displayed when you choose View Small Icons or View List + Icons) can be saved as thumbnail images in the material library file. (See the How Tos for this topic.)

Keep in mind that the saved thumbnails increase the size of the material-library file.

View List: Displays the materials and maps in list format. Blue spheres are materials. Green parallelograms are maps. The green parallelograms turns red if the map is assigned to a material in the scene and that material is displayed in the viewports (the Show Map in Viewport button is on).

View List + Icons: Displays the materials and maps in a list with small icons.

View Small Icons: Displays the materials and maps as small icons. As you move the mouse over the icons, tooltip labels pop up, showing you the name of the material or map.

View Large Icons: Displays the materials and maps as large icons.

The large icons are labeled with the name of the material or map and are displayed using progressive refinement -- samples are rendered quickly, with large pixels, then rendered a second time in greater detail.

Update Scene Materials from Library: Updates materials in the scene with the materials of the same name stored in the library.

When you click Update Scene Materials from Library, a dialog appears listing all materials in the library that have the same name as materials in the scene. Select the materials from the list window that you want to update in the scene, and then click OK.

If no materials exist in the scene that match the names in the library, an alert informs you of this.

Disabled unless the Browser is viewing a library.

Delete from Library: Removes the selected material from the library display. The library on disk is not affected until you save it explicitly. Use Open to reload the original library from disk. This button is only active when you select a named material that exists in the current library.

Disabled unless the Browser is viewing a library.

Clear Material Library: Removes all materials from the library display. The library on disk is not affected until you save it explicitly. Use Open to reload the original library from disk.

Disabled unless the Browser is viewing a library.

Browse From

Determines the source of the materials displayed in the list window.

Material Library: Displays the contents of a material library file from disk. When you set this option, the buttons under File become active (see below).

You can now load a library from a MAX file. When browsing from the Material Library in the Material/Map Browser, choose Open, and then choose 3D Studio MAX (*.max) from Files of type. Select and load a .max file. All materials assigned in that scene are listed in the Browser. To convert the collection of materials to a library file, click Save, and save it as a MAT (.mat) file.

Material Editor: Displays the contents of the sample windows.

Active Slot: Displays the contents of the currently active sample window.

This option is disabled in the modal version of the Browser.

When you choose this mode, all checkboxes in the Show area are disabled. The entire material and map tree of the active window is displayed, regardless of the state of these checkboxes in other Browse From modes.

You can also use Active Slot mode to navigate the hierarchy of the active material. Thus, when you click on an item in the Browser list window, you move to that level of the material.

Selected: Displays the material assigned to the selected objects.

Scene: Displays all materials assigned to objects in the scene.

All maps assigned to the scene, including Environment Background or spotlight projector maps, are displayed in the Browser list.

New: Displays the set of 3DS MAX material/map types for you to create a new material.

Show

These options filter what is displayed in the list. Either Materials or Maps is always on, and both can be on at the same time. The next two options can be disabled, depending on the active Browse From and View settings.

Materials: Turns display of materials and submaterials on or off.

This is always disabled in the modal version of the Browser.

Maps: Turns display of maps on or off.

This is always disabled in the modal version of the Browser.

Root Only: When on, only the root of the material hierarchy shows in the window. When off, the full hierarchy is displayed. The state of this setting changes depending on how you bring up the Browser. Generally, when you bring up the modeless Browser, you’re selecting materials rather than maps (to begin with), so the checkbox is set to Root Only. However, when you bring up the modal Browser (by clicking a map button anywhere in 3DS MAX), the Root Only item is off so you can see all of the maps.

By Object: This is enabled only when you’re viewing one of the two list modes, and when you’re browsing from either Scene or Selected. When By Object is on, the list displays materials by their object assignment in the scene. At the left are the names of the objects (selected or in the scene), arranged alphabetically, and using the yellow cube icons, as in Track View. Their assigned materials are shown as children of the objects.

File

This button area appears when Material Library, Material Editor, Selected, or Scene is selected under Browse From. Only the Material Library has all four possibilities.

Open: Opens a material library from disk.

Merge: Merges materials from another material library or 3DS MAX scene.

If one or more materials in the source library have the same name as materials in the destination library, a Duplicate Name dialog appears displaying the name of the matching material in an editable field, along with buttons, labeled Merge, Skip, Delete Old, and Cancel. You can edit the name in the field to be unique, and then click on Merge to proceed; you can click Skip to not merge this material; or you can click Delete Old to replace the material currently in the library with this new one. (Or, you can click Cancel to cancel the rest of the Merge.)

Also in the Duplicate Name dialog is a checkbox labeled, Apply to All Duplicates. If you check this before proceeding, all subsequent incoming materials that have duplicate names are treated in the same way as the current one, and no further alert messages appear. Use this option when you know that you’ve got several duplicate objects, and don’t need constant reminders. (If you rename the current incoming object, this option is not available.)

Save: Saves the open material library.

Save As: Saves the open material library under another name.

How To

To merge material libraries:

  1. Choose Browse From Mtl Library, and click the Merge button.
  2. In the file dialog, select a material library other than the current library, or select a MAX file.

    3. A Merge dialog appears, listing all materials in the specified library, or all materials assigned to the scene of the MAX file. Below the list window are All and None buttons to help in the selection.

  3. Select the materials in the list that you want to merge, and then click OK.

    4. The selected materials are merged into the current material library.

  4. Save the library to save your changes.

To save the sample spheres as thumbnail images:

  1. Open the Browser, and Browse From Mtl Library.
  2. Choose View Small Icons.
  3. Display all of the icons in the library by either scrolling through all of them, or by enlarging the Browser so that all of the icons have been displayed at least once.

    4. The action of displaying the icons automatically creates thumbnails in memory.

    Important: If you want to include thumbnails of the submaterials and maps, be sure to turn off Root Only.

  4. Save the library.

    5. When you save the library, you save the thumbnail images of the samples as they appeared in the Browser at that time. If you change any of the materials or maps later, you must resave the library after having displayed the icons again in order to update the thumbnails. If you do not resave the library after altering or adding a materials, the icon of the material will still appear correctly, but it will be rerendered when it first appears in the Browser, while all the other icons will appear immediately.


Put Material to Scene

Updates a material in the scene after editing the material.

The Put Material to Scene button is enabled only when:

  • The material in the active sample window has the same name as a material in a scene, and
  • The material in the active sample window is not hot. In other words, this command is meant to fit into the following overall sequence of handling materials:
  • You create a hot material either by assigning it to objects in the scene or by getting it from the scene.
  • You make a copy of the material.
  • You make changes to the copy of the material.
  • You update the scene by putting the changed material back into the scene.

Note: If you assign a mapped material to a parametric object, but forget to turn on Generate Mapping Coordinates, coordinates are automatically turned on by the Renderer at render time. In addition, if you assign a mapped materia with Show Map in Viewport active to an object, that object’s Generate Mapping Coords. option is turned on. The Show Map in Viewport flag is now saved with individual materials, so you can drag mapped materials from the modeless Browser onto objects in your scene, and the mapping appears in the viewports.


Assign Material to Selection

Assigns the material in the active sample window to the currently selected object(s) in the scene.

At the same time, the window becomes hot.

If you assign a mapped material to a parametric object, but forget to turn on Generate Mapping Coordinates, coordinates are automatically turned on by the Renderer at render time. In addition, if you assign a mapped materia with Show Map in Viewport active to an object, that object’s Generate Mapping Coords. option is turned on.

The Show Map in Viewport flag is now saved with individual materials, so you can drag mapped materials from the modeless Browser onto objects in your scene, and the mapping appears in the viewports.


Clear Material Settings

Resets the values for the material in the active sample window.

The material colors are removed and set to shades of gray. Shininess, opacity etc. are reset to their default values. Maps assigned to the material are removed.

If you are at a map level, it resets the map to default values.


Make Material Copy

“Cools” the current hot window by copying the material to itself.

The window is no longer hot, but the material retains its properties and name. You can adjust the material without affecting it in the scene. Once you’ve got what you want, you can click Put Material to Scene to update the material in the scene and change the window to hot again.


Put to Library

Adds the selected material to the current library.

Enter a name for the material if you have not already entered one in the Material Editor.

The material becomes visible in the material library display in the Material/Map Browser. The material is saved to the library file on disk. (You can also save explicitly by using Save in the Material/Map Browser.)


Material Effects Channel

Tags a material as a target for a Video Post effect based on the G-buffer channel.

For example, say you want a material to glow wherever it appears in the scene. The material is in the Material Editor and the glow effect is a filter in Video Post (LenZFX Glow).

First, you set up your Video Post queue so that the glow filter operates on effects channel #1. Use the Material Effects Channel button to give the channel an ID number of 1, then assign the material to objects in the scene in the usual way. When you render the scene in Video Post, the objects assigned the material are rendered with the glow effect.

An ID of zero means that the effects channel is unused. To use the channel, assign an ID from 1 to 15.

To save the channel data with the rendering, use the RLA (.rla) file format.


Show Map in Viewport

Displays mapped materials on the surfaces of objects in the interactive renderer. This feature works only with 2D maps. It can't display 3D procedural maps in viewports.

The following conditions must be met for mapped materials to display in the viewport:

  • Mapping coordinates must be applied to the object, either by setting Generate Mapping Coordinates when the object is created, by assigning a mapped material to the object, or by applying a UVW Map modifier.
  • A mapped material must be assigned to the object.
  • The Show Map in Viewport button must be on at the level of the material that contains the map that you want to display.

The interactive renderer can only display one map for each material. To see the effect of layered or compound materials, you must use the scanline renderer.

The state of this button is saved with the material in the library. Combined with the fact that Generate Mapping Coords. is turned on when you assign a mapped material with Show Map in Viewports active, this means that you can drag mapped materials from the Material Library in the Browser over objects in your scene, and have the mapped material appear in the viewports.

Displaying mapped materials in a viewport can slow performance. If you don’t need to view the texture, turn off its viewport display.

How To

To view the map interactively:

  1. Select an object.
  2. In the object’s creation parameters, make sure that Generate Mapping Coords is checked.

    3. If the object does not have mapping coordinates, 3DStudio MAX cannot map the object.

  3. In the Material Editor, assign the mapped material to the object.
  4. Turn on Show Map in Viewport.

    5. The texture map appears on objects assigned the material in all shaded viewports. Now when you adjust the map, the viewports update to display the adjustments.

To turn off interactive texture display:

  • Turn off Show Map in Viewport.

The object is shaded but the map no longer appears.


Show End Result

Lets you look at the material at the level you’re on instead of looking at the end result of all the other maps and settings.

When this button is on, the sample window shows only the current level of the material. This function is useful when you are working with compound materials. It would be difficult to see exactly what effect you’re creating on a particular level if you didn’t have the ability to turn off the display of the other levels.


Go to Parent

Moves you up one level in the current material.

This button is only active when you are not at the top level of a compound material. You can tell when you’re at the top level when this button is grayed out and the name in the edit field matches the name in the Material Editor title bar.

A typical situation is one in which you have a material with a Diffuse map. The Material level is the parent and the Diffuse map is the child. The Go to Parent button becomes active at the level of the Diffuse map.

You can also navigate through the various levels of a material with the Material/Map Navigator.


Go Forward to Sibling

Moves you to the next map/material at the same level in the current material.

This button is only active when you are not at the top level of a compound material and there are more than one map/material at the current level.

A typical situation is one in which you have a material with a Diffuse map, a Bump map, and a Shininess Strength map. The Material level is the parent and the Diffuse map, Bump map, and Shininess Strength map are its children. The Go Forward to Sibling button becomes active at the level of the children and allows you to go from one to another.

You can also navigate through the various levels of a material with the Material/Map Navigator.


Material/Map Navigator

Provides quick navigation through the hierarchy of maps in a material.

The Navigator displays the material and maps in the currently active sample window. You can navigate the hierarchy of the current material by clicking the material or map listed in Navigator. Conversely, as you navigate the material in the Materials Editor, the current level is highlighted in the Navigator. The selected material or map becomes active in the sample window while the parameters for the selected material or map appear below the sample windows.

As with all representations of the materials and maps, you can drag and drop from the Navigator to any valid material or map window or button in the 3DS MAX interface.

Use the view buttons at the top to filter the display. The list displayed in the Navigator is the same as the one displayed in the Track View hierarchy.

Reference

These are the view buttons:

View List: Displays the materials and maps in list format. Blue spheres are materials. Green parallelograms are maps. The green parallelograms turns red if the map is assigned to a material in the scene and that material is displayed in the viewports (the Show Map in Viewport button is on).

View List + Icons: Displays the materials and maps in a list with small icons.

View Small Icons: Displays the materials and maps as small icons. As you move the mouse over the icons, tooltip labels pop up, showing you the name of the material or map.

View Large Icons: Displays the materials and maps as large icons. Large icons also show the name of the material or map with popup tooltips.

The large icons are labeled with the name of the material or map and are displayed using progressive refinement -- samples are rendered quickly, with large pixels, then rendered a second time in greater detail.


Pick Material From Object

This eyedropper button to the left of the the editable material (or map) name field lets you select a material from an object in the scene. Click the eyedropper button, and then move the mouse over the objects in the scene. When the eyedropper cursor is over an object containing a material, it fills with “ink” and a tooltip with the name of the object pops up Click on the object, and the material is placed in the active sample window.

If the material is already in a sample window, the eyedropper has no effect.


Type (Material/Map Browser)

Displays the Material/Map Browser to allow you to choose a type of material.

Materials come in two overall types:

Standard Materials

Compound Materials


Standard Material

A standard material’s parameters are organized into four rollouts: Basic Parameters, Extended Parameters, Maps, and Dynamics Properties.

Basic and Extended Parameters are covered in this topic, as are Dynamics Properties.

Maps are a particularly powerful way to create a material, and are covered in their own set of topics.

Reference

Standard Material Basic Parameters

Contains controls that let you set the color of your material, the shininess, the transparency, and so on, and specify maps to use for the various components of the material.

The Basic Parameters rollout contains the following controls:

Shading: Sets the type of shading mode used by the material: constant, phong, Blinn (the default), and metal.

2-Sided: Makes the material 2-sided. Applies the material to both sides of selected faces.

Wire: Renders the material in wireframe mode. You can set the size of the wire in Extended Parameters.

Face Map: Applies the material to the faces of the geometry. If the material is a mapped material, it requires no mapping coordinates. The map is automatically applied to each facet of the object.

SuperSample: Super-sampling reduces aliasing in specular highlights and bump maps. It does this by calling the shader five times rather than once, using a quincunx pattern (the five on a domino), then averaging the results. Naturally, this slows down rendering time. Turn this on only if you are having trouble with aliasing in specular highlights or bump maps.

Color Controls

Sets the colors for these color elements. You can set the color either by adjusting the spinners to the right of the dialog, or by clicking the color swatch to display the Color Selector.

The small buttons to the right of the color swatches take you to the Material/Map Browser to select a map of corresponding type. These are shortcuts – you can also use the corresponding buttons in the Maps rollout. If you have assigned a map to one of these colors, the button displays the letter “M.” An uppercase M means that the corresponding map is assigned and active. A lowercase “m” means that the map is assigned and inactive (turned off).

Ambient: Controls the ambient color. The ambient color is the color of that part of the object not in direct light.

Diffuse: Controls the diffuse color. The diffuse color is the color of the lighted part of the object.

Specular: Controls the specular color. The specular color is the color of the highlight on a shiny object.

Filter: Controls the filter color. The filter, or transmissive color, is the color transmitted through transparent or semi-transparent materials such as glass. You can use the filter color with volumetric lighting to create effects such as colored light through a stained-glass window. Ray-traced shadows cast by transparent objects are tinted with the filter color. The filter color is used by the Filter opacity type in the Extended Parameters.

For convenience in changing color components, the Material Editor lets you copy one color component to another by dragging, and to lock two color components together with the lock buttons to the left of Ambient and Diffuse, and Diffuse and Specular radio buttons..

In general, materials with two identical color components do not look realistic, and except for materials that are close to solid black, you should avoid using copied or locked color components in materials you use in a scene. Color copying and locking are best used as conveniences when you design a new basic material.

Shininess and Opacity

Shininess: Affects the size of the specular highlight. As you increase the value, the highlight gets smaller and the material appears shinier. Default = 25.

Shininess Strength: Affects the intensity of the specular highlight. As you increase the value, the highlight grows brighter. This is equivalent to moving the light closer to the material. Default = 5.

Self-Illumination: Creates the illusion of a light source. As you increase the value, the diffuse color takes over from the ambient color. At a setting of 100, the self-illuminated material shows no shaded areas, although it can show specular highlights.

Opacity: Sets the opacity/transparency of the material as a percentage. The effect is best seen against a pattern background in the sample window. You can control opacity falloff in the Extended Parameters.

Highlight: Shows the effect of adjusting the Shininess and Shininess Strength spinners in the form of a curve. As you decrease Shininess, the curve grows wider; as you increase Shininess Strength, the curve grows taller.

The curve has a different shape and responds to these values somewhat differently when the material uses Metal shading.

Soften: Softens the effect of specular highlights, especially those formed by glancing light.

Metal-shaded materials don't use this parameter.

Standard Material Extended Parameters

The Extended Parameters rollout contains the following controls:

Opacity

Controls the opacity falloff of a transparent material.

Falloff In: Increases transparency towards the inside of the object, as in a glass bottle.

Falloff Out: Increases transparency towards the outside of the object, as in a cloud of smoke.

Amount: Specifies the amount of transparency at the outside or inside extreme.

Opacity Type: Filter opacity computes a filter color that it multiplies by the color behind the transparent surface. Subtractive opacity subtracts from the color behind the transparent surface. Additive opacity adds to the color behind the transparent surface. The Filter opacity type uses the filter color (in Basic Parameters).

Refract Map/Ray Trace IOR: Sets the index of refraction (IOR) used by refraction maps and raytracing. Note that the IOR of air is 1.0, and the IOR of glass is 1.5 (the default setting). Very few real-world objects have an IOR greater than 2.

Wire

Size: Sets the size of the wire in wireframe mode. You can set either pixels (the default) or current units.

With pixels, wires maintains the same apparent thickness regardless of the scale of the geometry or how near or far the object is positioned. With units, the wires appear thinner at a distance and thicker at close range, as if they were modeled in the geometry.

Reflection Dimming

These controls dim reflection maps that are in shadow.

Apply: Turn on to use reflection dimming. When Apply is off, the reflection-mapped material is not affected by the presence or absence of direct light. Default = off.

Dim Level: The amount of dimming that takes place in shadow. At 0.0 (the default), the reflection map is comletely dark in shadow. At 0.5, the reflection map is half dimmed. At 1.0, the reflection map is not dimmed and the material appears as if Apply were turned off.

Dim Level values less than 1.0 affect reflections in areas that are directly lit, as well. Use the second value, Reflection Level, to compensate for this effect.

Refl. Level: Affects the intensity of the reflection that is not in shadow. The Reflection Level value multiplies the illumination level of the lit area of the reflection, to compensate for dimming. In most cases, the default value of 3.0 keeps the reflection in the lit area at about the same level it would appear if reflection dimming were not on.

Dynamics Properties

This rollout let you specify surface properties that affect the animation of an object upon collision with another object. Note that if there are no collisions in your simulation, these settings have no effect.

Since the Dynamics Properties rollout is available at the top level of any material (including submaterials), you can specify different surface dynamic properties for each face in an object, if you wish. There are also controls in the Dynamics utility that let you adjust the surface properties at the object level, but only the Materials Editor lets you alter the surface properties at the sub-object level (through use of a Multi/Sub-Object material).

As a default, the values in the Dynamics Properties rollout provide a surface that’s similar to Teflon-coated hardened steel.

Bounce Coefficient: How far an object bounces after hitting a surface. The higher the value, the greater the bounce. A value of 1 represents a “perfectly elastic collision,” or a bounce in which no kinetic energy is lost. Default = 1.0.

If you’ve seen the desktop toy with four ball bearings swinging back and forth on strings and hitting one another, you’ve seen an example that comes very close to a bounce coefficient of 1. Generally, hardened steel or a super ball have a bounce near 1, while lead has a bounce near 0.

Static Friction (spinner): How difficult it is for the object to start moving along a surface. The higher this value, the more difficult. Default = 0.0.

If something weighs ten pounds and sits on Teflon (a static friction of near zero), it takes almost no force to make it move sideways. On the other hand, if it sits on sandpaper, then the static friction might be very high, on the order of .5 to .8. A static friction near 1 is very difficult to create in the real world without adhesives or friction material.

Sliding Friction (spinner): How difficult it is for the object to keep moving over a surface. The higher this value, the more difficult for the object to keep moving. Default = 0.0.

Once two objects begin to slide over one another, static friction disappears and sliding friction takes over. Generally, sliding friction is lower than static friction due to surface tension effects. For example, once steel starts sliding over brass -- a value of static friction that might run from .05 to .2 -- the sliding friction drops to a significantly lower value, on the order of .01 to .1. For some materials, such as specific friction materials like brake linings, sliding friction is just as high as static friction because it is used in conjunction with a nearly frictionless material such as hardened polished steel.

How To

To change a color component in a preview of a basic material:

  1. Click the color swatch next to the color component you want to change: Ambient, Diffuse, or Specular.

    2. The Material Editor displays a Color Selector dialog. The following topic reviews the Select Color controls.

    Right-clicking the color swatch also displays the Color Selector.

  2. Use either the Color Selector dialog or the RGB or HSV controls in the Material Editor dialog to change the values of the color component.

    3. As you change color values, the ambient, diffuse, or specular color component also changes in the sample in the sample slot.

  3. When you have finished changing the color values, dismiss the Color Selector.

    4. Note: You can also make a color component active by clicking the radio button next to its name. This makes the color active but does not display the Color Selector. You can still adjust the color by using the RGB and HLS spinners.

    The Material Editor has some shortcuts to help you work with component colors.

    A few other preview controls are provided to help you design specific kinds of materials. Their use is described in the topics that describe those materials.

To copy one color component to another:

  1. Drag the color swatch of the color you want to copy to the color swatch of the other color component.

    2. A Copy or Swap Colors dialog appears.

  2. Click Copy to replace the second color swatch with the color you dragged. Click Swap to swap the two color components.

To lock two color components:

  1. Click the lock button between Ambient and Diffuse or between Diffuse and Specular.

    2. The Material Editor displays an alert that asks whether you want to lock the two color components.

  2. Click Yes.

    3. If one of the colors you locked was active (its radio button chosen), the inactive color is replaced by the active color.

    If neither of the colors was active, the color above replaces the color below. In other words, Ambient replaces Diffuse and Diffuse replaces Specular.

    If two colors are locked and you lock the other two, all three component colors are replaced by the active color.

    While two colors are locked, adjustments to one color component affect the other as well.

To unlock two color components:

  • Click the lock button to turn it off.

To give a material a different name:

  • Edit the name field that appears below the Material Editor toolbar.

The name of the active material appears in the title bar of the Material Editor dialog.

Note: The name of the material is not a file name - it can contain spaces, numbers, and special characters.

If a material that you want to change has been saved in the scene but not the Material Editor, you can load the material by getting it from the scene.

To get a material from a scene:

  1. Click a sample slot to make it active.

    2. Be careful not to click the sample slot of a material you want to use later.

  2. Click Get Material on the Material Editor toolbar.

    3. The Material/Map Browser appears.

  3. In the Browse From area at the upper left, make sure that either Selected or Scene is chosen.

    4. The Selected option lists only materials in the current selection. If no objects are selected, the list of materials is blank.

    The Scene option lists all the materials currently in the scene.

  4. In the list of materials, click the name of the material you want to get, and then click OK.

    5. The material you chose replaces the previous material in the active sample slot.

    Warning: When you get a material from a scene it is initially a hot material.

To assign a material to objects in a scene:

  1. Select the sample slot that contains the material you want to assign.
  2. Select the objects you want to assign the material to.
  3. Click Assign Material to Selection on the Material Editor toolbar.

    4. Warning: When you assign a material to an object or selection, that material becomes a hot material. When you change the material's properties, 3DS MAX immediately updates the scene to reflect those changes. Any object with that material will change its appearance - not just the objects in the current selection. When a material is hot, its sample slot appears with white corner brackets.

    To make a material no longer hot so it doesn't change the current scene, you make a copy of it.

To make a copy of a preview material, do one of the following:

  • Click Make Material Copy on the Material Manager toolbar.
  • Drag the hot material's sample slot to a different sample slot.

The white corner brackets disappear to indicate the material is no longer hot.

Be careful not to drag the material to the sample slot of a material you want to use.

Tip: Copying a material by dragging its sample slot is a useful way to create variations on a material, fine-tuning it until you have a result you like.

When you change a material that isn't hot, and you now want to use it in the scene, you put the material to the scene.

To put a material back into a scene:

  • Click Put Material to Scene on the Material Editor toolbar.

The material in the active sample slot is now a hot material.

The Put Material button is enabled only when (1) the material in the active sample slot has the same name as a material in a scene, and (2) the material in the active sample slot is not hot. In other words, this command is meant to fit into the following overall sequence of handling materials:

  • You create a hot material either by assigning it to objects in the scene or by getting it from the scene.
  • You make a copy of the material.
  • You make changes to the copy of the material.
  • You update the scene by putting the changed material back into the scene.

These steps are not as immediate as changing a material while it is hot, but they help you avoid changing the scene's materials unintentionally or in unexpected ways.

When a material in the Material Editor is assigned to objects in the scene, you can select the objects from the Material Editor.

To select objects assigned to a material:

  1. Click a sample slot that contains a material in the scene.

    2. White corner brackets indicate materials that are in the scene.

  2. Click the Select by Material button in the Material Editor.

    3. This button is grayed out unless the active sample slot contains a material in the scene.

    A Select Entities dialog appears. The names of objects assigned the active material are highlighted when the dialog appears.

  3. Click Select to select materials assigned the active material.

    4. You can also change the selection by choosing other objects. If you change the selection, you must then click Assign to Material to assign the active material to newly selected objects.

To get a material from a library:

  1. Click Get Material on the Material Editor toolbar.

    2. The Material/Map Browser appears.

  2. In the Browse From area at the upper left, make sure that Material Library is chosen.

    3. If you have opened a library, the list of materials shows the contents of the library.

    If you haven't opened a library, click Open in the file area of the Browser. A file dialog appears, where you can choose a material library to open. After you open the library, the list of materials updates to show the library's contents.

  3. In the list of materials, click the name of the material you want to get, and then click OK.

    4. The material you chose replaces the previous material in the active sample slot.

To save a material in a library:

  1. Click Put to Library on the Material Editor toolbar.

    2. A Put to Library dialog appears.

  2. Either change the material name or leave it as is, and then click OK.

    3. The material is saved in the currently open library. If no library is open, 3D Studio MAX starts creation of a new library, which you can save as a file using the Material/Map Browser file controls.

To select a material's shading type:

  1. Click the Shading dropdown list in the Basic Parameters rollout of the Material Editor.
  2. Click the name of the shading type to use for the active material.

To increase or decrease the size of a highlight:

  • Change the Shininess value.

The width of the Highlight curve and the highlight in the preview change. At 0% shininess, the curve is at its maximum width. At 100% shininess, the curve is extremely narrow.

To increase or decrease the strength of a highlight:

  • Change the Shininess Strength value.

The intensity of the Highlight curve and the highlight in the preview change. At 0% strength, there is no highlight. At 100% strength, the curve is at its maximum height.

The shape of the Highlight curve affects the blending between the specular and diffuse color regions of the material. The steeper the curve, the less blending there is and the sharper the edge of the specular highlight.

To reduce a material's opacity:

  • Change Opacity to a value less than 100%.

The material becomes more transparent. An object that is fully transparent (0% Opacity) is nearly invisible except for the light it reflects (the specular highlights).

To help you preview transparency in the sample slots, it is useful to view the sample object against a background. To do so, click the checkered Background button to the right of the Sample slot.

To make a material self-illuminating:

  • Increase the Self-Illumination value in the Basic Parameters rollout.

As self illumination increases, the sample object appears flatter and more luminous.

Self illumination replaces a material's ambient color with its diffuse color. At 100% self illumination, no ambient color is visible. Shading shows only the diffuse color and specular highlights (if any).

Self-illuminated materials do not show shadows cast onto them, and they are unaffected by the lights in the scene. The brightness (Value in the HSV color description) remains the same regardless of the scene's lighting.

To make a visible light source in a scene, you can combine a geometric object with a light object, and give the geometric object a self-illuminating surface. For example, you could create a lofted light bulb shape, assign it a self-illuminating white or yellowish material, and place an Omni light in the same location.

To make a material self-illuminating and transparent as well, use the Additive Opacity Type in combination with self illumination.

To turn on wire mode:

  • Check Wire in the Basic Parameters rollout.

The material is now shaded as a wireframe mesh. The wire portions of the geometry have the same material settings as previously - color components, shininess, and so on.

Tip: Check the 2-Sided option for a wireframe material.

You have two choices for how wireframe materials are rendered. The controls for tuning wireframe shading are on the Extended Parameters rollout.

  • If you choose Pixels, the thickness of the wires maintains the same apparent thickness regardless of the scale of the geometry or how near or far the object is positioned. In other words, pixel wires have a constant display size as if the wires were traced over an image.
  • If you choose Units, the wires behave as if they were modeled in the geometry. They appear thinner at a distance and thicker at close range. Scaling a wireframe object does scale wire width.


Using the Color Selector Dialog

When you use the Color Selector dialog with the Material editor, the dialog is modeless: that is, it remains on the screen until you dismiss it, and you can use Material Editor controls or work in a viewport while the dialog is still visible.

As you use the controls in this dialog to change the color, the New Color swatch at the lower right of the dialog changes to show what you’ve done. The Original Color swatch to the left of the New Color shows the color as it was when you first entered the dialog.

How To

To choose the hue of a color, do one of the following:

  • Click the Hue rainbow.
  • Drag the Hue slider at the top of the rainbow.
  • Drag the Red, Green, and Blue sliders.
  • Drag the Hue slider.
  • Use the Red, Green, Blue, or Hue spinners.

To make a color lighter, do one of the following:

  • Drag the vertical Whiteness slider (at the right of the Hue rainbow) downward.
  • Drag the vertical Blackness slider (at the left of the Hue rainbow) upward.
  • Drag the Saturation (Sat.) slider to the left.
  • Use the Saturation spinner to decrease saturation.
  • Drag the Value (Val.) slider to the right.
  • Use the Value spinner to increase the value.

To make a color darker, do one of the following:

  • Drag the vertical Whiteness slider (at the right of the Hue rainbow) upward.
  • Drag the vertical Blackness slider (at the left of the Hue rainbow) downward.
  • Drag the Saturation (Sat.) slider to the right.
  • Use the Saturation spinner to increase saturation.
  • Drag the Value (Val.) slider to the left.
  • Use the Value spinner to decrease the value.

To return to the original color:

  • Click Reset.

The New Color is replaced by the Original Color.

To dismiss the Color Selector, do one of the following:

  • Click Close.
  • Dismiss the dialog by using its window control.


Maps

A Standard material’s Maps rollout lets you access and assign maps to various components of the material, as listed below.

You can choose from a large variety of map types. Use the Map Types topic to find descriptions of these types, and how to set their parameters.

Map Types

The Maps rollout contains a wide button for each map type. Click this button to select a bitmap file stored on disk or to select a procedural-map type. After you select a map, its name and type appears on the button. The checkbox to the left of the button allows you to turn the effect of the map off and on. When the checkbox is unchecked, the map is not computed and has no effect in the renderer.

The Amount spinner determines the amount that the map affects the material expressed as a percentage of full intensity. For example, a diffuse map at 100% is completely opaque and covers the base material. At 50%, it is semi-transparent and the base material (the diffuse, ambient, and other colors of the material without mapping) shows through.

Ambient Map

Diffuse Map

Specular Map

Shininess Map

Shininess Strength Map

Opacity Map

Self-Illumination Map

Filter Color Map

Bump Map

Reflection Map

Refraction Map

Note: The submaterial buttons and submap buttons for most materials and maps have checkboxes beside each button. These let you disable or enable that branch of the material or map. For example, in the Top/Bottom material, the Top Material and Bottom Material buttons each have checkboxes. Similarly, the Checker map has two map buttons, one for each color. Each button has checkbox beside it that lets you disable that color’s map.

Assigning the Same Map to Different Parameters

Applying the same map to different parameters is useful in some cases. For example, using a pattern as both a self-illumination map and an opacity map can make the pattern appear to glow and hover in space.

Map used for both self-illumination and opacity

Blending Map Amounts for Opacity and Other Material Components

The Shininess, Shininess Strength, Self-Illumination, and Opacity values in the four spinners in the Basic Parameters rollout are blended with their associate map Amount values in the Maps rollout.

When the Opacity spinner is set to 0, the map Amount spinner completely controls Opacity. That is, reducing the Amount value increases the transparency of the entire surface. On the other hand, when Opacity is 100, reducing the map Amount value increases the opacity of the areas where the Opacity map is less than 1. Thus, you can now adjust a Checker Opacity map, for example, so that the solid areas remain solid, while the clear areas are semi-transparent.

The Shininess, Shininess Strength, and Self-Illumination channels all behave in the same way. A setting of 100 applies all of the map, while a setting of 0 is the equivalent of turning the map off.

When you load old 3DS MAX files or bringing earlier materials the Browser into the Materials Editor, the spinner values for Opacity, Shininess, Shininess Strength, and Self Illumination are altered, where necessary, to maintain the equivalent material effect.

How To

To use the same map for different parameters:

  1. In the Maps rollout, use a map button to assign a map.
  2. Go back to the Maps rollout and drag the assigned map button to another map button.

    3. The Copy (Instance) Map dialog appears.

  3. Choose Copy or Instance, and then click OK.

    4. If you choose Swap, the Material Editor swaps the two button assignments.

To find a map using the Browser:

  1. Use the Browse From buttons to choose where you want to look.

    2. If you choose Material Library and the dialog's display area is blank, you need to open a library file - click the Open button and then choose the library to browse.

  2. Use the display buttons to choose how you view maps.

    3. View List shows each map by name.

    View Small Icons shows a small preview sphere for each map.

    View Large Icons shows a large preview sphere for each map, along with the map's name.

  3. Click to select the map you want, and then click OK.

    4. Tip: You can resize the Browser dialog to increase the size of the display area. This is especially useful when you view large icons.

To view the parent material's parameters:

  • If you are currently at the map level in the Material Editor, click Go to Parent.

The parameters for the map's parent material appear. Also, the Show End Result and Go to Parent buttons are grayed out.

To view a map's parameters:

  • If you are currently at the material level in the Material Editor, click the button that corresponds to the map .

The parameters for the map appear. Also, the Show End Result and Go to Parent buttons are enabled.

In the Basic Parameters rollout, if a map has been assigned to a color component or parameter the corresponding button shows a letter M. In the Maps rollout, if a map has been assigned the corresponding button shows the map name.

To preview a map in a sample window:

  1. Go to the map itself, as described in the previous topic.
  2. Set Show End Result to off.

    3. The sample window shows the map instead of the material.

    To distinguish a map, the sample slot displays it with no three-dimensional shading.

To view a map's location:

  1. Click the Material/Map Navigator button to view the Navigator.
  2. Expand the Medit Materials branch, the branch of the material that has the map assigned, and the Maps container for that material.

To go to a map:

  • Click the green parallelogram by the map's name.

As the Navigator's map tree shows, maps for basic material components and parameters are one level below the material itself.

To expand / collapse branches of the map tree:

When a branch of the tree is collapsed, there is a small plus sign in the circle to the right of the icon.

  • Click the plus sign to expand the branch.

The Navigator displays the children of the branch. The plus sign changes to a minus sign.

  • Click the minus sign to collapse the branch.

The Navigator hides the children of the branch. The minus sign changes to a plus sign.

Tip: The Navigator is usually easiest to use when you collapse most of the map tree and expand only the branch in which you're currently working.

To view the map interactively:

  1. Select an object.
  2. In the object's creation parameters, make sure that Generate Mapping Coords is checked.

    3. If the object does not have mapping coordinates, 3D Studio MAX cannot map the object.

  3. In the Material Editor, assign the mapped material to the object.
  4. Turn on Show Map in Viewport.

    5. The texture map appears on objects assigned the material in all shaded viewports. Now when you adjust the map, the viewports update to display the adjustments.

    Setting Show Map in Viewport to on for one map automatically turns this button off for all other maps the material has.

    Viewports can display Checker and Gradient maps as well as bitmaps. They cannot display other kinds of maps. Show Map in Viewport is grayed out if the active map type cannot display in viewports.

    Displaying mapped materials in a viewport can slow performance. If you don't need to view the texture, turn off its viewport display.

To turn off interactive texture display:

  • Turn off Show Map in Viewport.

The object is shaded but the map no longer appears.

To turn a map off:

  • Turn on the map's check box.

To turn a map on:

  • Turn off the map's check box.

To change a map's strength:

  • Set the strength to a different value.

The material's sample window reflects the change you made.

Note: Changing a map's output can also change the map's strength, although the output controls do not behave the same as the Strength parameter.

To move directly to an ancestor:

  1. Click the arrow to the right of the name field.
  2. Click a name in the Ancestor list.

    3. With this list, you can skip intermediate levels in the tree.

    The Ancestor dropdown list shows only part of the tree - it does not show side branches and siblings. To view these, use the Material/Map Navigator.

To get a material:

  1. Click Get Material in the Material Editor toolbar.

    2. The Material/Map Browser appears.

  2. Choose a material type - not a map type - from the list, and then click OK.

    3. If the material in the sample slot did not have default values, an alert appears to warn you that getting the material replaces the entire material.

  3. Click OK to get the new material or Cancel to keep the original material.

    4. If you click OK, the Material Editor replaces the original material.

To change a map or material type:

  1. Click button labeled Type below the Material Editor toolbar.

    2. The Material/Map Browser appears. If you were at a material when you clicked Type, the Browser lists only materials; if you were at a map, it lists only maps.

  2. Choose a material or map type from the list, and then click OK.

    3. If you change a map type and the new map type can have component maps, a Replace Map dialog appears. This dialog gives you a choice between discarding the original map or using it as a component map.

    If the new map type does not have components, it simply replaces the original map type.

To create a standalone map tree:

  1. Activate a sample window.
  2. Click Get Material.
  3. In the Material/Map Browser, make sure Browse From is set to New.
  4. Highlight the name of the map type you want to use, and then click OK.

    5. Do not highlight the name of a material type.

    The preview slot now contains a standalone map not associated with material parameters.

  5. Use the Material Editor to modify the map as you would any other map.

    6. The sample windows distinguish maps from materials by displaying maps as 2D surfaces without lighting or shading.


Ambient Map

Allows you to select a bitmap file or procedural map for the ambient map type.

The ambient map is not usually used as a separate map type. It maps an image to the ambient color of the material. The picture in the bitmap is painted on the shaded parts of the object.

By default, the diffuse map automatically maps the ambient component as well, because you seldom use a different map for diffuse and ambient components. If you do want to apply a separate ambient map, click the lock button to the right of the long buttons. This unlocks the ambient and diffuse maps. You can then click the Ambient button to select a file.


Diffuse Map

Diffuse map used for texture

Allows you to select a bitmap file or procedural map to use as a diffuse map. You use a diffuse map to assign a pattern or a texture to a material. The colors of the diffuse map replace the material’s diffuse color component.

The most common type of map is called a diffuse map because it maps an image to the diffuse color of the material. As a default, it identically maps the ambient color as well, because you seldom use a different map for diffuse and ambient components.

Applying a diffuse map is like painting an image on the surface of the object. For example, if you want a wall to be made out of brick, you can apply a brick bitmap image as a diffuse map.

It isn’t strictly necessary to lock the ambient and diffuse maps. By setting the lock off and using a different map for each component, you can obtain interesting blend effects. But in general, the purpose of diffuse mapping is to simulate a single surface that is more complex than a basic material, and for this purpose the lock should be on.

Note: In 3D Studio Release 4, a diffuse map is called a texture map. A texture map in that program always maps both the diffuse and ambient components of a material.

How To

To assign a diffuse map to a material:

  1. Make sure the ambient and diffuse components have their maps locked. This button is set on by default. When it is set, the map button for the ambient color component is grayed out.
  2. Click the Diffuse map button.

    3. The Material/Map Browser dialog appears.

  3. Choose from the list of map types, and then click OK.

    4. The Material Editor reappears. Instead of the overall material parameters, controls for the map parameters are now visible.

  4. Use the map controls to set up the map.

    5. For example, if you chose Bitmap as the map type, you now need to select the bitmap file to use.


Specular Map

Allows you to select a bitmap file or procedural map to use as a specular map.

The specular map maps an image to the specular component of the image. The specular map is mapped in exactly the same way as the diffuse map, only the picture in the bitmap only appears in areas of specular highlight.

When the amount spinner is at 100, all the specular color is provided by the bitmap.

In metal materials, the Diffuse color tints the specular map. Specifically, the color from the specular map is multiplied by the Diffuse color (including a diffuse map, if one exists).

In non-metal materials, the Specular color multiplies only reflection maps.

Specular mapping is used primarily for special effects (such as placing an image in a reflection) because it doesn’t occur naturally. The important thing to remember is that, unlike Shininess or Shininess Strength mapping that alter the intensity of the specular highlights, specular mapping alters the color of the specular highlights.


Shininess Map

Shininess mapping

Allows you to select a bitmap file or procedural map to use as a shininess map. Assigning a bitmap to a material’s specular color is similar to diffuse mapping, except that the pattern of the map appears only in highlights. To affect where highlights appear, assign a map to the material’s Shininess parameter.

The shininess map determines which areas of the whole surface are more shiny and which areas are less shiny, depending on the intensity of the bitmap. White pixels in the map produce full shininess. Black pixels remove shininess completely, and intermediate values reduce the shininess.

Shininess mapping usually works best when you assign the same map to both Shininess and Shininess Strength. (In the Maps rollout, you can do this by dragging and dropping.)

How To

To assign a shininess map, do one of the following:

  • In the Basic Parameters rollout, click the map button to the right of the Shininess parameter.
  • Click the Shininess map button in the Maps rollout.

Now choose the bitmap as you would choose a diffuse map.

You assign a map to specular color or to the Shininess Strength parameter in the same overall way.


Shininess Strength Map

Allows you to select a bitmap file or procedural map to use as a shininess strength map.

The shininess strength map alters the intensity of the specular highlights, based on the intensity of the bitmap. White pixels in the map produce full specular highlights. Black pixels remove the specular highlights completely, and intermediate values reduce the specular highlights accordingly.

Although both the specular and shininess strength maps affect the specular highlights in a material, remember that a specular map affects the color of the highlights, while a shininess strength map affects their intensity.


Opacity Map

Allows you to select a bitmap file or procedural map to use as an opacity map. You use an opacity map to make an object partially transparent. Lighter (higher-value) areas of the map render as opaque, darker areas render as transparent, and values in between are semi-transparent.

Reducing the strength of an opacity map affects only the opaque areas of the material. Opaque areas become more transparent, but transparent areas don't change. When an opacity map’s strength is zero per cent, the map isn't used at all and its opacity is controlled by the basic parameters Opacity value.

Specular highlights are applied to transparent areas of the opacity map, as well as the opaque areas, creating the effect of glass. If you want the transparent areas to look like holes, you need to use a shininess strength map as well.

How To

To assign an opacity map, do one of the following:

  • In the Basic Parameters rollout, click the map button to the right of the Opacity parameter.
  • Click the Opacity map button in the Maps rollout.

Now choose the bitmap as you would choose a diffuse map.


Self-Illumination Map

Self-illumination mapping

Allows you to select a bitmap file or procedural map to use as a self-illumination map. You use a self-illumination map to make portions of an object appear to glow. Lighter (higher-value) areas of the map render as self illuminating; darker areas have no effect on the surface: other material properties determine how it renders.

Self illumination means that the glowing area is not affected by lights in the scene (its ambient color component goes away), and does not cast or receive shadows.

This map applies a self-illumination effect based on the intensity of the bitmap pixels. The closer the bitmap pixels are to white, the greater the self-illumination.

How To

To assign a self-illumination map, do one of the following:

  • In the Basic Parameters rollout, click the map button to the right of the Self-Illumination parameter.
  • Click the Self-illumination map button in the Maps rollout.

Now choose the bitmap as you would choose a texture map.

  • In the Basic Parameters rollout, increase the Self-Illumination value.


Filter Color Map

Allows you to select a bitmap file or procedural map to use as a filter color map.

This map applies a transparent-color effect based on the intensity of the bitmap pixels. The filter, or transmissive color, is the color transmitted through transparent or semi-transparent materials such as glass.

You can use the filter color with volumetric lighting to create effects such as colored light through a stained-glass window. Ray-traced shadows cast by transparent objects are tinted with the filter color.


Bump Map

Bump mapping

Allows you to select a bitmap file or procedural map to use as a bump map. You use a bump map to make an object appear to have a bumpy or irregular surface. When you render an object with a bump-mapped material, lighter (whiter) areas of the map appear to be raised and darker (blacker) areas appear to be low.

Like opacity maps and shininess strength maps, bump maps use the intensity of the image to affect the surface of the material. In this case, the intensity affects the apparent smoothness of the surface; white areas protrude and black areas recede.

Use bump maps when you want to take the smoothness off a surface, or to create an embossed look. Keep in mind, however, that the depth effect of a bump map is limited. If you want extreme depth in a surface, you should use modeling techniques instead. For example, the Displace modifier pushes surfaces faces in and out based on the intensity of a bitmap image.

Grayscale images can make effective bump maps. Maps that shade between white and black generally work better than maps with hard edges between the white and black areas.

The bump map Amount adjusts the degree of bumpiness. Higher values render as higher relief, low values render as low relief.

The bumps are a simulation created by perturbing face normals before the object is rendered. Because of this, bumps don’t appear on the silhouette of bump-mapped objects.

How To

To assign a bump map:

  • Click the Bump Map button in the Maps rollout.

Now choose the map as you would choose a diffuse map.

Tip: To avoid aliasing caused by the bump map, in the bump map’s Coordinates rollout, set Blur to be in the range 0.3–0.6 and increase Blur Offset to be greater than 0.0.


Reflection Map

Allows you to select a bitmap file or procedural map to use as a reflection map.

You can create three kinds of reflection maps in 3DS MAX: basic reflection maps, automatic reflection maps, and flat-mirror reflection maps.

  • A basic reflection map creates the illusion of chrome, glass, or metal by applying a map to the geometry so that the image looks like a reflection on the surface.%dbidh_reflection2
  • An automatic reflection map uses no mapping at all, but looks outward from the center of the object, and maps what it sees onto the surface.

Another way to generate reflections automatically is to assign a Raytrace map to be the reflection map.

  • A flat-mirror reflection map is applied to a series of coplanar faces and reflects objects facing it, exactly like a real mirror.

Reflection maps don’t need mapping coordinates because they’re locked to the world, not to the geometry. The illusion of a reflection is created because the map doesn’t move with the object, but with changes in the view, as do real reflections.

The most common use of reflection maps in a realistic scene is to add just a touch of reflection to an otherwise non-reflective surface. By default, reflection map strength is 100 per cent, as it is for other maps. For many kinds of surfaces, however, reducing the strength gives the most realistic result. A polished table top, for example, primarily shows a wood grain; the reflections are secondary.

Reflection maps look more realistic if you increase the shininess and shininess strength values in the Basic Parameters. They are also affected by the diffuse and ambient-color values. The darker the color, the stronger the mirror effect.

Even when the amount spinner is at 100, the specular color is tinted by the ambient, diffuse, and specular colors.

In metal materials, the Diffuse color tints the reflection map. Specifically, the color from the reflection map is multiplied by the diffuse color (including a diffuse map, if one exists). The value (in the HSV description) of the diffuse color controls the reflection map intensity. If the diffuse color value is 255, the reflection is at full intensity, and if the value is 0, the map is not visible.

In non-metal materials, the Specular color multiplies only reflection maps. The value (in the HSV description) of the specular color affects the reflection intensity. If the specular color value is 255, the reflection is at full intensity, and if the value is 0, the map is not visible.

How To

To create an automatic reflection:

  1. In the Maps rollout, click the Reflection map button.
  2. In the Material/Map Browser, choose the Reflect/Refract map type, and then click OK.

    3. Adjusting the map’s Strength slider in the parent material’s Maps rollout controls how reflective the material is. At 100 per cent, the material is fully reflective.

To assign a bitmap as a reflection map:

  1. Click the Reflection map button in the Maps rollout.

    2. Now choose the bitmap as you would choose a diffuse map.

  2. Reduce the Reflection map strength to get the effect you want.

    3. Refractions are similar to reflections. Bitmaps simulate reflections, while Reflect/Refract maps generate them based on the scene's background and geometry.


Refraction Map

Refractions show the scene or background behind the refractive object

Allows you to select a bitmap file or procedural map to use as a refraction map.

A refraction map is similar to a reflection map, only it maps the view onto the surface so that the image looks like you’re seeing it through the surface rather than being reflected off it.

Like a reflection map, a refraction map’s orientation is locked to the view rather than to the object. That is, as you move or rotate the object, the position of the refracted image remains fixed.

Setting the Index of Refraction

The physical properties of refractive objects often distort the image. 3DS MAX has a special parameter to adjust this distortion. It is in the parent material’s Extended Parameters rollout.

Refract Map/Raytrace IOR: IOR stands for index of refraction. An index of 1.0 is comparable to air, and does not refract. At values greater than 1.0, the refraction tends to become more convex; at values less than 1.0, the refraction tends to become more concave. Default = 1.5 (the index of refraction of typical glass).

Tip: The Reflect/Refract map type used as a Refraction map doesn’t effectively model a material surrounding an object, such as a pencil in a glass of water. For this effect, use either the Thin Wall Refraction or the Raytrace map type.

How To

To create an automatic refraction:

  1. In the Maps rollout, click the Refraction map button.
  2. In the Material/Map browser, choose the Reflect/Refract map type, and then click OK.

    3. Automatic refraction overrides the material’s Opacity settings. At 100 per cent strength, the material is extremely refractive. At 0 per cent strength, the material does not refract, but it is fully transparent and the filter color tints objects behind objects assigned this material.

To assign a bitmap as a refraction map:

  • Click the Refraction map button in the Maps rollout.

Now choose the bitmap as you would choose a diffuse map. For bitmapped refractions, you don't necessarily want to reduce the map strength.

Reflect/Refract maps have specific parameters that are described in the following topic.


Map Types

The Material/Map Browser is where you choose to load or create a map of a particular type.

Different map types are grouped into categories. Using the two filter controls, you can choose whether the Browser lists maps or materials or both, and which map type categories the Browser lists.

Different types of maps create different effects, behave in particular ways, or are provided as ways to combine multiple materials.

  • 2D maps are two-dimensional images that are typically mapped onto the surface of geometric objects, or used as environment maps to create a background for the scene. The simplest 2D maps are bitmaps; other kinds of 2D maps are generated procedurally.
  • 3D maps are patterns generated procedurally in three dimensions. For example, Marble has a grain that goes through the assigned geometry. If you cut away part of an object with marble assigned as its texture, the grain in the cutaway portion matches the grain on the object’s exterior: it is all generated by the same program.
  • Compositors are meant specifically for compositing other colors or maps.
  • Color Modifiers alter the color of pixels in a material.
  • "Other" maps include maps that create reflections and refractions.

Maps and Mapping Coordinates

Maps have a spatial orientation. When you apply a material with maps in it to an object, the object must have mapping coordinates. These are specified in terms of UVW axes local to the object.

Most 3DS MAX objects have a Generate Mapping Coordinates toggle. You can turn this on by hand to provide the object with default mapping coordinates. (If the object has this toggle, it is also turned on automatically when you assign a mapped material to the object. If you later turn the toggle off, the Renderer will display a warning that lists objects that require mapping coordinates.) Also, if you assign a map using a UVW 1 or 2 mapping channel but don't apply a UVW Map modifier to the object, you will see the warning.

Some kinds of objects, such as editable meshes, don’t have default mapping coordinates. In this case, you can provide the coordinates by applying a UVW Map modifier. You can also use UVW Map to change an object’s default mapping.

UVW Mapping Coordinate Channels

Each object can have two UVW mapping coordinate channels. The default mapping (from the Generate Mapping Coordinates toggle) is always UVW 1. The UVW Map modifier can send coordinates to channel 1 or UVW 2.

Each map in a material can use either the UVW 1 or UVW 2 coordinates (if present) – or a third type of mapping that depends on whether the map is 2D or 3D.

Note: You can set the mapping channel used by NURBS surface sub-objects in their creation or modification parameters.

Mapping for 2D Maps

In the map’s Coordinates rollout, you choose the Explicit UVW 1 or Explicit UVW 2 channel from a dropdown list labeled Mapping. This list also lets you choose Planar from Object XYZ, which is a planar mapping based on the object’s local coordinate system.

Mapping for 3D Maps

In the map’s Coordinates rollout, you choose either the UVW 1 or UVW 2 channel using radio buttons. An additional radio button, XYZ, maps the materal according to the scene’s world coordinate system.

Noise for 3D Maps

3D Maps, such as Noise, Marble, and so on have Blur and Blur offset spinners in their Coordinates rollout. These work the same as in other maps. That is, the Blur value blurs maps in world space, based on their distance from the camera, while Blur Offset blurs the image itself in object space.

Reference

2D Map Types

2D map types are either bitmaps or procedurally generated 2D patterns:

Adobe Photoshop Plug-In Filter: Generates image-processing effects from Adobe Photoshop plug-in filters.

Adobe Premiere Video Filter: Generates image-processing effects from Adobe Premiere video filters.

Bitmap: An image saved as an array of pixels in one of a number of still-image file formats, such as .tga, .jpg, .bmp, and so on, or an animation file such as .avi, .flc, or .ifl. (Animations are essentially sequences of still images.) Any of the bitmap -- or animation -- file types that 3DStudio MAX supports can be used as a bitmap in a material.

Checker: Combines two colors in a checker pattern. You can replace either color with a map.

Gradient: Creates a linear or radial ramp of three colors.

3D Map Types

These 3D maps are provided with 3DS MAX:

Cellular: Generates a cellular pattern that’s useful for a variety of visual effects, including mosaic tiling, pebbled surfaces, and even ocean surfaces.

Dent: Generates three-dimensional bumps over a surface.

Falloff: Generates a value from white to black based on the angular falloff of the face normals on the surface of the geometry. The standard use of the Falloff map is to provide greater flexibility when creating opacity falloff effects.

Marble: Simulates the grain of marble with two explicit colors and a third intermediate color.

Noise: Noise is a turbulence pattern in three dimensions. Like Checker in 2D, it is based on two colors, either of which can be mapped.

Particle Age: Alters the color (or map) of a particle based on the particle’s life.

Particle MBlur: (MBlur is short for Motion Blur.) Alters the opacity of the leading and trailing ends of particles based on their rate of movement.

Perlin Marble: An alternative, procedural marble map with a turbulence pattern.

Planet: Simulates the contours of a planet seen from space.

Smoke: Generates fractal-based turbulence patterns to simulate the effects of smoke in a beam of light, or other cloudy, flowing mapping effects.

Speckle: Generates a speckled surface for creating patterned surfaces that can simulate granite and similar materials.

Splat: Generates a fractal pattern similar to splattered paint.

Stucco: Generates a fractal pattern similar to stucco.

Water: Creates watery or wavy effects by generating a number of spherical wave centers and randomly distributing them.

Wood: Creates a 3D wood grain pattern.

Compositor Map Types

These are various types of compositors. In image processing, compositing images means to superimpose two or more images to combine them.

Composite: Composites multiple maps. Unlike Mix, Composite doesn’t have explicit controls for the amount of mixing. Instead, it bases the mix amount on the maps’ alpha channel.

Mask: A mask is a map itself, used in this case to control where a second map is applied to the surface.

Mix: Mix mixes two colors or two maps. You can adjust the amount of mixing using a blend level you specify. The blend level can be mapped.

RGB Multiply: Combines two maps by multiplying their RGB and alpha values.

Color Modifier

These color modifiers are provided with 3DS MAX.

RGB Tint: Tints the color of a map based on red, green, and blue values.

Output: Lets you apply bitmap output functions to parametric maps, such as Checker, that don’t have these settings. These functions adjust the colors output by the map.

Vertex Color: Displays the effects of assigned vertex colors in the rendered scene. You assign vertex colors from the editable mesh.

Other

These include the map types that generate reflections and refractions.

Flat Mirror: Generates reflections for flat surfaces. You assign it to faces rather than to the object as a whole.

Raytrace: Creates accurate, fully raytraced reflections and refractions.

Reflect/Refract: Generates reflections or refractions automatically, based on surrounding objects and the environment.

Thin Wall Refraction: Generates refractions automatically, simulating objects and the environment seen through a refractive material such as glass or water.

How To

To have the Browser list only maps:

  • In the upper set of Show radio buttons, choose Maps.

To set which category of map types the Browser lists:

  1. Make sure Sub Materials/Maps is checked.

    2. If this Sub Materials/Maps is not checked, you can’t see the component maps in compound maps and materials.

  2. In the lower set of Show radio buttons, choose the category you want listed, or choose All to show all map types, as in the illustration above.


Adobe Photoshop Plug-In Filter Map

You can use third-party filters compatible with Adobe Photoshop to create special effects in 3D Studio MAX. Filter effects can be applied to maps in the Material Editor.

You use the filter’s native interface to specify and preview the effect interactively. The location of the filter is stored with the scene file. In most cases, filter settings are also saved, so you can return to the filter to make adjustments. Multiple filters can be applied to an image file. You can use the Material Editor as a standalone tool to create maps and images. The filter effects do not have to involve the content of a 3D Studio VIZ scene.

Photoshop Filter Requirements

Using Photoshop Filters in the Material Editor

Photoshop Plug-In Parameters

Photoshop filter used to composite rainbow on cloud bitmap


Photoshop Filter Requirements

Appropriate Photoshop filters from third-party vendors have the file extension .8BF. However, not all such files will work with this plug-in. Use the following as a guide.

  • Filters must be 32-bit. Older 16-bit filters are not recognized by the plug-in.
  • Filters shipped with Adobe Photoshop are programmed to work only with that product. They cannot be used with this plug-in.
  • Version 3 and Version 4 filters can be used. However, differences in alpha channel definitions and other factors limit the range of application. These differences are discussed in detail in Using Alpha Plane with Version 3.0/4.0 Filters

Saving Filter Settings Between Sessions

Where possible, 3DS MAX automatically saves filter settings with the .max file.

Filters from some vendors do not return filter settings to either 3DS MAX or Adobe Photoshop. This means that filter settings you make during a 3DS MAX session are not saved with the file. Filters from Kai Power Tools (KPT) are in this category.

You can do either of the following when using this category of filters:

  • Finish a filter effect before closing the current 3D Studio VIZ session.
  • Keep notes on filter settings so you can reproduce the effect in a later session.

System Setup

Using Alpha Plane with Version 3.0/4.0 Filters


Photoshop Filter System Setup

The Adobe Photoshop Filter Plug-In is normally installed with the release software.

  • This plug-in creates a configuration file stored in the subdirectory 3dsviz\plugcfg. This is the default location for this subdirectory.
  • Photoshop filters from different vendors can be installed in directories of your choice. You browse for a filter location when you use the plug-in.

Note: Consider installing vendor filters in a directory other than Adobe’s default directory. Because Adobe’s native filters only work with Adobe Photoshop, you might want to keep them separate from filters you use with 3DS MAX.

To resolve palette conflicts:

If you use this plug-in on a system running in 256 colors, you might see abrupt switches between the color palettes of 3DS MAX and the filters. To avoid this, at least a high color video card is recommended.


Using Alpha Plane with Version 3.0/4.0 Photoshop Filters

The alpha plane is 8 bits of data per pixel (0 - 255 colors) normally used to determine the degree of transparency in an image.

  • In 3DS MAX, a pixel with an alpha value of 0 (black) is considered opaque, making it accessible for filtering.
  • In Adobe products, the same value is considered transparent, protecting it from filtering.

Other factors include:

  • Differences in the way Version 3.0 and 4.0 Photoshop filters deal with alpha.

Version 3.0 Filters

These filters were designed to work with Photoshop 2.5. They are NOT designed to handle transparency information. If forced to use alpha, these filters convert the alpha plane into an opaque mask that masks alpha pixels in the output image.

Version 4.0 Filters

These filters were designed to work with Photoshop 3.0. They handle transparency information by filtering only those pixels that are opaque in the alpha plane.

Using Alpha Plane with Version 3.0 Filters

When Use Alpha Plane is unchecked, alpha plane information is discarded. When Use Alpha Plane is checked, the alpha plane is used an opaque mask.

Using Alpha Plane with Version 4.0 Filters

When Use Alpha Plane is unchecked, alpha plane information is discarded, When Use Alpha Plane is checked, filtering takes place only on opaque pixels in the alpha plane. Modified pixels are set to opaque in the alpha plane (depending on the filter).


Using Photoshop Filters in the Material Editor

Using the Photoshop Filter Plug-In in the Material Editor, you can:

  • Apply a filter effect to a bitmap and use it as a texture map.
  • Generate an image using a filter that requires no input (for example, a gradient or other procedural effect).

Applying a filter to a bitmap is similar to using a bitmap to create a diffuse map.

How To

To access the Photoshop Plug-In interface:

  1. In the Material Editor, click a sample slot to make it active.
  2. Open the Maps rollout.
  3. Click Diffuse or other map button to display the Material/Map Browser.
  4. Click Adobe Photoshop Plug-In in the list of map types. This displays the Adobe Photoshop Plug-In Parameters rollout, with the closed Bitmap rollout beneath it.
  5. Click the Bitmap rollout to open it.

    6. Choosing a Photoshop Filter

    Using a Photoshop Filter


Choosing a Filter

From the Adobe Photoshop Plug-In Parameters rollout, you can navigate to any location on hard disk or network to find appropriate Photoshop filters.

Some filters will work without setting any other parameters on this rollout. See Photoshop Plug-In Parameters for details on using these parameters. Otherwise, go on to Using a Filter.

How To

To locate and select a filter:

  1. Click Browse to display the Select Plug-In Directory dialog.
  2. Navigate to a directory containing Photoshop filters you want to use. Choose a directory containing 32-bit filters.
  3. Click Use Path. If the filters are valid for this plug-in, the Current Filter area updates the Category and Filter lists.
  4. Open the Filter list and choose a filter.


Using a Photoshop Filter

Once you’ve chosen a filter, you open the Bitmap Parameters rollout. Your choices are determined by whether the filter you are using requires a bitmap for its processing.

How To

To use a filter with a bitmap

  1. Open the Bitmap Parameters rollout if it is closed.
  2. Click the long button, labeled Bitmap.

    3. This displays the Select Texture Image File dialog.

  3. Choose a bitmap for use with the filter. Its name then appears on the long button, and Bitmap is checked in the Filter Source area.
  4. On the Plug-In Parameters rollout, click Get Filter Parameters. This launches the filter and displays its interface.

    5. From this point, you work directly with the filter. When you close the filter, the current state of the image appears in the sample slot.

To use a filter without a bitmap

  1. Open the Bitmap Parameters rollout if it is closed.
  2. In the Filter Source area, check one of the available sizes. This specifies the output image size from those filters that do not require an input image (for example, the KPT Gradient Designer).


Photoshop Plug-In Parameters

Parameters are discussed in topics listed below.

Photoshop Filter Selection Parameters

Photoshop Filter Input Image Parameters


Filter Selection Parameters

Use Plug-In Filter

This area shows the current directory location of Photoshop filters, if one has been chosen. The Browse button opens a dialog that lets you choose or change the directory. For the procedure, see the topic Choosing a Filter

Current Filter

This area contains two list boxes.

Category: Lists the category of Photoshop filter, typically the name of a filter series or supplier.

Filter: Lists the name of a particular filter.

Additional Buttons

There are two separate buttons related to filter selection.

Get Filter Parameters: Launches the filter to set up the parameters. If you assign a Photoshop filter without setting its parameters, the filter interface is displayed before rendering begins.

Save As Defaults: Saves the currently selected filter and its directory as defaults. Also saves the current settings for foreground and background colors and the Use Alpha Plane check box.


Input Image Parameters

Foreground and Background Color: Some Photoshop filters use these colors. For example, the KPT Page Curl filter uses the background color when the corner of the image is lifted. To change either color, click the swatch to display a color selector.

Use Alpha Plane: Checked by default. The effect of this setting depends on the filter version, See Using Alpha Plane.


Adobe Premiere Video Filter Map

Selects the Adobe Premiere Video Filter map type and adds it to the current material in the Material Editor sample window.

This map type accesses image-processing filters from Adobe Premiere. Use it to apply Adobe Premiere Video image-processing effects to an assigned map.

Important: Adobe Premiere filters are third-party products. To learn about a filter’s behavior, setup parameters, and so on, consult the documentation provided with the filter.

The following rollouts for the Adobe Premiere Video Filter are identical to the rollouts for bitmaps:

Coordinates

Noise Parameters

Output Parameters

Reference

The Filter Parameters rollout contains the following controls:

Filter Input

Filter Input: Displays a modal version of the Material/Map browser. Click this button to assign the map to be filtered.

If a modeless version of the Material/Map browser is already displayed, you can assign the map by dragging a map type to this button.

Filter Selection

Filters Available: This list shows all the Adobe Premiere Video filters that are available.

The controls in the Filter Path area choose the folder or folders where Premiere filters are located.

Filters Selected: Lists the filters assigned to the current map. You can assign multiple filters to the same map. Click the right-arrow (>) button to add a filter to this list. Click the left-arrow (<) button to remove the filter.

When you have assigned multiple filters, the order in which they are applied to the map is from top to bottom in the Filters Selected list.

Filter Parameters

Setup at Start: Select a filter in the Filters Selected list, and then click this button to display the filter’s setup dialog. Like the filter itself, the setup dialog is a third-party product.

The preview you see in this dialog displays the effect of the currently selected filter on the result of the filter listed before it (above it) in the Filters Selected list.

The setup dialogs allow you to set start times and end times for the filter’s animation.

Filter Path

The field at the top of this area displays the path used to display filters in the Filters Available list. Click the arrow to drop down the list and choose a different path. You can assign filters from different directories (up to five at a time) to the current map, but you can view only one directory at a time in the Filters Available list.

Add Path: Click to add a new path to the list of paths where this map type looks for Adobe Premiere filters.

You can add up to five directories to the drop-down list.

Remove Path: To remove a path, choose a path from the list, then click this button.

This is disabled unless the list contains two or more paths.

Time Rollout

For a Bitmap, you can set or modify the Time parameters listed below.

These are almost the same as the time parameters for other maps, except that the Playback Rate parameter is replaced by an End Frame parameter, and the Hold end condition is replaced by No Action.

Start Frame: Specifies the frame at which the filter’s effect begins.

End Frame: Specifies the frame at which the filter’s effect ends.

For example, when the Start Frame is 20, the End Frame 70, and No Action is chosen as the End Condition. The filter appears at frame 20, animates for 50 frames, and then stops. The filter’s setup dialog (Setup at Start) displays a frame range from 0 to 50.

End Condition

Determines what happens after the last frame of the animation.

Loop: Causes the filter’s animation to loop over and over again.

Ping-Pong: Causes the filter’s animation to be played backwards, effectively making every animated sequence “loop smoothly.”

No Action: The filter has no effect after the end frame.

How To

To use an Adobe Premiere video filter:

  1. Assign the Adobe Premiere Video Filter map to whichever map channel you want to affect.
  2. Click the button in the Filter Input area to assign the map to be filtered.

    3. If this is the first time you’ve used the Adobe Premiere Video Filter map, you’ll need to specify the path of the directory containing the filters. If you need to specify a path, go to step 3. If not, go to step 4.

  3. Click the Add Path button, and then use the file dialog to select the filter path.
  4. In the Filters Available window, select the filter you want to apply, then click the > button to put the selected filter in the Filters Selected list.

    5. You can add more than one filter to the list. Mutliple filters are applied from the top down.

  5. Select one of the filters in the Filters Selected list, and then click Setup at Start. ( you can simply double-click a filter in the Filters Selected window.)

    6. A third-party setup dialog appears. At this point, you need to use the directions that came with the filter to adjust the parameters. If the selected map is a single-image bitmap, or another map type with no animation, the animation controls won’t work in this dialog. If the map is multi-frame, however, such as an .avi file, you can use the animation controls and the dialog’s Time slider reflects the total number of frames in the animated map.


Bitmap

Selects the Bitmap map type and adds it to the current material in the Material Editor sample window.

A Bitmap is an image produced by a fixed matrix of colored pixels, like a mosaic. Bitmaps are useful for creating many kinds of materials, from wood grains and wall surfaces to skin and feathers. You can also use an animation or video file instead of a bitmap to create an animated material.

3DS MAX supports the following file formats for input to the Material Editor:

Autodesk animation format (flc, fli, cel)
avi
bmp
Cineon/DPX
gif
ifl
jpeg
mpg
png
psd
rla
tga
tif
yuv

Bitmap parameters are divided among the rollouts listed on this page.

Bitmap Coordinates

Bitmap Noise Parameters

Bitmap Parameters

Bitmap Output Parameters

Bitmap Time Parameters


Bitmap Coordinates

Coordinates control how the bitmap is applied to the object or environment.

Tiling and Mirroring

Often when you apply a bitmap, especially as a texture pattern, you want the pattern to repeat. This effect is known as tiling, as in a tiled floor or fountain.

Object with tiled bitmap

In default mapping, tiling is enabled but because the bitmap is scaled to fit the object, you don’t see the effect of tiling unless you offset the UV coordinates or rotate the map—in this case, the portions of the surface from which the bitmap has moved away are filled by other portions of the map. Tiling wraps the object with the bitmap image.

You can control tiling directly, using the Coordinates rollout for the bitmap.

The Tiling value is the number of times the bitmap repeats along the specified dimension. A value of 1.0, the default, maps the bitmap exactly once; a value of 2.0 maps the bitmap twice, and so on. Fractional values map a fractional portion of the bitmap in addition to copies of the whole map. For example, a value of 2.5 maps the bitmap two and a half times.

Tiling values less than one increase the size of the map relative to the object. For example, a value of 0.5 maps half of the bitmap.

Tiling is uniform if both the U and V dimensions are tiled by the same amount.

Mirroring

Mirroring a map is an effect related to tiling. It repeats the map and flips the repeated copy.

As with tiling, you can mirror in the U dimension, the V dimension, or both, and the Tiling parameter for each dimension specifies how many copies of the map are shown. Each copy is flipped relative to its neighbors.

Mirroring a map

Because mirroring defaults to two reflected images of the map, the meaning of the Tiling value differs when Mirror is set. In a single mapping dimension (U or V), a value of 1.0, the default, shows two copies of the bitmap; a value of 2.0 shows four copies; a value of 1.5 shows three copies; and so on. Mirroring in both dimensions multiplies the effect.

Creating Decals

A bitmap used as a decal appears only once, and is not repeated as with tiling. Wherever the decal doesn’t appear on the surface, the surface is rendered as a basic material—that is, with the component colors specified at the material level.

Decal mapping

Decals are useful for mapping single designs, small elements such as stickers or light switches, and so on.

With map trees, as described in the following chapter, a decal might appear on top of a different bitmap or other map type.

Reference

For a Bitmap, you can set or modify the following parameters under Coordinates:

Texture: Click to use the bitmap as a texture map applied to a surface.

Environ Mapping: Click to use the bitmap as an environment map. Then select the type of environment coordinates from the list: spherical, cylindrical, shrink-wrap, or screen. The bitmap is projected into the scene as though it were mapped to an invisible object in the background. Select screen if you want the image to be a flat backdrop in the scene.

Mapping Dropdown List: Lets you choose whether the settings in this rollout wii be Explicit UVW 1, Explicit UVW 2, or Planar from Object XYZ.

Planar from Object XYZ uses planar mapping based on the object’s local coordinates (disregarding the pivot point location). For rendering purposes, planar mapping doesn’t project through to the back of the object unless you turn on Show Map on Back.

Show Map on Back – When on, planar mapping (Planar from Object XYZ) projects through to render on the back of the object. When off, planar mapping doesn’t render on the object’s back. Default = off.

The effect of this toggle is visible only when you render the scene. In viewports, planar mapping always projects to the back of the object, whether Show Map on Back is turned on, or not.

Offset: Changes the position of the bitmap in UV coordinates. The bitmap moves in relation to its size. For example, if you want to shift the bitmap its full width to the left, and half its width downward from its original position, you enter -1 in the U Offset field and 0.5 in the V offset field.

UV/VW/WU: Changes the mapping coordinate system used for the bitmap. The default UV coordinates project the bitmap onto the surface like a slide projector. The VW and WU coordinates rotate the bitmap so that is perpendicular to the surface.

Tiling: Determines the number of times the bitmap is tiled (repeated) along each axis.

Mirror: Mirrors the bitmap left-to-right (U axis) and/or top-to-bottom (V axis).

Tile: These toggles turn tiling on or off in the U or V axis.

Angle U/V/W: Rotate the bitmap the about the U, V, or W axis (degrees).

Rotate: Displays a schematic Rotate Mapping Coordinates dialog that lets you rotate the map by dragging on an arcball diagram (similar to the arcball used to rotate viewports). The Angle UVW values change as you drag in the dialog.

Blur: Affects the sharpness or blurriness of the bitmap based on its distance from the view. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing.

Blur Offset: Affects the sharpness or blurriness of the bitmap without regard to its distance from the view. Blur Offset is the option to use when you want to soften or defocus the details in a map to achieve the effect of a blurred image.

See Blur/Blur Offset for more information.

How To

To set tiling:

  1. In the Coordinates rollout, make sure Tile is checked for the U or V coordinate, or both.
  2. Set the Tiling value for the corresponding coordinate or coordinates.

    3. The material preview changes to show the tiling value you chose.

To set mirroring:

  1. In the Coordinates rollout, make sure Mirror is checked for the U or V coordinate, or both.

    2. Mirror and Tile are exclusive settings -- if one is set when you choose the other, the original setting turns off.

  2. Set the Tiling value for the corresponding coordinate or coordinates.

    3. The material preview changes to show the Tiling value you chose.

To preview the effect of tiling:

  • Use the Tiling flyout to choose a 1x, 2x, 3x, or 4x tiling preview.

The button you choose changes tiling in the active sample slot to 1.0, 2.0, 3.0, or 4.0 in both U and V.

The flyout setting has no effect on the material or its mapping. It does not change the Tiling value or check box setting. It only helps you preview the effect of changing these settings.

To create a decal:

  1. In the Material Editor, choose a bitmap as a diffuse map.
  2. In the map’s Coordinates rollout, uncheck both Mirror and Tile for both the U and V coordinates.
  3. Adjust the U and V Tiling parameters to scale the decal.

    4. Changing the Tiling value changes the size of the mapped bitmap as it does when you tile the map, but with Mirror and Tile unchecked, the bitmap appears only once.

  4. Adjust the U and V Offset parameters to position the decal.

    5. Note: You can also use the Bitmap Parameters rollout’s Cropping and Placement controls to achieve a decal effect.

To offset the position of a map:

  • In the Coordinates rollout, set the U and V values to be between 0.0 and 10, or between -10 and 0.0.

On the surface of the object, the map shifts in the directions you chose.

UV offsets are especially useful when you have turned tiling off and want the bitmap to appear in a single location.

To rotate the map:

  • In the Coordinates rollout, set the Angle.

Positive angles rotate the map in the clockwise direction; negative angles rotate it counterclockwise.

The angle can be up to 360 degrees - which rotates the map completely and has no visible effect unless you are animating the map's rotation.

To preview the effect of tiling:

  • Use the Tiling flyout to choose a 1x, 2x, 3x, or 4x tiling preview.

The button you choose changes tiling in the active sample slot to 10, 20, 30, or 40 in both U and V.

The flyout setting has no effect on the material or its mapping. It does not change the Tiling value or check box setting. It only helps you preview the effect of changing these settings.

To increase or decrease antialiasing Blur:

  • In the map's Coordinates rollout, increase or decrease the Blur value.

For texture maps and other maps besides bump maps (described below), the Blur value is most effective in the 0.5-20 range. Lower values decrease antialiasing; higher values increase it.

The Blur Offset parameter adjusts the image before antialiasing Blur is applied. If all you need is antialiasing, leave Blur Offset at its default of 0.0.

To make a map image fuzzier:

  • In the map's Coordinate's rollout, increase the Blur Offset value.

Blur Offset is a very strong parameter. The Blur Offset spinner has increments of 0.001 Values greater than 0.1 are likely to be too high.

To make a map image sharper:

  • In the map's Coordinates rollout, decrease the Blur Offset value to a value below 0.0.

The negative Blur Offset value sharpens the image.


Bitmap Noise Parameters

You can add a random noise to the appearance of your material. Noise perturbs the UV mapping of pixels by applying a fractal noise function.

Applying noise to a bitmap

Noise patterns can be very complex, and are a versatile way to create apparently random patterns. They are also good for simulating surfaces found in nature, as is characteristic of fractal images.

Noise settings aren’t displayed in viewports.

Reference

The noise controls are in a map’s Noise rollout. For a Bitmap, you can set or modify the following parameters under Noise:

The noise parameters interact closely with each other—slight variations in each can create noticeably different effects.

On: Determines whether the Noise parameters affect the bitmap.

Amount: The strength of the fractal function, expressed as a percentage. If the amount is 0 there is no noise. If the amount is 100 the bitmap becomes pure noise. Default = 1.0.

Levels: Or iterations: the number of times the function is applied. The effect of the level is highly dependent on the Amount value. The stronger the amount, the greater the effect of increasing the Levels value. Range=1-10. Default = 1.

Size: The scale of the noise function relative to geometry. At very small values, the noise effect becomes white noise. At large values, the scale can exceed the scale of the geometry, in which case it has little or no effect. Range=0.001-100. Default = 1.0.

Animate: Determines whether animation is on the noise effect. This checkbox must be set if you intend to animate the noise.

Phase: Controls the speed of the animation of the noise function.

How To

To add noise to a material:

  1. In the Noise rollout, check On.
  2. Adjust the three noise parameters to get an effect you like.

To remove noise from a material:

  • In the Noise rollout, uncheck On.

Noise is no longer applied to the map.

To animate the noise effect:

  1. Move to a non-zero frame.
  2. In the Noise rollout, check Animate.

    3. By default, animation keys are set at either end of the active frame range.

  3. Change the Phase value at different keyframes.


Bitmap Parameters

For a Bitmap, you can set or modify the following parameters in the Bitmap Parameters rollout:

Bitmap: Click to select the bitmap using the standard file browser. Once you have selected the bitmap, its name appears on this button.

Reload: Reloads the bitmap file using the same name and path. This saves you having to use the file browser to reload the bitmap after you’ve updated it in your paint program.

Clicking reload for any instance of the map updates the map in all sample windows and in the scene.

Filtering

Selects the method of pixel averaging used in antialiasing the bitmap. Summed area filtering yields generally superior results but requires much more memory. Pyramidal filtering is quite adequate for most purposes.

Mono Output

Determines which channels of the image are used by the various mapping types.

RGB Intensity: Uses the intensity of the red, green, and blue channels for mapping. The color of the pixels is ignored and only the value or luminance of the pixels is used. The colors are computed as gray values in the range between 0 (black) and 255 (white).

Alpha: Uses the intensity of the alpha channel for mapping.

RGB Channel Output

The options in this area affect only maps for material components that display color; namely Ambient, Diffuse, Specular, Filter Color, Reflection, and Refraction.

RGB: (The default.) Displays the full color values of the pixels.

Alpha as Gray: Displays tones of gray, based on the various levels of the alpha channel are displayed in tones of gray.

Cropping/Placement

The controls in the this area let you crop the bitmap or reduce its size for custom placement.

Croppiing a bitmap means to reduce it to a smaller rectangular area than it originally had. Cropping doesn’t change the scale of the bitmap.

Placing a bitmap lets you scale the size of the map and place it anywhere within its tile. Scaling does change the bitmap’s scale, but shows the entire bitmap.

The four values that specify the placement and size of the cropping or placement region are all animatable.

Cropping and placement settings affect the bitmap only as it’s used for this map and any instances of the map. They have no effect on the bitmap file itself.

Apply: Turn on to use the cropping or placements settings. Turn off to disable them.

View Image: Click to display a Virtual Frame Buffer that shows the bitmap surrounded by a region outline. The region outline has handles at its sides and corners. When cropping is on, dragging the handles changes the size of the crop area. You can also drag within the region area to move it. When placement is on, dragging the region area handles changes the scale of the bitmap, and dragging the image changes its location within the tile area.

The Virtual Frame Buffer dialog has U/V and W/H (width/height) spinners on its toolbar. These are another way to adjust the image’s (or crop area’s) location and size.

When Crop is the active option:

Crop: Makes cropping active.

Place: Makes placement active.

U/V: These spinners adjust the bitmap location.

W/H: These spinners (width and height) adjust the bitmap (or crop area) size.

Jitter Placement: When the checkbox is on, the size and position specified by the spinners or Virtual Frame Buffer is ignored, and 3DS MAX chooses a random size and tile position for the image. The Jitter Placement value specifies the amount of ramdom offset. When the value is zero, there is no random offset. The value can range from zero to 1.0. Default = 1.0.

Alpha Source

Determines the source of the transparency information for bitmaps.

Image Alpha: Uses the image’s alpha channel (disabled if the image has no alpha channel).

RGB Intensity: Converts the colors in the bitmap to grayscale tonal values and uses them for transparency. Black is transparent and white is opaque.

None (opaque): Does not use transparency.

Premultiplied Alpha: Determines how alpha is treated in the bitmap. As a default, the checkbox is on, meaning premultiplied alpha is expected in the file. When turned off, the alpha is treated as non-premultiplied, and any RGB values are ignored.

If you apply an alpha image as, say, a Diffuse map, and it doesn’t decal correctly, it’s probably because the bitmap file contains non-premultiplied alpha, and the RGB values are maintained separately from the alpha values. To correct this, turn off the Premultiplied Alpha checkbox.

How To

To crop an image:

  1. Assign a bitmap using the Bitmap button.
  2. Choose Apply to see the results of cropping in the sample window and in shaded viewports (if Show Map in Viewport is active).
  3. Choose the Crop option.
  4. Click View Image.
  5. Specify a cropping region either by adjusting the spinners or by dragging the corners, sides, or center of the region outline in the View Image dialog.

To place an image:

  1. Assign a bitmap using the Bitmap button.
  2. Choose Apply to see the results of the cropping in the sample window and in shaded viewports (if Show Map in Viewport is active).
  3. Choose the Place option.
  4. Click View Image.

    5. A virtual frame buffer appears, displaying the image. surrounded by a region outline. The region outline appears as a dashed line at the outer edges of the image, with handles on the sides and corners.

  5. Move the image either by adjusting the spinners or by dragging the region outline in the View Image dialog.

    6. The reduced image “decals” on the sample sphere. The diffuse color is visible around the image.

To use the alpha channel that is part of the bitmap:

  • Choose Image Alpha.

This radio button is disabled if the bitmap does not have an alpha channel.

To create an alpha channel based on intensity:

  • Choose RGB Intensity.

3DS MAX creates an alpha channel. Full-intensity areas of the image are opaque, zero-intensity areas are transparent, and intermediate colors become partially transparent.

To use a completely opaque bitmap:

  • Choose None (opaque).

3DS MAX ignores the bitmap's alpha channel, if present, and does not create a new one.


Bitmap Output Parameters

For a Bitmap, you can set or modify the following parameters under Output:

Invert: Inverts (reverses) the hues of the bitmap, like a negative color photo. Default = off.

Clamp: When on, this parameter limits the values of the colors to no greater than 1.0. Turn this on when you’re increasing the RGB Level, but don’t want the map to appear self-illuminated. Default = off.

Note: If you set the RGB Offset to a value greater than 1.0 while Clamp is on, all colors become white.

Alpha from RGB Intensity: When on, an alpha channel is generated based on the intensity of the RGB channels in the map. Black becomes transparent and white becomes opaque. Intermediate values are translucent according to their intensity. Default = off.

Output Amount: Controls the amount of the bitmap being mixed into a Composite material. Default = 1.0.

RGB Offset: Adds to the RGB values of the bitmap colors by the amount set by the spinner, which affects the tonal value of the colors. Eventually the bitmap becomes white and self-illuminated. Lowering the value decreases the tonal value towards black. Default = 0.0.

RGB Level: Multiplies the RGB values of the bitmap colors by the amount set by the spinner, which affects the saturation of the color. Eventually the bitmap becomes fully saturated and self-illuminated. Lowering the value decreases the saturation and makes the bitmap colors grayer. Default = 1.0.

Bump Amount – Adjusts the amount of bumpiness. This value has an effect only when the bitmap is used as a bump map. Default = 1.0.

For example, suppose you have a map instanced for both the Diffuse and the Bump components. If you want to adjust the amount of bumpiness without affecting the Diffuse colors, adjust this value, which changes the amount of bumpiness without affecting the map’s use in other material components.


Bitmap Time Parameters

For a Bitmap, you can set or modify the Time parameters listed below.

These parameters let you change the start time and speed of flics and AVI files used as animated texture maps. They make it much easier to use sequences of images as maps in scenes, because you can control the timing very precisely

Start Frame: Specifies the frame that the playback of the animated map will begin.

Playback Rate: Lets you speed up and slow down the rate that the animation is applied to the map. (1.0 is normal speed, 2.0 is twice as fast, .333 is 1/3 as fast, etc.)

End Condition

Determines what happens after the last frame of the animation.

Loop: Causes the animation to loop over and over again.

Ping-Pong: Causes the animation to be played backwards, effectively making every animated sequence “loop smoothly.”

Hold: Causes the last frame of the animation to be frozen on the surface until the end of the scene.


Cellular Map

Selects the Cellular map type and adds it to the current material in the Material Editor sample window.

This procedural map generates a cellular pattern that’s useful for a variety of visual effects, including mosaic tiling, pebbled surfaces, and even ocean surfaces.

The following rollouts for the Cellular map are identical to the rollouts for bitmaps:

Coordinates

Output Parameters

Tip: The Material Editor’s sample window doesn’t show the cellular effect very clearly. Assigning the map to geometry and rendering the scene, will help you get the effect you want.

Reference

The controls specific to Cellular maps are in the Cellular rollout.

Cell Color

These controls specify the color of the cells themselves.

Color swatch: Click to display the Color Selector and choose a color for the cells.

Map button: Click to assign a map to the cells, rather than a solid color.

Check box: When on, enables, the map. When off, disables the map (cell color reverts to the color swatch).

Variation: When greater than zero, varies the color of the cells by randomly altering RGB values. The higher the Variation, the greater the random effect. This is a percentage value that can range from zero to 100. At zero, the color swatch or the map completely determine cell color. Default = 0.0.

Division Colors

These controls specify the color of the divisions between cells. Cell divisions are a ramp between two colors or two maps.

Color swatches: Click to display the Color Selector and choose one of the cell division colors.

Map buttons: Click to assign a map to one of the cell division colors.

Check boxes: When on, enables the associated map. When off, disables the associated map (the division color reverts to the color swatch).

Cell Characteristics

These controls change the shape and size of the cells.

Circular / Chips: When Circular is chosen, the cells are circular. This gives a more organic, or bubbly look. When Chips is chosen, the cells have linear edges. This gives a more chipped or mosaic appearance.

Size: Alters the overall scale of the map. Adjust this value to fit the map to your geometry. Default = 5.0.

Spread: Alters the size of individual cells. Default = .05.

Bump Smoothing: When you use a cellular map as a bump map, you might encounter aliasing or jagginess at the boundaries of the cells. If this occurs, increase this value. Default = 0.1.

Fractal: When on, makes the cellular pattern a fractal pattern. Default = off.

The remaining three controls are enabled only when Fractal is on:

Iterations: The number of times the fractal function is applied. Caution: Increasing this value increases rendering time. Default = 3.0.

Adaptive: When on, the number of fractal iterations is set adaptively. That is, the number of iterations increases the closer the geometry is to the scene’s point of view, and decreases in the distance. This reduces aliasing and also saves time while rendering. Default = on.

Roughness: When you use the Cellular map as a bump map , this parameter controls how rough the bumps are. When Roughness is zero, each iteration is half the strength of the previous iteration, and half the size. As Roughness increases, each iteration is closer in strength and size to the previous iteration. When Roughness is at its maximum value of 1.0, each iteration is the same size and strength as the previous – in effect, this turns off the fractalization altogether. Roughness has no effect unless Iterations is greater than 1.0. Default = 0.0.

Threshold

These controls affect the relative size of cells and divisions. They are expressed as normalized percentages (0 - 1) of the sizes specified by the default algorithm.

Low: Adjusts the size of the cells. Default = 0.0.

Mid: Adjusts the size of the first division color, relative to the second. Default = 0.5.

High: Adjusts the overal size of divisions. Default = 1.0.

How To

To create confetti:

  1. Assign the Cellular map as a Diffuse map.
  2. Set parameters as follows:

    3. Cell Color: RGB 202, 75, 171
    Variation: 55

    Division Colors (RGB)
    First: 127, 150, 197
    Second: 0, 119, 163.

    Cell Characteristics:
    Circular
    Size: 2.4
    Spread: 0.43
    Fractal: off

    Thresholds:
    Low: 0.19
    Mid: 0.65
    High: 0.86

To create alien skin:

  1. Assign the Cellular map as a Diffuse map.
  2. Set parameters as follows:

    3. Cell Color: RGB 52, 107, 58
    Variation: 0

    Division Colors (RGB):
    First: 112, 119, 64
    Second: 143, 137, 112

    Cell Characteristics
    Circular
    Size: 7.9
    Spread: 0.61
    Fractal: on
    Iterations: 2.0.

    Thresholds:
    Low: 0.17
    Mid: 0.64
    High: 1.0

  3. Copy the Diffuse map to the Bump map.

    4. If you increase the Bump amount, increase the Cellular bump map’s Bump Smoothing value as well.

To create a tile mosaic:

  1. Assign the Cellular map as a Diffuse map.
  2. Set parameters as follows:

    3. Cell Color: RGB 141, 120, 87
    Variation: 54

    Division Colors (RGB):
    First: 128, 128, 128
    Second: 221, 221, 221.

    Cell Characteristics:
    Chips
    Size: 7.0
    Spread: 0.35

    Fractal: off

    Thresholds:
    Low: 0.42
    Mid: 0.76
    High: 1.0

    This is already a good mosaic effect, as you can see if you assign the material to geometry and render it.

  3. Assign a Mix map as the Bump map, and set the Bump Amount to 82.
  4. Click Material/Map Navigator to display the Navigator. Copy the Cellular Diffuse map by dragging it from the Navigator to the Color #2 map window of the Mix map.
  5. A dialog asks if this should be an instance or a copy. Select Copy and click OK.
  6. Assign a Noise map to the Color #1 map window of the Mix map.
  7. Set the Noise parameters as follows:

    8. Noise Type: Fractal
    Levels: 6.0
    Size: 9.3.

  8. In the Mix Parameters rollout of the Mix map, set the Mix Amount to 0.5.


Checker

Checker Map

Selects the Checker map type and adds it to the current material in the Material Editor sample window.

Checker-mapped material

The Checker map applies a two-color checkerboard pattern to the material. The default checker map is a pattern of black and white squares. Checker maps are 2D procedural maps. The component checkers can be either colors or maps.

Tip: Turning on Noise for a Checker map can be an effective way to create irregular patterns with a natural appearance.

Reference

Checker Coordinates

For the Checker map type, you can set or modify the following parameters in the Coordinates rollout:

Texture: Click to use the checker pattern as a texture map applied to a surface.

Environ Mapping: Click to use the checker pattern as an environment map. Then select the type of environment coordinates from the list: spherical, cylindrical, shrink-wrap, or screen.

Offset: Changes the position of the checker pattern in UV coordinates. The checker pattern moves in relation to its size. For example, if you want to shift the checker pattern its full width to the left, and half its width downward from its original position, you enter -1 in the U Offset field and 0.5 in the V offset field.

UV/VW/WU: Changes the mapping coordinate system used for the checker pattern. The default UV coordinates project the checker pattern onto the surface like a slide projector. The VW and WU coordinates rotate the checker pattern so that is perpendicular to the surface.

Tiling: Determines the number of times the checker pattern is tiled (repeated) along each axis.

Mirror: Mirrors the checker pattern left-to-right (U axis) and/or top-to-bottom (V axis).

Angle: Rotates the checker pattern around its center (degrees).

Blur: Affects the sharpness or blurriness of the checker map based on its distance from the view. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing. It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance.

Blur Offset: Affects the sharpness or blurriness of the checker without regard to its distance from the view. Blur Offset is the option to use when you want to soften or defocus the details in a map to achieve the effect of a blurred image.

Checker Parameters

For the Checker map type, you can set or modify the following parameters in the Parameters rollout:

Color #1: Sets the color of one of the checkers. Click to display the Color Selector.

Color #2: Sets the color of one of the checkers. Click to display the Color Selector.

Maps: Select or create a map to use within the area of the checker color. For example, you could put an additional checkerboard within one of the checker colors.

Swap: Switches the position of the two checkers.

Soften: Blurs the edges between the checkers. A little blurs a lot.

How To

To create a Checker map:

  1. Click a map button to assign a map.
  2. Choose Checker in the Material/Map browser, and then click OK.

    3. Checker maps have three rollouts. The controls in the Coordinates and Noise rollouts are identical to those for bitmapped materials. The Checker Parameters ("Checker Params") rollout has controls that are specific to Checker maps.

    Tip: Turning on Noise for a Checker map can be an effective way to create irregular patterns with a natural appearance.

To change the color of one set of squares:

  1. In the Checker Parameters rollout, click a color swatch to display the Color Selector dialog.
  2. Adjust the color.
  3. Click Close to dismiss the dialog.

To use a map for one set of squares:

  • In the Checker Parameters rollout, click a map button to assign a map to a color.

To soften the edge between the two checker colors:

  • In the Checker Parameters rollout, increase the value of Soften.

When Soften equals 0.0, there is a hard edge between the checker colors. Low positive values soften or blur the checker boundary. Larger Soften values can blur the entire material.

To swap the two checker components:

  • In the Checker Parameters rollout, click Swap.


Composite

Composite Map

Selects the Composite map type and adds it to the current material in the Material Editor sample window.

The Composite map type is made up of other maps, which are overlaid on top of one another using the alpha channel. For this type of map, use overlay images that already contain an alpha channel.

Reference

For the Composite map type, you can set or modify the following parameters:

Set Number: Sets the number of maps to be composited.

Material 1, Material 2, and so on

Click to add one of the maps.

If there are more maps than the Material Editor can display in the Composite Parameters rollout at once, use the scrollbar on the right to move among them.

How To

To create a Composite map:

  1. Click a map button to assign a map.
  2. Choose Composite in the Material/Map Browser, and then click OK.

    3. The controls for a Composite map are essentially a list of the maps it combines.

To assign a map:

  • In the Composite Parameters rollout, click a map button.

The Browser appears to let you choose a map type.

To change the number of maps to composite:

  1. In the Composite Parameters rollout, click Set Number.
  2. In the subdialog, choose the number of maps you want, and then click OK.

    3. Warning: If you reduce the number of maps, previously assigned maps can be lost.

    The remaining controls for Composite maps are for moving through a map list that is longer than the rollout.


Dent Procedural Map

Dent Map

Selects the Dent map type and adds it to the current material in the Material Editor sample window.

Dent is a 3D procedural map. During scanline rendering, Dent creates a random pattern based on fractal noise. The effect of the pattern depends on the map type.

As Bump Maps

When used as a bump map, Dent renders three-dimensional dents over the surface of an object. Editable parameters control the size, depth, and complexity of the denting effect.

Dent was designed primarily as a Bump map, and its default parameters are optimized for this use.

As Other Maps

Dent can also be used with other maps. With a diffuse color map, for example, the two colors assigned to Dent mix in random swirls over the surface of the object. Either of the colors can be replaced by other maps.

Dent bump maps

At left, default parameters produce fairly uniform dents over surface.

At right, increased Strength parameter creates a deeper and more irregular pitting effect.

Dent diffuse maps

At left, Dent as a two-color diffuse map.

At right, colors replaced with Dent and Marble maps.

Making a Dent Map

Dent Parameters


Making a Dent Map

How To

To make a Dent map:

  1. In the Material Editor, click a sample slot to make it active.
  2. Open the Maps rollout.
  3. Click Bump or other map button to display the Material/Map Browser.
  4. Click Dent in the list of map types to display the Coordinates and Dent Parameters rollouts.
  5. Set parameters on the Dent Parameters rollout. For details, see the next topics on Dent Parameters.

    6. The active sample slot updates to show the Dent effect.


Dent Parameters

The Dent Parameters rollout contains the following parameters:

Iterations: Sets the number of calculations used to create the dents. Default = 2.

Size: Sets the relative size of dents. Default = 200.

Strength: Increases the number of dents. Default = 20.

Colors: Allows choice of two colors where appropriate for a color component (such as Diffuse). Defaults = black for Color #1 and white for Color #2.

Maps: Allows replacement of colors by maps. Defaults = None.

Swap: Reverses the position of colors.

Parameters on the Coordinates rollout adjust placement of the dent map. See mapping coordinates.

Effect of default parameters

Defaults: Iterations = 2, Size = 200, Strength = 20.

Setting Dent Iterations

Setting Dent Size

Setting Dent Strength

Setting and Swapping Dent Colors

Adjusting Parrameters for Dent Colors

Replacing Dent Colors with Maps


Setting Dent Iterations

The Iterations parameter on the Dent Parameters rollout controls the number of dent calculations.

Dent is based on a fractal-noise equation. During rendering, a dented surface is calculated one or more times to produce the finished effect. Each calculation pass is an iteration.

As a surface is calculated, each iteration adds to the number of dents – and therefore the complexity and randomness of the final surface (dents become dented).

The Dent texture requires heavy calculation, especially at higher iterations. This can slow down rendering time considerably.

Effects of Iteration

The three spheres have uniform settings for size and strength. Only the number of iterations varies.

Iterations = 1, 3, and 6

Size = 500, Strength = 20


Setting Dent Size

The Size parameter on the Dent Parameters rollout controls the relative size of the dent effect. As the size increases, the number of dents decreases when other settings are the same.

Decreasing Size: Creates the appearance of tiny dents spaced fairly evenly. The effect can resemble a "sand-covered" surface.

Increasing Size : Creates the appearance of distinct grooves and gouges on a surface. The effect sometimes has a "hardened lava" look.

Effects of Size

Each set of three spheres uses the same size range, but varies the number of iterations. Strength is held constant in both sets.

Size = 10, 500, and 1000

Iterations = 1, Strength = 20 (default)

Size = 10, 500, and 1000

Iterations = 3, Strength = 20 (default)


Setting and Swapping Dent Colors

Dent can create patterns in an object’s color as well as its surface. By using Dent as a diffuse color map, the entire surface is affected.

Two colors are mixed to produce a random pattern, governed by size, strength, and iteration settings. The default colors are black and white, but either can be replaced or swapped.

Size = 500, Strength = 60

Iterations = 2

Left sphere: Default black and white.

Middle sphere: White replaced with red.

Right sphere: Black and red swapped.

How To

To replace a color:

  1. Click a color swatch labeled Color #1 or Color #2.
  2. In the standard Color Selector dialog, choose a replacement color.

    3. The color updates in the color box and sample slot.

To swap a color:

  • Click the Swap button.

The position of the two colors is reversed in the color boxes and sample slot.


Adjusting Parrameters for Colors

Adjusting Parameters for Dent Colors

By adjusting Strength, Size, and Iterations parameters, you vary the Dent patterns on a diffuse color map.

Effects of Parameters on Diffuse Color

Dent is applied as a diffuse map in these examples. Colors are default black and white.

Size: At low settings, the pattern is dense. As Size increases with other settings held constant, the pattern becomes increasingly sparse.

Strength: At low settings, Color #1 (black) dominates the pattern. As Strength increases, Color #2 (white) replaces Color #1.

Iterations: At low settings, Color #1 is dominant. As iterations increase, Color #2 gradually increases in the pattern.

Size = 100, 500, and 1000

Strength = 20, Iterations = 2

Color #1, #2 = black, white (defaults)

Strength = 20, 50, and 100

Size = 500, Iterations = 2

Iterations = 2, 4, and 8

Size = 500, Strength = 20


Replacing Dent Colors with Maps

You can assign maps to one or both of the Dent color slots. Any kind of map can be used, including Dent. The map overrides the assigned color, which has no effect.

Effect of Replacing with Maps

In the three spheres, the assigned colors are progressively replaced with maps. Parameters of the original Dent map are the same for all spheres.

Size = 500, Strength = 60

Iterations = 2

Left sphere: Dent applied as Diffuse map. Color #1 is black, Color #2 is red.

Middle sphere: Black replaced by Dent map (all defaults).

Right sphere: Red replaced by Marble map (all defaults).

How To

To replace a color with a map:

  1. Click a Map bar marked None next to one of the color swatches.

    2. This displays the Material/Map Browser.

  2. Select a map from the list.

    3. The sample slot updates to show the map in place of the color.


Falloff Map

Selects the Falloff map type and adds it to the current material in the Material Editor sample window.

The Falloff map generates a value from white to black, based on the angular falloff of the face normals on the surface of the geometry. The direction used to specify the angular falloff varies, depending on various methods you can choose. However, with the default settings the map generates white on faces whose normals point outward from the current view, and black on faces whose normals are parallel to the current view.

The standard use of the Falloff map is to provide a greater variety opacity falloff effects than those provided by the Falloff settings in a standard material’s Extended Parameters rollout. To do this, you assign the Falloff map as an opacity map. However, you can also Falloff for special effects, such as an iridescent look.

Reference

The Falloff Parameters rollout contains controls for this map type.

Range

These controls adjust the balance of the falloff effect. The two spinners change their names depending on the type of falloff specified in the Falloff Type rollout.

Swap: Swaps the two values in the two spinners, thereby reversing the falloff effect.

If all other values are at their defaults, clicking Swap changes the falloff effect from the default of outward (the center is more dense) to inward (the edges are more dense). This is similar to the effect of the In/Out falloff options on a standard material’s Extended Parameters rollout.

Perpendicular Value or Away Value: The amount of white generated by a face whose normal is either perpendicular to or away from the falloff direction. Default = 0.0.

Parallel Value or Towards Value: The amount of white generated by a face whose normal is pointed either parallel to or towards the falloff direction. Default = 1.0.

Falloff Type

These two options chose which angle is used to calculate the white-to-black gradient of the map.

Perpendicular/Parallel: (The default.) When chosen, the angular falloff ranges between face normals that are perpendicular to the falloff direction and normals that are parallel to the falloff direction. The falloff range is based on a 90-degree change in face normal direction.

Towards/Away: When chosen, the angular falloff ranges between face normals that face toward (parallel to) the falloff direction and normals that face away from the falloff direction. The falloff range is based on a 180-degree change in face normal direction.

Falloff Direction

The eight radio buttons in this area are mutually exclusive. They let you choose the falloff direction.

Viewing Direction: (The default.) The viewing direction of the current viewport. Changing object orientation doesn’t affect the falloff map.

Object: Lets you pick an object whose orientation determines the falloff direction. Click Pick, and then pick an object in the scene. The name of the object appears in the text field, and the Object radio button is chosen automatically.

If the Object radio button is chosen, the falloff direction is the direction from the point being shaded toward the object's center. Points on the side toward the object center get the Towards value, and those away from the object get the Away value.

Local X/Y/Z Axis: When you have chosen an object, these three options set the falloff direction to be the same as one of the object’s local axes. Changing the orientation of the object changes the falloff direction.

When no object is chosen, the falloff direction uses local X, Y, or Z of the object being shaded.

World X/Y/Z Axis: Set the falloff direction to one of the world coordinate system axes. Changing object orientation doesn’t affect the falloff map.

How To

To control opacity using a Falloff map:

  1. Assign the Falloff map as an opacity map.
  2. Click the Swap button so that the Perpendicular Value is 1.0 and the Parallel Value is 0.0.

    3. This is the same as using a standard material’s Extended Parameters rollout to set Falloff to In with Amt set to 100 and Opacity set to 100.

To mix materials using a Falloff map:

  1. Assign a Mix map as an opacity map.
  2. Click the Mix Amount map button, and assign the Falloff map.

    3. You can now use the Falloff map settings and the Mix map settings. By clicking the Use Curve checkbox in the Mix map, you can adjust the “hardness” of the falloff.

    You can use the Falloff map in a similar fashion with the Blend material to blend between two materials based on falloff angle.

    Tip:By using the Towards/Away option and a picked object for your falloff direction, you can make a an object that has one material on the side facing the pick object, and another material on the side away from the pick object.


Flat Mirror

Flat Mirror Map

Selects the Flat Mirror map type and adds it to the current material in the Material Editor sample window.

The Flat Mirror map type produces a material that reflects surrounding objects when it is applied to a collection of coplanar faces. You assign it as a material’s reflection map.

Reflect/Refract maps don’t work well for flat surfaces because each face reflects part of the environment based on where its surface normal points. Using this technique, a large flat face can reflect only a small part of the environment. Flat Mirror automatically generates a reflection that encompasses a larger part of the environment, to better simulate a mirror-like surface.

Rules for using Flat Mirror

Flat Mirror cannot generate reflections correctly unless you observe these rules:

  • You must assign Flat Mirror to selected faces only.

There are two ways to do this. You can make the Flat Mirror material a sub-material of a Multi/Sub-Object material, or you can use the Apply to Faces with ID control.

  • If you assign Flat Mirror to multiple faces, the faces must lie in a plane.
  • Non-coplanar faces in the same object cannot have the same Flat Mirror material.

In other words, if you want two different planes of an object to have flat reflections, you must use a Multi/Sub-Object material. Assign Flat Mirror to two different sub-materials, and assign different material IDs to the to different planar faces.

  • Because of the preceding restriction, make sure that the material ID used by the Flat Mirror sub-material is unique to the coplanar faces in the object.

If you assign Flat Mirror using Apply to Faces with ID, faces without that ID display the non-reflective components (diffuse color, and so on) of the material with the Flat Mirror reflection map.

Reference

For the Flat Mirror map type, you can set or modify the following parameters:

Blur

Apply Blur: Turns on filtering to blur the maps.

The anti-aliasing is also applied to the Distortion effect – if any – when Apply Blur is turned on.

Blur Amount: Affects the sharpness or blurriness of the generated map based on its distance from the object. The farther away the map is, the greater the blurring. Blur Amount is primarily used to avoid aliasing. It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance. Default = 1.0.

Render

First Frame Only: Tells the renderer only to create the automatic flat mirror on the first frame.

Every Nth Frame: Tells the renderer to create the automatic flat mirror based on the frame rate set by the spinner.

Use Environment Map: When this box is off, environment maps are ignored by the mirror during rendering. It’s useful to turn it off this when you have mirrors in the scene and you’re rotoscoping against a flat screen environment map. A screen environment map does not exist in 3D space the way the other environment-map types do, and will not render properly. Default = on.

Apply to Faces with ID: Lets you specify the material ID number to which you want the mirror assigned. To use this feature, turn on the check box and then use the spinnter to set the material ID number.

This lets you assign a flat-mirror material to an object without having to make it a component of a Multi/Sub-Object material. The restriction is that the other faces on the object must be able to use the non-mirrored properties of the same material (its Diffuse color, and so on). If the other faces need completely different material characteristics, you need to use a Multi/Sub-Object material.

For example, if you have an object such as a box with unique material IDs for each side, you can use Apply to Faces with ID to specify the side of the box that will show the mirror reflection. The remaining sides of the box will have the same material characteristics, but without the reflection.

Distortion

To simulate irregular surfaces, you can distort the flat-mirror reflections. Distortion can be based on a bump map or on noise controls built into Flat Mirror material. The following new controls have been added beneath the Blur and Render controls.

None: Don’t distort the mirror.

Use Bump Map: Distorts the reflection using the material’s bump map.

A flat mirror surface that has a bump map will appear bumpy, but it’s reflection won’t be distorted by the bumps unless you use this option.

Use Built-In Noise: Distorts the reflection using the settings in the Noise area.

Distortion Amount: Adjusts the amount of distortion to the reflected image. This is the only value that affects the amount of distortion. No matter how high the Bump map’s Amount spinner is set, or how extreme the Noise settings, if this Distortion Amount is set to 0, no distortion appears in the reflection itself. This control is disabled when the None option is chosen.

Noise

The controls in this area are disabled unless you choose Use Built-In Noise as the active distortion type.

Regular: Generates plain noise. Basically the same as fractal noise with levels = 1. When the noise type is set to Regular, the levels spinner becomes disabled (because Regular is not a fractal function).

Fractal: Generates noise using a fractal algorithm. The Levels setting sets the number of iterations for the fractal noise.

Turbulence: Generates fractal noise with an absolute value function applied to it to make fault lines. This parameter can be animated continuously. Note that the noise amount must be greater than 0 to see any effects of turbulence.

Phase: Controls the speed of the animation of the noise function. A 3D noise function is used for the noise, such that the first two parameters are U and V and the third is phase.

You can animated this parameter to animate the noise effect.

Size: The scale of the noise function. Smaller values give smaller chunks of noise.

Levels: Sets the number of fractal iterations or turbulence (as a continuous function).

How To

To assign a flat mirror to one face of an object:

  1. In the Material Editor, create a standard material.
  2. Assign a Flat Mirror map as the material's reflection map.
  3. Turn on Apply to Faces with ID, and choose the material ID number the mirrored face will have.
  4. Follow the next set of steps for assigning the material to the object.

To assign the mirror to a flat surface:

  1. Select an object.
  2. In the Modify command panel, apply Edit Mesh to the object.
  3. Make sure Sub-Object is selected, and choose Face as the sub-object category.
  4. Select a single face or multiple faces that lie in a single plane.
  5. Assign the faces the material ID you chose for the Flat Mirror map.

To assign a flat mirror using a Multi/Sub-Object material:

  1. In the Material Editor, create a Multi/Sub-Object material.
  2. Click one of the unused material buttons in the Multi/Sub-Object material's parameters.
  3. In the new Standard sub-material, open the Maps rollout and click the Reflection map button.
  4. In the Material/Map Browser, choose Flat Mirror, and then click OK.

    5. Flat Mirror controls are similar to those for automatic reflection and refraction.

  5. Apply Edit Mesh to the object, turn on Sub-Object and choose Face as the sub-object category.
  6. Select a single face or multiple faces that lie in a single plane.
  7. Assign the faces the material ID corresponding to the Flat Mirror sub-material slot.

    8. Using Multi/Sub-Object material, you can apply Flat Mirror to different faces of the object that are not coplanar. However, faces that are not coplanar must use different sub-material slots -- otherwise, 3DS MAX doesn't correctly generate the flat mirror reflections.


Gradient

Gradient Map

Selects the Gradient map type and adds it to the current material in the Material Editor sample window.

Gradient-mapped material

Gradients shade from one color to another. You specify two or three colors for the gradient; 3DStudio MAX interpolates intermediate values. Gradient maps are 2D maps.

Tip: You can swap colors by dragging one color swatch over another, then clicking Swap in the Copy or Swap Colors dialog that appears. To reverse the overall direction of the gradient, swap the first and third colors.

Gradient Coordinates

Gradient Noise

Gradient Parameters

Gradient Output

How To

To create a Gradient map:

  1. Click a map button to assign a map.
  2. Choose Gradient in the Material/Map browser, and then click OK.

To change a gradient color:

  1. In the Gradient Parameters rollout, click a color swatch to display the Color Selector.
  2. Adjust the color.
  3. Click one of the other color swatches.
  4. Adjust the color.

    5. And so on.

To choose the kind of gradient:

  • Choose either Linear or Radial.

A linear gradient shades from one color to another along a line. A radial gradient has one color on the inside and another on the outside, shading in a circular pattern.

To use a map for a color in the gradient:

  • In the Gradient Parameters rollout, click a map button to assign a map to a color.

To adjust the position of the second color:

  • Change the Color 2 Position value.

At the default value of 0.5, the second color is between the first and third colors. For a linear gradient, the second color’s position ranges from the bottom at 0.0 to the top at 1.0. For a radial gradient the second color’s position ranges from the inside (0.0) to the outside (1.0).


Gradient Coordinates

For the Gradient map type, you can set or modify the following parameters in the Coordinates rollout:

Texture: Click to use the gradient as a texture map applied to a surface.

Environ Mapping: Click to use the gradient as an environment map. Then select the type of environment coordinates from the list: spherical, cylindrical, shrink-wrap, or screen.

Offset: Changes the position of the gradient in UV coordinates. The gradient moves in relation to its size. For example, if you want to shift the gradient its full width to the left, and half its width downward from its original position, you enter -1 in the U Offset field and 0.5 in the V offset field.

UV/VW/WU: Changes the mapping coordinate system used for the gradient. The default UV coordinates project the gradient pattern onto the surface like a slide projector. The VW and WU coordinates rotate the gradient so that is perpendicular to the surface.

Tiling: Determines the number of times the gradient is tiled (repeated) along each axis.

Mirror: Mirrors the gradient left-to-right (U axis) and/or top-to-bottom (V axis).

Angle: Rotates the gradient around its center (degrees).

Blur: Affects the sharpness or blurriness of the gradient based on its distance from the view. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing. It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance. The default value is 1.

Blur Offset: Affects the sharpness or blurriness of the gradient without regard to its distance from the view. Blur Offset is the option to use when you want to soften or defocus the details in a map to achieve the effect of a blurred image.


Gradient Noise

For the Gradient map type, you can set or modify the following parameters in the Noise rollout:

On: Determines whether the Noise parameters affect the gradient.

Amount: The amount of noise applied, as a percentage. If the amount is 0 there is no noise. If the amount is 1 the gradient becomes pure noise. Range=0–1.0. Default=0.

Levels: Determines the amount of fractal energy used to compute the noise.

Size: The size of the noise pattern relative to the surface. Default=1.0.

Animate: Determines whether animation is on the noise effect. This box must be on if you intend to animate the noise. Default = off.

Phase: Shifts the starting point of a sine wave applied to limit the noise function. Animate this parameter to animate the noise pattern. Default=0.


Gradient Parameters

For the Gradient map type, you can set or modify the following parameters in the Parameters rollout:

Color #1-3: Sets the three colors that the gradient interpolates between. Click on them to display the Color Selector. You can drag and drop the colors from one swatch to another.

Maps: Click the select or create a map to display along with the color. Maps are blended into the gradient in the same way that the gradient colors are blended. You can add nested procedural gradients in each window to make 5, 7, 9-colored gradients or more.

Color 2 Position: Controls the center-point of the middle color. Ranges from 0 to 1. When it is 0, color 2 replaces color 3. When it is 1, color 2 replaces color 1.

Gradient Type: Linear interpolates the color based on the vertical position (V coordinate) while radial interpolates based on the distance from the center of the map (center is: U=0.5,V=0.5). Note that with both of these you can rotate the gradient using the angle parameter under Coordinates, which is animatable.

Noise

Noise Amount: When this is non-zero (ranges from 0-1) a noise effect is applied. This perturbs the color interpolation parameter using a 3D noise function based on U, V and Phase. For example, a given pixel is halfway between the first and second color (the interpolation parameter is 0.5). If noise is added, the interpolation parameter would be perturbed by some amount so that it may become less or more than 0.5.

Size: The scale of the noise function. Smaller values give smaller chunks of noise.

Phase: Controls the speed of the animation of the noise function. A 3D noise function is used for the noise, such that the first two parameters are U and V and the third is phase.

Regular: Generates plain noise. Basically the same as fractal noise with levels = 1. When the noise type is set to Regular, the levels spinner becomes disabled (because Regular is not a fractal function).

Fractal: Generates noise using a fractal algorithm. The Levels setting sets the number of iterations for the fractal noise.

Turbulence: Generates fractal noise with an absolute value function applied to it to make fault lines. This parameter can be animated continuously. Note that the noise amount must be greater than 0 to see any effects of turbulence.

Levels: Sets the number of fractal iterations or turbulence (as a continuous function).

Noise Threshold

When the noise value is above the Low threshold and below the High threshold, the dynamic range is stretched to fill 0-1. This makes for a smaller discontinuity at the threshold transition and thus produces less potential aliasing.

High: Sets the high threshold.

Low: Sets the low threshold.

Smooth: Helps make a smoother transition from the threshold value to the noise value. When smooth is 0 no smoothing is applied. When it is 1 the maximum amount of smoothing is applied.


Gradient Output

For the Gradient map type, you can set or modify the following parameters in the Output rollout:

Invert: Inverts (reverses) the hues of the gradient, like a negative color photo.

RGB Level: Multiplies the RGB values of the gradient colors by the amount set by the spinner, which affects the saturation of the color. Eventually the gradient becomes fully saturated and self-illuminated. Lowering the value decreases the saturation and makes the gradient colors grayer.

RGB Offset: Adds to the RGB values of the gradient colors by the amount set by the spinner, which affects the tonal value of the colors. Eventually the gradient becomes white and self-illuminated. Lowering the value decreases the tonal value towards black.

Output Amount: Controls the amount of the gradient map being mixed into a Composite material.


Marble

Marble Map

Selects the Marble map type and adds it to the current material in the Material Editor sample window.

The Marble map produces a marbled surface with colored veins against a colored background. A third color is automatically generated.

Marble Coordinates

Marble Parameters

Note: Another way to create marble is to use the Perlin Marble Map.

How To

To create a Marble map:

  1. Click a map button to assign a map.
  2. Choose Marble in the Material/Map browser, and then click OK.

To adjust the size of Marble veins:

  • In the Marble Parameters rollout, change the Size value to change the overall scale of the vein pattern, and change Vein Width to change the width of veins relative to the overall scale.

The larger the Size value, the wider the veins.

The larger the Vein Width value, the more veins appear relative to the overall pattern.

To change vein color:

  1. In the Marble Parameters rollout, click a color swatch to display the Color Selector dialog.
  2. Adjust the color.

    3. Click OK to dismiss the dialog.

To use a map for a vein;

  • In the Marble Parameters rollout, click a map button to assign a map to a color.

To swap the two vein colors:

  • In the Marble Parameters rollout, click Swap.

To adjust mapping coordinates:

  • In the coordinates rollout, adjust Offset, Tiling, or Angle.

These controls are comparable to the same controls for bitmapped materials. The differences are that 3D maps such as Marble have a W axis as well, and that mirroring is not available.

For mapping coordinates, Marble can use either world coordinates or an object's local mapping coordinates.


Marble Coordinates

For the Marble map type, you can set or modify the following parameters in the Coordinates rollout:

Coordinates

Affects the placement of the veins in the marble.

Offset: Moves the vein pattern along the specified axis.

Tiling: Tiles the vein pattern along the specified axis and makes the veins narrower.

Angle: Rotates the vein pattern along the specified axis.

XYZ/UVW: When UVW is set, it locks the Marble map into position on the vertices of the object so that the map “sticks” to the object as it deforms during animation.

When an object is deforming through its own local space; for example when it is bending or twisting, the object appears to move through the map, because it passes through the XYZ coordinates of the 3D texture. Changing this setting to UVW locks the XYZ coordinates to the UVW coordinates and makes it possible to use the Marble map for deforming surfaces.


Marble Parameters

For the Marble map type, you can set or modify the following parameters in the Marble Parameters rollout:

Color # 1 and Color # 2: Click to display the Color Selector to select the two colors for the veins (color 1) and the background (color 2). A third color is generated from colors 1 and 2.

Maps: Click to select or create the bitmaps or procedural maps to appear in the veins or in the background color.

Swap: Switches the position of the two colors.

Size: Sets the spacing between the veins.

Vein Width: Sets the width of the veins.


Mask

Mask Map

Selects the Mask map type and adds it to the current material in the Material Editor sample window.

The Mask map lets you view one material through another on the surface. The map is viewed through the mask according to the intensity level of the mask.

Reference

For the Mask map type, you can set or modify the following basic parameters:

Map: Click to select or create the map to be viewed through the mask.

Mask: Click to select or create the map to use as a mask.

Invert Mask: Inverts the effect of the mask.

How To

To create a Mask map:

  1. Click a map button to assign a map.
  2. Choose Mask in the Material/Map Browser, and then click OK.

To choose the mask bitmap:

  • In the Parameters rollout, click Mask.

The Browser appears to let you choose the map type to use for the mask.

To choose the map:

  • In the Parameters rollout, click Map.

The Browser appears to let you choose the map type.


Mix

Mix Map

Selects the Mix map type and adds it to the current material in the Material Editor sample window.

The Mix material lets you mix two colors or maps on a single side of the surface.

Mix has an animatable Mix Amount parameter that enables you to draw map morphing function curves to control the way that the two maps are blended over time.

Reference

For the Mix map type, you can set or modify the following parameters:

Color # 1 and Color # 2: Click to display the Color Selector to select the two colors to be mixed.

Mix Amount: Determines the proportion of the mix. 0 means only Color 1 is visible on the surface, 1 means only Material 2 is visible. You can also use a map instead of the mix amount. The two colors will mix in greater or lesser degree according to the intensity of the map.

Maps: Click to select or create the bitmaps or procedural maps to be mixed along with the color.

Mixing Curve

Controls how gradual or how sharp the transition between the two colors being mixed will be (this really only has meaning when you have a map applied to Mix Amount). Try mixing two standard materials using a noise map as a mask for some interesting mottled effects.

Use Curve: Determines whether the Mixing Curve effects the mix.

Transition Zone: Adjusts the level of the upper and lower limits. If the two values are the same, the two materials will meet at a definite edge. Wider ranges give more gradual mixing.

Output Parameters

For a Mix map, you can set or modify the following parameters under Output:

Invert: Inverts (reverses) the hues of the bitmap, like a negative color photo. Default = off.

Clamp: When on, this parameter limits the values of the colors to no greater than 1.0. Turn this on when you’re increasing the RGB Level, but don’t want the map to appear self-illuminated. Default = off.

Note: If you set the RGB Offset to a value greater than 1.0 while Clamp is on, all colors become white.

Alpha from RGB Intensity: When on, an alpha channel is generated based on the intensity of the RGB channels in the map. Black becomes transparent and white becomes opaque. Intermediate values are translucent according to their intensity. Default = off.

Output Amount: Controls the amount of the bitmap being mixed into a Composite material. Default = 1.0.

RGB Offset: Adds to the RGB values of the bitmap colors by the amount set by the spinner, which affects the tonal value of the colors. Eventually the bitmap becomes white and self-illuminated. Lowering the value decreases the tonal value towards black. Default = 0.0.

RGB Level: Multiplies the RGB values of the bitmap colors by the amount set by the spinner, which affects the saturation of the color. Eventually the bitmap becomes fully saturated and self-illuminated. Lowering the value decreases the saturation and makes the bitmap colors grayer. Default = 1.0.

Bump Amount: Adjusts the amount of bumpiness. This value has an effect only when the bitmap is used as a bump map. Default = 1.0.

For example, suppose you have a map instanced for both the Diffuse and the Bump components. If you want to adjust the amount of bumpiness without affecting the Diffuse colors, adjust this value, which changes the amount of bumpiness without affecting the map’s use in other material components.

How To

To create a Mix map:

  1. Click a map button to assign a map.
  2. Choose Mix in the Material/Map Browser, and then click OK.

    3. Mix maps have their own set of parameters.

To change a component color:

  1. In the Mix Parameters rollout, click one of the two color swatches to display the Color Selector dialog.
  2. Adjust the color.

To use a map as a component:

  • In the Mix Parameters rollout, click a map button next to one of the two color swatches.

The Browser appears so you can select a map type.

To swap the two component colors:

  • In the Mix Parameters rollout, click Swap.

To control the mix amount:

  • In the Mix Parameters rollout, adjust the Mix Amount value.

Mix Amount is the percentage of Color #2 used in the mix.

You can also control the mix amount by using a map.

To control the mix amount using a map:

  • In the Mix Parameters rollout, click the map button next to Mix Amount.

The Browser appears so you can select a map type.

The intensity of pixels in this mixing map controls the mix. When the intensity is close to zero, one of the component colors or maps is visible; when it is close to full intensity, the other component is visible.

Tip: Using a Noise map for the mixing map can give good effects that have a natural appearance.

In the Mix Parameters rollout, Mix Amount is grayed out while a map is assigned to this parameter. If Use Curve is off, the mixing map is used as is. If Use Curve is on, you can shift the effect of the mixing map's gradient ramp, offsetting it one way or the other and revealing more or less of the mix components.

To control the mix amount using the mix curve:

  1. In the Mixing Curve area, check Use Curve.
  2. Change the shape of the curve by adjusting the Transition Zone values.


Noise Map Type

Noise Map

Selects the Noise map type and adds it to the current material in the Material Editor sample window.

The Noise map creates random perturbation of a surface based on the interaction of two colors (or materials).

Noise Map Coordinates

Noise Map Output

Noise Map Parameters

How To

To create a Noise map:

  1. Click a map button to assign a map.
  2. Choose Noise in the Material/Map Browser, and then click OK.

To change a component color:

  1. In the Noise Parameters rollout, click a color swatch to display the Color Selector dialog.
  2. Adjust the color.

    3. Click OK to dismiss the dialog.

To use a map for a component:

  • In the Noise Parameters rollout, click a map button to assign a map to a color.

To swap the two component colors:

  • In the Noise Parameters rollout, click Swap.

To adjust mapping coordinates:

  • In the coordinates rollout, adjust Offset, Tiling, or Angle.

These controls are comparable to the same controls for bitmapped materials. The differences are that 3D maps such as Noise have a W axis as well, and that mirroring is not available.

For mapping coordinates, Noise can use either world coordinates or an object's local mapping coordinates.


Noise Map Coordinates

For the Noise map type, you can set or modify the following parameters in the Coordinates rollout:

Coordinates

Affects the placement of the noise pattern.

Offset: Moves the noise along the specified axis.

Tiling: Repeats the noise along the specified axis and makes the veins narrower.

Angle: Rotates the noise along the specified axis.

XYZ/UVW: When UVW is set, it locks the Noise map into position on the vertices of the object so that the map “sticks” to the object as it deforms during animation.

When an object is deforming through its own local space; for example when it is bending or twisting, the object appears to move through the map, because it passes through the XYZ coordinates of the 3D texture. Changing this setting to UVW locks the XYZ coordinates to the UVW coordinates and makes it possible to use the Noise map for deforming surfaces.

Note: The Noise map is antialiased when Filter Maps is checked in the Render Scene dialog.


Noise Map Output

For the Noise map type, you can set or modify the following parameters in the Output rollout:

Invert: Inverts (reverses) the hues of the noise, like a negative color photo.

RGB Level: Multiplies the RGB values of the noise colors by the amount set by the spinner, which affects the saturation of the color. Eventually the noise becomes fully saturated and self-illuminated. Lowering the value decreases the saturation and makes the noise colors grayer.

RGB Offset: Adds to the RGB values of the noise colors by the amount set by the spinner, which affects the tonal value of the colors. Eventually the noise becomes white and self-illuminated. Lowering the value decreases the tonal value towards black.

Output Amount: Controls the amount of the noise map being mixed into a Composite material.


Noise Map Parameters

For the Noise map type, you can set or modify the following parameters:

Noise Type

Regular: Generates plain noise. Basically the same as fractal noise with levels = 1. When the noise type is set to Regular, the levels spinner becomes disabled (because Regular is not a fractal function).

Fractal: Generates noise using a fractal algorithm. The Levels setting sets the number of iterations for the fractal noise.

Turbulence: Generates fractal noise with an absolute value function applied to it to make fault lines.

Noise Threshold

When the noise value is above the Low threshold and below the High threshold, the dynamic range is stretched to fill 0-1. This makes for a smaller discontinuity (1st order instead of 0 order) at the threshold transition and thus produces less potential aliasing.

High: Sets the high threshold.

Low: Sets the low threshold.

Levels: Determines how much fractal energy is used for the Fractal and Turbulence noise functions. You can set the exact amount of turbulence you want, and even continuously animate the number of fractal levels within the turbulence function.

Phase: Controls the speed of the animation of the noise function. Use this option to animate the noise function.

Size: Sets the scale of the noise function.

Color # 1 and Color # 2: Click to display the Color Selector to select the two colors for the veins (color 1) and the background (color 2). A third color is generated from colors 1 and 2.

Maps: Click to select or create the bitmaps or procedural maps to appear in the veins or in the background color.

Swap: Switches the position of the two colors.


Output Map

Selects the Output map type and adds it to the current material in the Material Editor sample window.

This map simply lets you apply Output settings to procedural maps, such as Checker or Marble, that don’t usually have them. The Output controls are the same as they are for bitmaps.

Reference

Output Parameters

In this rollout you choose the map to apply the output controls to.

Map: Click the button to display a modal version of the Material/Map Browser so you can choose the map type. If the modeless Material/Map browser

The check box turns off the map.

Output

The controls in this rollout are the same as for bitmaps.

Invert: Inverts (reverses) the hues of the map, like a negative color photo. Default = off.

Clamp: When on, this parameter limits the values of the colors to no greater than 1.0. Turn this on when you’re increasing the RGB Level, but don’t want the map to appear self-illuminated. Default = off.

Note: If you set the RGB Offset to a value greater than 1.0 while Clamp is on, all colors become white.

Alpha from RGB Intensity: When on, an alpha channel is generated based on the intensity of the RGB channels in the map. Black becomes transparent and white becomes opaque. Intermediate values are translucent according to their intensity. Default = off.

Output Amount: Controls the amount of the map being mixed into a Composite material. Default = 1.0.

RGB Offset: Adds to the RGB values of the map colors by the amount set by the spinner, which affects the tonal value of the colors. Eventually the map becomes white and self-illuminated. Lowering the value decreases the tonal value towards black. Default = 0.0.

RGB Level: Multiplies the RGB values of the map colors by the amount set by the spinner, which affects the saturation of the color. Eventually the map becomes fully saturated and self-illuminated. Lowering the value decreases the saturation and makes the map colors grayer. Default = 1.0.

Bump Amount: Adjusts the amount of bumpiness. This value has an effect only when the map is used as a bump map. Default = 1.0.

For example, suppose you have a map instanced for both the Diffuse and the Bump components. If you want to adjust the amount of bumpiness without affecting the Diffuse colors, adjust this value, which changes the amount of bumpiness without affecting the map’s use in other material components.


Particle Age Map

Selects the Particle Age map type and adds it to the current material in the Material Editor sample window.

This map is for use with particle systems. Typically you assign it as a diffuse map. It alters the color (or map) of a particle based on the particle’s life. The particles in a system begin as one color. At a specified age they begin changing (by interpolation) to a second color, and then they change again to a third color before they die out.

The following rollout for the Particle Age map isidentical to the rollout for bitmaps:

Output Parameters

Tip: This map works well with the Particle MBlur map. For example, you could assign Particle Age as a diffuse map and Particle MBlur as an opacity map. Another way of using Particle Age is in the mask channel of a Blend material. In this case, you’d set up two of the colors to white, and one to black, which would make the particles change materials over their age. In addition, you could set up one of the two materials with an effects channel and use a Glow filter on it through Video Post.

Reference

These are the controls for the Particle Age map.

Color #1: The color of a particle at its birth.

Click the button to the right of the color swatch to assign a map instead of a solid color. The check box turns the map on or off.

Age #1: The age at which a particle starts changing from color #1 to color #2, expressed as a percentage of the particle’s entire life.

Color #2: The color of a particle in mid-life. You can assign a map to this color as well.

Age #2: The age at which a particle’s color equals color #2, expressed as a percentage of the particle’s entire life.

Color #3: The color of a particle at its death. You can assign a map to this color as well.

Age #3: The age at which a particle changes to color #3, expressed as a percentage of the particle’s entire life.


Particle MBlur Map

Selects the Particle MBlur (Motion Blur) map type and adds it to the current material in the Material Editor sample window.

This map alters the opacity of the leading and trailing ends of particles based on their rate of motion. The map is designed to be applied as an opacity map, you can use it as a diffuse map for special effects.

Note: The following conditions must be in effect to achieve particle motion blur:

  • The Particle MBlur map must be in the material that’s assigned to the particles. For best results, it should be assigned as an opacity map.
  • The particle system must support the Particle MBlur map, as follows:
  • In the particle system’s Particle Rotation rollout, in the Spin Axis/MBlur Controls area, the Direction of Travel option must be chosen.
  • In this same area, the Stretch spinner must be greater than 0 to stretch the particles as a percent of their length based on the particle Speed setting.
  • The correct type of particle must be used. MBlur works on all particle types except Constant and Facing.

Reference

These are the parameters for a Particle MBlur map:

Color #1: A particle approaches this color as it reaches its slowest speed. By default, this color is white to provide the opaque end of the range for an opacity map.

Color #2: A particle approaches this color as it speeds up. As a default, this color is black to provide transparency in an opacity map.

Typically, you don’t need to change either of these two colors.

Sharpness: Controls the transparency, relative to the speed. If Sharpness is set to zero, the entire particle is blurry and transparent, no matter how slow it’s traveling. The default setting of 2 works well in many cases.


Perlin Marble Map

Selects the Perlin Marble map type and adds it to the current material in the Material Editor sample window.

This map procedurally generates a marble pattern, using the Perline Turbulence algorithm. It is an alternative to Marble, which is also a 3D material.

The following rollout for the Perlin Marble map is identical to the rollout for Marble maps:

Coordinates

Reference

These are the controls in the Marble Parameters rollout:

Size: The size of the marble pattern. Change this to change the scale of marble, relative to the object’s geometry. Default = 50.

Levels: The number of times the turbulence algorithm is applied. Can range from 1.0 to 10.0. The higher the value, the more complicated the marble pattern. Default = 8.0.

Color 1 and Color 2

These two areas control the two main colors of the marble.

Click the color swatch to display a color selector and change the color. Click the Map button to assign a map instead of a solid color. The check box turns the map on or off.

Saturation: Controls the saturation of the color in the map, without altering the color displayed in the color swatch. Can range from 1 to 100. Lower values darken the color, and higher values lighten it. Default = 70.

Swap: Click to swap color 1 and color 2.


Planet Map

Selects the Planet map type and adds it to the current material in the Material Editor sample window.

This 3D map uses fractal math to simulate the colors on the surfaces of a planet. You can control the size of continents, percent of ocean coverage, and so on. This map is meant to be used as a diffuse map. It does not work well as a bump map.

The following rollout for the Planet map is identical to the rollout for Marble maps:

Coordinates

Tip: The Material Editor’s sample window doesn’t show the planet effect very clearly. Double-click the sample window to get a larger sample window, or assign the map to geometry and render the scene, to help get the effect you want.

Reference

These are the controls in the Planet Parameters rollout:

Continent Size: The size of the fractal noise pattern used to generate the continents. Can range from 0 to 100. The higher the value, the larger the continents. Default = 49,

Island Factor: The size of the fractal noise pattern used to generate islands and mountains. Can range from 0 to 100. At zero, the geography is very low. Higher settings create a more rugged landscape. Default = 0.5.

Ocean %: The percentage of the planet’s surface that’s covered by water.

Random Seed: The seed for pseudo-random generation of the pattern. Changing this number can completely change the pattern, even if other settings remain the same. On the other hand, a different Planet map with the same settings including the same Random Seed will appear the same.

Blend Water/Land: When on, the boundary between water and land is blended, giving a hazy appearance. When off, the boundary between water and land is sharp.

Water Colors

The colors in these three swatches are applied to the water areas of the surface. Color #1 is the “center” area of the water mass, Color #2 surrounds Color #1, and Color #3 surrounds Color #2, meeting the land.

Click a swatch to display a Color Selector that lets you change the color.

Land Colors

The colors in these five swatches are applied to the land areas of the surface. Their arrangement continues that of the water colors, so that Color #4 is the shoreline of the land, meeting the water; then Color #5 comes next, working toward the center of the land mass, and Color # 8 is at the center of the land mass.

Click a swatch to display a Color Selector that lets you change the color.


Reflect/Refract

Reflect/Refract Map

Selects the Reflect/Refract map type and adds it to the current material in the Material Editor sample window.

The Reflect/Refract map produces a reflective or refractive surface. To create reflection, assign this map type as the material’s reflection map. To create refraction, assign it as the refraction map.

Note: A reflective object can reflect another reflective object. In real life, this creates a virtually infinite number of interreflections. In 3D Studio MAX, you can set the number of interreflections to be from 1 to 10. You set this Rendering Iterations parameter in the Render Scene dialog.

This map type works by using six renderings in the form of a cube that surrounds the objects. Reflect/Refract views the cubic maps from the perspective of the pivot point of the object, mapping them onto the object’s surface as a spherical reflection map.

You can choose to generate the cubic maps automatically, or to load previously created maps.

A reflective surface reflects the surrounding maps like a mirror. A refractive surface creates the illusion that the surrounding maps are seen through the surface.

Note: Reflect/Refract is meant for use with curved or irregularly shaped objects. For mirror-like flat surfaces that you want to reflect the environment accurately, use Flat Mirror material. For more accurate refractions, especially for an object in a refractive medium (such as a pencil in a glass of water), use Thin Wall Refraction material.

Automatic Cubic Maps

When you choose automatic cubic maps, 3DS MAX generates the maps based on the perspective of the mapped object’s pivot point. Automatic maps are based on the geometry of the scene.

The advantage to using automatic maps is that the six views are automatically generated at rendering time and can be easily updated for each frame of an animation. The disadvantage is that regenerating the maps increases rendering time. In addition, the maps exist only for the rendering and can’t be edited or otherwise manipulated.

In the Material Editor, automatic reflections or refractions reflect or refract the background of the sample window.

Assigning Cubic Maps

When you choose to load cubic maps from files, you use the controls in the From File area.

Important: Assigned cubic maps must be square, and each of the six maps must be the same size.

The advantage to using From File is that the bitmap files already exist and take less rendering time. In addition, you can edit the bitmap images. The disadvantage is that it’s more difficult to use bitmaps to render an animation because first you need to create the animated bitmaps.

You can automatically load six bitmaps at once if the six bitmaps have valid cubic-map filenames. The first part of all six filenames must be the same, and the last part is an underscore followed by a two-letter abbreviation of the map position. That is,

_UP Up
_DN Down
_LF Left
_RT Right
_FR Front
_BK Back

For example, if you have six bitmaps on disk, labeled view_UP.jpg, view_FR.jpg, view_LF.jpg, and so on, the when you click one of the file buttons and choose the bitmap for that position, all six views are loaded.

If you select a bitmap whose name doesn’t follow the convention, or you select one with a valid cubic-map name but assign it to the wrong button, only that bitmap will be loaded.

Since all assigned bitmaps must be the same size, when you assign a new bitmap to one of the windows, the sample window doesn’t update automatically. This avoids generating an error message each time you assign a bitmap. Once you’ve assigned all six maps and are sure they are square and the same size, click the Reload button to update all of the maps and redisplay the sample window.

You can also use the Reload button to see your changes after you’ve edited one of the cubic maps by using a paint program.

Rendering Cubic Maps

The controls in the Render Cubic Map Files area let you generate the maps automatically and save them to disk. Use the To File button to specify the folder and filename of the Up (_UP) bitmaps. Click Pick Object and Render Maps, and then click the object to map. 3DS MAX creates the files and also assigns them to the six From File map buttons.

Rendering cubic maps has the same effect as automatic with the advantage that map rendering doesn’t have to take place at scene rendering time. The disadvantage is that you can’t create an automatically animated reflections or refractions this way.

Using Animated Cubic Maps

The cubic maps can be animations instead of bitmaps. Be sure that each is square and all have the same resolution. If you want the animated reflections to match animated changes in the scene, use automatic maps and set them to render every Nth frame.

Reference

For the Reflect/Refract map type, you can set or modify the following parameters:

Source

Source: Chooses the source of the six cubic maps.

Automatic: The maps are generated automatically by looking out in six directions from the pivot of the object with the material, and then mapped onto the surface during rendering. When this option is chosen, the options in the Automatic area are enabled, letting you choose whether the maps will be generated only once, or regenerated at speciified frames in the animation.

From File: The maps are previously created bitmaps loaded from disk. When this option is chosen, the options in the From File area are enabled, letting you specify the bitmaps to be used.

The controls in the Render Cubic Map Files area are also enabled when From File is active. These controls let you generate the six cubic reflection maps automatically and save them to files, where you can load them with the From Files controls.

Size: Sets the size of the reflect/refract maps. The default value of 100 produces distinct images. Lower values lose progressively more detail.

Use Environment Map: When this box is unchecked, environment maps are ignored by the mirror during rendering. It’s useful to uncheck this when you have mirrors in the scene and you’re rotoscoping against a flat screen environment map. A screen environment map does not exist in 3D space the way the other environment-map types do, and will not render properly.

Atmosphere Ranges

If your scene contains environmental Fog, the cubic maps must have near and far range settings to properly render the fog from the point of view of the object assigned the material. The Near and Far spinners in this area let you specify a fog range relative to the object.

Near: Sets the near range for fog.

Far: Sets the far range for fog.

Get From Camera: Lets you use the near and far atmosphere range settings of an object in the scene. Click this button, and then and then click the camera.

These values aren’t dynamically linked to the camera object. They are simply copied from the camera’s range values at the time you click the camera. If the cameras range values later change, these

Blur

Apply: Turns on filtering to blur the maps.

Blur Offset: Affects the sharpness or blurriness of the map without regard to its distance from the object. Blur Offset is the option to use when you want to soften or defocus the details in a map to achieve the effect of a blurred image.

Blur: Affects the sharpness or blurriness of the generated map based on its distance from the object. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing. It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance. The default value is 1.

Automatic

This area is enabled only when Automatic is the active source for the reflect/refract maps.

First Frame Only: Tells the renderer to create automatic maps only on the first frame.

Every Nth Frame: Tells the renderer to create animated auto maps based on the frame rate set by the spinner.

From File

This area is enabled when From File is active as the Reflect/Refract source. Here you assign the six bitmaps to be used as the cubic maps.

Up / Down / Left / Right / Front / Back: Click to assign one of the six cubic maps. If the map is one of a set of six with the correct filename conventions (see above in this topic), 3DS MAX loads all six.

If the map doesn’t follow filename conventions or you assign it to a button of a different position (_UP to Front, for example), only that map is assigned, and you must proceed to assign the others manually.

Reload: Reloads the assigned maps and updates the sample window.

You can edit one or more of the cubic maps using a paint program, then click Reload to update the material and the 3DS MAX scene.

Render Cubic Map Files

To File: Click to choose a filename for the Up map (_UP).

Pick Object and Render Maps: Click this button, then click the mapped object to render the six cubic maps and then assign them to the six From File buttons.

How To

To Generate and Save Cubic Maps:

  1. In the Source area, choose the From File option.
  2. In the Render Cubic Map Files area, click the button beside To File.

    3. A file dialog appears. Enter the name you want for one of the six cubic bitmap files. You’re actually specifying the name of the Up bitmap. There are two ways to do this:

    • Specify the entire filename; for example, myview_UP.jpg.
    • Specify the file prefix and extension only, e.g., myview.jpg. Important: You must specify at least a prefix and extension. The ”_UP” is added automatically.
  3. After specifying a filename, click Pick Object and Render Maps.
  4. Click an object in your scene from which you want the six views rendered. This is usually the same object on which you will apply the material, but it doesn’t have to be.

    5. After selecting the object, a virtual frame buffer appears while the six views are rendered and saved to disk. Their filenames then appear in the six buttons in the From File area. Each of the six filenames is identical, except for a two-letter suffix indicating the direction of the rendered view.


RGB Multiply Map

Selects the RGB Multiply map type and adds it to the current material in the Material Editor sample window.

The RGB Multiply Map is typically used for bump maps, where you might want to combine two maps to achieve the correct result.

This map combines two maps by multiplying their RGB values. For each pixel, the red of one map is multiplied times the red of the second map, the blue times the blue, and the green times the green.

If the maps have alpha channels, RGB Multiply can output either map’s alpha channel, or a new alpha channel created by multiplying the alpha channel values of the two maps.

You can also make one of the maps a solid color. This tints the other map.

Reference

These are the controls in the RGB Multiply Parameters rollout:

Color #1 and Color #2: Click a map button to assign one of the maps. The check box disables or enables the map. To tint one of the maps, turn off the other map and click its color swatch to choose the tint color, using .

Alpha From

The radio buttons in this area choose how to generate alpha for the map. If neither map has an alpha channel, these options have no effect.

Map #1: Use the first map’s alpha channel.

Map #2: Use the second map’s alpha channel.

Multiply Alphas: Generate a new alpha channel by multiplying the alpha channels of the two maps.


RGB Tint

RGB Tint Map

Selects the RGB Tint map type and adds it to the current material in the Material Editor sample window.

RGB Tint adjusts the value of the three color channels in an image.

Reference

For the RGB Tint map type, you can set or modify the following parameters:

R/G/B: Click one of the red, green, and blue color swatches to display the Color Selector to adjust the value of the specific channel. For example, if you want to reduce the amount of red in the image, click on the red color swatch and reduce the value in the Value slider. Or you could replace the red channel with blue by changing the hue slider.

Map: Displays the Material/Map Browser to select or create the map to be tinted.

How To

To create an RGB Tint map:

  1. Click a map button to assign a map.
  2. Choose RGB Tint in the Material/Map Browser, and then click OK.

    3. For RGB Tint, you specify the map to tint and how to tint it.

    The three color swatches represent the red, green, and blue channels of the map. Changing a color swatch adjusts the value of its associated color channel. For example, to reduce the amount of red in an image, click the red color swatch and reduce its Value. To replace red in the map image with blue, click the red swatch and change the channel's Hue to blue.

To choose the map:

  • In the Parameters rollout, click Map.

The Browser appears to let you choose the map type.

To tint a color component:

  1. Click the R, G, or B color swatch.
  2. In the Color Selector dialog, choose a new color.

    3. The red, green, or blue value of each pixel in the underlying map changes accordingly.


Smoke Map

Selects the Smoke map type and adds it to the current material in the Material Editor sample window.

This 3D map generates amorphous, fractal-based turbulent patterns. It’s primarily designed to be used as an animated opacity map to simulate the effects of smoke in a beam of light, or other cloudy, flowing mapping effects.

The following rollout for the Planet map is identical to the rollout for Marble maps:

Coordinates

Reference

These are the controls in the Smoke Parameters rollout:

Size: Changes the scale of the smoke “clumps.” Default = 40.

# Iterations: The number of times the fractal function is applied. The higher the value, the more detail within the smoke, but the longer the calculation time. Default = 5.

Phase: Shifts the turbulence within the smoke pattern. Animate this parameter to animate the movement of the smoke. Default = 0.0.

Exponent: Makes color #2, representing the smoke, sharper and more wispy. As this value increases, the smoke “tendrils” become smaller within the pattern. Default = 1.5.

Color #1 and Color #2: Color #1 is usually used as the smokeless portion of the effect, while color #2 represents the smoke. Since this map is usually used as an opacity map, you can adjust the luminance of these color values to alter the contrast of the smoke effect.

You can click a color swatch to change the color. Usually you only need to do this to adjust luminance.

You can click a map button to assign a map instead of a solid color. The check box enables or disables the map.

Swap: Click this to swap the colors.


Speckle Map

Selects the Speckle map type and adds it to the current material in the Material Editor sample window.

This 3D map generates a speckled surface pattern that’s useful as a diffuse map and bump map for creating granite-like and other patterned surfaces.

The following rollout for the Speckle map is identical to the rollout for bitmaps:

Coordinates

Reference

Size: Adjusts the size of the speckles. Use this to make the speckles match your geometry. Default = 60.

Swap: Swaps the two color components.

Color #1, Color #2: Color #1 is the color of the speckles, and color #2 is the color of the background. Click one of the swatches to display the Color Selector and change one of these component colors.

Maps: Click a button to assign a map that replaces one of the color components. Turning off the check box turns off the associated map (the Speckle map reverts to the associated color component).


Splat Map

Selects the Splat map type and adds it to the current material in the Material Editor sample window.

This 3D map generates a fractal surface pattern that’s useful as a diffuse map for creating a pattern similar to splattered paint.

The following rollout for the Splat map is identical to the rollout for bitmaps:

Coordinates

Reference

Size: Adjusts the size of the splats. Use this to make the splats match your geometry. Default = 40.

# Iterations: The number of times the fractal function is evaluated. The higher the number, the more detailed the splats, but the longer the calculation time. Default = 4.

Threshold: Determines how much of color #1 is mixed with color #2. At 0, only color #1 is displayed; at 1, only color #2 is displayed. Default = 0.2.

Swap: Swaps the two color components.

Color #1, Color #2: Color #1 is the color of the background, and color #2 is the color of the splats. Click one of the swatches to display the Color Selector and change one of these component colors.

Maps: Click a button to assign a map that replaces one of the color components. Turning off the check box turns off the associated map (the Splat map reverts to the associated color component).


Stucco Map

Selects the Stucco map type and adds it to the current material in the Material Editor sample window.

This 3D map generates a surface pattern that’s useful as a bump map for creating the effect of a stuccoed surface.

The following rollout for the Stucco map is identical to the rollout for bitmaps:

Coordinates

Reference

Size: Adjusts the size of the indentations. Use this to make the scale of the stucco match your geometry. Default = 20.

Thickness: Blurs the border between the two colors. At zero, the borders are sharp. The higher the Thickness, the more borders are blurred and the less distinct are the indentations. When you use Stucco as a bump map, the indentations are very faint at 0.5 and disappear at values not much greater. Default = 0.15.

Threshold: Determines how much of color #1 is mixed with color #2. At 0, only color #1 is displayed; at 1, only color #2 is displayed. Default = 0.57.

Swap: Swaps the two color components.

Color #1, Color #2: Color #1 is the color of the speckles, and color #2 is the color of the background. Click one of the swatches to display the Color Selector and change one of these component colors.

Tip: Because the Stucco map is meant to be used as a bump map, usually you don’t need to adjust the default colors.

Maps: Click a button to assign a map that replaces one of the color components. Turning off the check box turns off the associated map (the Stucco map reverts to the associated color component).


Thin Wall Refraction Map

Selects the Thin Wall Refraction map type and adds it to the current material in the Material Editor sample window.

Thin Wall Refraction simluates the “jog,” or offset effect, you find when you view part of an image through a plate of glass. For objects that model glass, such as a Box in the shape of a window pane, this map is faster, uses less memory, and provides a much better visual effect than the Reflect/Refract map.

Tip: At 100% refraction and opacity, you can see no diffuse color or mapping, and there is not much illusion of a refractive material – it’s simply invisible. In the parent material’s Maps rollout, set Refraction Amount to 50%, and in the Basic Parameters rollout, set Opacity to a value greater than zero.

Reference

These are the controls in the Thin Wall Refraction Parameters rollout:

Blur

These controls are for antialiasing.

Apply Blur: Turns on filtering to blur the maps.

Blur: Affects the sharpness or blurriness of the generated map based on its distance from the object. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing. It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance. Default = 1.0.

Render

These controls affect how the refraction should behave in animations.

First Frame Only: Tells the renderer to create the refracted image only on the first frame.

This is the fastest option, and you can use it if the camera and refractive object don’t move.

Every Nth Frame: Tells the renderer to regenerate the refracted image based on the frame rate set by the spinner.

Every single frame provides the most accurate result, but takes longest to render.

Use Environment Map: When this box is off, environment maps are ignored by the refraction during rendering. It’s useful to turn it off this when you have refractions in the scene and you’re rotoscoping against a flat screen environment map. A screen environment map does not exist in 3D space the way the other environment-map types do, and will not render properly. Default = on.

Refraction

These controls are specific to the Thin Wall Refraction effect.

Thickness Offset: Affects the size of the refractive offset, or jog effect. Can range from 0.0 to 1.0. At zero there’s no offset, and the object can appear invisible in the rendered scene. At 1.0, the offset is at its greatest. Default = 0.5.

Note: The IOR (index of refraction) spinner in the parent material’s Extended Parameters rollout also affects the offset effect.

Bump Map Effect: Affects the magnitude of refraction due to the presence of a bump map. This parameter multiplies the current bump map Amount in the parent material. Reduce this value to reduce the effect of the secondary refraction; increase this value to increase the effect. If there is no bump map assigned, this value has no effect. Default = 1.0.

If there is unevenness in the surface of the glass, there is a secondary refraction. with and without the bump mapping included. Thin Wall Refraction generates this secondary refraction if the material also has a bump map present. The algorithm guesses at the scaling of the secondary refraction – it can create too large an effect. If this happens, scale the effect down by reducing this value to less than one.

How To

To assign the Thin Wall Refraction map to a material:

  1. Click the Refraction Map button in the material’s Maps rollout.
  2. In the Material/Map Browser, choose Thin Wall Refraction.
  3. Adjust the map’s parameters.
  4. In the parent material, set the Refraction Map Amount to 50%.
  5. Assign the material to an object.


Vertex Color Map

Selects the Vertex Color map type and adds it to the current material in the Material Editor sample window.

This map displays the effects of assigned vertex colors in the rendered scene. You assign vertex colors from the editable mesh. While vertex color assignment is primarily used for special applications, such as radiosity renderers, you can also use it to create colorful, gradient surface effects.

Caution: Assigning vertex colors with the Assign Vertex Colors utility does not work. You must use the editable mesh controls.

Reference

There are no parameters for this map type.

How To

To use the Vertex Color map:

  1. Make the object an editable mesh and assign vertex colors to it.
  2. Assign the Vertex Color map to the diffuse channel of the object.
  3. Render the scene.


Water Map

Selects the Water map type and adds it to the current material in the Material Editor sample window.

This 3D map creates watery or wavy effects. It works by generating a number of spherical wave centers and randomly distributing over a sphere. Variety is provided by a number of parameters, giving you control over the number of wave sets, the amplitude, and the speed of the waves. You can effectively used this map as both a diffuse and bump map at once. It can also be useful in combination with an opacity map.

The following rollout for the Water map is identical to the rollout for bitmaps:

Coordinates

Reference

These are the controls on the Water Parameters rollout:

Num Wave Sets: Specifies how many wave sets are used in the pattern. Wave sets are groups of radially symmetrical waves that originate from randomly computed points along the surface of an imaginary sphere inside the object (a circle, in the case of 2D wave distribution). For calm water, set this to a low number. Use a high number for choppy water. Can range from 1 to 50. Default = 10.

Wave Radius: Specifies the radius, in 3DS MAX units, of the imaginary sphere (3D distribution) or circle (2D distribution) whose surface is the origin of each wave set. A large radius produces large circular wave patterns, while a small radius produces dense, smaller waves. Default = 800.

Wave Len Max and Wave Len Min: The wave length assigned to each wave center is randomly chosen from the interval defined by these two spinners. If these two values are close together, the water appears more regular. If they’re farther apart, the water is less regular. Default Max = 50.0; default Min = 5.0.

Amplitude: Adjusts the strength and the apparent depth of the waves by increasing the contrast between the two colors. Default = 1.0.

Phase: Shifts the wave pattern. Animate this parameter to animate the motion of the pattern.

Distribution 3D/2D: 3D distributes the wave centers on the surface of an imaginary sphere, affecting all sides of a 3D object. 2D distributes the wave in circles centered on the XY plane, which is more appropriate for flat water surfaces such as oceans and lakes.

Random Number Seed: Provides a seed number from which the water pattern is generated. Changing this number changes the water pattern while maintaining all the other settings.

Color #1 and #2: Click the color swatches to change the colors used in the pattern. Use one color for the wave troughs and the other for the wave peaks.

You can also click the map buttons to replace one or both colors with a mapped pattern. The check box enables or disables the map.

Swap (button): Click this to swap the colors.


Wood Procedural Map

Wood Map

Wood is a 3D procedural map. During scanline rendering, Wood creates a wavy grain-like pattern throughout the volume of an object. Parameters let you control the direction, thickness, and complexity of the grain..

As a Diffuse Map

Wood is primarily intended as a diffuse color map. Two colors assigned to Wood mix to form the grain pattern. Either of the colors can be replaced by other maps.

As Other Map Types

Wood can also be applied to other map types. When used as a bump map, Wood renders the grain pattern as a three-dimensional engraving of the surface.

Wood mapped to a box and cylinder

Wood used as a bump map

Making a Wood Map

Wood Parameters


Making a Wood Map

How To

To make a Wood map:

  1. In the Material Editor, click a sample slot to make it active.
  2. Open the Maps rollout.
  3. Click Diffuse or other map button to display the Material/Map Browser.
  4. Click Wood in the list of map types to display the Coordinates and Wood Parameters rollouts.
  5. Set parameters on the Wood Parameters rollout. For details, see the next topics on Wood Parameters.

    6. The active sample slot updates to show the Wood effect.


Wood Parameters

The Wood Parameters rollout contains the following settings:

Grain Thickness: Sets the relative thickness of the color bands that make up the grain. Default = 7.

Radial Noise: Sets the relative randomness of the pattern on a plane perpendicular to the grain. Default = 1.0.

Axial Noise: Sets the relative randomness of the pattern on a plane parallel with the grain. Default = 1.0.

Colors: Allows choice of any two colors for the grain. Defaults = brownish yellow for Color #1 and dark brown for Color #2.

Maps: Allows replacement of colors by maps. Defaults = None.

Swap: Reverses the position of colors.

Parameters on the Coordinates rollout adjust placement of the wood map. See mapping coordinates and Setting Grain Direction..

Defaults: Grain Thickness = 7, Radial Noise = 1.0, Axial Noise = 1.0

Setting Grain Thickness

Setting Grain Direction

Setting Grain Irregularity

Setting Grain Complexity

Setting and Swapping Wood Colors

Replacing Wood Colors with Maps


Setting Grain Thickness

The Grain Thickness parameter on the Wood Parameters rollout controls the spacing of grain. The effect of thickness is relative to the context of the object. A grain that appears unrealistically wide on a small table might be acceptable on a large overhead beam.

Decreasing Grain Thickness: Creates grain lines that are closer together. The effect can resemble the fine grain of slow-growth hardwoods. At 0, grain disappears, resulting in what can look like composition board made from sawdust.

Increasing Grain Thickness: Creates grain lines that are farther apart. The effect can resemble tropical woods that grow continuously.

Effect of Thickness

Grain thickness is shown increasing with identical noise settings.

Grain Thickness = 1, 3

Radial, Axial Noise = 1 (defaults)

Grain Thickness = 7 (default), 14

Radial, Axial Noise = 1 (defaults)


Setting Grain Direction

You control grain direction with the Angle settings on the Coordinates rollout.

Default Grain

Wood is rendered with the grain running along the X axis of the object. This is illustrated by the left cube. The default angle is 0 for X, Y, and Z axes.

Rotated Grain

By rotating the direction of the grain around an axis, you change the rendered effect. In the right cube, the Y axis is set to 90. This rotates the grain direction 90 degrees around the Y axis so that the grain is now running along the Z axis.

Other Angle Effects

Varying a single angle can create distorted grain effects (cylinder at left). Varying the three angles by a uniform amount keeps the grain running parallel through an object (cylinder at right).

Angle = 0,0,0 (defaults) and 0,90,0

Radial, Axial Noise = 1 (defaults)

Grain Thickness = 3

Angle = 0,30,0 and 30,30,30

Radial, Axial Noise = 1 (defaults)

Grain Thickness = 3


Setting Grain Irregularity

The Radial and Axial Noise parameters on the Wood Parameters rollout determine the randomness or "irregularity" of the grain pattern in two directions.

Without any noise, rings and grain are uniform and look inorganic (upper-left cylinder). The defaults for both parameters produce moderate irregularities (upper-right cylinder).

Axial Noise: Controls the irregularity along the length of the grain (cylinder A). Default = 1.0.

Radial Noise: Controls the irregularity of the circular ring structure (cylinder B). Default = 1.0.

Effect of Noise

Cylinders A and B show each parameter acting alone. Cylinder C shows the combination of the same settings.

Radial, Axial Noise = 0,0 and 1,1

Angle Y = 90, Grain Thickness = 3

A: Radial, Axial Noise = 0,2

B: Radial, Axial Noise = 2,0

C: Radial, Axial Noise = 2,2

Angle Y = 90, Grain Thickness = 3


Setting Grain Complexity

You control grain complexity (or "distortion") with the Tile settings on the Coordinates rollout.

By increasing this parameter along a given axis, the grain becomes increasingly compressed and wavy along that axis. Default = 1.0 (X,Y, and Z axes).

Effect of Tile

Box A shows the default on all three axes. Boxes B and C show progressively higher Tile settings for the X axis. Increasing Tile on other axes produces similar effects.

By combining Tile with Axial Noise, even greater distortion is possible. The bottom left box is the same as B, with Tile at 4.0 on the X axis. The bottom right box adds Axial Noise at 4.0.

A: Tile, X axis = 1.0 (default)

B: Tile, X axis = 4.0

C: Tile, X axis = 8.0

Grain Thickness = 3

Tile, X axis = 4.0 for both

Axial Noise = 1 (left), 4 (right)

Grain Thickness = 3


Setting and Swapping Wood Colors

Wood mixes two colors to produce its grain pattern. The default colors are a brownish yellow and a dark brown. Either can be replaced or swapped.

Effect of Color

The choice of colors, along with grain pattern, is the primary way to represent different types of wood. In fairly uniform woods like yellow pine or redwood, the two colors are often near the same settings (examples B and C). Lighting also makes a difference in the apparent colors.

A: Default colors

B: Color #1 = RGB 160,125,50
Color #2 = RGB 170,135,25

C: Color #1 = RGB 140,90,0
Color #2 = RGB 130,80,50

Grain Thickness = 3Other settings at defaults

How To

To replace a color:

  1. Click a color swatch labeled Color #1 or Color #2.
  2. In the standard Color Selector dialog, choose a replacement color.

    3. The color updates in the color box and sample slot.

To swap a color:

  • Click the Swap button.

The position of the two colors is reversed in the color boxes and sample slot.


Replacing Wood Colors with Maps

You can assign maps to one or both of the Wood color slots. Any kind of map can be used, including Wood. The map overrides the assigned color, which has no effect.

Effect of Replacing with a Map

The left box uses defaults. The right box is the same, except that color #1 has been replaced with a Checker map, whose colors have been changed to wood tones.

Left: Default

Right: Color #1 replaced with Checker map

Grain Thickness = 3

Other settings at defaults

How To

To replace a color with a map:

  1. Click a Map bar marked None next to one of the color swatches. This displays the Material/Map browser.
  2. Select a map from the list.

    3. The sample window updates to show the map in place of the color.


Kinds of Compound Materials

In addition to standard materials, you can use compound materials. Most compound materials combine two or more sub-materials. Compound materials are similar to compound maps, but they exist at the material level. Applying a compound material to an object inherently creates a compound effect that often uses mapping. You load or create compound materials using the Material/Map Browser.

Using a filter control, you can choose whether the Browser lists maps or materials or both.

Different types of materials create different effects, behave in particular ways, or are provided as ways to combine multiple materials.

Note: The submaterial buttons and submap buttons for most materials and maps have checkboxes beside each button. These let you disable or enable that branch of the material or map. For example, in the Top/Bottom material, the Top Material and Bottom Material buttons each have checkboxes. Similarly, the Checker map has two map buttons, one for each color. Each button has checkbox beside it that lets you disable that color’s map.

These are the different kinds of compound materials:

Blend: Blend materials, like Mix maps, combine two materials by mixing their pixel colors.

Double Sided: Double Sided materials also store two materials. One material is rendered on the object’s outer faces (the usual side for one-sided materials, as determined by face normals), and the other is rendered on the object’s inner faces.

Matte/Shadow: Matte/Shadow material is used specifically for creating matte objects to use with environment maps. Strictly speaking, it isn’t a compound material because it doesn’t combine other materials: but it doesn’t fit into the standard category, either.

Multi/Sub-Object: Multi/Sub-Object materials are a general way to let you assign more than one material to the same object. The Multi/Sub-Object material stores two or more sub-materials, which you assign at the sub-object level by using the Mesh Select modifier. You can also assign the sub-materials to whole objects by using the Material modifier.

Raytrace: Generates accurate, fully raytraced reflections and refractions. Strictly speaking, Raytrace is not a compound material, but it differs from standard material, using a more realistic color model.

Top/Bottom: Top/Bottom materials store two materials. One material is rendered on an object’s top faces and the other on the object’s bottom faces, depending on whether a face normal points up or down.

How To

To have the Browser list only materials:

  • In the upper set of Show radio buttons, choose Materials.

This option is available only when you’re at the material level in the Material Editor; otherwise, it’s grayed out.


Blend Material

Selects the Blend material type and adds it to the current material in the Material Editor sample window.

The Blend material lets you mix two materials on a single side of the surface.

Blend has an animatable Mix Amount parameter that enables you to draw material morphing function curves to control the way that the two materials are blended over time.

Reference

For the Blend material, you can set or modify the following basic parameters:

Material 1 and Material 2: Click to select or create the two materials to be blended.

Use the check boxes to enable or disable the material.

Mask: Click to select or create a bitmap or procedural map to use as a mask. The two materials will blend in greater or lesser degree according to the intensity of the map.

Use the check box to enable or disable the mask map.

Interactive: Selects which of the two materials is displayed on object surfaces in the interactive renderer.

Mix Amount: Determines the proportion of the blend (percentage). 0 means only Material 1 is visible on the surface, 100 means only Material 2 is visible. You can animate this parameter. Create Material Preview is useful for testing the effect. You can also use a map instead of the mix amount.

The two colors will blend in greater or lesser degree according to the intensity of the map.

Mixing Curve

Control how gradual or how sharp the transition between the two colors being blended will be (this really only has meaning when you have a map applied to Mix Amount). Try blending two standard materials using a noise map as a mask for some interesting mottled effects.

Use Curve: Determines whether the Mixing Curve effects the mix.

Transition Zone: Adjusts the level of the upper and lower limits. If the two values are the same, the two materials will meet at a definite edge. Wider ranges give more gradual blending.

How To

To create a Blend material:

  1. Activate a sample slot in the Material Editor.
  2. Click Type.
  3. In the Material/Map Browser, choose Blend and then click OK.

    4. Blend materials have similar controls to Mix maps.

To specify a component material:

  • In the Basic Parameters rollout, click one of the two material buttons.

The Browser appears so you can choose a material type.

To control the mix amount:

  • In the Basic Parameters rollout, adjust the Mix Amount value.

You can also control the mix amount by using a map.

To control the mix amount using a map:

  • In the Basic Parameters rollout, click the map button next to Mix Amount.

The Browser appears so you can select a map type.

The intensity of pixels in this mixing map controls the mix. When the intensity is close to zero, one of the component colors or maps is visible; when it is close to full intensity, the other component is visible.

Tip: Using a Noise map for the mixing map can give good effects that have a natural appearance.

In the Mix Parameters rollout, Mix Amount is grayed out while a map is assigned to this parameter. If Use Curve is unchecked, the mixing map is used as is. If Use Curve is checked, you can shift the effect of the mixing map's gradient ramp, offsetting it one way or the other and revealing more or less of the mix components.


Double-Sided

Double-Sided Material

Selects the Double-Sided material type and adds it to the current material in the Material Editor sample window.

The Double-Sided material lets you assign two different materials to the front and back faces of an object.

Reference

For the Double-Sided material, you can set or modify the following basic parameters:

Facing Material and Back Material: Click to select or create the materials for the two sides.

Use the check boxes to disable or enable the material.

Translucency: Sets the amount that one material shows through the other (percentage).

How To

To create a Double Sided material:

  1. Activate a sample slot in the Material Editor.
  2. Click Type.
  3. In the Material/Map Browser, choose Double Sided and then click OK.

    4. The Double Sided material controls let you choose the two materials, and also the translucency of the material overall.

To choose the outer material:

  • Click the button labeled Facing Material.

The Browser appears to let you choose a material type.

To choose the inner material:

  1. Go back to the parent material (parameters for the Double Sided material).
  2. Click the button labeled Back Material.

    3. The Browser appears to let you choose a material type.

    The Translucency control affects the blending of the two materials. When Translucency is zero, there is no blend. When Translucency is 9.99 per cent, the outer material is transparent and the inner material is visible on outer faces. At intermediate values, the specified percentage of the inner material "bleeds through" and is visible on outer faces.

To make the material translucent:

  • Set Translucency to a value greater than 0.


Matte/Shadow

Matte/Shadow Material

Selects the Matte/Shadow material type and adds it to the current material in the Material Editor sample window.

The Matte/Shadow material allows you to make whole objects (or any subsets of faces) into matte objects which reveal the current environment map.

It has the additional ability to receive shadows being cast on it from non-matte objects in the scene. Using this technique, you can cast shadows on backgrounds by building matte proxy objects and placing them in front of similar-shaped objects in the background.

Note: The Matte/Shadow effect is visible only when you render the scene. It isn't visible in viewports.

Reference

For the Matte/Shadow material, you can set or modify the following parameters:

Matte

Opaque Alpha: Determines whether or not the matte material appears in the alpha channel. If you uncheck this box, the matte object will not make an alpha channel, and the image can be used for compositing, just as if there are no matte objects in the scene.

Atmosphere

These options determine whether or not fog effects will be applied to the matte surfaces, along with how they’ll be applied.

Apply Atmosphere: Turns the fogging of matte objects on and off. Note that when applying fog, you can choose between two different methods.

You can either apply it as if the matte surface being fogged is at an infinite distance from the camera or apply it as if the matte surface being fogged is actually at that point on the object being shaded. In other words, you can apply the fog in either 2D or 3D to the matte surfaces. The following controls determine how this is applied:

At Background Depth: This is the 2D method. The scanline renderer fogs the scene, and then renders its shadows. In this case, the shadows won’t be lightened by the fog, so if you want to lighten the shadows, you need to turn up the shadow brightness.

At Object Depth: This is the 3D method. The renderer first renders the shadows, and then fogs the scene. Since this varies the amount of fog over the 3D matte surface, the generated matte/alpha channels will not blend perfectly into the background. It’s primary use is to composite an object that’s fogged as if it was in the actual 3D scene that the 2D image it’s in front of is supposed to represent.

Shadow

This section determines whether the matte surfaces receive shadows that are cast upon them and how they receive them.

Receive Shadows: Set to render shadows on the matte surfaces.

Affect Alpha: When turned on, shadows cast on a matte material are applied to the alpha channel. This lets you render bitmaps with alpha channels that you can composite later.

Affect Alpha Is enabled only when Opaque Alpha (in the Matte area) is turned off.

When Affect Alpha is on, the higher the Shadow Brightness value, the more transparent the shadow, allowing the background to show through more, and making the shadow appear brighter.

Shadow Brightness: At 0.5, the shadows will not be attenuated on the matte surface. At 1.0, the shadows are brightened to the color of the matte surface and at 0.0 they are darkened to completely obliterate the matte surface.

Color: Displays a Color Selector to let you choose the color of the shadow. Default = black.

Setting shadow color is especially useful when you’re using a Matte/Shadow material to composite your shadows against a background image: such as video. It lets you tint your shadows to match pre-existing shadows in the image.

How To

To see the effect of Affect Alpha:

  1. Create a scene with one or more objects on a box platform, plus a shadow-casting spotlight.
  2. Assign a Matte/Shadow material to the box, and render the scene with default Matte/Shadow parameters (Opaque Alpha is on, and Affect Alpha is off).
  3. In the resulting virtual frame buffer, click Display Alpha Channel.

    4. The objects all appear as white silhouettes, including the platform.

  4. Uncheck Opaque Alpha, check Receive Shadows and Affect Alpha, and click Render Last.

    5. The silhouette of the box no longer appears, but the other objects and their shadows appear.


Multi/Sub-object

Multi/Sub-Object Material

Selects the Multi/Sub-object material type and adds it to the current material in the Material Editor sample window.

The Multi/Sub-object material lets you assign different materials at the sub-object level of your geometry. You create a multi-material, assign it to an object, and then use the Mesh Select modifier to select faces and choose which of the sub-materials in the multi-material are assigned to the selected faces.

Reference

For a Multi/Sub-object material, you can set or modify the following basic parameters:

Set Number: Sets the number of sub-materials that make up the material. At the Multi/Sub-object material level, the sample window’s sample object shows a patchwork of the sub-materials. (When you edit a sub-material, the sample window display depends on the setting of the Simple Multi Display Below Top Level toggle in the Material Editor Options dialog.)

Material Buttons (1, 2, 3 …)

Click the button to create or edit one of the sub-materials. Each of the sub-materials is a complete material in its own right, with as many maps and levels as you want. Click on the color swatch to the right of the wide buttons to display the Color Selector.

The material’s number is followed by a text box that lets you enter a custom name for the material. The material number on the left (not on the button) is the material ID the sub-material is assigned to.

The check boxes to the right let you turn off a sub-material, making it invisible in the scene and the sample window.

A scroll bar appears to the right of the material list, letting you move among the sub-materials. (You can view up to ten sub-material entries at a time.)

How To

To create a Multi/Sub-Object material:

  1. Activate a sample slot in the Material Editor.
  2. Click Type.
  3. In the Material/Map Browser, choose Multi/Sub-Object and then click OK.

    4. The controls for a Multi/Sub-Object material are essentially a list of the materials it contains.

To assign a sub-material:

  • In the Basic Parameters rollout, click a material button.

The Browser appears to let you choose a material type.

To make one of the sub-materials a solid color:

  • Click the color swatch next to the material button.

The color selection dialog appears to let you choose a color.

To change the number of sub-materials contained in the Multi/Sub-Object material:

  1. In the Basic Parameters rollout, click Set Number.
  2. In the subdialog, choose the number of maps you want, and then click OK.

    3. Warning: If you reduce the number of maps, previously assigned maps can be lost.

    Use the scrollbar to move through a material list that is longer than the rollout.

To assign one of the contained materials to a sub-object selection:

  1. Select the object.
  2. In the Modify command panel, apply Edit Mesh to the object.
  3. Click Sub-Object and choose Face as the sub-object category.
  4. Select the faces to assign a material to.
  5. In the Edit Surface rollout, set the material ID value to the number of the sub-material you want to assign.

    6. The material numbers in the Multi/Sub-Object material and the material ID numbers in the Edit Surface rollout correspond. If you set the ID to a number that doesn't correspond to a material contained in the Multi/Sub-Object material, the faces render as black.


Top/Bottom

Top/Bottom Material

Selects the Top/Bottom material type and adds it to the current material in the Material Editor sample window.

The Top/Bottom material lets you assign two different materials to the top and bottom portions of an object. You can blend the materials into one another.

The object’s top faces are those whose normals point up. The bottom faces have normals that point down. You can choose whether “up” and “down” refer to the scene’s world coordinates, or to the object’s local coordinates.

Reference

For the Top/Bottom material, you can set or modify the following basic parameters:

Top Material/Bottom Material: Click the button to create or edit a material for the top or bottom position.

The check box lets you turn off one of the materials, making it invisible in the scene and the sample window.

Swap: Swaps the position of the top and bottom materials

Blend: Merges the two materials into one another (percentage).

Position: Determines where the division between the two materials falls (percentage, 0 is at the bottom).

Coordinates

This area lets you choose how 3DS MAX determines the boundary between top and bottom.

World: Faces point up or down according to the scene’s world coordinates. When you rotate the object, the boundary between top and bottom faces remains in place.

Local: Faces point up or down according to the object’s local coordinates. When you rotate the object, the material rotates with it.

How To

To create a Top/Bottom material:

  1. Activate a sample slot in the Material Editor.
  2. Click Type.
  3. In the Material/Map Browser, choose Top/Bottom and then click OK.

    4. The Top/Bottom material controls let you choose the two materials, and also the transition between them.

To choose the top or bottom material:

  • Click the button labeled Top Material or Bottom Material.

The Browser appears to let you choose a material type.

To swap the two component materials:

  • In the Basic Parameters rollout, click Swap.

The remaining controls affect the transition between top and bottom.


Animating Materials

This topic gives some suggestions about how to animate materials.

Animating Basic Materials

In general, you animate a basic material by changing its parameters in different keyframes while the Animate button is active. 3D Studio MAX interpolates values between keyframes, as it does when you animate transforms and modifiers.

Be aware that the tracks for a material assigned to an object are distinct from the material tracks that belong to the Material Editor: animating a material in the Material Editor affects the scene only if the material is hot.

Animating Mapped Materials

As with basic materials, you can create animation keys for map parameters.

The noise parameters and the Noise map itself provide the Phase parameter specifically for animating the noise function.

Changing One Material into Another

Probably the easiest way to animate the change of one material into another is to create a Blend material, make the two other materials its sub-materials, and then animate its Mix Amount parameter.

Preview and Playback

When you animate a material, or use an animated bitmap in a material, you can create and view a preview of this material before you decide to use it in a fully rendered animation.

Creating and Playing Animated Material Previews

Synchronizing an Animated Bitmap with the Scene


Creating and Playing Animated Material Previews

You can create a preview movie of an animated material using the Material Editor. These controls are on the Make Preview flyout.

The active preview movie is saved in a file called _medit.avi. Each time you create a new preview, the Material Editor overwrites this file. To keep a preview movie on hand, save it under a different name.

Create Material Preview Parameters

The parameters in the Create Material Preview dialog correspond to parameters you use when you create an animation preview or create an animation with the renderer.

Active Time Segment: Choose to render frames in the active time segment. The default active segment is all frames in the animation.

Custom Range: Choose to specify a range from within this dialog. Use the spinners to specify the start and end of the range.

Every Nth Frame: Sets how many frames to render. Use a value greater than 1 to create a preview that renders and plays more quickly.

Playback FPS: Sets the playback rate in frames per second.

Percent of Output: Use to set a preview frame size other than the default of 100 per cent (101 x 99 pixels). Smaller frame sizes show less detail but render and play back more quickly. Larger frame sizes show greater detail but render and play back more slowly.

How To

To create a preview of an animated material:

  1. Choose Make Preview from the flyout.
  2. In the Create Material Preview dialog set the preview conditions you want, and then click OK.

    3. The Material Editor creates the preview.

To play back a preview of an animated material:

  1. Choose Play Preview from the flyout.

    2. The Material Editor starts the Windows Media Player with the active preview movie loaded.

  2. Click Play to view the preview movie.

To save a preview movie under a different name:

  1. Choose Save Preview from the flyout.

    2. The Material Editor displays a file save dialog.

  2. Enter a new name for the preview, and then click OK.


Synchronizing an Animated Bitmap with the Scene

Bitmaps have a Time rollout with controls that let you synchronize an animated bitmap with scene animation.

Start Frame: The frame number of the 3DStudio MAX scene at which the bitmap animation begins to play.

Playback Rate: Sets the bitmap’s playback rate. This value is a multiplier: 1.0 is one bitmap frame per scene frame, 2.0 is twice as fast, 3.33 is 1/3 as fast, and so on. Default = 1.0.

End Condition: Sets what happens when the bitmap animation ends (if the bitmap animation happens to be shorter than the scene).

Loop causes the bitmap animation to begin over again.

Ping Pong plays the bitmap animation again, but backwards.

Hold freezes on the last frame of the bitmap animation.


Raytrace Material

Raytrace material is a material that creates fully raytraced reflections and refractions. The reflections and refractions it generates are more accurate than those produced by the Reflect/Refract map. Rendering raytraced objects is slower than using Reflect/Refract. On the other hand, Raytrace is optimized for rendering 3DS MAX scenes, and you can further optimize it for your scene by excluding specific objects from raytracing.

Note: You can also use the Raytrace map , which uses the same raytracer to generate accurate, raytraced reflections and refractions. Raytrace Map and Raytrace material have the same name because they use the same raytracer and share global parameters.

The colors in the basic parameters Raytrace material behave differently from colors in standard materials. In effect, standard material colors use the model of painting – they apply arbitrary colors to the surface of an object. Raytracing, on the other hand, is a way of modeling the action of light rays in a scene. The Raytrace material color components behave more like their physical counterparts. In Raytrace material, Diffuse is the color that the surface reflects without specular reflection, while Reflect controls the amount of specular reflection – these two material components are interdependent. If the material is completely reflective, no diffuse color is visible. If the material is completely nonreflective, only the diffuse color is visible.

The Dynamics Properties rollout for the Raytrace material contains the same controls as the dynamics properties for a standard material.

Raytrace material has a large user interface with lots of controls. In general, if you are using Raytrace to create reflections and refractions, the controls in the Basic Parameters rollout are the only ones you need to adjust. The Extended Parameters rollout for Raytrace has controls for special effects, and the Raytracer Controls rollout affects the raytracer itself. In general, you should use the Raytracer Controls if your scene is very large or very complicated, and you are concerned about performance.

Reference

Basic Parameters

The basic parameters in this rollout are similar to the basic parameters for standard materials, but the color components of a Raytrace material behave differently.

As with standard materials, you can use a map for Raytrace color components and various other parameters. The small buttons to the right of the color swatches and parameters take you to the Material/Map Browser to select a map of corresponding type. These are shortcuts that also have corresponding buttons in the Maps rollout. If you have assigned a map to one of these colors, the button displays the letter “M.” An uppercase M means that the corresponding map is assigned and active. A lowercase “m” means that the map is assigned and inactive (turned off).

Shading: Same as for standard materials: can be Phong, Blinn, Constant, or Metal.

Constant shading for Raytrace material uses a Phong highlight model on a faceted object.

2 Sided: Same as for standard materials. When on, shades and raytraces both sides of faces. By default, objects are one-sided in order to speed up rendering.

If you have a 2 sided, reflective and refractive object, the raytracer runs until it hits the maximum recursion level. This can

Wire: Same as for standard materials. When on, renders the material in wireframe mode. You can specify the wrie size in the Extended Parameters rollout.

With pixels, wires maintains the same apparent thickness regardless of the scale of the geometry or how near or far the object is positioned. With units, the wires appear thinner at a distance and thicker at close range, as if they were modeled in the geometry.

Face Map: Applies the material to the faces of the geometry. If the material is a mapped material, it requires no mapping coordinates. The map is automatically applied to each facet of the object.

Super Sample: Super-sampling reduces aliasing in specular highlights and bump maps. It does this by calling the shader five times rather than once, using a quincunx pattern (the five on a domino), then averaging the results. Naturally, this slows down rendering time. Turn this on only if you are having trouble with aliasing in specular highlights or bump maps.

Ambient: This is NOT the same as the standard ambient color. For Raytrace material, this controls an ambient absorbtion factor. Because raytracing accurately models the environment, it doesn’t make sense for a raytraced material to have an ambient color independent of the environment. Instead, this color controls how much the material absorbs ambient light. Setting Ambient to white is the same as locking the ambient and diffuse colors in a standard material. Default = black.

Diffuse: This is similar to the standard diffuse color, but it is not quite the same. The diffuse color is the color that the object reflects, without specular reflection. It is interdependent with the Reflect color. When Reflect is 100% (pure white), the diffuse color has no effect (this differs from the standard material). Default = 50% gray.

When rendered, the appearance of the diffuse color depends on the angle between the light source and the surface normals of the object’s faces. [SHOULD WE SAY MORE ABOUT THIS HERE?]

Reflect: The specular reflection color. This is the color that the reflected environment (that is, the rest of the scene) is filtered through. The color’s Value controls the amount of reflection. If your reflect color is saturated and the diffuse color is black, the effect is like colored chrome (for example, colored Christmas tree balls). This component uses the raytracer -- if the raytracer is turned off, it still respects the environment color or map or the map in the Raytrace material’s Environment component. Default = black –- no reflection.

If raytracing is turned off (in the Raytracer Controls rollout), the object still reflects the environment mapping, but ignores other objects in the scene.

Note: Raytrace reflects and transmits the IDs in material effects channel (G-buffer), so it can create glowing reflections, and so on.

Luminosity: Similar to the standard material's self illumination component, except that it does not depend on the diffuse color. You can have a blue diffuse object with red luminosity. Default = black.

Transparency: Similar to the standard material’s filter color for transmitted light, combined with the standard material’s opacity controls. This color filters scene elements that are behind the object with Raytrace material. Black is opaque, white is fully transparent, and any value in between filters objects behind the raytraced object. A fully saturated color in both the diffuse and transparency components gives the effect of tinted glass. If you want more of an opaque look, pick the color you want as a transparent color, copy it to the diffuse color, make the diffuse color fully saturated, and then adjust the transparency to get the effect you want. Default = black – no transparency.

If raytracing is turned off (in the Raytracer Controls rollout), the object still refracts the environment mapping, but ignores other objects in the scene.

Note: By separating the diffuse, reflect, and transparency components, Raytrace material gives you a great deal of control over how the object reacts to its environment. For example, an object might diffusely reflect red, specularly reflect green, and transmit blue
-- this is not a real-world effect, but it can be useful.

Index of Refr. (Refraction): The index of refraction (IOR) controls how severely the material refracts transmitted light. Left at 1.0, the IOR of air, the object behind the transparent object does not distort. At 1.5 the object behind distorts greatly – like a glass marble. At an IOR slightly less than 1.0, the object reflects along its the edges -- like a bubble seen from under water. Default = 1.0.

Common IOR's (assuming the camera is in air or a vacuum) are:

Air 1.0
Water 1.333
Glass 1.5 to 1.7
Diamond 2.419

In the physical world, the IOR results from the relative densities of the transparent material and the medium the eye or the camera is in. In general, the higher the IOR, the denser the object.

You can also use a map to control the index of refraction. IOR maps always interpolate between 1.0 (the IOR of air) and the setting in the IOR parameter. For example, if the IOR is set to 3.55 and you use a black-and-white Noise map to control IOR, the IORs rendered on the object will be set to values between 1.0 and 3.55 -- the object will appear denser than air. If, on the other hand, your IOR is set to 0.5, then the same map values will render between 0.5 and 1.0 -- as if the camera were under water and the object was less dense than the water.

Specular Highlight

The controls in this area affect the appearance of specular highlights. Specular highlights simulate the surface of the raytraced object reflecting the lights in the scene. Changing the color or intensity of lights in the scene can change the appearance of specular highlights.

As in standard materials, as you adjust the values in this area, the highlight curve at the right changes to give you an idea of the effect. The material preview in the sample window also updates.

Color: This is the color of specular highlights, assuming white lights in the scene.

Click the color swatch to display a Color Selector and change the highlight color.

Shininess: As in standard materials, this is the tightness (or spread) of specular highlights.

Shininess Strength: As in standard materials, this is the intensity of specular highlights. You can set Shininess Strength to a very high value so you can get very strong, tight highlights.

Soften: As in standard materials, lets you soften the effect of highlights formed by glancing light. This is useful because the algorithms for generating specular highlights don’t work at very glancing angles.

You can also use Soften for special effects. Unlike standard materials, you can set Raytrace Soften to values greater than one. High values of Soften with very large, soft specular highlights can give a good rubbery effect.

Environment: Lets you specify an environment map that overrides the global environment map. Both Reflect and Transparency use the scene-wide environment map unless you use this button to specify another map. With this control, you can use different environment maps on a per-object basis, or provide an environment to specified objects when the scene as a whole has none.

This map overrides the scene-wide environment for both reflection and refraction. To override for refraction alone, see the Transparency Environment control in the Extended Parameters rollout.

Use the check box to enable or disable this map.

Tip: You can use any map as the Raytrace environment -- including the Reflect/Refract map. Reflect/Refract map is often adequate for getting the required look, and it renders more quickly than raytracing the entire scene, especially if the Raytrace material is transparent. If you are using Raytrace material just to get the glass to look right on a car's headlight or on a lightbulb hanging in the middle of a room, turn off the raytracer and use an environment map instead.

Bump: This is the same as a standard material's bump map. Click the button to assign the map. Use the spinner to change the bump Amount.

Extended Parameters

Except for the wireframe controls, the controls in the Extended Parameters rollout for Raytrace material are specific to the Raytrace material.

Special Effects

The controls in this area are special effects. They are powerful, but you might need to use some experimentation to use them effectively.

Extra Lighting: Adds light that shines only on objects with the Raytrace material. You can view this as an ambient lighting color that you can control on a per-material basis, but don’t confuse it with the ambient absorbtion from the Basic Parameters rollout. By mapping this parameter, you can simulate radiosity -- the ambient light that results from reflected light in a scene.

You can also use a map for Extra Lighting to simulate the color bleeding that can result from radiosity. For example, in strong light a white shirt next to an orange wall will show a reflected orange color.

Translucency: Creates a translucent effect. The Translucency color is a non-directional diffuse reflection. The diffuse color on an object depends upon the angle between the surface normal and the position of the light source. Translucency doesn't care about the alignment of the surface normal. Because of this, the Translucency color appears as a back light. For thin objects, think of this as shining a light on the back of a piece of rice paper. You can cast shadows onto the back of the paper and see them projected through the paper – this works well with a projector light. On thicker objects, you can get some good wax effects.

Tip: A slight amount of Translucency can add to the realism of skin and eyes.

Fluorescence and Fluor. Bias: Create an effect similar to black light on a black light poster. The light from a black light is largely ultraviolet, outside the visible spectrum. Under black light, fluorescent paints flare or glow. The fluorescence in Raytrace material takes whatever light it sees in the scene, applies a bias curve to it, and then, regardless of the color of the lights in the scene, it illuminates the fluorescent material as if it were lit by white light. [PRECEDING SENTENCE NEEDS TO BE CLEARER – WHAT IS THE PURPOSE OF THE BIAS IF THE COLOR IS THEN IGNORED? I DON’T THINK SCOTT WROTE WHAT HE MEANT]

At 0.5, The Bias makes Fluorescence behave just like diffuse coloring. Bias values higher than 0.5 increase the flourescent effect. Bias values lower than 0.5 make the lighting in the scene have a lesser effect than it does on the diffuse color -- you can get some chromatic shifting effects with this. [FIRST ½ OF PREVIOUS SENTENCE MAKES NO SENSE AT ALL]

Tips: Full saturation and value for the Flourescence color help give the effect of commercial flourescent paints. Also, the Fluorescence color interacts with the Diffuse color, unless Diffuse is a neutral gray.

Wire

Size: Sets the size of the wire in wireframe mode. You can set either pixels (the default) or current units.

Advanced Transparency

The controls in this area let you further tune transparency effects.

Transp. Environment (Transparency Environment): Similar to the environment map in Basic Parameters, but overrides the scene’s environment map for transparency (refraction) only. Transparent objects refract this map, while reflections still reflect the scene (or the Basic Parameters Environment map, if one is chosen).

Click the button to choose the Transparency Environment map. Use the check box to toggle the effect of the map.

Density

The density controls are for transparent and translucent materials. If the material is opaque (the default), they have no effect.

Color: This is a transmission color based on thickness. While filter (Transparency) color tints objects behind the transparent object, the density color gives the appearance of color within the object itself, like tinted glass.

To use, first make sure the object is transparent. Click the color swatch to display the Color Selector and choose a color, then turn on the check box.

The Amount controls the amount of density color. It can range from zero to 1.0. Reducing this value reduces the density color effect. Default = 1.0.

A thin piece of tinted glass is mainly clear, while a thick piece of the same glass has more color. The Start and End controls help you simulate this effect. They are expressed in world units. Start is the position in the object where the density color begins to appear (default = 0.0). End is the position in the object where the density color reaches its full Amount value. To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value.

The object must be at least as thick as the Start value before the density color is visible.

You can map this color component.

Fog: Density fog is also a thickness-based effect. It fills the object with a fog that is both opaque and self illuminated. The effect is like smoke trapped in a glass, or wax at the tip of a candle. Colored fog in tubular objects can resemble neon tubes.

To use, first make sure the object is transparent. Click the color swatch to display the Color Selector and choose a color, then turn on the check box.

The Amount controls the amount of density fog. It can range from zero to 1.0. Reducing this value reduces the density fog effect and makes the fog translucent. Default = 1.0.

The Start and End controls let you adjust the fog effect based on the object’s dimensions. They are expressed in world units. Start is the position in the object where the density fog begins to appear (default = 0.0). End is the position in the object where the density fog reaches its full Amount value. To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value.

You can map this color component.

Raytracer Controls

The controls in this rollout affect the operation of the raytracer itself. They can help you improve rendering performance.

Raytracer Enable

These two toggles enable or disable raytracing of reflections or refractions for this material. If you are using the Raytrace material only for one purpose or the other, turning off the one you aren’t using can improve rendering time.

Raytrace Reflections: Turns raytracing of reflective objects on or off. Default = on.

Raytrace Refractions: Turns raytracing of transparent objects on or off. Default = on.

Reflect Falloff: Reflection falloff dims reflections to black at this distance. Default = 100.0.

Refract Falloff: Refraction falloff dims refractions to black at this distance. Default = 100.0.

Options: Click to display the Raytracer Options dialog.

The Raytracer Options dialog has a number of toggles that enable or disable raytrace features at the global or the local level.

Note: Use this dialog to enable antialiasing.

Global Parameters: Click to display the Global Raytracer Settings dialog.

This dialog controls recursion level, global antialiasing, and renderer acceleration.

Global Exclude: Click to display the global Exclude/Include dialog.

An object that is excluded globally is excluded from the raytracer for the entire scene. That is, it is excluded by all Raytrace materials and Raytrace maps in the scene.

Local Exclude: Click to display the local Exclude/Include dialog.

An object that is excluded locally is excluded from this material only.

Tip: Using exclusion lists is one of the best and simplest ways to speed up the raytracer.

Antialiasing Controls

The remaining controls in the Raytracer Controls rollout affect antialiasing, including blurring and defocusing. By default, these controls are disabled and the raytracer uses global, scene-wide settings.

Basically, you have four options for antialiasing.

  • If you have antialiasing off in the options dialog, you get (approximately) one ray per pixel.
  • If you turn on antialiasing, but disable adaptive, you get a quick antialiasing algorithm that casts a base ray "kernel" of 3 rays, checks them, and if it needs to, it casts more -- this casts up to 12 rays per pixel and works well in most cases.
  • With adaptive turned on, you can set by hand the minimum and the maximum number of rays that will be cast per pixel. Default is 4 – 158.

The adaptive antialiaser can get pretty slow in cases where it has to do a lot of work, but by putting the time into it, it will produce some really nice, hyper-real stills.

  • You can set the minimum and maximum rays to be the same number. This gives you a fixed kernal of N rays per pixel.

Override Global Settings: The remainder of the Raytrace Controls rollout is disabled unless you turn on this toggle. Default = off.

Note: Regardless of the settings here, blurring, defocusing, and antialiasing will not work if the the antialiaser is turned off in the Raytracer Options dialog.

Copy Antialias Parameters: Let you copy antialiasing parameters from the global to the local level, or vice versa.

Global -> Local: Copies global antialiasing parameters to the local, material level.

Local -> Global: Copies the material’s local antialiasing parameters to the global, scene level.

Adaptive Control

Adaptive: Enables the adaptive anti-aliaser for this Raytrace material. Default = on.

Initial Rays: This is the initial number of rays cast per pixel. Default = 4.

Threshold: This determines the sensitivity of the adaption algorithm. It can range from 0 to 1, where 0 always casts the maximum number of rays and 1 always casts only the minimum number of rays. Default = 0.1.

Max. Rays (Maximum Rays): This is the maximum number of rays the algorithm will cast.

Blur / Defocus (Distance Blur)

Blur Offset is similar to blur offset for Bitmap materials, while defocus is based on distance.

Blur Offset: Affects the sharpness or blurriness of the bitmap without regard to its distance from the view. You can use Blur Offset to soften or defocus the details of a reflection or refraction. The value is specified in pixels. Default = 0.0.

See Blur/Blur Offset for more information.

Blur Aspect: This is an aspect ratio that changes the shape of the blur. Usually you will not need to change it. Default = 1.0.

Blur Map: This lets you use a map to apply the blur offset value. That is, where the map is white, blur offset is fully applied, and where it is black, it is ignored. For example, if the map is a Checker map, blur offset is applied only in every other square. Values between black and white cause less blur.

Click the button to assign a blur offset map. Use the check box to enable or disable the map.

Defocusing: Defocusing is a blur based on distance. With Defocus, objects near the surface are not blurred, but objects farther away are blurred. The rays cast are spread as they leave the Raytrace material object's surface. Default = 0.0.

Defocus Aspect: This is an aspect ratio that changes the shape of the defocusing. Usually you will not need to change it. Default = 1.0.

Defocus Map: This lets you use a map to apply the defocus value. That is, where the map is white, defocus is fully applied, and where it is black, it is ignored. For example, if the map is a Checker map, defocus is applied only in every other square. Values between black and white cause less defocusing.

Click the button to assign a blur offset map. Use the check box to enable or disable the map.

Maps

As with a standard material, this rollout contains map buttons for mappable components of the Raytrace material.

The check box at the left enables or disables the map, and the Amount value controls the strength of the map in this material.

About Raytrace Material

This rollout shows information about the creators of the Raytrace material, and the material’s version number.


Raytrace Map

Raytrace Map provides fully raytraced reflections and refractions. The reflections and refractions it generates are more accurate than those produced by the Reflect/Refract map. Rendering raytraced objects is slower than using Reflect/Refract. On the other hand, Raytrace is optimized for rendering 3DS MAX scenes, and you can further optimize it for your scene by excluding specific objects or effects from raytracing.

You can also use the Raytrace material , which uses the same raytracer to generate accurate, raytraced reflections and refractions. The differences between Raytrace map and Raytrace material are:

  • You use Raytrace map as you do other maps. This means you can add raytraced reflections or refractions to any kind of material.
  • You can assign Raytrace map to material components other than reflect or refract, although these are the main ways to use this map.
  • Raytrace map has more extensive attenuation controls than Raytrace material.

Raytrace Map and Raytrace material have the same name because they use the same raytracer and share global parameters.

Reference

Raytracer Parameters

Trace Mode

The radio buttons in this area let you tell the raytracer whether to cast reflected or refracted rays. Raytrace map cannot tell which material component it is assigned to, unless it is assigned to the Reflection or Refraction component.

Auto Detect: (The default.) If assigned to the material’s Reflection component, the raytracer will reflect. Assigned to Refraction, it will refract. If you assign Raytrace to any other component, you have to manually specify whether you want reflected rays or refracted rays.

Note: Auto detect sometimes fails when you use Raytrace as a bump map. If you are creating a reflective bump-mapped object, use one of the explicit options.

Reflection: Tells the raytracer to cast reflected rays off of the object's surface.

Refraction: Tells the raytracer to cast refracted rays into or through the object's surface.

Note: Raytrace reflects and transmits the IDs in material effects channel (G-buffer), so it can create glowing reflections, and so on.

Options: Click to display the Raytracer Options dialog.

The Raytracer Options dialog has a number of toggles that enable or disable raytrace features at the global or the local level.

Note: Use this dialog to enable antialiasing.

Global Parameters: Click to display the Global Raytracer Settings dialog.

This dialog controls recursion level, global antialiasing, and renderer acceleration.

Global Exclude: Click to display the global Exclude/Include dialog.

An object that is excluded globally is excluded from the raytracer for the entire scene. That is, it is excluded by all Raytrace materials and Raytrace maps in the scene.

Local Exclude: Click to display the local Exclude/Include dialog.

An object that is excluded locally is excluded from this material only.

Tip: Using exclusion lists is one of the best and simplest ways to speed up the raytracer.

Background

Use Environment Settings: Tells the raytracer to respect the environment settings of the current scene.

Color Swatch: Tells the Raytracer to override the environment settings with the specified color.

Map Button: Tells the Raytracer to override the environment settings with the specified map.

If you specify an environment map, this overrides the environment map for the scene as a whole. Both reflection and refraction use the scene-wide environment map unless you use this button to specify another map. With this control, you can use different environment maps on a per-object basis, or provide an environment to specified objects when the scene as a whole has none.

Tip: You can use any map as the Raytrace environment -- including the Reflect/Refract map. Reflect/Refract map is often adequate for getting the required look, and it renders more quickly than raytracing the entire scene, especially if the Raytrace material is transparent. If you are using Raytrace material just to get the glass to look right on a car's headlight or on a lightbulb hanging in the middle of a room, turn off the raytracer and use an environment map instead.

Antialiasing

The controls in this rollout affect antialiasing, including blurring and defocusing. By default, these controls are disabled and the raytracer uses global, scene-wide settings.

Basically, you have four options for anti-aliasing.

  • If you have anti-aliasing off in the options dialog, you get (approximately) one ray per pixel.
  • If you turn on anti-aliasing, but disable adaptive, you get a quick antialiasing algorithm that casts a base ray "kernel" of 3 rays, checks them, and if it needs to, it casts more -- this casts up to 12 rays per pixel and works well in most cases.
  • With adaptive turned on, you can set by hand the minimum and the maximum number of rays that will be cast per pixel.

The adaptive antialiaser can get pretty slow in cases where it has to do a lot of work, but by putting the time into it, it will produce some really nice, hyper-real stills.

  • You can set the minimum and maximum rays to be the same number. This gives you a fixed kernal of N rays per pixel.

Override Global Settings: The controls in this rollout are disabled unless you turn on this toggle. Default = off.

Note: Regardless of the settings here, blurring, defocusing, and antialiasing will not work if the the antialiaser is turned off in the Raytracer Options dialog.

Copy Antialias Parameters: Let you copy antialiasing parameters from the global to the local level, or vice versa.

Global -> Local: Copies global antialiasing parameters to the local, material level.

Local -> Global: Copies the material’s local antialiasing parameters to the global, scene level.

Adaptive Control

Adaptive: Enables the adaptive anti-aliaser for this Raytrace material. Default = on.

Initial Rays: This is the initial number of rays cast per pixel. Default = 4.

Threshold: This determines the sensitivity of the adaption algorithm. It can range from 0 to 1, where 0 always casts the maximum number of rays and 1 always casts only the minimum number of rays. Default = 0.1.

Max. Rays (Maximum Rays): This is the maximum number of rays the algorithm will cast.

Blur / Defocus (Distance Blur)

Blur is similar to blur offset for Bitmap materials, while defocus is based on distance.

Blur Offset: Affects the sharpness or blurriness of the bitmap without regard to its distance from the view. You can use Blur Offset to soften the details of a reflection or refraction. This value is specified in pixels. Default = 0.0.

See Blur/Blur Offset for more information.

Blur Aspect: This is an aspect ratio that changes the shape of the blur. Usually you will not need to change it. Default = 1.0.

Blur Map: This lets you use a map to apply the blur offset value. That is, where the map is white, blur offset is fully applied, and where it is black, it is ignored. For example, if the map is a Checker map, blur offset is applied only in every other square. Values between black and white cause less blur.

Click the button to assign a blur offset map. Use the check box to enable or disable the map.

Defocusing: Defocusing is a blur based on distance. With Defocus, objects near the surface are not blurred, but objects farther away are blurred. The rays cast are spread as they leave the Raytrace material object's surface. Default = 0.0.

Defocus Aspect: This is an aspect ratio that changes the shape of the defocusing. Usually you will not need to change it. Default = 1.0.

Defocus Map: This lets you use a map to apply the defocus value. That is, where the map is white, defocus is fully applied, and where it is black, it is ignored. For example, if the map is a Checker map, defocus is applied only in every other square. Values between black and white cause less defocusing.

Click the button to assign a blur offset map. Use the check box to enable or disable the map.

Attenuation

When a ray is reflected off an object or refracted through it, by default the ray travels through space forever, with no attenuation. The controls in this rollout allow you to attenuate rays, so their strength diminishes over distance.

In Raytrace map, attenuation is implemented by a clipping algorithm. Objects beyond the maximum attenuation range aren't even considered by the raytracer. Because of this, assigning attenuation can speed up rendering time.

Attenuation Type:

Off: (The default.) Attenuation is turned off.

Linear: Sets linear attenuation. Linear attenuation is calculated between the start and end range values.

Inverse Square: Sets inverse square attenuation. Inverse square attenuation is calculated beginning at the start range, and doesn’t use the end range. (Inverse square is the actual attenuation rate for light in the real world. However, it doesn’t always give the effect you want in a rendered scene.)

Exponential: Sets exponential attenuation. Exponential attenuation is calculated between the start and end range values. You also specify the exponent to use.

Custom Falloff: Lets you specify a custom curve to use for attenuation (falloff).

Start Range: The distance in world units where attenuation begins. Default = 0.0.

End Range: The distance in world units where the ray is fully attenuated. Default = 100.0.

This is not used by inverse square attenuation.

Exponent: The exponent used in exponential falloff. Default = 2.0.

This is used only by exponential attenuation.

Color

These controls affect the behavior of light rays as they attenuate out. By default, as a ray fades out, it is rendered as the background color. This makes the attenuated ray invisible in the scene.

You can set a custom color instead – this can be useful for debugging your scene.

Background: (The default.) As the ray attenuates out, return the background (either the scene's background or the background specified locally in the Raytracer Parameters rollout) rather than the actual color of what the reflected/refracted ray sees.

Specify: Lets you set the color that is returned by the ray as it attenuates out.

Custom Fallof

Custom Falloff: Enables and uses the falloff curve to determine the falloff between the start and the end ranges.

These are the controls for custom attenuation. At the left is a display of the custom attenuation curve, and below the curve is a gray scale bar that shows how the curve will affect how light rays diminish in strength.

Near: The strength of the reflected/refracted ray at the start range distance. This is a normalized percentage that can range from 0.0 to 1.0. Default = 1.0.

Conrol 1: Controls the shape of the curve near the curve start. Default = 0.667.

Control 2: Controls the shape of the curve near the curve end. Default = 0.333.

Far: The strength of the reflected/refracted ray at the end range distance. This is a normalized percentage that can range from 0.0 to 1.0. Default = 0.0.

Basic Material Extensions

These are controls for fine-tuning the effect of Raytrace map on a material’s reflection component or other component types except refraction.

Reflectivity/Opacity Map

If the raytracer is assigned to any component but Refraction, these controls affect the intensity of the raytracer's results.

Check box: Enables or disables this control.

Spinner: Controls the amount of raytracing used by the material component it’s assigned to. This is analogous to the bitmap material’s Output Amount parameter in the Bitmap Output Parameters rollout.

Map button: Click to assign a map that controls the amount of raytracing. This lets you vary the amount of raytracing used over the surface of the object.

Note: These controls have no effect when the raytracer is assigned to Refraction because of the way standard material blends in the refracted color.

Basic Tinting

These controls let you tint the colors returned by the raytracer. Tinting applies only to reflected colors – it doesn’t affect the material’s diffuse component, and doesn’t apply to refraction.

Enable: Turns basic tinting on or off. Default = off.

Amount: The amount of tinting used . Default = 1.0.

Color swatch: Click to assign a tint color for reflections. Default = white.

Map button: Click to assign a map to use for tinting. This lets you vary the tint colors over the surface of the object.

Use the check box to enable or disable the map.

Refractive Material Extensions

These controls let you fine-tune the effect of Raytrace map on a material’s refraction component.

Color Density (Filter)

These controls let you specify a transmission color based on thickness. While the material’s Filter color component tints objects behind the transparent object, the density color gives the appearance of color within the object itself, like tinted glass.

Tip: Make sure the material is transparent. You won’t be able to see the color density effect if the Opacity value is high.

Enable: Turns color density on or off.

Color swatch: Click to display a Color Selector and choose the transmission color.

Amount: Controls the amount of density color. It can range from zero to 1.0. Reducing this value reduces the density color effect. Default = 1.0.

Start Dist. and End Dist. (Start and End Distance): A thin piece of tinted glass is mainly clear, while a thick piece of the same glass has more color. The Start and End controls help you simulate this effect. They are expressed in world units. Start is the position in the object where the density color begins to appear (default = 0.0). End is the position in the object where the density color reaches its full Amount value. To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value.

Color Map: Click the button to assign a map to the density color component. Use the check box to enable or disable the map.

Fog

Density fog is also a thickness-based effect. It fills the object with a fog that is both opaque and self illuminated. The effect is like smoke trapped in a glass, or wax at the tip of a candle. Colored fog in tubular objects can resemble neon tubes.

Tip: Make sure the material is transparent. You won’t be able to see the fog effect if the Opacity value is high.

Enable: Turns fog on or off.

Color swatch: Click to display a Color Selector and choose the fog color.

Amount: Controls the amount of density fog. It can range from zero to 1.0. Reducing this value reduces the density fog effect and makes the fog translucent. Default = 1.0.

Start Dist. and End Dist. (Start and End Distance): The Start and End controls let you adjust the fog effect based on the object’s dimensions. They are expressed in world units. Start is the position in the object where the density fog begins to appear (default = 0.0). End is the position in the object where the density fog reaches its full Amount value. To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value.

Color Map: Click the button to assign a map to the fog component. Use the check box to enable or disable the map.

About Raytrace

This rollout shows information about the creators of the Raytrace map, and the map’s version number.


Raytracer Options Dialog

These are the global and local toggles for various raytrace features. They are provided to let you squeeze as much performance out of the raytracer as you can.

The Global version of each toggle affects the raytracer globally. That is, this setting applies to ALL Raytrace materials and Raytrace maps in your scene. The Local toggle affects only this particular Raytrace material or map.

These options are all on by default.

Enable Raytracing: Turns the raytracer on or off.

Even with raytracing off, Raytrace material and Raytrace map still reflect and refract the environment map.

Antialiasing: Turns antialiasing on or off.

Antialiasing is possibly the slowest portion of raytrace rendering.

Note: This must be on for the antialiasing controls in the Raytracer Controls rollout to have any effect.

Self Reflect/Refract: Turns self reflection/refraction on or off.

Can an object see itself? For example, a teapot's body reflects the teapot’s handle, but a sphere will never see itself. If you don't need this effect, you can improve render time by turning off this toggle.

Atmosphere: Turns the raytracing of atmospheric effects -- combustion, fog, volume light, and so on – on or off.

Objects Inside Raytraced Objects: Turns the raytracing of objects inside raytraced objects on or off.

Atmosphere Inside Raytrace Objects: Same as the previous control, but for atmospheric effects instead of objects.

Color Density / Fog: Turns the color density and fog features on or off.

Reflect/Refract Material ID: Turns the reflections of the material ID's in the renderer's G-buffer on or off.

By default, Raytrace material and Raytrace map reflect a materials ID as well as its appearance, so that G-buffer effects are not lost. For example, if a raytraced object reflects a lamp made to glow with the Video Post Glow filter, the reflection glows as well.


Global Raytracer Settings Dialog

These parameters globally control the raytracer itself. That is, they affect ALL Raytrace materials and Raytrace maps in your scene.

Ray Depth Control

Ray depth is also known as recursion depth. This is how many times a ray is allowed to bounce before it is considered lost or trapped. The greater the depth, the more memory is required for rendering.

Maximum Depth: Sets the maximum recursion depth. You can increase this value to (potentially) increase the realism of your rendered scene, at a cost of rendering time. You can reduce this value to reduce rendering time. Default = 9.

Color to use at Max Depth

As a rule, when a ray reaches the maximum depth, it is rendered as the background color. This makes the “lost” ray invisible in the scene.

You can set a custom color instead – this can be useful for debugging your scene.

Tip: If you are having trouble with getting complex objects to render, especially glass, specify the max recursion color to something obvious, like magenta, and your background color to something that contrasts, like cyan. The chances are that a lot of your rays are getting lost in either max recursion or just being shot off into the world, totally missing anything you think they should see. Try rendering the scene again. If this is the problem, try reducing the Maximum Depth value.

Specify: Lets you specify what color the raytracer returns when the ray is considered lost or trapped. Click the color swatch to change this color.

Background: (The default.) Returns the background color when the ray is considered lost or trapped. For Raytrace material, the background color is the global environment background -- or the environment specified locally for the material. For Raytrace map, the background color is either the global environment background, or set locally in the Raytracer Parameters rollout.

Adaptive Antialiasing

These controls are the same as for Raytrace material, which has a fuller description of the antialiasing options.

Initial Rays: This is the initial number of rays cast per pixel. Default = 4.

Adaptive: Globally enables the adaptive anti-aliaser. Default = on.

Note: Antialiasing must also be enabled in the Raytracer Options dialog.

Threshold: This determines the sensitivity of the adaption algorithm. It can range from 0 to 1, where 0 always casts the maximum number of rays and 1 always casts only the minimum number of rays. Default = 0.1.

Max. Rays (Maximum Rays): This is the maximum number of rays the algorithm will cast. Default = 32.

Blur Offset: Affects the sharpness or blurriness of the bitmap without regard to its distance from the view. You can use Blur Offset to soften the details of a reflection or refraction. Default = 0.0.

See Blur/Blur Offset for more information.

Blur Aspect: This is an aspect ratio that changes the shape of the blur. Usually you will not need to change it. Default = 1.0.

Defocusing: Defocusing is a blur based on distance. With Defocus, objects near the surface are not blurred, but objects farther away are blurred. The rays cast are spread as they leave the Raytrace material object's surface. Default = 0.0.

Defocus Aspect: This is an aspect ratio that changes the shape of the defocusing. Usually you will not need to change it. Default = 1.0.

Manual Acceleration Controls

The raytracer uses two raytrace techniques – a single pipe for typical scenes and a dual pipe for complex scenes. By default, acceleration is automatic. In other words, the raytracer switches between single and dual pipe raytracing as the scene requires.

The controls in these two areas let you override automatic acceleration and specify your own requirements. Typically you don’t need to use them, but if you are familiar with the requirements of your scene, they can help you optimize raytrace rendering for your specific needs and time constraints.

Both techniques subdivide the scene, organizing it into a tree for raytrace purposes. A node in this tree is known as a “voxel.”

Manual Acceleration: When on, lets you override automatic acceleration and specify the raytrace technique to use. When off, the raytracer uses automatic acceleration and both following areas are disabled. When on, only one of the areas is enabled at a time. Default = off.

Single Pipe (Typical Scenes): This technique subdivides the entire scene at the face level. It starts to bog down at about 300 objects.

Max. Divisions: Initial lattice dimension. For example, 4 is a 4 x 4 x 4 lattice. Default = 20.

Max. Depth: Maximium number of lattice subdivisions Default = 6.

Balance: Determines the sensitivity of the subdivision algorithm. Increasing this value uses more memory but can increase performance. Default = 1.5.

Face Limit: Maximum number of faces allowed in a lattice voxel before it is subdivided.

Dual Pipe (Complex Scenes):

Scene Voxel Trees: Subdivides the scene as a whole. That is, it subdivides based on objects, not the number of faces in the objects.

Balance: Determines the sensitivity of the subdivision algorithm. Increasing this value uses more memory but can increase performance. Default = 1.5.

Max Depth: Maximium number of lattice subdivisions Default = 4.

Max Divisions: Initial lattice dimension. For example, 4 is a 4 x 4 x 4 lattice. Default = 10.

Object Voxel Trees: Enables subdivision of individual objects in addition to the scene subdivision. This is the same as the single pipe technique, except that there is one tree per object. Default = on.

Balance: Determines the sensitivity of the subdivision algorithm. Increasing this value uses more memory but can increase performance. Default = 1.0.

Max Depth: Maximium number of lattice subdivisions Default = 1.

Max Divisions: Initial lattice dimension. For example, 4 is a 4 x 4 x 4 lattice. Default = 20.


Global and Local Exclude/Include Dialog for Raytraced Maps and Materials

These dialogs allow you to specificy which objects the raytracer will and won't see. This is a good optimization when you are working with complex scenes and all you really need is for an object to reflect itself or some other, simpler elements in the scene.

The global dialog affects ALL Raytrace materials and Raytrace maps in your scene. The local dialog affects this material only.

Tip: Another good use for exclusion can be when you are working a scene where the world-space scale of objects is not realistic. For example, consider an animation of a space dog-fight with a planet and its moon in the background. You would use a planet that was actually much smaller, relative to the fighters, than an actual planet. Say the planet is only 5 times bigger than the fighters and the moon is only half as big as the fighters. If the fighters are reflective, the reflections of the planet and moon will be incorrect and will give away the fact that you are using miniatures. In this case, raytrace the reflective fighters, and laser blasts, and so on, but exclude the planet and moon props from the raytracer. Create an environment map that represents the planet and moon at their correct scale, and make that the Raytrace material’s local environment. Now when you render, the scale of the planet and moon geometry appears to be correct, and the reflections on the fighters will behave as your eye expects.

Reference

The Exclude/Include dialog contains the following controls:

Exclude/Include: Choose whether raytracing will exclude or include the objects named in the list on the right.

Illumination / Shadow Casting / Both: For the raytracer, this is effectively disabled (always set to Illumination).

Scene Objects: Select objects from the Scene Objects list on the left, then use the arrow buttons to add them to the exclusion list on the right.

The Exclude/Include dialog treats a group as an objectyou can exclude or include all objects in a group by selecting the group’s name in the Scene Objects list. If a group is nested within another group, it isn’t visible in the Scene Objects list. To exclude a nested group or individual objects within the group, you have to ungroup them before you use this dialog.

Search Field: The edit box above the Scene Objects list lets you search for object names by entering names that use wildcards.

Display Subtree: When on, indents the list according to the object hierarchy.

Case Sensitive: When on, uses case sensitivity when searching object names.

Selection Sets: Displays a list of named selection sets. Choosing a selection set from this list selects those objects in the Scene Objects list.

Clear: Clears all entries from the Exclude/Include list on the right.


Common Parameters (Render)

Reference

Sets common parameters for the renderer.

The rollout contains the following parameters:

Time Output

Select which frames you want to render:

Single: Current frame only.

Active Time Segment: The Active Time Segment is the current range of frames as shown in the Time Slider.

Range: All the frames between and including the two numbers you specify.

Frames: Nonsequential frames separated by commas (e.g. 2,5) or ranges of frames separated by hyphens (e.g., 0-5).

Every Nth frame: Regular sample of frames. For example, enter 8 to render every 8th frame.

File Number Base: Lets you specify the base file number, from which the filename will increment. The value can range from 99,999 to 99,999.

For example, if the Range of frames is set to 0-3, Every Nth Frame is 1, and the File Number Base is 15, the output files are file0015, file0016, file0017, file0018.

You can specify a negative number base, as well. For example, if you’re rendering frames 50-55, and set the File Number Base to 50, the result is file0000, file0001, file0002, file0003, file0004, file0005.

Output Size

Select one of the predefined sizes or enter another size in the Width and Height fields (in pixels). These controls affect the image’s Aspect Ratio.

Popup List: The Output Size pop-up list lets you choose from several standard film and video resolutions and aspect ratios. Choose one of these formats, or leave it set to Custom to use the other controls in the Output Size area. These are the options you can choose from on the list:

Custom
35mm 1.33:1 Full Aperture (cine)
35mm 1.37:1 Academy (cine)
35mm 1.66:1 (cine)
35mm 1.75:1 (cine)
35mm 1.85:1 (cine)
35 MM Anamorphic (2.35:1) (Squeezed)
70mm Panavision (cine)
70mm IMAX (cine)
VistaVision
35mm (24mm X 36mm) (slide)
6cm X 6cm (2 1/4” X 2 1/4”) (slide)
4” X 5” or 8” X 10” (slide)
NTSC (video)
PAL(PVR) (video)
HDTV (video)

Aperture Width: Lets you specify an aperture width for the camera that creates the rendered output. Changing this value changes the camera’s Lens value. This affects the relationship between the Lens and the FOV values, but it doesn’t change the camera’s view of the scene.

For example, if you have a Lens setting of 43.0 mm, and you change the Aperture Width from 36 to 50, when you close the Render Scene dialog (or render), the camera Lens spinner has changed to 59.722, but the scene still looks the same in the viewport and the rendering. If you use one of the preset formats rather than Custom, the aperture width is determined by the format, and this control is replaced by a text display.

Width and Height: Let you set the resolution of the output image by specifying the width and the height of the image, in pixels. With Custom format, you can set these two spinners independently. With any other format, the two spinners are locked to the specified aspect ratio, so adjusting one alters the other.

Preset resolution buttons (320x240, 256x243, and so on): Click one of these six buttons to choose a preset resolution. Right-click a button to display a sub-dialog that lets you change the resolution specified by the button.

Image Aspect: Lets you set the aspect ratio of the image. Changing this value changes the Height value to maintain the correct dimensions for the active resolution. When you use a standard format rather than Custom, you can’t change the aspect ratio, and this control is replaced by a text display.

The lock button to the left of Image Aspect locks the aspect ratio. When it is on, the Image Aspect spinner is replaced by a label, and the Width and Height spinners are locked to each other adjusting one alters the other to maintain the aspect ratio value. In addition, when the aspect ratio is locked, altering the Pixel Aspect value alters the Height value to maintain the aspect ratio value.

Note: In viewports, the camera’s cone changes to reflect the image aspect ratio you set in the Render Scene dialog. This change takes place when you exit the Render Scene dialog.

Pixel Aspect Ratio: Sets the shape of the pixels for display on another device. The image may look squashed on your display but will display correctly on the device with differently-shaped pixels. If you use one of the standard formats rather than Custom, you can’t change the pixel aspect ratio and this control is disabled.

The lock button to the left of Pixel Aspect locks the pixel aspect ratio. When it is on, the Pixel Aspect spinner is replaced by a label, and you can’t change the value. This button is available only with the Custom format.

Options

Video Color Check: Checks for pixel colors that are beyond the safe NTSC or PAL threshold and flags them or modifies them to acceptable values.

Force 2-Sided: 2-Sided rendering renders both sides of all faces. Usually, you'll want to keep this option off to speed rendering time. You may want to turn it on if you need to render the inside as well as the outside of objects, or if you've imported complex geometry in which the face normals are not properly unified.

Render Hidden Objects: Renders all objects in the scene, even if they are hidden.

Render Atmospheric Effects: Renders atmospheric effects such as fog.

Super Black: Super Black rendering limits the darkness of rendered geometry for video compositing. Leave off unless you're sure you need it.

Render to Fields: Renders to video fields rather than frames when creating animations for video.

Render Output

Save File: Saves the rendered image or animation to disk.

The rendered output can be a still image or an animation, in one of the following file formats: avi, bmp, Autodesk animation format (flc, fli, cel), Encapsulated PostScript format (eps, ps), jpeg, rla, tga, tif.

Use Device: Sends the rendered output to a device such as a video recorder.

Virtual Frame Buffer: Displays the rendered output in the virtual frame buffer.

Net Render: Enables network rendering. If this box is checked, when you render you'll see the Job assignment dialog, described in Network Job Assignment.

How To

To set the size of the image, do one of the following

  • In the Output Size area, click one of the preset resolution buttons.
  • In the Output Size area, choose one of the pre-formatted film or video formats from the dropdown list.
  • In the Output Size area, choose Custom from the dropdown list, and then adjust the Width, Height, and Aspect Ratio manually.

Tip: Smaller images render much more quickly. For example, you can use 320 x 240 to render draft images, then change to a larger size for your final work.

To save the rendered still image in a file

  1. Click Files.
  2. In the file dialog, specify a name and a type for the image file, and then click OK.

    3. The Save File toggle turns on.

    You can later turn off Save File if you want only to view the rendering on screen.

    Note: The file dialog has a Setup button. This displays a subdialog that lets you choose options specific to the file type you are saving to.

To alter the pixel aspect ratio

  • In the Output Size area of the Render Scene dialog, adjust the Pixel Aspect Ratio to fit the requirements of your output device.

The Image Aspect Ratio field updates to show what the aspect of the rendered image will be.

If you alter pixel aspect ratio but also render to a window or a file, the rendered image appears distorted.


MAX Default Scanline A-Buffer

Sets parameters for 3DS MAX's scanline renderer.

Reference

The rollout contains the following parameters:

Options

Mapping: Clear to ignore material mapping information to speed up rendering for tests. Does not affect automatic reflections or environment maps.

Shadows: Clear to turn off rendering of cast shadows to speed up rendering for tests.

Auto Reflect/Refract & Mirrors: Ignores automatic reflection/refraction maps to speed up rendering for tests.

Force Wireframe: Set to render all surfaces in the scene as wireframes. You can choose the thickness of the wireframe in pixels (default is 1).

Anti-Aliasing

Anti-Aliasing: Anti-aliasing smoothes the jagged edges that occur along the edges of diagonal and curves lines when rendering. Turn off only when you are rendering test images and greater speed is more important than image quality.

Filter Maps: Turns on or off the filtering of mapped materials. Leave on unless you are making test renderings and want to speed up rendering time and save memory.

Pixel Size: Smoothes the edges of objects for broadcast-quality rendering. The range is between 1.0 and 2.0. You can set this up to 2.0 if you first set the Pixel-Size Limit option in the Rendering page of the Preferences dialog. 2.0 provides the best quality but slows down rendering. Use 2.0 only if the 1.5 setting is insufficient because it can cause artifacting.

Object Motion Blur

You determine which objects have object motion blur applied to them by setting Object in the Motion Blur area of the Properties dialog for that object. Object motion blur blurs the object by creating multiple “time-slice” images of the object for each frame. It takes camera movement into account. Object motion blur is applied during the scanline rendering process.

Apply: Turns object motion blur on or off globally for the entire scene. Any objects that have their Object Motion Blur property set are rendered with motion blur.

Duration: Determines how long the "virtual shutter" is open. When this is set to 1.0, the virtual shutter is open for the entire duration between one frame and the next. Longer values produce more exaggerated effects.

Samples: Determines how many Duration Subdivision copies are sampled (maximum 16).

When Samples is less than Duration, random sampling within the duration occurs (which is why there might be a slight granular look to the motion blur). For example, if Duration Subdivision = 12 and Samples = 8, there are eight random samples out of 12 possible copies within each frame.

When Samples = Duration, there is no randomness (and if both numbers are at their maximum value (16), you get a dense result (which costs between 3-4 times the normal rendering time for that specific object).

If you want to obtain a smooth blur effect, use the maximum settings of 16/16. If you want to cut down rendering time, values of 12/12 will give you much smoother results than 16/12.

Because sampling happens within the duration, the Duration value always has to be less than or equal to Samples.

Duration Subdivision: Determines how many copies of each object are rendered within the Duration (maximum 16).

Image Motion Blur

You determine which objects have image motion blur applied to them by setting Image in the Motion Blur area of the Properties dialog for that object. Image motion blur blurs the object by creating a smearing effect rather than multiple images. It takes camera movement into account. Image motion blur is applied after scanline rendering is complete.

Apply: Turns image motion blur on or off globally for the entire scene. Any objects that have their Image Motion Blur property set are rendered with motion blur.

Duration: Specifies how long the “virtual shutter” is open. When this is set to 1.0, the virtual shutter is open for the entire duration between one frame and the next. The higher the value, the greater the motion blur effect.

Apply to Environment Map: When set, image motion blur is applied to the environment map as well as to the objects in the scene. The effect is noticeable when the camera orbits.

The environment map should use Environment mapping: Spherical, Cylindrical, or Shrink-Wrap. The image motion blur effect doesn’t work with Screen-mapped environments.

Tip: When blurred objects overlap, blurring doesn't work correctly and there are gaps in the rendering. Because image motion blur is applied after rendering, it can't account for object overlap. To fix this problem, render each blurred object separately, to a different layer, and then composite the two layers using the Alpha Compositor in Video Post.

Note: Image motion blur doesn't work for NURBS objects that are animated so their tessellation (surface approximation) changes over time. This happens when sub-objects are animated independently of the top-level NURBS model.

Raytraced Shadows

Max Quadtree Depth: The default is 7 levels, and if you reduce this, it takes up less RAM (but more time) and if you increase it, it takes up much more RAM (but less time). The highest practical range is 78, and the lowest practical range is 45. In some cases, if ray-traced shadows provide an incorrect result, it helps to decrease the quadtree depth by a tick or two, but otherwise you probably won't want to adjust this parameter.

Auto Reflect/Refract Maps

Rendering Iterations: Sets the number of inter-object reflections in non-flat automatic reflection maps. Although increasing this value can sometimes enhance image quality it also increases rendering time for reflections.

How To

To set up an object for motion blurring

  1. Select the object to blur.
  2. Right-click the object, and then choose Properties from the object properties popup menu.
  3. In the Object Properties dialog’s Motion Blur area, choose either Object or Image.
  4. If you chose Image, you can adjust the Multiplier spinner. This increases or decreases the length of the blurred object’s streak.
  5. Click OK.

To add motion blur when you render the animation

  1. Click Render Scene.

    2. The Render Scene dialog appears.

  2. In the MAX Default Scanline A-Buffer rollout, check Apply in the Object Motion Blur area or the Image Motion Blur area.
  • For Object Motion Blur, set Duration, Duration Subdivisions, and Samples.
  • Increase Duration to exaggerate the motion blur effect. Decrease it to make the blur more subtle.
  • If Samples is less than Duration Subdivisions, the slices used are selected randomly, giving a grainy look to the blur. If Samples equals Duration Subdivisions, the blur is smooth. The smoothest blur results from larger, equal values of these two parameters - but be aware that this can slow down rendering by a factor of three to four.
  • For Image Motion Blur, adjust Duration and Apply to Environment Map.
  • Increase Duration to exaggerate the streaking. Decrease it to make it more subtle.
  1. Check Apply to Environment map to have camera orbit movement blur the environment map. This works only with Spherical, Cylindrical, or Shrink-Wrapped environments.
  2. Set other rendering parameters, and then click Render.


VUE File Renderer

Reference

The VUE File Renderer creates VUE (.vue) files. VUE files are an editable ASCII format that acts as a script for the Renderer during command-line rendering.

This renderer’s rollout has only a Files button, to let you choose a name for the VUE file to create.

The VUE file contains the same data you’d find in a VUE file rendered in 3DS DOS, except for morphing objects. The 3DS DOS VUE files listed morph target names and percentages, but that’s now impossible because the MAX 3DS exporter doesn’t export morph targets.

How To

To create a .vue file:

  1. Use File/Preferences to choose VUE File Renderer as the Production or Draft renderer.
  2. Activate a camera viewport.

    3. Note: You must render from a camera viewport in order to include the coordinates for the camera itself.

  3. Click Render Scene.
  4. Choose the rendering configuration (Production or Draft) to which you assigned VUE File Renderer, and use the VUE File Renderers rollout to specify a filename.
  5. Render the scene.

    6. The VUE file is written to disk. The Virtual Frame Buffer appears but it doesn't display an image.


Network Rendering

Network rendering uses multiple computers, connected over a network, to perform a rendering task--typically the rendering of an animation with hundreds or thousands of frames. Even a small network of three or four PCs can save substantial rendering time and help you meet deadlines.

Network rendering is designed to handle Views (what you see in an active viewport). Other rendering options for Region, Blow Up, and Selected are not supported.

The requirements and procedures in this help file assume you are the administrator of a closed network set up exclusively for network rendering. In practice, you can use the network for file sharing and other purposes, but if conflicts arise, you might need to cancel these uses. The easiest network to set up, operate, and maintain is one dedicated to 3D Studio MAX rendering.

If you’re a system administrator for a more complex network, you can use the information in this file as a guideline. The basic approach is the same for any network.

Important: This help file contains the strongly recommended procedure for setting up and running network rendering. Do not attempt network rendering without reading the instructions that follow. Reports indicate that this procedure provides the best results, allowing problems to be identified when they occur.

The links on this page are ordered like chapters in a manual--a sequence of major topics containing more specific nested topics. Links marked Next Step indicate the next topic in the sequence. Moving from one topic to the next takes you through all the necessary steps to get your network set up for rendering.

Next Step:

  • How Network Rendering Works

See Also:

  • Checking Requirements
  • Setting Up for Network Rendering
  • Using the Network Job Assignment Dialog
  • Monitoring the Rendering Queue
  • Installing Network Services under Windows NT
  • Batch Rendering
  • Troubleshooting Guide


How Network Rendering Works

Rendering networks are sometimes called rendering farms.

In 3D Studio MAX, one computer is set up as the network manager. The network manager "farms out" or distributes the work to rendering servers (referred to as "slaves" in 3D Studio R4). You can also have the same computer work simultaneously as network manager and rendering server, so computing cycles don’t go to waste.

Once rendering is underway, the Queue Manager lets you directly monitor and control the operation of the network rendering work load. The Queue Manager allows you to activate, deactivate, and reorder both jobs and servers involved in your “render farm”.

How Work Is Divided

In 3D Studio MAX, the task of network rendering is split up on a frame-by-frame basis, with each rendering server working on a single frame at a time. The completed output of each rendering server accumulates in a common, shared directory.

Rendered frame files can also be written to a local directory on each machine, if the directory is defined by the same path. Frame files are sequentially numbered, making them easy to assemble later.

Rendering servers with nothing to do are automatically detected by the network manager and assigned a new frame. If a rendering server goes off-line for some reason, the network manager reclaims the server’s current frame and reassigns the frame to the next available rendering server.

Next Step:

  • Checking Requirements


Checking Requirements

Setting up even a small render farm can require a substantial amount of time. As a first step, verify that your proposed network meets the basic requirements. You should also be acquainted with the software required to render over the network.

Reference

Hardware Requirements

  • One machine on the network must have 3DS MAX set up with a hardware lock. You use this machine to launch network rendering jobs.
  • One machine runs a network manager to communicate with rendering servers. You can set up any machine in the network for this purpose. A hardware lock is not required.
  • To load 3DS MAX software, at least one machine needs a CD-ROM drive mounted for access over the network. Instructions for loading software are included in this help file.
  • Other machines operate as rendering servers. No hardware lock is required to run 3DS MAX on these machines.

Rendering servers should meet the minimum requirements for running 3DS MAX. To improve rendering performance, use machines with faster processors, additional memory, and more swap space. A rendering server does not require a monitor. Display adapters and accelerators make no difference in rendering performance.

Network Requirements

All machines need to be:

  • Operational under the shipping version of Windows NT 4.0.

Network rendering is not supported under the Windows 95 operating system. Although the Network Renderer can be set up and may appear functional, network rendering will not work reliably under Windows 95.

  • Connected over a network with TCP/IP protocol properly installed.

Instructions for configuring TCP/IP for network rendering are included in this help file.

Software Requirements

Minimum requirement:

  • One authorized copy of 3D Studio MAX with hardware lock.

With this one copy, you can set up 3DS MAX on multiple machines for the purpose of network rendering. Later topics provide explicit details for doing a custom setup on each machine. During this setup, programs required to render over a network are installed and registered.

Four separate programs interact to accomplish network rendering. The following descriptions identify these programs and provide an overview of their use.

  • 3dsmax.exe: This Job launcher is a 3DS MAX program. You launch a network rendering job in the Rendering or Video Post dialog.
  • manager.exe: When run, this application sets up one computer as a network manager. The Manager program manages communication with the rendering servers during a network rendering job. This can be set up on any machine in the network. In almost all network rendering scenarios you will only have a single manager running on the entire network.
  • server.exe: When run, this application sets up each computer to be used as a rendering server. The Server program sends its local IP address to the Manager which in turn registers the Server so it will be available for network rendering job assignment. When the Server receives a job from the network manager, it launches a local copy of 3DS MAX to perform the rendering. The Server then sends the completed frame to a target directory and begins rendering the next frame sent to it by the manager. The server shuts down the 3DS MAX process when it is no longer needed.
  • queueman.exe: This stand-alone program provides a Windows interface that lets you monitor and schedule network rendering. Since the Queue Manager is stand-alone, you can start it at any time from any computer in your network. The only requirement is that you establish a TCP/IP connection with the computer running manager.exe.

You can load Queue Manager on each rendering server and use it to monitor rendering progress locally. You can also connect with Queue Manager remotely using Windows NT Remote Access.

Next Step:

  • Setting Up for Network Rendering


Setting Up for Network Rendering

Whenever different groups need to cooperate on a project, accurate communication and common procedures are essential. A rendering farm is such a project.

Network setup involves the most work, but it’s work that’s done only once. Take your time to get the right setup. Take each topic in order and complete the steps involved.

These instructions are for creating a new network dedicated specifically to 3DS MAX network rendering. If you are configuring network rendering for an existing network or for a network that will be used for other purposes, these instructions are intended as a reference example only.

Next Step:

  • Setting Up TCP/IP

See Also:

  • Setting Up Rendering Software
  • Setting Up Directories
  • Initial Setup for Manager and Server Programs


Setting Up TCP/IP

3D Studio MAX uses the standard network protocol TCP/IP for network rendering. TCP/IP is a two-part acronym. TCP stands for Transport Control Protocol (communicates data between applications). IP stands for Internet Protocol (communicates data between an application and the physical network). Each computer in your rendering network needs to be configured for this protocol.

Before continuing, be sure that:

  • You have administrative privileges on each machine.
  • The network is operational, with network adapter cards installed in each machine.

Reference

The TCP/IP protocol uses IP addresses to identify the computers on a network. For convenience, you can assign real names to computers. An IP address is a serial number of four integers separated by periods, for example, 192.100.100.1.

It is important that IP addresses be properly assigned. In this step, you make up a list of machine names and their corresponding IP addresses to use during TCP/IP configuration. The list will also be used when installing 3DS MAX rendering services.

Names are included as identifiers only. When specifying rendering servers and managers, always use the IP address. The use of names in place of IP addresses requires Domain Name System setup and is therefore beyond the scope of this help file.

On a closed network, you don’t have to worry much about conflicts with the IP addresses of other network domains. However, the addresses need to follow a consistent pattern and each must be unique within your network.

Caution: On an open network, such as those in many large corporations, DO NOT alter IP addresses in any way. In such cases, to avoid potentially disastrous consequences, always work with your system administrator to make IP address changes.

How To

To create Machine Names and IP Addresses

  1. Create a list of machine names and IP addresses.

    2. Unless you have specific needs for later compatibility with another network, use the following list as a model. Each address is incremented by one in the last digit. Insert your own names to help you identify machines. Like an IP address, each name must be unique.

    manager 192.100.100.1

    server001 192.100.100.2

    server002 192.100.100.3

    server003 192.100.100.4

    server254 192.100.100.255

Next Step:

  • Configuring TCP/IP


Configuring TCP/IP

From the previous step, you should have a list of machine names and IP addresses. With that list, go to each machine and follow these procedures.

Reference

On an open network, such as those in many large corporations, DO NOT alter IP addresses, machine names, workgroup names, or domain names in any way. In such cases, to avoid potentially disastrous consequences, always work with your system administrator to make IP address changes.

How To

To assign a Name and Workgroup or Domain

  1. In Windows NT 4.0, select Start Settings/Control Panel.
  2. Double-click the Network icon to display the Network dialog.

    3. If you’ve already assigned a name to the computer, the name should appear in the Computer Name field on the Identification tab Network dialog. Check this name against your list.

  3. To assign an identifying name and a workgroup/domain, click Change on the Identification tab.
  4. In the Computer Name field, enter a name for the machine.
    • The first character of a valid machine/host name should not be a number.
    • Avoid using underscores and spaces in the machine/host name.
  5. In the Member Of section, enter either a workgroup or domain name, depending on how your network is going to be set up.

    6. Workgroup: An organizational unit that used to group computers that don’t belong to a domain. If you are setting up a simple network for the purpose of Network Rendering, use the Workgroup option.

    Domain: A more complex way of grouping servers that share a common security policy and user account database. A domain requires you to set up a Primary Domain controller. You should select the Domain option only if your Network Administrator has a Domain already set up and functioning correctly.

To add the TCP/IP Protocol

  1. Display the Protocols tab.
  2. Check the list for TCP/IP Protocol.

    3. If you find this listing, TCP/IP is installed on this machine. Go on to the instructions entitled “To configure TCP/IP.” If TCP/IP is not installed, complete the remaining steps in this section.

  3. Click the Add button.
  4. In the Select Network Protocol dialog, select TCP/IP Protocol.
  5. Click OK.

    6. If a message appears asking “Do you want to use DHCP,” click No. The 3D Studio MAX Network Renderer does not support dynamic IP Addresses.

    TCP/IP is added to the list of installed protocols

  6. Click the Close button.

    7. The Microsoft TCP/IP Properties dialog should now be displayed. Go on to step 2 in the next set of steps entitled “To configure TCP/IP.”

To configure TCP/IP

  1. On the Protocols tab, highlight TCP/IP Protocol and click Properties.

    2. The Microsoft TCP/IP Properties dialog appears. You should see your adapter card listed as Adapter at the top of this dialog. If your Adapter is not listed, follow the instructions in Windows NT documentation on Adapter setup.

  2. In the box for IP Address, type the address for that machine.

    3. Check your list to make sure the entry is correct.

  3. In the box for Subnet Mask, type these numbers (these are the same for every machine):

    4. 255.255.255.0

  4. On the DNS tab, verify that the Host Name field contains the same computer name you specified in the Identification tab. If the Host Name field is blank, enter the same computer name you specified in the Identification tab.
  5. Click OK to close the Microsoft TCP/IP Properties dialog, then click OK to close the Network dialog.

    6. Windows NT finishes configuring the software.

  6. Reboot the computer to complete the configuration.
    7. #ENDNUMBLOCK#

    Repeat all the steps on this page on every machine in your network. Remember that each machine needs to have a unique IP Address so no conflicting addresses arise.

    Next Step:

    • Setting Up Rendering Software


Setting Up Rendering Software

When you’ve configured the computers on your rendering network for TCP/IP, you’re ready to load the 3DS MAX software.

Reference

For each machine, decide between two setup options:

  • Typical: At least one machine in the network needs a hardware-locked copy of 3D Studio MAX. This is the copy of 3D Studio MAX you will run interactively and use to submit jobs to the network renderer. If you have not yet set up a machine for this, see the instructions in the 3D Studio MAX documentation.
  • Compact:This setup option loads the minimum files required to run 3D Studio MAX. A hardware lock is not required. Use the Compact option under the following conditions:
  • You are setting up a rendering server dedicated to network rendering and nothing else.
  • You are using an available computer as an occasional rendering server, and you do not intend to use this computer as a 3DS MAX workstation.

Important: Before using a copy of 3DS MAX as a rendering server, you need to authorize the program on every rendering server. Otherwise, an authorization reminder will interfere with rendering generating an error.

How To

To install a compact version of 3DS MAX on a rendering server

  1. Start Windows NT on the rendering server machine.
  2. Put the 3DS MAX program CD-ROM in the computer’s local drive, or connect to a network drive that has access to the CD-ROM.
  3. From the Program Manager, choose File/Run and enter the following:

    4. d:\setup (substitute appropriate directory path as necessary)

  4. When the Setup program starts, continue past the Welcome screen to the Setup Type screen.
  5. On the Setup Type screen, select Compact.
  6. To choose a destination directory for the software, do one of the following:
    • Accept the default directory \3dsmax\ by clicking Next>.
    • Define a new directory by clicking Browse and replacing the default in the Path edit box. Then click OK and Next>.

    Try to install 3D Studio MAX in identical locations on all servers. If 3D Studio MAX is installed on the same drive letter and directory on all server machines, configuring bitmap and plug-in paths, which are stored in the 3dsmax.ini file, will be much easier.

    The Serial Number screen appears.

    7 Enter the Serial Number and CD Key.

  7. 8 Click Next>.
  8. Select the Program Folder where you want the 3D Studio MAX icons to be installed.
  9. Click Next>.

    10. The setup program copies the minimum software to the hard disk.

  10. Click on the Finish button to restart your computer.

Important: Before using a copy of 3DS MAX as a server, you need to authorize the program on every rendering server. Otherwise, an authorization reminder will interfere with network rendering generating an error. To authorize a copy of 3DS MAX on a server temporarily place your hardware lock on the rendering server machine and double click the “Authorize 3DS MAX” icon. When prompted enter your authorization code and click OK. Once your server copy has been authorized you can remove the hardware lock. A hardware lock is not required to run the 3DS MAX Network Rendering Server program.

Repeat this setup on every rendering server in the network to load and authorize the required software.

Next Step:

  • Setting Up Directories


Setting Up Directories

During network rendering, common directories (directories that are shared across the network) allow access to files needed by all rendering servers. You can organize, share, and (if necessary) mount these directories.

Reference

There are two types of common directories:

  • Map directories: One or more directories where maps and images are stored. These can be both project-specific or general locations.
  • Output directory: A single directory where completed frames are sent from each rendering server, also called the target directory. You specify this directory for each job. This can also be a local directory on each machine.

Like 3DS MAX, the network rendering system uses the Universal Naming Convention (UNC) to identify directories and files. UNC names begin with a double backslash and do NOT include a drive letter. This is the convention:

\\machine_name\directory\subdirectory\filename

To simplify network rendering, use UNC names whenever possible within a 3DS MAX scene, even if the directory is on the local machine.

Tip: When entering UNC names, leave off the \\ before the filename until the entire path and filename has been entered. This eliminates search delays when entering UNC pathnames into file selection dialogs.

Some networks require drive letters instead of UNC names. Directories on such networks can be mounted as drive letters and shared over the network. This is discussed in the topic Mounting a Directory.

Organizing Directories

Correctly organizing directories is critical to the success of your rendering farm. Every element in a scene needs to be available to each server for a complete rendering. The goal is to give every machine in your network the same "picture" of where files are located. Follow these rules when organizing your directories:

  • Share directories to make them available to the network.
  • Use UNC file specification when assigning maps files and output directories, even when the directory is on a local machine.

Creating Map Directories

As you assign materials in a scene, 3DS MAX stores the complete path to each map you use. The program searches for that particular location. If necessary, the program continues to look through the directory containing the scene file and its subdirectories.

Maps specific to a project should be kept in a directory specific to the project. You can create subdirectories below this directory to organize files. This directory needs to be shared using the Explorer.

Maps for general use, like texture libraries, can be organized as you choose. The computers containing such libraries need to be on the network, and the directories need to be shared.

Creating a Common Output Directory

A common output directory is single directory on one hard disk where rendered frames accumulate during network rendering. When creating a common output directory, follow these guidelines:

  • Decide on a machine to accept final output. It should have enough disk space to store the largest completed animation file you’re likely to render.
  • Create or choose a directory for final output.
  • Share that directory as a resource available to the network.

Creating a Local Output Directory

A local output directory lets you use available storage on each rendering server. Rendered frame files are sequentially numbered when assigned by the network manager. When you collect the finished frames, they automatically sort in the proper order. When creating a local output directory, follow these guidelines:

  • Use the same path and name for all local directories. For example, use \3dsmax\images.
  • Specify this path for the output directory when you start network rendering. All rendering servers will then send their output to this local directory.

On any one rendering job, use either a common or local output directory. They cannot be mixed.

Next Step:

  • Sharing a Directory

See Also:

  • Mounting a Directory
  • Using Configure Paths


Sharing a Directory

You share a directory from the machine where the directory is located. This gives other machines on your network access to this directory. The instructions below are general. See your Windows NT documentation for details.

How To

To share a directory

  1. Go to the machine whose hard disk contains the directory you want to share.
  2. In Explorer, right click on the directory to share.
  3. Choose Sharing from the right click menu.
  4. In the directory’s Properties dialog, select the Shared As option.
  5. Use the default Share Name.
  6. Click Permissions and make sure permissions are set to Everyone/Full Control. Click OK to exit the Access Through Share Permissions dialog.
  7. Click OK in the Images Properties dialog to complete the share.

Next Step:

  • Initial Setup for Manager and Server Programs

See Also:

  • Mounting a Directory
  • Using Configure Paths


Mounting a Directory

You can mount a directory to a drive letter as an alternative to using UNC names. In mixed UNIX/NT networks, for example, you might need to mount the output directory.

Reference

For network rendering, you mount (or map) the directory on all machines in the network. This gives all rendering servers access to the shared directory.

Before beginning this setup, choose a common drive letter for all mounts. If you have other drives mounted, you might need to switch assignments to free the drive letter for this mount.

If a Map or Target directory is on a rendering server, mount the directory on this machine like all the others, even if the directory is on the local disk.

When using a mounted directory, be sure that the directory to be mounted is correctly shared. When assigning bitmaps, always use the path with the common drive letter.

The steps below are general. See your Windows NT documentation for more details.

How To

To mount a directory to a drive letter

  1. In Explorer, choose Tools/ Map Network Drive to display the Map Network Drive dialog.
  2. Set Drive to the common drive letter you’ve chosen.
  3. In Path, type the exact location of the output directory, using UNC convention.

    4. You can also mount a directory to a drive letter by selecting the machine and shared directory from the Shared Directories section of the Map Network Drive dialog.

  4. Leave Connect As blank, your username is used by default.
  5. Click OK to complete the mount.

Next Step:

  • Initial Setup for Manager and Server Programs

See Also:

  • Sharing a Directory
  • Using Configure Paths


Using Configure Paths

The Bitmaps panel of the Configure Paths dialog lets you specify alternative locations for servers to search for bitmap files.

Reference

If a server cannot find a bitmap image in the path specified in the MAX file, it will then search the paths listed in its own Bitmaps panel. Only after searching in both locations will the server fail due to missing maps. You can specify both UNC and drive letter paths on this panel.

How To

To add bitmap paths to the Bitmap panel of the Configure Paths dialog

  1. On each rendering server launch 3D Studio MAX

    2. You will temporarily need to connect the hardware lock to each server in order to do this.

  2. Choose File/Configure Paths to display the Configure Paths dialog.
  3. Click the Bitmaps tab.
  4. Enter the full path (UNC or mounted) to every directory where bitmap files will be stored for rendering.
  5. Click OK.

    6. If 3D Studio MAX is installed on the same drive letter and directory on all server machines, than you only need to follow these steps on one server. Then you can copy the 3dsmax.ini to all remaining servers to update their Bitmap search paths.

Next Step:

  • Initial Setup for Manager and Server Programs

See Also:

  • Sharing a Directory
  • Mounting a Directory


Initial Setup for Manager and Server Programs

The files necessary for network rendering are copied to the 3DS MAX root directory when you install the software. Two of these files, manager.exe and server.exe, require initialization to set up their services. Set up the manager program first, then the server. When you’re finished, you can start network rendering.

You need to initialize only one machine as network manager. This can be any machine on the network, and can be used on a machine running server, 3DS MAX, or both.

You need to initialize every machine used as a rendering server. This is done once to establish the connection between the rendering server and the network manager.

Reference

Initialization is done only once for each service. Each initialization process creates the following, unless they already exist:

  • A subdirectory called Network under the 3DS MAX root directory, containing three further subdirectories, Jobs, Servers, and Temp.
  • An INI file with initialization parameters (manager.ini or server.ini).
  • A LOG file that keeps track of what the service does (manager.log or server.log).

How To

To initialize the Manager program

  1. Double-click the Network Rendering Manager icon.

    2. The Unconfigured Service dialog asks you to “Please Configure Service Before Using It.”

  2. Click OK in the Unconfigured Service dialog.

    3. The 3D Studio Max Network Manager Properties dialog appears.

  3. Click OK in the 3D Studio Max Network Manager Properties dialog to accept the default settings and save the current configuration.

    4. This creates the manager.ini file, which stores the manager configuration settings. The next time the Manager is run, the application is launched and the configuration settings are used.

    Each of the settings in 3D Studio Max Network Manager Properties dialog are described in depth later on the Manager Properties page.

This completes manager initialization. Double-clicking the Network Rendering Manager icon again starts the manager program.

To initialize the Server program

  1. Double-click the Network Rendering Server icon.

    2. The Unconfigured Service dialog asks you to “Please Configure Service Before Using It.”

  2. Click OK on the Unconfigured Service dialog.

    3. The 3D Studio Max Network Server Properties dialog appears.

  3. By default the Manager Name or IP Address field is set to “maxserver.” Change the Manager Name or IP Address field to the IP address of the network manager you just configured.

    4. At this point do NOT make any other changes in the 3D Studio Max Network Server Properties dialog. Each of the settings in 3D Studio Max Network Server Properties dialog are described in depth later on the Manager Properties page.

  4. Click OK in the 3D Studio Max Network Server Properties dialog to save the current configuration.

    5. This creates the server.ini file, which stores the server configuration settings. The next time the Server is run, the application is launched and the configuration settings are used.

This completes server initialization. Double-clicking the Network Rendering Server icon again starts the server program.

Next Step:

  • Starting Network Rendering


Starting Network Rendering

There are two steps to starting a network rendering session:

  • Start the Manager and Server programs on each machine in the network. Be sure to start the network manager before starting the rendering servers.
  • Start a rendering job from 3DS MAX on a networked machine with a hardware lock installed.

Reference

The Manager and Server programs need to be started and left running during a network rendering session. Either program remains in operation until you close its window or shut down the machine.

When you’ve set up the Manager and Server network services, you’re ready to submit an animation to the network rendering queue. There are two stages to starting network rendering:

  • Set all desired rendering parameters, including resolution and rendered output file type, and render the scene. In 3DS MAX, you can render from the Render dialog or the Video Post window.
  • Submit your animation to the rendering servers.

After you submit a network rendering job from 3DS MAX, the Network Job Assignment dialog lets you make final decisions about the job before starting the actual frame-by-frame rendering.

How To

To start the Manager program

  1. Double-click the Network Rendering Manager icon.

    2. The Manager window appears and the “Booting Network Manager” message is displayed in the window. The machine is now running the network manager in Desktop Mode. You can leave this window open to see other messages as they appear, or you can minimize this window. DO NOT close this window or try to use it for any other purpose, or you will stop the process.

To start the Server Program

  1. Make sure that the Manager Name or IP Address field in the Server Properties dialog on each rendering server is using the IP address or the machine name of the manager computer.
  2. Double click the Network Rendering Server icon.

    3. The Server window appears and the “Booting Network Server” message is displayed in the log window. After a few seconds you should also see the “Registered to Manager” message in the Server window. This message indicates that the server has found the manager and is correctly communicating with it. If you do not see the “Registered to Manager” message in the server window see the Troubleshooting section

    The machine is now running as a rendering server in Desktop mode. You can leave this window open to see other messages as they appear, or you can minimize this window. DO NOT close this window or try to use it for any other purpose, or you will stop the process.

To start a Network Rendering Job

  1. Start 3DS MAX on a machine in the rendering network that has a hardware lock.
  2. Open the scene you want to render.
  3. Choose Rendering/Render to display the Render Scene dialog.

    4. You can also render from the Video Post window.

  4. In the Render Output area, click Files to display the Render Output File dialog.
  5. In File Name, type the UNC name of the output directory followed by the name of the output file. For example:

    6. \\machine1\project1\images\output.tga

    If you do not wish to type out the UNC name you can use the Network button to find the Machine and shared directory where you want the servers to write the rendered frames. After selecting the machine and shared directory in the Map Network Drive dialog type in the output file name and click OK. Note how 3DS MAX automatically converts the shared directory to the UNC format.

    If the output directory is mounted, enter the name and extension of the output file and choose the drive mounted for the output directory from the Drives pulldown.

  6. Click OK to display the Setup Options dialog for the format type you selected.
  7. Set the desired file type options and click OK.
  8. Click OK again to return to the Render Scene dialog.

    9. Save File is checked once you assign an output file.

  9. After setting any other rendering parameters, check Net Render and click Render.

    10. The Network Job Assignment dialog appears.

    If you use Video Post, set the file location with Add Image Output Event. After you click Execute Sequence, be sure to check Net Render before you click Render.

To submit a network rendering job

  1. In the Network Manager field, enter the IP address of the network manager machine and click Connect.

    2. All rendering servers running under the network manager should be listed with green circles next to them. Even if a server is running an interactive session of 3DS MAX, it will still render an assigned job by launching a second copy of 3DS MAX.

  2. Select the rendering servers you want to use and click Submit.

    3. Network rendering begins.

When network rendering begins on a rendering server, 3DS MAX is minimized as an icon on the desktop and the Render in Progress dialog appears.

Next Step:

  • Using the Manager and Server Windows


Using the Manager & Server Windows

Using the Manager and Server Windows

In 3D Studio MAX R2 a new method of running Manager.exe and Server.exe has been implemented, eliminating the need to launch these two programs from the MS-DOS command-line windows. Now, you can double-click their icons before rendering to display modeless Windows dialogs that provide the same type of listed display, with additional options.

By double-clicking on Network Manager and Network Rendering Server icons you initialize and start the programs in Desktop mode as opposed to running them as an NT Service which is explained below. They are foreground processes on your desktop. The windows need to remain open or minimized to maintain the service.

Reference

The following options are available.

List Window: This section of the Manager and Server windows lists all different types of information regarding the current status of Manager and/or Server. Depending on the selections made in the Logging Properties dialog, messages are displayed alerting the user to such things as: Connection and registration between the Manager/Server(s), new job assignments, frames assigned/rendered, acknowledge packets sent between the Manager and Server(s), Manager/Server(s) shutting down, any rendering errors encountered, etc. These are the same types of messages that used to appear in the MS-DOS windows in R1.X, but you can now filter these messages using the Logging subdialog, as described below.

Logging Properties: The Logging buttons in both the Manager and Server windows invoke identical Logging Properties subdialogs that let you filter the types of messages that will appear in the list window, and specify whether the messages will be sent to the list window or a log file.

Log To Screen: The options in this section of the dialog determine which types of messages are displayed in the list window of each dialog. Check each type of message that you wish to be displayed. Error, Warning, and Info are checked by default. Each Log Type is explained below.

Log To File: The options in this section of the dialog determine the messages that are saved to log files. These are the same messages that appear on the screen. Check any of the following categories to save it in a log file. When any one of these categories is checked, a Manager.log file or Server.log file is created in your \network directory. As a default, none of these items is checked, and no log file is created. Each Log Type is explained below.

Log Types

Error: Fatal errors that halt a server’s rendering of a job. These errors are preceded by a red “E” in the Manager or Server List Window, and include the following:

  • Failed Renderings and Frame Errors (caused by missing bitmaps, missing texture coordinates, invalid output directory, etc.)
  • Manager not found
  • Error registering server(s)
  • Error writing output file
  • Error Starting Max
  • Loading timeouts

Note: You can see a more detailed explanation for server failure in the Log File panel of the Queue Manager.

Warning: Non-fatal warning information. These errors are preceded by a yellow “W” in the Manager or Server List Window, and include the following:

  • Manager and/or Servers shutting down
  • Server(s) flagged as failed
  • Loading timeout set too low
  • Rendering timeout set too low

Info: General information about the current status of the Manager or Server. These errors are preceded by a green “I” in the Manager or Server List Window, and include the following:

  • Booting Network Manager/Server
  • Connection to Server(s)
  • Registration to Manager
  • Job Submitted
  • Job Received
  • Frame Complete

Debug: Detailed information about TCP/IP packets and the current state of the Manager and Server. These messages are preceded by a blue “D” in the Manager or Server List Window, and include the following:

  • TCP/IP Packets sent and received
  • TCP/IP Packet collection
  • Command Line Arguments used to launch 3D Studio MAX
  • Frames Assigned
  • Log files creation and sent
  • Assignment Threads

Other Settings in the Logging Properties Dialog

Buffer Limit : Specifies the maximum size of the buffer holding the messages.

Clear Log : Clears the buffer holding the messages in the List Window.

Clear Log File: Deletes the associated manager.log and/or server.log file.

Caution: Log files are only cleared when you click the Clear Log File button. When categories are enabled in either or both log files, the files will continue to grow in size every time you render.

Next Step:

  • Manager Properties Dialog


Manager Properties Dialog

The Manager Properties dialog contains the configuration settings for the Network Manager. The default settings should work in most cases, but certain situations may require adjustments. The information specified in the Manager Properties dialog is contained in manager.ini (in the \network subdirectory). If you run the Manager and the manager.ini files does not exist, you’re prompted to configure it. When configuration is complete, rerun the Manager to continue.

Reference

TCP/IP

The two spinners in the TCP/IP section specify the port numbers to be used by MAX. These numbers must be unique to 3DS MAX, but every server must have the same number.

Manager Port: Specifies the port number used by the Network Manager.

Server Port: Specifies the port number used by the Network Server(s).

Note: Port numbers are like extensions for different users of the same phone number. They represent two channels of communication between the server and the manager. Only a trained network administrator should decide to change these settings. If you change the Manager Port number in the Properties dialog, change the Manager Port setting in client.ini (in the \network subdirectory) and queueman.ini (in the \3dsmax root directory) to the same number.

General

The two parameters in the General section let you specify the time, in seconds, for correct communication to occur between the Manager and the server(s).

Wait for MAX to Load: Specifies the amount of time after a job is submitted that the Manager waits for a server to report that it received the frame and is rendering. If this value is exceeded, an error message is logged for a failed frame, and the frame is assigned to a different server.

Wait for MAX to Unload: When a job is complete, the manager tells the server to unload MAX, then waits for a reply from the server saying MAX is down and it’s ready for a new job. This spinner specifies the amount of time the Manager will wait for the Server to reply to this notification. If a server exceeds the specified value, it is flagged as “failed” by the manager, and no more frames are sent to it.

How To

To display the 3D Studio Network Manager Properties dialog

  • Click the Properties button in the Manager window.

Next Step:

Server Properties Dialog


Server Properties Dialog

The Server Properties dialog contains configuration settings for the Network Rendering Servers. With the exception of the Manager Name or IP Address setting, the default settings in this dialog work in most cases, but certain situations may require adjustment of these settings. The information specified in the Server Properties dialog is contained in the server.ini (in the \network subdirectory). If you run Server and the server.ini files does not exist, you’re prompted to configure it. When configuration is complete, rerun the Server to continue.

Reference

TCP/IP

Manager Name or IP Address: Specifies the IP address or DNS name of the current manager. Use the Manager’s IP address to avoid any problems or conflicts caused by improper implementation of the Domain Name System.

The two spinners in the TCP/IP section specify the port number to be used by MAX. These numbers must be unique to 3DS MAX, but every server must have the same number.

  • Manager Port: Specifies the port number used by the Network Manager.
  • Server Port: Specifies the port number used by the Network Server(s).

Note: Port numbers are like extensions for different users of the same phone number. They represent two channels of communication between the server and the manager. Only a trained network administrator should decide to change these settings.

General

The two parameters in the general section let you specify the time, in seconds, for correct communication to occur between the Manager and the server(s).

Wait for MAX to Load: Specifies the amount of time that the Server will try to report back to the Manager that the rendering has started. If the server does not begin rendering before the value specified, the frame is reclaimed and submitted to another server.

Wait for MAX to Render: Specifies the amount of time the Server will wait for the frame to complete rendering before generating an error.

Archive Utility

Specifies which archiving program is used when the Include Maps checkbox is checked in the Network Job Assignment subdialog.

Command: Specifies the name of the archiving utility that will “unpack” the archived maps.

Note: The utility specified here must be capable of “unpacking” the data “packed” by the program specified in the Archive area of the Files/Preferences/Files page. For example, if you specified pkzip in the Archive System, you would specify pkunzip here.

Options: Specifies command-line parameters for the archiving utility.

How To

To display the 3D Studio Network Server Properties dialog

  • Click the Properties button in the Server window.

Next Step:

Log File Preferences


Log File Preferences

The General page of the 3DS MAX File\Preferences dialog has a Log File Maintenance area, containing controls that affect the max.log file.

Reference

Log File Maintenance

These options determine how long the max.log file is maintained.

Never Delete Log: When Never Delete is chosen, the max.log file is never deleted and will continue to grow indefinitely.

Maintain Only...Days: When this option is chosen, any entries that exceed the total number of days are removed, leaving the newer entries.

Maintain Only...KBytes: When this option is chosen and the log file exceeds the maximum size allowed, older entries are deleted until the file meets or is less than the specified size in KBytes spinner field.

Message Type Checkboxes

The following three checkboxes prevent errors from being generated as alert dialogs, which would halt network rendering for one or more servers. If all three checkboxes are checked, errors are written to the Max.log file instead. By default all three checkboxes are checked and keeping them as such is recommended.

Errors: When Errors is checked, error messages are written to the log.

Info: When this is checked, general information is written to the log.

Debug: When this is checked, debug message are written to the log.

Note: For a more detailed description of the three types of log messages see the Log Types section on the Using the Manager and Server Windows page.

Next Step:

Using the Network Job Assignment


Using the Network Job Assignment Dialog

Using the Network Job Assignment

Use the Network Job Assignment dialog to submit your animation to the rendering servers.

You can submit as many jobs as you like in a single 3DS MAX session. Open each file you want to render and submit it following these same steps. Each job is placed behind the last one submitted. If you submit a job using the same name as a job that is currently in the queue, a warning dialog asks you to rename the job before submitting it to the queue.

Reference

Settings

Include Maps: Archives the 3DS MAX file, with all of its maps, into a zip file. The zip file is sent to each server, where it is unzipped into a Temp directory and rendered. Use this feature if you have access only to servers that exist over the Internet. It is not meant for heavy production use. To use this feature, you must have a copy of the compression application you are using on the NT path on each machine you intend to use. This includes the machine from which you are submitting the job and the machines set up as servers. Check in Control Panel under System to verify the current path.

Virtual Frame Buffer: Specifies that each rendering server displays the virtual frame buffer during the net rendering process.

Note: If you are running the Server as an NT Service, the Virtual Frame buffer does not show up on the server, regardless of the Virtual Frame Buffer setting.

Inactive: Sends the job to the queue as inactive and it will not be rendered by any servers until it is reactivated in the Queue Manager.

High Priority: Sends the job to the top of the queue, preempting the existing jobs. If a server is currently rendering and a “high priority” job is sent to the queue, the server will stop rendering its current job and begin rendering the new “high priority” job. When finished with the “high priority” job, the server returns to the next job it has been assigned in the queue.

Notification Alerts

The Notification Alerts area, below the Settings area in the Network Job Assignment dialog, lets you send notifications to an external program, called Notify that can then do whatever a developer designs for the Notify program. Ideally, this might be something like sending an e-mail or a message to a pager that your job is completed.

Enabled: Enables the notification system.

Settings: Displays the Alert Notification Settings subdialog. When Enabled is checked, this button becomes available.

Notify Failures: Sends a notification alert on any failures.

Notify Progress: Sends a notification alert every specified number of frames.

Every nth frame: Specifies the frequency of Progress alerts. When set to 100, a Progress alert is sent upon every 100 completed frames. This control is available when Notify Progress is checked.

Notify Completion: Sends a notification alert at the completion of the job.

The notifications are sent to an external program in the 3dsmax directory, called Notify.*. (The extension of this program can be .exe,.bat, or .cmd.) A developer (or anyone who can write a batch file) can design the Notify program to launch whatever they want when the job notifications are received. Upon each alert notification, the Manager calls the Notify program, supplying it with two command line options:

Notify datafile type

where datafile is a text file containing information about the alert, and type is the type of alert: Failure, Progress, or Completion. Once received, the Notify program can do what it will with the information.

Note that the NOTIFY.EXE program supplied with 3D Studio MAX R2 is nothing more than an example of what can be done with the notification system. It is a simple example provided to show users and developers the kinds of applications that can be developed and used in the new notification system. This program allows you to choose .wav files which are played when the Network Render reaches one of the three user defined notification alerts. The details on the use and setup of the NOTIFY.EXE application are described below.

How To

To use the Network Job Assignment dialog

  1. Click the Render button in Render Scene dialog when the Net Render check box is on.
  2. Specify a job name (by default, this is the name of the MAX file you are currently working on).

    3. Click the plus (+) button next to the Job Name field to increment the job name. Unlike the plus button in the file dialogs, this button does not automatically launch the job.

  3. Enter the IP address of the network manager and click Connect.

    4. You see a listing of all servers available for network rendering. Each server is marked with a colored icon to denote its current state:

    Green: Running and not rendering any jobs.

    Yellow: Rendering another job. You can assign jobs to busy servers, and the jobs will be rendered in the order received.

    Red: Failed. Try rebooting the server or see the Troubleshooting section for more information on failed servers.

    Gray: Absent. Verify that the Network Server is currently running and that it has not been “Disallowed” in the Queue Manager Server Properties dialog.

    If a rendering server is running on a workstation that also has an interactive session of 3DS MAX, you can still select that machine for rendering. A second copy of 3D Studio MAX is launched to execute the network render.

    Statistics of each server can be viewed by selecting a single server and clicking Properties.

  4. Select individual servers, or use Select All to select all servers, for rendering. Each server is marked by an arrow crossing each icon.
  5. Click Submit to send the job to the rendering queue.

To use the NOTIFY.EXE program

  1. Run the Notify.exe program to display its dialog.
  2. Click each of the Browse buttons to assign a different .wav file to each field. (Click the > buttons to play the sounds.)
  3. Click OK to exit the dialog.
  4. Render a job to the network.
  5. While assigning the job, check Enabled in the Notification Alerts area, then click Settings.
  6. Choose an alert. For example, you might click Notify Progress and set it to every 10th frame.
  7. Submit the job.

    8. As the rendering proceeds, the alerts will launch the associated sound. For example, if you assigned a chime in the Progress field and set Notify Progress for every 10th frame, the chime sounds every 10th frame of the rendering.

Next Step:

Monitoring the Rendering Queue


Monitoring the Rendering Queue

The Queue Manager (queueman.exe) lets you manage, view, and receive status updates about all jobs currently submitted to the network rendering queue. This executable file is copied to the 3DS MAX root directory during setup. An icon for this standalone program appears in the program group for 3DS MAX.

The Queue Manager helps you adapt to changing needs and priorities. Jobs can be activated, deactivated, reordered, and removed, and servers can be unassigned to free up resources on workstations, or brought back online as they become available again. You can do this from any machine anywhere on the network.

You can run Queue Manager from any computer connected to the rendering network. Once started, you can connect to any available network manager. You can launch as many Queue Managers as you want from anywhere on your network and connect to a manager machine. All except the first Queue Manager connecting to the manager appear in “read only” mode. If there is already a Queue Manager connected to the manager, subsequent connections alert you that you are in read-only mode, and “Read Only” appears in the title bar. In read-only mode, you can view network render activity, but cannot change anything in the Queue.

To view all current jobs in the rendering queue, you first connect to the manager that all of the servers are "talking to.” To do this, you supply the IP address or machine name of the machine where you started the manager.

Reference

The Queue Manager ahs the following features:

Menu bar: Provides options for File, View, Actions, and Help in standard Windows style.

Tool bar: Contains the Manager Name select box and buttons for Connect, Activate/Deactivate, Delete/Unassign, Properties, and Refresh.

Job Queue display: Shows the status of jobs and the servers running those jobs in a hierarchical format.

Status display: Displays information about the currently selected item in the Job Queue display.

Status prompt: Provides a non-interactive display of activity in the Queue Manager. It also displays the current time and provides help information on commands.

How To

To run the Queue Manager

  • Start the Queue Manager by double-clicking its icon in the 3DS MAX program group, or use any other startup technique.

The window for the 3D Studio MAX Queue Manager appears.

To view all current jobs in the rendering queue

  1. In the Manager Name select box, type the IP address of a network manager. This is the same IP address that you specified in the 3D Studio Network Server Properties dialog.

    2. You can also use the computer name of the network manager machine, but using the IP address is recommended.

  2. Choose Actions/Connect in the menu bar, click Connect on the toolbar, or press Enter.

    3. The Queue Manager connects to the network manager and activates the Job Queue display below the select box. Go on to the next step on viewing jobs in the queue.

    Note: When the Queue Manager connects, the IP address or name of the network manager is written to the queueman.ini file. If Auto Connect to Last Manager is checked in the User Preferences dialog, the next time you start Queue Manager it automatically connects to establish communication with the manager.

Next Step:

Viewing Jobs in the Queue


Viewing Jobs in the Queue

All rendering jobs submitted to the network rendering queue are shown in the Job Queue display, located on the left side of the Queue manager window.

The Job Queue shows a hierarchical list of all jobs queued with the currently connected network manager. The Render Queue icon at the top of the list represents the network manager.

Reference

Each job is denoted by an icon reflecting its current status. The servers are also denoted by specific icons that reflect their current status.

Job Icons

Job is Active and currently rendering.

Job is Pending. All jobs submitted after the Active job are "waiting in line" for the Active job to finish. As jobs are completed, Pending jobs become Active in the order they were submitted.

Job is Inactive. The job was either submitted as Inactive or made Inactive through using the Queue Manager. Inactive jobs must be manually reactivated to give them an Active or Pending status.

Job is Completed. All frames in the sequence have been rendered successfully. You can delete this job from the queue if you wish.

One or more Servers on the Job have Failed. Check the failed Server’s Log for error messages regarding the failure (i.e. missing bitmaps, plug-ins, texture coordinates, etc.). A server’s log file can be viewed in the Queue Manager by simply highlighting the failed server and clicking on the log file tab. Make the appropriate corrections and resubmit the job. See Troubleshooting .

Server Icons

Server is Assigned and Active. The server is rendering the current Active job.

Server is Assigned but Absent. The server is assigned to the rendering task but is not currently rendering. This can occur, for example, when the server is either busy rendering another job, is turned off, is not running the Server application.

Server is Assigned and in Error. Check the Server’s Log in the Queue Manager for details regarding the error. See Troubleshooting.

Server is Unassigned. The server can be brought online by Activating it from the toolbar.

How To

To see the entire hierarchy

  • Choose View/Expand All on the menu bar.

To view the hierarchy of a job

  • Click the + (plus sign) to show all the servers that are available to render the job.

To update the Queue Manager

  • Choose Views/Refresh from the menu bar or press F5.

Refresh updates the displays of the Job Queue Display and the Status Display.

Next Step:

Understanding the Status Display


Understanding the Status Display

The information displayed by Status Display depends on what you select in the Job Queue list.

Reference

If you select the Render Queue text, Status Display shows two tabbed panels:

Manager Status and Manager Configuration: Provide information based on the current setup of the machine that is running the network manager, including job and server statistics, and the manager’s system configuration.

If you select a job in the Job Queue, four alternate panels become available:

Job Summary: Provides the most commonly referenced information, including estimated time to completion, output image size, and the number of frames processed.

Advanced: Displays rendering parameters that were set in the Render Scene dialog, scene statistics, and the gamma settings.

Server Statistics: Displays all servers that participated in the given project, plus their average time, in seconds, spent rendering frames. In addition, a percentage value offers information on the relative speed of the listed servers. The fastest machine is rated at 100 percent, while the other servers are rated as percentages of the fastest. Each machine is rated by measuring the time it takes to complete each frame, and the accumulated time is divided by the number of frames, resulting in the average time per frame, in seconds. The machine with the shortest time receives the 100 percent rating. A machine whose average was twice as long would receive a 50 percent rating.

Note: There are several factors that affect a machine's performance. CPU power isn't necessarily a concern when large file transfers are involved. For example, if a certain job uses several map files from a centralized server, the performance of the network throughput will play a much larger part than CPU performance as most machines will spend the majority of the time reading maps. On the other hand, if the machine has all maps locally it will have a huge advantage (local access versus network access) regardless of which CPU it is using. The Server Statistics panel provides you with information regarding your servers’ rendering performance to help analyze your network rendering setup and better distribute the work load.

Log File: Displays the job log file including the history of each frame assignment, completion by server, and any errors 3DS MAX encountered while attempting to render a job.

If you select a server in the Job Queue, three alternate panels become available:

Server Status: Displays the current staus of the selected server for a specific job.

System: Displays the system configuration for the selected server, including processor and memory status.

Log File: Shows the history of frames completed by the selected server for a specific job and any error encountered by the server.

Note: If a server has failed to render a job, this is the first place you should look to determine the reason for the failure. When a server is highlighted, the Log File panel displays the errors encountered by a server during rendering, including missing maps, missing texture coordinates, invalid output directories, etc.

Next Step:

Activating and Deactivating Jobs in the Queue

See Also:

Activating and Deactivating Servers in the Queue

Managing Jobs in the Queue

Scheduling Hours of Activity for the Servers


Managing Jobs in the Queue

Reordering lets you change the job order in the queue to meet changing deadlines or priorities. Jobs can be deleted from the queue at any time.

Reference

You can drag a job to a new location in the queue. Other jobs in the Queue are highlighted as your mouse passes over them. Depending on the Drag & Drop setting in your Queue Manager’s User Preferences dialog, the highlighted job determines where the job being moved is placed when the mouse button is released. For example, if Drag and Drop is set to Above, the job will be placed directly above the highlighted job in the Queue when the mouse button is released.

How To

To re-order a job in the queue

  1. In the hierarchy window of the Queue Manager, highlight the job to move.
  2. Hold down the mouse button, drag the job to the new location, and release the mouse button.

To delete a single job from the job queue, do one of the following

  • Select the job and click Delete in the tool bar.
  • Press the Delete key
  • Use the right-click menu.

Depending on your User Preferences settings, you may need to confirm the deletion.

To delete all jobs currently displayed in the queue

  • Select Delete Entire Queue from the Actions menu.

Next Step:

Setting Up Queue Manager User Preferences


Activating and Deactivating Jobs in the Queue

As requirements change, you can deactivate an active or pending job in the rendering queue, or reverse the process and restart jobs that are inactive.

Reference

When you deactivate a job, the servers assigned to the job either drop the frame they are rendering or finish writing the frame, depending on where they are in the rendering process. The next pending job becomes active and begins to render.

You can reactivate a suspended job, or a job that was submitted as Inactive from the Network Job Assignment dialog.

How To

To deactivate a job

  1. Select an active or pending job in the Job Queue list.
  2. Do one of the following:
    • Click the Activate/Deactivate button on the tool bar (the light-bulb icon).
    • Choose Activate/Deactivate under Actions on the menu bar.
    • Right-click the job name in the Job Queue list to display a popup menu and select Activate/Deactivate.

    If necessary, use Views/Refresh to view the new queue status.

To activate a suspended or inactive job

  1. Select the inactive job (denoted by a gray box).

    2. The Activate/Deactivate button becomes active in the toolbar.

  2. Click the Activate button, or use the menu bar or right-click menu.

    3. The job becomes either active or pending in the queue, depending on whether or not another job is currently rendering.

Next Step:

Activating and Deactivating Servers in the Queue

See Also:

Managing Jobs in the Queue


Activating and Deactivating Servers in the Queue

When prioritizing jobs and dividing up the network render load, individual servers might need to be pulled off one job and placed on another.

Reference

When you unassign a server from the current rendering job, the server’s icon changes to an empty box. If the server is assigned to another incomplete active or pending job, it is used by that job. If the server has no further job assignments, it stops rendering.

Any machine that becomes available for network rendering can be brought back for use in the current job. However, the machine must have been "broadcasting" as a server (using Desktop mode or as an installed service) when the job was submitted. A machine does not have to be assigned to the particular job, only present as a rendering server on the network at the time the job was submitted to the queue.

How To

To unassign a server from the current rendering job

  • Select the server from the Job Queue list and click Unassign in the toolbar (the X icon).

Note: The tool tip for this button reads Delete.

To assign a server that is unassigned, do one of the following:

  • Select the Unassigned server in the Job Queue Display under the specific job and click Activate/Deactivate in the toolbar.
  • Choose Activate/Deactivate from the Actions menu.
  • Right-click the server name in the queue list to display a pop-up menu.

Next Step:

Managing Jobs in the Queue


Setting Up Queue Manager User Preferences

You can customize many of the Queue Manager’s functions in the User Preferences dialog.

Reference

Auto Refresh

Set an automatic refresh rate to update the data displayed in the Queue Manager.

Enabled: Enables auto-refresh function.

Rate: Specifies the number of minutes (between 1 and 30) before each refresh.

Manager Connection

Auto Connect to Last Manager: Automatically connects the Queue Manager to the last specified TCP/IP address or Manager Name each time you launch it. You still have to specify and connect to an address when you first install and run Queue Manager. When unchecked, you must manually connect to the Network Manager each time you launch the Queue Manager.

Confirmation

Confirm Activation/Deactivation: Displays a confirmation message when you activate/deactivate a job or server. When unchecked, the message does not appear, and the job or server is activated or deactivated.

Confirm Job Deletion: Displays a confirmation message when you delete a job in the queue. When unchecked, the message does not appear, and the job is deleted.

Drag & Drop

Lets you choose how you want dragged items in the queue to “drop.”

Above: Places a dragged-and-dropped item in the queue above the item it’s currently over.

Below: Places a dragged-and-dropped item in the queue below the item it’s currently over.

How To

To display the User Preferences dialog

  • Choose File/Preferences in the Queue Manager.

Next Step:

Using the Queue Manager Report Generator


Using the Queue Manager Report Generator

You can generate ASCII reports containing detailed statistics about a particular job or a server if a job or a server is selected in the Job Queue list.

Reference

Header

Specifies the type of header to include in the report file, in addition to the body information.

Long: Includes information above the body of information, including Job Name, Submitted by, Frame Start/End, Output Width/Height, Pixel Aspect Ratio, and Image Aspect Ratio.

Short: Includes only the column titles in the report

Record Delimitation

Specifies the type of delimiter used between the fields. If you use a tab delimiter, the report will import correctly into Microsoft’s Excel or Access applications.

Tab: Inserts a tab between fields in the report.

Space: Inserts a space between fields in the report.

Comma: Inserts a comma between fields in the report.

Use Quotes: Brackets each field with double quotes.

Output File

Text Field: Specifies the report’s filename. You can specify a complete path, if you wish. By default, the path is the directory containing the Queueman.exe file.

Tip: If you use a shortcut icon to launch Queue Manager, you can specify the path for your report’s output file in the Start In field in the Properties dialog for the shortcut.

Browse: Displays a file selector where you can specify a file path for the report.

How To

To display the Report Generation dialog

  • Choose File/Report in the Queue Manager.

Next Step:

Scheduling Hours of Activity for the Servers


Scheduling Hours of Activity for the Servers

Using the Queue Manager, you can arrange the hours during which servers are available for network rendering.

Reference

You can specify certain hours for any day of the week. This is useful, for example, if the server is used as a modeling workstation during normal business hours and you do not want it being used as a network render server during this time.

How To

To schedule a set of active hours for a server

  1. Select a single server in the Job Queue and click Properties in the tool bar, or choose File/Properties.
  2. In the dialog that appears, select a time using one of the following methods:
    • Select a block of hours for network rendering. The selection is shown in white.
    • Select an entire day or a row of hours across the full week by clicking the button in front of the row or column.
  3. Click the Allow button. The selection is shown in green. (By default, all hours are Allowed but shown in blue).
  4. To apply the time selection to the selected server, click OK.
  5. To apply a time selection to all servers currently under the Manager, click Apply To to display a Server Selection dialog. Select any number of servers using CTRL-Select or Select All, then click OK.

To schedule hours when servers are unavailable

  1. Select a server in the Job Queue and click Properties in the toolbar.
  2. Select a block of hours (for example, Monday through Friday, 8 AM to 5 PM).
  3. Click Disallow. The selection turns red.
  4. Click OK to apply the changes to the selected server, or use Apply To to apply the changes to multiple servers in the queue.

Next Step:

Installing Network Services Under Windows NT


Installing Network Services Under Windows NT

To install network services under Windows NT, you must already have done the following:

  • Used Desktop mode to make your rendering network operational.
  • Used your network in production so you are sure it is running reliably.

Do not proceed unless these conditions are met.

Reference

Installing the network manager and rendering servers as Windows NT services allows background rendering and is convenient, but it also means that you have less information about problems when they occur. This is why your network needs to be running smoothly before taking this step.

In the procedures that follow, the manager and server services are installed and registered under Windows NT. This installation replaces the use of Desktop mode (running the manager and server manually each time you wish to use them). The services are started automatically every time you boot the computer, but can also be set for manual startup. The Network subdirectory and INI and LOG files from Desktop mode remain in place, but the services operate under Windows NT instead of in a separate process.

To run the Manager and Server as an NT service, you must initialize and start the programs directly from a Command Prompt window using a -i switch (install as a service).

To remove the Manager or Server once they have been installed as an NT service you must start the programs directly from a Command Prompt window using a -r switch (remove service).

How To

To set up the Manager as an NT service

  1. Go to the machine on which you will install the Manager as an NT Service.
  2. Open a Command Prompt window and change the directory to the 3DS MAX root directory (for example, c:\3dsmax).
  3. Enter manager -i

    4. The following message should be displayed:

    Installing Windows NT Service...

    Service Installed

    Note: If this is the first time you have run the Manager you will be asked to configure it. Click OK to accept the default settings and run manager -i again to install the service

  4. Reboot the machine so the services are correctly registered. The services are automatically started and ready to use whenever you start up the computer.

Server Service Setup

  1. Go to the machine on which you will install the Server as an NT Service.
  2. Open a Command Prompt window and change the directory to the 3DS MAX root directory.
  3. Enter: server -i

    4. The following message should be displayed:

    Installing Windows NT Service...

    Service Installed

    Note: If this is the first time you have run the Server you will be asked to configure it. Click OK to accept the default settings and run server -i again to install the service

  4. Reboot the machine so the services are correctly registered. The services are automatically started and ready to use whenever you start up the computer.
  5. Repeat these steps on every machine on which you want to setup Server as an NT Service.

Next Step:

Creating a Special User Account


Creating a Special User Account

If you run the Server as an NT Service, you should create a special user account, which gives the Server the right to access other machines on the network for necessary maps and output directories. This account must be identical across all rendering server machines.

Reference

By assigning a user to rendering Server service, you configure the rendering server to operate with the permissions and access rights of that user account. Without this assignment, the rendering server operates with system permissions, which do not let the server service access map, image, or output directories on other machines.

Note: These steps require you to have administrative privileges on every machine where you set up this account.

Remember, before using 3DS MAX for rendering, you must authorize the program on every rendering server. Otherwise, an authorization reminder will interfere with rendering.

How To

To create a new user

  1. From the Start Menu select Programs/Administrative Tools/User Manager.
  2. In the User Manager program, choose User/New User to display the New User dialog. If the New User option is grayed out, you don’t have the required administrative privileges.
  3. In the New User dialog, do the following:
    • Enter a user name for the new account in the Username text box. This can be any name, but it should be the same across all network rendering machines.
    • Enter a password for the new account in the Password and Confirm Password boxes. Like the user name, this password needs to be the same for all rendering servers.
    • Click OK to create the new user and password.

To assign a user to a rendering Service

Do the following on every computer used as a rendering server:

  1. From the Control Panel, double-click the Services icon to display the Services dialog.
  2. From the Service list, choose the 3D Studio MAX 2 Network Renderer Server service.
  3. Click Startup to display the Service dialog.
  4. Check This Account and enter the name of the new user you created for the special user account.
  5. In Password and Confirm Password, enter the password for the special user account.
  6. Click OK to exit the Service dialog.
  7. If the Stop button is enabled, click it to stop the rendering service.
  8. Click Start to restart the service with the newly assigned user.

Next Step:

Manager and Server INI Files


Manager and Server INI Files

The first time you run the Manager and Server applications, they create initialization (.ini) files in the Network subdirectory of the main 3DSMAX directory. You can change most of the settings in the Manager.ini and Server.ini files using the Manager Properties and Server Properties dialogs.

The parameters listed here cannot be changed through the Properties dialog user interface. You can change them by editing the .ini files in a text editing application, such as Notepad, but do so only if you are experiencing network problems with the 3D Studio MAX network renderer.

Reference

Manager.ini

Max Block Size: Located under the [Network Configuration] heading, this value is the maximum size of a data packet sent when transferring large blocks, such as projects. For slow connections like modems, it use a smaller packet size, for example, 1024.

Acknowledgment Timeout: Located under the [Timers] heading, this value is the amount of time (in seconds) that the system will wait for an acknowledgment of commands (like Ping) sent back and forth between the manager and server. The default is 20 seconds. This parameters must be the same in the manager.ini and all server.ini files.

Acknowledgment Retries: Located under the [Timers] heading, this value determines how many times the sender retries if no acknowledgment is received. The default is 6 tries. After that, the machine is considered down and put off-line. This parameter must be the same in the manager.ini and all server.ini files.

Concurrent Job Assignment: Located under the [Operation] heading, this setting determines the number of Job Assignment sessions the manager will start concurrently between the manager and server, to send the server the job description and 3DS MAX file. MAX files can be large, so be sure the network and the machine running the manager service can handle the value you set.

Server.ini

Acknowledgment Timeout: Located under the [Timers] heading, this value is the amount of time (in seconds) that the system will wait for an acknowledgment of commands (like Ping) sent back and forth between the manager and server. The default is 20 seconds. This parameter must be the same in the manager.ini and all server.ini files.

Acknowledgment Retries: Located under the [Timers] heading, this value determines how many times the sender retries if no acknowledgment is received. The default is 6 tries. After that, the machine is considered down and put off-line. This parameter must be the same in the manager.ini and all server.ini files.

Next Step:

Hosts INI File


Hosts INI File

The Hosts.ini file provides a method for low-level security in network rendering. Specific IP addresses can be added to the file to allow only those machines to be used in the 3DS MAX network rendering farm.

Reference

There are two options for the Hosts.ini file:

  • Specify a single wildcard character. This is the default, and it means that no restrictions are enforced
  • Specify the IP address of each server that is to participate in the rendering farm.

To add specific IP addresses to the Hosts.ini file, type them below the last line of the file and remove or comment out the default * (asterisk) character. Any computer that does not fit the specified IP address will be labeled as an Untrusted Host, and will not be allowed to be used in the network rendering farm. This applies to both servers and managers.

Here is an example of the file:

#--------------------------------

# 3DS MAX Trusted Hosts Database

#

# List here host IP addresses allowed to

# connect to the network rendering manager.

#

# A single start ('*') means no restrictions

# are enforced (the default).

#

# Any number of IP addresses can be entered. One

# per line.

#

# e.g.:

#

#192.200.100.1

#192.200.100.2

#

*

Next Step:

Batch Rendering


Troubleshooting Guide

This is a guide to solving common problems associated with network rendering. Solutions to these problems vary, depending on whether you are using the network rendering programs as installed Windows NT Services, or running them in Desktop mode.

PROBLEM

When I submit a job to the network rendering queue, I can’t connect to the Manager.

SUGGESTION

Make sure you entered the correct name or IP address in the Manager field in the Network Job Assignment dialog and verify that the manager service is started:

  • If running in Desktop mode, go to the window that is running the Manager service. Be sure that the servers are “pinging” the manager. The DEBUG option must be checked in the Log to Screen section of the Server Properties dialog to display the “pinging” messages. If the Manager is not running or appears inactive reboot it. See Initial Setup for Manager and Server Programs .
  • If running Manager as an installed service, go to the Control Panel under Services and verify that the Manager Service has been installed and started. If it is not, click Start to restart the Manager. See Installing Network Services under Windows NT.

PROBLEM

When I connect to the Manager, I don’t see a server that should be listed.

SUGGESTION:

Verify that the server is correctly running:

  • If running the server in Desktop mode, verify that it has been launched and make sure that it is being “pinged” by the Manager at 10- to 30-second intervals. Check the DEBUG option in the Log to Screen section of the Server Properties dialog to display the “pinging” messages.
  • If running the server as an installed Windows NT service, display the Control Panel under Services and verify that the Server Service is installed and started. If the server is not installed, see Initial Setup for Manager and Server Programs. If the server service is installed but not started, click Start in the Services dialog, with the Server service selected.
  • Verify that the correct IP address or machine name is listed in the Manager Name or IP Address field in the Server Properties dialog. If the Manager’s IP address or machine name is missing or listed incorrectly, enter the correct IP address or machine name. To make the new settings take effect, reboot the server.
  • Verify that your NT HOSTS file (located in the winnt\system32\drivers\etc\ directory) includes the IP address and corresponding machine name for each of the servers and manager involved with the 3D Studio Network Render. The HOSTS file provides mapping for machine names to IP addresses.

PROBLEM

When I try to assign a job in the Network Job Assignment dialog, some of the servers display a gray or yellow icon.

SUGGESTION

Regardless of their state in the Network Job Assignment dialog, servers can always be assigned new jobs.

The gray icon means that the server is currently not available to render a job. This state can occur for several reasons, including:

  • The server has not been correctly started (see Initial Setup for Manager and Server Programs).
  • The server has been disallowed for the current time period in the Properties dialog of the Queue Manager (see Scheduling Hours of Activity for the Servers).
  • The server has experienced abnormal termination.

If you’ve checked these conditions and the servers are still unavailable, stop running server on each of the problem machines, and restart the service after a few seconds. This “purges” the server and may solve the problem. Then click Refresh in the Network Job Assignment dialog to display the most recent information about the server.

The yellow icon means that the server is busy rendering another job. If the server should not be busy, verify that the queue is clear of jobs by opening the Queue Manager and connecting to the Manager. If the queue is clear of rendering jobs and the server is still flagged as busy, stop running server on each of the problem machines, and restart the service after a few seconds.

PROBLEM

When I submit a job to be rendered, the server fails.

SUGGESTION

Servers can fail for a variety of reasons during a network render job. Some of the more obvious reasons include:

  • Bitmaps used in the scene are not correctly pathed, so the servers cannot find them when attempting to render the job. Solve this by ensuring that all bitmaps are pathed using the UNC format or that drive and directory structures are identical on all machines involved in Network Rendering. See Setting Up Directories.
  • The output directory is not a valid path for the server machine. See Setting Up Directories and make sure a specific output path is available to all servers.
  • An object in the scene does not contain texture coordinates.
  • A plug-in used in the scene is not correctly pathed or does not reside on a server rendering the job.
  • The Include Maps option is being used and the archive utility has not been added to the system path or does not exist on the server.
  • There is not enough space on the target output drive.
  • There is not enough space on the local drive of the server to hold the incoming data.

Note: All errors are recorded in the appropriate log file. You can view most of the errors mentioned above in the max.log file in the \Network subdirectory on each server machine. This is the file that is displayed in the Queue Manager when a server is highlighted and the Log File tab is selected. Any time a server fails, check the max.log file to determine the cause of the failure. Here are some of the error messages, along with a likely cause, that you will see in the Log File tab of the Queue Manager when a failed server is selected:

ERR: ----- Render Error:

ERR: D:\MAPS\3DS.CEL [where this is the location of a map in the submitted scene]

The Server could not find 3DS.CEL in the local path specified, which means that this map has not been correctly pathed for network rendering. To fix the problem, do one of the following:

  • If all maps are being shared from a single directory, make sure the directory is still exported with full permissions. See Sharing a Directory.
  • Make sure that you have used either the full UNC path name for the bitmaps or that the MAPS directory has been mounted to the same drive letter on each machine. In this case, verify that particular path has been added to the Configure Paths dialog of every server’s local version of 3D Studio MAX or that the particular path was used when assigning bitmaps in the scene to be rendered.
  • Verify the bitmaps still reside in the shared directory.

ERR: Object (UVW 1): Sphere01 requires texture coordinates and may not render correctly

ERR: Frame error

Texture coordinates must be applied to the specified object to render it on the server.

ERR: Load Error: Missing DLL’S

Following this error, you will also receive a listing of each of the missing DLLs in the scene. Files needed by the server are not available to render the job. Make sure that all the plug-in DLLs used in a job reside on each of the servers rendering the job.

ERR: Targa - The device is not ready. (0x15)

ERR: Frame error

The server could not write the output file. “Targa” represents the file output type, and will change depending on the output file type you selected. This problem can occur for several reasons:

  • If you are running the Server Network Service as an installed NT service, make sure that the user account that the service is logged to has adequate NT permissions. Administrative permissions are recommended. See Creating a Special User Account.
  • Check to make sure the target output directory is shared, with both read and write permissions.
  • Verify that the path for saving file output in the Render Scene dialog (or the Output Event dialog in Video Post) is set to a valid UNC path name.
  • If you are writing to a shared directory mounted locally on each server, verify that the directory is mounted to the same drive letter on each server, and that the file output path is set for that drive letter.

PROBLEM

The Server fails to render a frame and displays the following error:

Rebooting MAX by force due to load timeout.

SUGGESTION

The server has exceeded either the Wait for MAX to Load or Wait for MAX to Render value. This is usually caused by attempting to render large files over the network. Increase these values in the Server Properties dialog.

PROBLEM

When I start the Server in desktop mode I get the following error message in the Server window:

Host [manager name] not found.

SUGGESTION

First verify that the manager’s machine name or IP address is correctly specified in the Server Properties dialog. Next verify that the Manager and Server port numbers are correctly specified in the Manager and Server Properties dialogs. If this does not solve the problem, verify that TCP/IP is correctly configured on all workstations running 3D Studio MAX. See Setting Up TCP/IP.

PROBLEM

When I start the Manager and Server in desktop mode I get the following error message in the Manager window:

Error registering [server name].

SUGGESTION

This error is usually caused by invalid IP Addresses listed in the DNS Service Search Order or the Primary or Secondary WINS Server in the Microsoft TCP/IP dialog. To display this dialog, double-click the Network icon in the Control Panel, select the Protocols tab, and double-click the TCP/IP Protocol. If there are invalid IP Addresses listed in either the DNS or WINS Address panel, remove them and reboot the machine.

PROBLEM

While running the Server in desktop mode I get the following message:

Unknown TCP gibberish from [Manager Name or IP Address]

SUGGESTION

The checksum in the TCP packet does not match the calculated one. You have transmission problems that are caused by a bad line condition, possibly in combination with a bad set of network drivers. Re-submit the job to see if you get a better connection next time and, if not, install network drivers appropriate for your hardware and software version.

PROBLEM

When I start 3DS MAX I get an error message saying TCP/IP is installed incorrectly.

SUGGESTION

Verify that TCP/IP is configured correctly on all workstations running 3D Studio MAX, either as a Server or modeling workstation.

Some systems are sold with a pre-installed version of Windows NT and a non-working TCP/IP installation. Delete the existing TCP/IP protocol and re-install it. This may be faster than troubleshooting a badly installed TCP/IP layer. See Setting Up TCP/IP.

PROBLEM

I can assign a job to a single server only in the Network Job Assignment dialog.

SUGGESTION

If the output of a network-rendering job is an AVI, FLI, FLC, or CEL file or a single user device, the job can be assigned to a single server only. The Network Job Assignment dialog changes, depending on the file output type of a job. For example, if you are network rendering to one of the file formats above, the All and None buttons do not appear and the dialog title bar contains the word “Single.”

If a job that has an AVI, FLI, FLC, or CEL file output type is stopped for any reason (to deactivate it, or because a machine goes down), re-rendering the file restarts at the first frame. Frames cannot cannot be appended later to these file types.

To take advantage of the distribution power of network rendering we suggest you first render to a serier of Targa files. Then use the Targa files as either an animated background in a blank MAX scene, or as an image input event in Video Post and render the sequence out to the desired output type (i.e. AVI).


Animation Controllers

Controllers are plug-ins that handle all of the animation tasks in 3D Studio MAX, including:

  • Storing animation key values.
  • Storing procedural animation settings.
  • Interpolating between animation key values.

There are six controller types:

Float Controllers: use floating point values.

Point3 Controllers: a general purpose, three-component data type.

Position Controllers: controls for position.

Rotation Controllers: controls for rotation.

Scale Controllers: controls for scale.

Transform Controllers: controls for position, rotation and scale

Most parameters don't receive a controller until you animate them. As soon as you change a parameter with the Animate button on, or click in its track using Track View Add Keys, a default controller is assigned to the parameter.

You are not required to keep the default controller for any parameter. 3DS MAX has many available controllers that you can choose at any time. You can change the controller assigned to a parameter and even specify the default controller to use in the future.

You can assign controllers in Track View and in the Motion Panel.

For a list of available controllers see Assign Controller (Track View) .


Look At Controller

The Look At controller takes over the entire Transform track of an object, and then forces that object to constantly look at another.

This controller uses standard Position and Scale controllers but the Rotation controller is restricted to Roll Angle only. The Look At Controller is the default controller for targeted spotlights and targeted cameras.

Reference

Create Panel/Parameters/Look At Parameters rollout:

Create Key/Delete Key

The six buttons in this section let you create or delete a transform key at the current frame. These buttons become active or inactive depending on the existence of a key type at the current frame. For example, if you're on a frame containing a Scale key, the Scale button is inactive in the Create column, because a key already exists. At the same time, the Position and Roll buttons are inactive in the Delete column because there are no keys of that type to delete.

The Roll button replaces a Rotate button because you can only adjust the rotation of the object about its local Z axis. The X and Y axes are reserved by the controller to make the object look at its target.

Look at Target area

Text field: The name of the Look At target object is displayed here.

Pick Target: Click, then select the object in the scene that you want the selected object to look at.

Axis area

XYZ: The X, Y, and Z option buttons point the negative X, Y, or Z axis toward the target object when the Flip button is not selected. When the Flip button is selected, the chosen axis is pointed toward the target in a positive direction.

Flip: Points the chosen axis in a positive direction towards its target.

Position/Roll/Scale: Determines the contents of the Key Info rollouts that appear below the Look At Parameters rollout in the Motion panel.

How To

To use the Look At controller:

  1. Select a single object.
  2. Open the Assign Controller rollout in the Motion panel.
  3. Select the Transform controller at the top of the list in the Assign Controller rollout.
  4. Click Assign Controller.
  5. Choose Look At from the assign Transform Controller dialog.

    6. When you first assign a Look At controller to an object, it points at the World Origin.

  6. Open the Look At Parameters rollout in the Motion panel.
  7. Click Pick Target in the Look At parameters rollout.
  8. Click an object in the scene to be the target.

As soon as you click the target object, the object using the Look At controller spins around to look at the target. From then on, the object using the Look At controller always points at the target object.


Path Controller

Allows you to assign a spline as a trajectory (path) for an object so that the object follows the path. As with all controllers that affect transforms, you can assign a Path controller in either the Track View or the Motion command panel. However, once assigned, only the Motion command panel lets you specify which spline will be used as the path.

Reference

Motion Panel/Parameters/Path Parameters rollout

Pick Path: Click and then select the spline in the scene that you want the selected object to follow.

% Along Path: Set the percent that the object is positioned along the path. This duplicates the Value spinner in the track Properties dialog for the Percent track in Track View.

If you want to set keys to place an object at a certain percent along the path, turn on the Animate button, move to the frame where you want the key set, and adjust the % Along Path spinner to move the object.

Follow: Turn on to align the object to the trajectory as it follows the contour.

Bank: Turn on to allow the object to bank (roll) as it negotiates the curves of the spline.

Bank Amount: Adjusts the amount of the banking to one side or the other, depending on whether the value is positive or negative

Smoothness: Controls how rapidly the roll angle changes as the object moves through bends in the trajectory. Smaller values will make the object more responsive to subtle changes in the curve while larger values smooth out jerking. The default value is a good value for general damping along the curve. Values below 2 tend to make the action jerky, but values around 3 can be very useful for simulating a certain degree of a certain degree of realistic instability.

Allow Upside Down: Turn on to avoid the situation in which an object flips when going around a vertically oriented path.

Constant Velocity: Turn on to provide a constant velocity along the path. When this is turned off, the velocity of the object along the path varies depending on the distance between the vertices on the path.

X, Y,Z & Flip: Only available when Follow is Selected. Specify which axis of the object will be aligned with the path. The Flip check box lets you flip the direction of the object on the path 180 degrees.

How To

To use the Path Controller:

  1. Select a single object.
  2. Click Parameters in the Motion panel.
  3. Select the Position controller in the Assign Controller rollout.
  4. Click Assign Controller.
  5. Choose Path from the Replace Transform Controller dialog.
  6. Click Parameters in the Motion panel.
  7. Click Pick Path in the Path Parameters rollout.
  8. In the Viewport, select a shape object.

    9. You can create a shape in Create/Shapes if one does not exist.

To use the Path Controller with the IK Controller

  1. On the Create panel, click Shapes, then click circle.
  2. In the Front viewport, drag a small circle about an inch in diameter.
  3. On the Create panel, click systems, then click Bones.
  4. Turn on the three options in the IK Controller area of the Bone Parameters rollout (Assign To Children, Assign To Root, Create End Effector).
  5. In the Front viewport, create a two bone Hierarchy.
  6. Select the last bone created (farthest from the root).
  7. On the Motion Panel/Assign Controller rollout, select End Effector Position, then click the Assign Controller button.
  8. In the Assign Position Controller dialog choose Path, then click OK
  9. On the Motion Panel Path Parameters rollout turn on Pick Path.
  10. In the Front viewport select the circle.
  11. On the Viewport Controls click Play.

    12. The End Effector on the last bone follows a circular path, the Bones rotate to follow the End Effector.


IK Controller

IK Controller (Bones)

The IK Controller requires that you use the Bones system. When you create the bones, a slave IK controller is assigned to each bone. All of the slave IK controllers in a single hierarchy are, in turn, controlled by a master IK controller (controls for the master IK controller are in Motion Panel/Parameters). When you edit the IK controller for any selected bone in the Motion Panel, you’re actually editing the IK settings for all of the bones.

Bones

A Bones system is a jointed, hierarchical linkage of "bone" Objects. You cannot render bones. Bones are used as an armature on to which objects are linked. If a "skinning" system is available, such as Character Studio Physique, you can use it to "skin" an object to the bones.

Advantages of using Bones with the IK Controller

  • The IK solution happens in real time using this controller. You do not have to use Apply IK to generate an accurate IK solution.
  • Special end effectors can be assigned to bones. When you animate your hierarchy, keys are created only for the end effector.
  • Icons are used to display joint axes and limits, if limits have been set.
  • In the Motion Panel; Position, Rotation, Threshold settings, and the Iterations settings can be set differently for each master IK controller.

The IK Controller is accessed in three main areas

Create/System/Bones: Creates bones. Parameters specify how the IK Controllers are assigned to the bones during creation. The Auto Boning system can automatically assign bones to an existing hierarchy. Once the bones are created, their controllers provide an IK solution automatically.

Note: You should not turn on the IK toggle on the toolbar when using IK Controllers.

Motion Panel: Though a single bone in a bone hierarchy may be selected, changing the IK Controller Parameters in the Motion Panel affects the entire chain. Use parameters here to assign, remove, and edit the end effector for the currently selected joint.

Hierarchy/IK Panel: With the exception of the Inverse Kinematics rollout (Apply IK is not necessary with the IK Controller), controls here affect the IK Controller.

Reference

Create/Systems/Bones/Bone Parameters rollout

IK Controller area

Assign To Children: Assigns the IK Controller to all of the created bones, except the first (root) bone. When clear, the standard PRS Transform controller is assigned to the bones.

Assign To Root: Assigns an IK Controller to the root bone as well as all of its children. When clear, the root bone is assigned a PRS Transform controller. This check box is disabled when Assign to Children is clear.

Create End Effector: Creates an end effector to the last child in the chain of created bones. When clear, the end effector is not assigned.

Auto Boning area

The items in this area let you automatically assign bones to the linked objects in an existing hierarchy. The options in the IK controller area affect these bones in the same way they affect bones you create with the mouse.

Pick Root: Turn on and select an object in the viewports to establish the root object of your chain. Bones will be created for that object, plus all its descendants. The selected object can be the child of another, resulting in boning of a subtree.

Auto Link: Automatically links the corresponding objects in the specified hierarchy to their associate bones. When this is clear, the bones are linked to each other, but the objects are not linked to the bones. In most cases, you will want this turned on.

Copy Joint Parameters: Turn on to copy all of the joint parameters (sliding and rotational joint parameters found in the Hierarchy/IK branch) from the objects in the hierarchy to the bones.

Match Alignment: Matches the local coordinate system of the bones to the local coordinate system of the associate objects in the hierarchy. When clear, the bones are created with local coordinate systems that are aligned with the world axes.

Motion Panel/Parameters/IK Controller Parameters rollout:

To adjust the parameters for all bones in the chain, you select a single bone, and then adjust the parameters in Motion Panel/Parameters to affect all bones in the hierarchy.

Thresholds area

These settings are the same as those in Files/Preferences/Inverse Kinematics. The main difference between these and the original IK settings is that these affect only the master IK controller for the selected chain, whereas the others affect all (original) IK systems in 3DS MAX.

Position: Specifies, in units, the “slop” factor between the end effector and its associate object. This is the allowable distance between the end effector and its object, given the current IK solution.

Rotation: Specifies the allowable number of degrees of rotational error between a rotational end effector and its associate object.

Solution area

Iterations: Specifies the maximum number of iterations allowed to solve the IK solution. The actual number of iterations used depends on the difficulty of the problem. This value simply puts a cap on it.

Start Time/End Time: Specifies the range of frames in which IK is solved. If the Start Time is set to 20 and the End Time is set to 80 in a 100 frame animation, and then the end effector is animated, the animation of the chain will only be correctly solved within the Start and End range .

Initial State area

When you first create a chain, the initial position of the bones is the initial state. The options here let you display, alter, or lock the initial state. When both of these check boxes are clear (the default), transforming the end effector is different than transforming the other joints in the chain. When you select and transform a joint assigned an end effector, you are actually transforming the end effector, and an IK solution transforms the joints. This will alter the position of the bones in the viewport, but will not alter their initial state. On the other hand, when you select and transform any of the joints without end effectors, you alter their initial state.

Show Initial State: Shuts off the real-time IK solution. All objects in the chain are moved to their initial positions and orientations prior to any changes caused by IK calculations. The positions of the end effectors, however, are not affected. Select this option to view the initial state, or adjust the initial state of bones with end effectors. This is useful when setting joint limits in the Hierarchy/IK branch; the joints jump to their limits while you set them. When this is clear (the default), you can select and alter the initial state of bones without end effectors, but when you select a bone with an end effector, the end effector is transformed, leading to an IK solution; the initial state of the associate object is not changed. By selecting this, you can transform the initial state of the associate object.

Lock Initial State: Locks all bones in the chain from direct transformations. You can, however, transform the end effector of any joint to generate the IK solution without altering the initial state. Activate this when you want to avoid accidentally selecting and transforming joints that are not assigned end effectors. When Show Initial State is selected, Lock Initial State is ignored.

Update area

The options in this area determine how the IK calculation is solved during the transformation of the end effector.

Precise: The entire chain is solved precisely for all frames from the Start time to the current time. When you let up on the mouse, the chain will not move. Since all frames must be solved from Start to current, the solution will take longer if the current frame is 1000 rather than 100.

Fast: The chain is solved only for the current frame while the mouse is moved. Releasing the mouse button, solves for all frames. Although this is faster than Precise, sometimes the current-frame solution differs slightly from the all-frame solution. As a result, when you let up on the mouse, the bones in the chain might shift a bit.

Manual: When this option is used, the IK problem is not solved until you click the Update button.

Update: Use this when Manual is turned on, to solve the IK solution.

Display Joints area

The options here affect the display of the joint axes and limits. When a Rotational or Sliding joint is Active (Active is selected in the Sliding or Rotational Joints rollouts in the Hierarchy/IK panels), an orange “rod” appears representing the active axis. When the joint is also Limited, a pair of small orange squares appear, representing the From and To limits of the joint. If it’s a Sliding joint, the squares are positioned on the axis rod. If it’s a Rotational joint, the squares are at the ends of an orange arc.

Always: Displays the axis rod and joint limits for all joints in the chain at all times.

When Selected: Displays the axis rod and joint limits only on selected joints.

Tip: The joint icons can be difficult to see when the bones are linked to mesh objects. When animating a bone-based hierarchy, you can hide all of the objects and display and animate only the bones, which makes the joint icons more visible. This is most easily done by hiding Geometry by category in the Display branch.

End Effectors area

With the options in this area, you can add or delete Position or Rotation end effectors for any joint. Options affect only the currently selected joint. An end effector is the object that the IK chain follows to come to a solution. There are two types of end effectors; Position and Rotation. Both are displayed as three intersecting blue lines at the joint. When you select a joint that carries either or both end effectors, and perform a transformation matching the type of end effector, only the end effector itself is transformed. The objects in the chain then use IK to follow and create the IK solution.

When you transform a joint that does not have an end effector (or perform a type of transform that doesn’t match the assigned end effector) you transform the joint itself and alter its initial state. When you first create a chain of bones, a Position end effector is automatically created on the last joint.

Position

Creates or deletes Position end effectors. If the node already has an end effector, only the Delete button is enabled.

Create: Creates a Position end effector for the selected node.

Delete: Removes the Position end effector from the selected node.

Rotation

Works like the Position buttons, except Rotation end effectors are created rather than Position end effectors. When you want to solve for IK rotation, add a Rotation end effector, and then use the Rotate tool to rotate the end effector.

Create: Creates a rotational end effector.

Delete: Deletes a rotational end effector.

End Effector Parent

Links an end effector to another object in the scene. Since end effectors are not, in themselves, objects, you won’t see this linkage in Track View, but the linked end effector will inherit the transformations of its parent.

Note: Apart from the root object, you can’t link an end effector to an object in the hierarchy because it would create an endless loop. The position of all objects in the hierarchy depend on the position of the end effector, so the end effector can’t depend on the position of an object in the hierarchy.

End Effector (Display): Displays the name of the selected parent object.

Link: Makes a selected object a parent of the currently selected link.

Unlink: Unlinks the currently selected end effector from its parent.

Joints area

Delete: Deletes the selected joint.

Note: Using the Delete key will delete the entire hierarchy.

Position/Rotation: Select Position to see the Key Info parameter rollouts specific for a Position end effector. Select Rotation to see the parameters for an assigned Rotation end effector. The related button is disabled if its end effector is not assigned. (The Key Info parameters are the same as those used for any Position or Rotation controller.)

Using the Hierarchy/IK Panel with the IK Controller

The Hierarchy/IK command panel treats the IK Controller in the same way as the original IK system, with the following exceptions and changes:

  • The first rollout, Inverse Kinematics, has no effect because its primary purpose is to use Apply IK.
  • When Terminator is selected, the associate joint of the bone is displayed in red.
  • The default joint constraints for the IK Contoller are different. In original IK, all three Rotational-joint axes are activated and none of the Slider joints. With the IK Controller, a single Rotational-joint axis is activated, it is that of the world axis which is perpendicular to the viewport in which the joint is created. If you create a chain of bones in the Front viewport, for example, the Y rotational axis is activated by default.
  • You can apply sliding and rotational joint settings to a selected set of bones as long as they’re in the same hierarchy.
  • The Copy and Paste buttons for Sliding Joints and Rotational Joints can be used to copy and paste the joint settings between IK controllers. You can also copy joint settings from a non-IK controller to an IK controller, but you can’t copy from an IK controller to a non-IK controller. In addition, when using this with a IK Controller hierarchy, you can paste to a multiple selection of joints.

How To

Create a Bones hierarchy that uses the IK Controller:

  1. In the Bone Parameters rollout of Create/Systems/Bones, turn on Assign To Children, Assign To Root and Create End Effector.
  2. In the Front Viewport click and drag to create 2 bones, right click to stop bone creation.

    3. Test the IK Chain.

  3. Turn on Select and Move on the Toolbar.
  4. In the Front Viewport, select the last bone created and move the bone around.

    5. The end effector (blue cross) follows your motion. The bones follow the end effector.

    • Only the rotational Y Axis is active for the bones. The active rotational axis depends on which viewport the bones were created in. The local axes for the bones are aligned to the world axes.
    • The diamond icons representing the bone joints do not change size when you scale the bones. This is to prevent them from disappearing if you scale down your bone hierarchies.
    • When you animate the End Effector, keys are created only in the end effector track. These keys affect the IK animation for the entire chain.


Link Controller (Animated Hierarchies)

The Link controller lets you animate the transfer of hierarchical links from one object to another. For example, you could have the same object passed from object to object.

Note: For the most predictable results, parent objects should be animated before the links are added to the controlled object. If the parent’s animation needs to be adjusted, the link should be deleted first, and then reassigned after the parent’s animation has been modified.

You access and assign the Link controller in the Motion branch.

Reference

Motion Panel/Link Parameters rollout:

Contains all the controls specific to the Link controller

Add Link: Select and then click the object that you want to act as hierarchical parent. The name of the selected object appears in the list window. The frame at which you add the link is the frame where the control is passed. You can adjust this with the Start Time spinner, described below. You can add the same object more than once as a link.

Delete Link: Select an object name from the list window, then click the Delete Link button.

List Window: Displays the objects used as links. Select them for use in conjunction with the Delete Link button and the Start Time spinner.

Start Time: Displays and lets you adjust the frame time at which the highlighted link object first takes control. Select one of the object names in the list window to enable this spinner and see the frame at which this object becomes parent. You can now adjust the value to change when the link transfer takes place.

PRS Parameters (rollout): Contains the same controls found in the standard PRS Transform controller.

Key Info (rollout): Provides the same controls as a standard Transform controller.

How To

To combine a Link controller and a Path controller:

You can’t directly use a Link controller to switch an object that’s already been assigned a Path controller. Instead, you use a dummy. Follow these steps to animate a sphere moving along a helix, and then transfer the sphere to a swinging arm.

  1. Create a scene consisting of a helix (tapered, with a few turns), a small sphere, a dummy, and a cylinder for the swinging arm.
  2. Assign a Path controller to the dummy, and assign the helix as the path.
  3. The dummy moves along the helix.
  4. Center the sphere on the dummy.
  5. Select the sphere, go to the Motion panel, and open the Assign Controller rollout.
  6. Assign a Link controller as the sphere’s Transform controller.
  7. Go to frame 0, click Add Link, then click the dummy.
  8. The name of the dummy appears in the list window. When you drag the time slider, the sphere moves up the helix along with the dummy.
  9. Adjust the cylinder so that it points in from the side toward the helix. Rotate the cylinder back, and then animate it so that, at some mid-frame (40-60), the cylinder swings around and its tip coincides with the position of the ball traveling about midway up the helix. You’ll also need to reposition the cylinder’s height.
  10. Go to the end of the animation, and rotate/animate the cylinder to continue the swing.
  11. The sphere should be moving up the helix, and a cylindrical arm swinging in from the side, passing its tip near the sphere at the point where the sphere is about midway up the helix, and then the cylinder continuing its swing as the sphere continues up the helix.
  12. Go to the frame where the tip of the cylinder comes closest to the sphere (The point where you want the transfer to take place.)
  13. Select the sphere, click Add Link in the Motion panel, and then click the cylinder.

    14. When you play the animation, the sphere moves up the helix, and then transfers to the tip of the cylinder, which swings it around.

    Note: For the most predictable results, parent objects should be animated before the links are added to the controlled object. If the parent’s animation needs to be adjusted, the link should be deleted first, and then reassigned after the parent’s animation has been modified.


Attachment Controller

The Attachment controller is a Position controller that attaches an object's position to a face on another object (the target object doesn't have to be a mesh, but must be able to convert itself to a mesh).

By keying different attachments over time, you can animate the position of an object over the irregular surface of another object, even if that surface is changing over time.

Parameters for this controller are available in Motion Panel/Parameters, after the controller has been assigned.

Reference

Motion Panel/Parameters/Attachment Parameters rollout:

Attach To area

Object Name text: The name of the target object to which the source object is attached.

Pick Object: Select and pick the target object in the viewports to perform the attachment.

Align to Surface: Fixes the orientation of the attached object to the face where it’s assigned. When this is clear, the orientation of the attached object is not affected by the orientation of the face on the target object.

Update area

Key Info area

Current Key: Displays the current key number and lets you move to another key.

Time: Displays the current frame, and lets you move the current key to a different frame.

Position area

Face: The index of the face where the object is attached. (Spinner Value: int, 0 to 268435455 (FFFFFFF hex)

A: and B: The barycentric coordinates defining the position of the attached object on the face. (Spinner Value: float, -999,999 to 999,999)

Display window: Shows the position of the source object within the attachment face. You can drag within this window to adjust the position of the object relative to the face.

Set Position: Adjusts the placement of the source object on the target object. Drag over the target object to specify a face, and a position within the face. The source object moves accordingly over the target object.

TCB area

All of the items in this area are the same as in other TCB controllers. The orientation of the source object is also interpolated and affected by these settings.

Tension: (Spinner Value: float, 0 to 50)

Continuity: (Spinner Value: float, 0 to 50)

Bias: (Spinner Value: float, 0 to 50)

Ease To: (Spinner Value: float, 0 to 50)

Ease From: (Spinner Value: float, 0 to 50)

How To

To attach a cone to a bending cylinder:

Create the two objects, and animate the cylinder:

  1. Create a cylinder in the Perspective viewport, with a Radius of 20, a Height of 10, and 10 Height Segments.
  2. Create a cone in the Perspective viewport, with a Radius 1 of 15, a Radius 2 of 5, and a Height of 30.
  3. Select the Cylinder, apply a Bend modifier, and set the Bend Angle to -70 degrees. Turn on Animate, move to frame 100, and set the Bend Angle to 70 degrees.

    4. The cylinder bends from one direction to the other over 100 frames.

  4. 4 Turn off the Animate button.

Now, assign the Attachment controller, and adjust the cone:

  1. Select the cone.
  2. In the Motion panel, open the Assign Controller rollout, click the Position track, click the Assign Controller button, and choose the Attachment controller.

    3. The cone moves to the origin of the scene, and the Attachment Parameters rollout appears.

  3. Click the Pick Object button, and then click the cylinder.

    4. The name of the cylinder appears above the Pick Object button.

    Go to frame 0, and Arc Rotate the Perspective viewport so you can see the top surface of the cylinder.

    Note: The following step creates a key at whichever frame you’re on. If you perform it at a non-zero frame, a single key is created at that frame, and not at frame zero, so no animation results, unless you perform the step again at a different frame.

  4. Click the Set Position button, and drag the mouse over the faces on the top surface of the cylinder.

    5. The cone jumps to the top of the cylinder. As you drag the mouse, it jumps to whichever face you drag over.

  5. Release the mouse when the cone is on the top surface of the cylinder.

Adjust the position of the cone, relative to the face:

  1. Drag in the face display window to position the red x relative to the triangle representing the face. (Because of the radial arrangement of cap faces in a cylinder, the upper-left corner of the displayed triangle is the center of the cylinder cap. You can turn off Edges Only for the cylinder to see this, if you want.)
  2. Try adjusting the A and B spinners to move the cone across the surface of the face.
  3. Drag the time slider to various frames.

    4. As the cylinder bends back and forth, the cone remains attached to its upper surface. You can continue adjusting the A and B spinners, as well as dragging in the face display window to adjust the cone’s position.

  4. Remember the number in the Face spinner, and then lower the spinner value until the cone leaves the cylinder cap and begins jumping around various areas of the cylinder.

    5. The Face spinner specifies which face the cone is attached to. As you change its values, the cone moves to different faces on the cylinder.

  5. Reenter the original value in the Face spinner to return the cone to the top of the cylinder.
  6. Play the animation.

    7. The cylinder bends back and forth with a cone glued to its upper cap.


Motion Capture Controller

The motion capture system in 3DS MAX is handled in the following way:

  • In Track View or Motion Panel, you assign motion-capture animation controllers to the specific tracks you want controlled by external devices.
  • After assigning the motion-capture controller, you open the Properties dialog for the track and bind the type of peripheral device(s) that you want. Currently supported devices are mouse, keyboard, MIDI device, and joystick. Each device has specific properties.
  • After binding devices, adjust their settings and parameters in the lower portion of the Track Properties dialog. These controls vary depending on the type of device.
  • In the Utility panel, access the Motion Capture utility. You can test and record your motion for any combination of tracks over any range of frames.
  • When you assign a Motion-Capture controller, the previously assigned controller is maintained as a child of the Rotation controller. This lets you continue to adjust the rotation of the object using standard transform controls, while still making motion-capture control available.

Reference

Motion Capture Controller rollout:

Right click the Motion Controller track in the Track View hierarchy to display the properties dialog.

XYZ Rotation: Displays the Choose Device dialog.

Choose Device dialog: Select a device from a list of devices.

Edit Bindings XYZ: Displays device controls in the device rollout in the lower part of the Motion Capture dialog. If no device has been assigned to an axis, the button is grayed out.

Track Name: Allows you to name the Motion Capture Data track. This overrides the default naming convention.

Mouse Input Device rollout

Controls animation using the horizontal or vertical motion of the mouse. The available settings include:

Horizontal/Vertical: Choose to specify which mouse motion drives the animation.

Scale: Scales the relative effect of the mouse movement to the animation response. (Spinner Value: float, 0 to 999,999)

Flip: Flips the direction of the response relative to the mouse movement. For example, if moving the mouse horizontally to the right produces a clockwise effect on a Rotation controller, activating Flip will reverse the rotation to counterclockwise.

Keyboard Input Device rollout

Lets you assign most keyboard keys to drive the animation.

Assign: Click the Assign button, and then press any key. The assigned key appears in the list window at right.

List: Open the list to select a key.

Envelope Graph area

Displays a representation of the amplitude curve over time.

Envelope Parameters area

Specifies the time the envelope of the action takes effect, relates to the duration of pressing and releasing the key.

Attack: The time it takes after pressing the key for the value to reach its maximum level.

Decay: The time it takes after having reached maximum for the value to fall to that specified by the Sustain spinner.

Sustain: After the Attack and Decay, specifies the value sustained until you release the key.

Release: After releasing the key, specifies the time for the value to fade out to zero.

Parameter Scaling area

Provides controls for setting the scale of the envelope and the range of the output value.

Time: Specifies the scale of the Attack, Decay, and Release parameters. The value represents the number of seconds for 1 unit. For example, if this value is 1.0, then an Attack value of 1.0 equals 1 second.

Range: Sets the maximum output value of the controller.

Note: This controller ignores the state of the CTRL, ALT and SHIFT keys.

Joystick Input Device rollout

The Joystick Input Device driver was designed for the Microsoft Sidewinder joystick, which contains more controls than the standard joystick. Nevertheless, you can use this device driver for standard joysticks as well.

X, Y, Z: Choose one of these to specify which joystick direction drives the animation. (Standard joysticks provide X and Y axes only. The Sidewinder provides the Z axis when you twist the joystick.)

Throttle: On the Sidewinder, this is a slider next to the stick.

Scale: Scales the relative effect of the joystick action to the animation response. (Spinner Value: float, 0 to 999,999).

Flip: Flips the direction of the response.

Accumulate: When clear, the joystick position represents an absolute position, and you’re limited to the “rectangle” defined by the limits of the joystick. When the joystick returns to its rest position, the value generated returns to zero. When this is selected, the joystick represents a change in the current position. Moving the joystick forward, for example, can cause an object to start moving, and it will continue to move until you return the joystick to its rest position.

Joystick Buttons area

Point-of-View Hat (Left-Right, Up-Down): The Sidewinder includes a mini joystick on the tip of the main joystick. Specify the direction this joystick controls the animation

1, 2, 3, 4: These options specify one of four buttons in the Sidewinder joystick. They work similarly to the Point-of-View Hat, except that each button increases a direction value only while pressed. When you release the button, the value returns to zero (centered).

Inc./Dec: One of three options that are only available when one of the numbered joystick button options is chosen. This option (Increment/Decrement) means that the value is incremented when the button is down, and decremented when the button is up.

Inc: When chosen, the value increments when the button is down, and stays at that value when the button is released.

Absolute: When chosen, the assigned parameters jumps to the value set in the Speed spinner when the button is down, and then jumps back to zero when the button is released. Use this for on/off animations, such as blinking lights.

Speed: Controls the rate at which the value changes when using either the Point-of-View Hat or the four buttons. When using a button option and the Absolute option, this specifies the value that’s output when the button is pressed. (Spinner Value: float, -999,999 to 999,999)

Increment Based On Direction area

Provides controls that let you derive the direction of movement from a Rotation controller. These options are used primarily when you’re animating a first-person fly through such as when you’re controlling a camera.

Note: The items in this area are only available when Accumulate is selected in the Joystick Axis area.

Controller: Click to assign a Rotation Motion Capture controller where the direction will be derived. Typically, this would be the Rotation controller of the camera you’re moving.

Note: You can only use a Rotation Motion Capture controller here.

Clear: Click to remove the assigned controller.

Direction X/Y/Z: Specifies the local axis that will be used as the direction. For a Free Camera, for example, this would be Z, because the camera points in the Z direction. However, if you had a car that pointed along its Y axis, you’d use Y.

Component X/Y/Z: Specifies which edit binding to use. Match this to the Edit Binding button in the Device Bindings area. For example, if the Y Edit Binding button is selected, choose the Y Component option.

MIDI Device rollout

MIDI Channel area

Contains 16 buttons. Assign a channel to your MIDI device..

MIDI Trigger area

Here, you define the type of MIDI event (message) that will drive the motion. There are four options.

Note: When this option is chosen, the note number or pitch defines the output value. The value is derived from where the note falls within the Note Range, specified in the area below. When the note is at the bottom of the range, the value takes on the Min value specified in the Parameter Scaling area: When the note is at the top of the range, the value takes on the Max value from the same area. Anything in between is interpolated between the Min and Max values. (Note that Min doesn’t have to be less than Max.) The generated value will slide around as different keys are pressed. The harder a key is pressed, the faster the value changes. The Speed setting defines how fast, overall, the value changes as keys are pressed.

Velocity: When chosen, the velocity of the note pressed determines the output value. The notes set in the Note Range area specify which notes are valid to press. The value takes on the Min value until a key within the Note Range is pressed. When the key is pressed, the value approaches the Max value based on how hard the key was pressed. (The value actually travels along a parabola toward the Max value.) The Sustain setting defines how long it takes the value to move through the parabola. When the Variable check box is chosen, the sustain length is also scaled by how hard the key was pressed.

Pitch Bend: The MIDI instrument's pitch bend knob defines the value. The Note Range doesn't apply in this case and is disabled.

MIDI Controller: Use this option to specify a note event when you’re hooked up to a different type of MIDI controller than the typical keyboard. For example, if you’re using a MIDI slider box, you would select the MIDI Controller option, and then use the # spinner to specify the note event for the specify slider.

Note Range area: (see Note: above)

Parameter Scaling area

Contains the Min and Max spinners, which specify the range of generated values. See Note and Velocity above.

MIDI Channel Viewer: Displays a sub-dialog that lets you test your MIDI device to see which MIDI channel is receiving events, and which notes are being triggered.

MIDI Channel area

Provides a column of 16 buttons and progress bars represent the 16 MIDI channels. Select the channel where you want to view note activity. The channel progress bars light up when any channel has an event.

MIDI Note area

The 11 Octave buttons let you select which octave you want to view. When a note is played in that octave, a corresponding progress bar lights up in the Note column.

MIDI Controller: When using a different type of MIDI controller, such as a slider box, you can specify a note event, and then watch the corresponding progress bar light up when you activate that event. (You can find the correct note number by activating the event while watching the Note Number field in the area below.)

Channel: This is one of four text fields that display all of the values being generated by the MIDI device as you activate an event. The Channel field displays the currently selected channel.

Event: Displays the type of MIDI event being sent. For example:

Note On: 9

Note Off: 8

Pitch Bend: 14

MIDI Controller: 11

Velocity: Displays the velocity, which has a different meaning, depending on the event. For the most common event, a note being pressed, this value represents the velocity at which the key was struck. Other events, however, might generate a continuous value. For example, a pitch bend event transmits the position of the pitch bend.

Note Number: Displays the corresponding note number for the event. When you’re using a non-keyboard MIDI device, such as a slider box, you can use this to identify the note number of a specific slider.

How To

To use your mouse as an input device to animate the position of a box:

  1. Create a box in Create\Geometry.
  2. In Motion Panel/Assign Controller, select the position track for the box in the list window, then click the Assign Controller button.
  3. Select Position Motion Capture in the Assign Position Controller dialog, then click OK.
  4. Select the Position track in the Assign Controller list window, then right-click and select Properties.
  5. Select X Position in the Motion Capture dialog, select mouse input, then click OK.
  6. In the Mouse Input Device rollout, make sure that horizontal is turned on and Scale is set to 1.
  7. In Utilities/Motion Capture, select Box01\Position in the Track list window. Click Start in the Record Controls area.

    8. Real time recording is in effect; move the mouse horizontally back and forth. The box moves back and forth along the X axis.

    Play the animation to view the recorded movement.

    By default, a key is generated at every frame.


List Controller

The List controller combines multiple controllers into a single effect. It is a compound controller with tools for managing the order in which its internal controllers are calculated. Controllers are evaluated in a top to bottom order, the controller at the top of the list is evaluated first.

When you assign a List controller to a parameter, the current controller is moved one level below the List controller; it becomes the first controller in the list. A second parameter is added below the List controller and is named Available. This is an empty placeholder for the next controller you add to the list.

Reference

Motion Panel/Parameters/List rollout:

List Window: Displays all controllers in a list, with evaluation order from top to bottom. The controller at the top of the list is evaluated first and lower controllers are layered onto the result of higher controllers.

Set Active: Determines which controller is affected by interactive changes in the viewport. The current active controller is marked with an arrow in the list.

For example, imagine an object using a Position List with Noise Position and Bezier Position in the list. The Bezier Position controller handles the general motion path of the object while the Noise Position controller adds a random shake to the motion.

  • If Bezier Position is the active controller you can freely move the object in the scene.
  • If Noise Position is the active controller, you cannot move the object because Noise is not an interactive controller.

Delete: Deletes the selected controller.

Cut: Removes the selected controller and stores it in a temporary clipboard. The clipboard contents are only held until you paste the controller, close the List Controller dialog, or exit the Motion panel.

Paste: Puts the contents of the controller clipboard in the position above the selected controller. The clipboard is empty after pasting.

Editable Name Field: Select one of the controllers in the list window of the List Controller properties window, and then enter a descriptive name in this field.

How To

To use the List Controller to combine two controllers:

  1. Create a box, then turn the animate button on.
  2. Create a simple animation containing 3 position keys.
  3. In the Motion Panel/Parameters/Assign Controller rollout, select the position track.
  4. Click the Assign Controller button, then choose the Position List in the Assign Position Controller dialog. Click OK.
  5. Click the plus sign in the Position track to expand the track.

    6. Note that a Bezier Position Controller track and a track labeled Available are now visible.

  6. Select the track named Available and click the Assign Controller button.
  7. Select Noise Position in the Assign Controller dialog, then click OK.
  8. Play the animation. The box follows the original animated path but vibrates randomly.
  9. Select and right click the Noise track in the Assign Controller list window to show the Noise Controller parameters dialog. You can vary the Noise track using the parameters here. You can animate the strength fields also.


On/Off Controller

This controller is assigned to tracks providing only binary on and off control, for example, the Smooth check box in the creation parameters or tracks.

By default an On/Off Controller is assigned when a visibility track is added to an object in Track View.

You can view the curve for this controller in the Function Curve display, but it’s not editable. In addition, there’s no Properties dialog for this controller.

Note: When you load a scene from R1.x that contains a Visibility controller, the controller is automatically converted to an On/Off controller.

Reference

You assign the On/Off Controller in Track View. Use Add and Delete Key in Track View to turn visibility on and off.

In Track View, the On/Off track displays a solid blue color in frames that are On, and no blue in frames that are Off. When you add a key to an On section of the track, the section following that key is turned off. When you add a key to an Off section, the following section is turned on and colored blue.

How To

To use the On/Off controller:

  1. Create a cylinder and display the Smooth track in Track View.
  2. Turn on the Animate button, move to frame 20, and clear Smooth.

    3. From frame 0 to 20, the track appears blue up to the new key dot, and gray following the key dot.

  3. Move to frame 30, and select Smooth.

    4. The track is now blue again following frame 30.

  4. Click Add Keys in Track View, and click to add some keys in the Smooth Track. Each added key reverses the on/off blue pattern following the added key.

    5. In this case an On/Off Controller is added to the Smooth Track automatically.

    Tip: You can select 2 or more keys and copy them to different positions. This would allow you to easily create even intervals for the On/Off effect.


Bezier Controllers

The Bezier controller is the most versatile controller in 3D Studio MAX. Bezier controllers interpolate between keys using an adjustable spline curve; they are the default controller for most parameters.

Use Bezier controllers whenever you want fully adjustable interpolation between keys. Bezier is the only controller that supports the following:

  • Dragging of tangent handles.
  • Step tangents for abrupt changes from one key to the next.
  • Constant velocity controls as described in Changing Bezier Velocity.

Reference

Motion Panel/Parameters/Key Info (Basic) rollout

Key number: Click the right or left arrows to go to the next or previous key. The field shows the current key number.

Time: Enter a value to specify when in time the key occurs.

Time Lock: Controls the ability to drag the key horizontally in Track View edit modes.

X/Y/Z: Adjusts the position of the selected object at the current key.

Key Tangent (flyouts): Two large flyouts that set the interpolation properties of the in tangent and out tangent of the key.

Choosing Bezier Tangent Types: Set the tangent types for one or more keys in the same track using the In and Out tangent flyouts.

Smooth: Creates smooth interpolation through the key.

Linear: Creates linear interpolation at the key, like a linear controller.

A linear tangent only affects the curve near the key. Full linear interpolation between two keys only occurs when the Out tangent of the first key and the In tangent of the next key both use a linear tangent.

Step: Creates binary interpolation from one key to the next. Step tangents require a matched set between the Out tangent of one key and the In tangent of the next key.

Choosing step for the In tangent of the current key also changes the Out tangent of the previous key.

Choosing step for the Out tangent of the current key also changes the In tangent of the next key.

Using step tangents, the outgoing value of a key is held constant until the time of the next key is reached. The value then abruptly jumps to the value of the next key. Use this tangent when you want to animate On/Off switching or instantaneous changes from one value to the next.

Slow: Causes the interpolated rate of change to slow down around the key.

A slow In tangent decelerates as it approaches the key.

A slow Out tangent begins slow and accelerates as it leaves the key.

Fast: Causes the interpolated rate of change to speed up around the key. The effect is the opposite of using slow.

A fast In tangent accelerates as it approaches the key.

A fast Out tangent begins fast and decelerates as it leaves the key.

Custom: Displays adjustable tangent handles at the key in Function Curves mode. Choosing Custom for either tangent also sets the other tangent to custom.

Tangent Copy (buttons): Use the arrow buttons to either side of the Key Tangent flyouts to copy the tangent type between the tangents of the current key or between the tangents of the previous and next key.

The left arrow of the In tangent copies to the Out tangent of the previous key.

The right arrow of the In tangent copies to the Out tangent of the current key.

The left arrow of the Out tangent copies to the In tangent of the current key.

The right arrow of the Out tangent copies to the In tangent of the next key.

3 Choosing Bezier Tangent Types: Set the tangent types for one or more keys in the same track using the In and Out tangent flyouts.

Bezier Scale Controller (Lock X): In the Key Info dialog for the Bezier Scale controller, a Lock button is added beside the X Scale spinner. When turned on, only the X value affects all three axes of scale. The Y and Z values are ignored and their function curves are not displayed.

When X is locked, the Y and Z values are not affected by changes in the X value. If you lock X when all three axes are at identical values, alter the X value, and then unlock X, the Y and Z values remain where they were while X retains its new value.

Key Info (Advanced) rollout

Use the Key Info (Advanced) properties to control velocity in three ways:

  • Control the absolute velocity at a key using the Velocity Fields.
  • Average velocity over a specified amount of time using Normalize Time.
  • Force constant velocity from one component key to the next using Constant Velocity.

In/Out: The In field is the rate of change as the parameter approaches the key. The Out field is the rate of change as the parameter leaves the key.

These fields are only active for keys using the Custom tangent type.

The number in the field is the rate of change expressed as parameter units per Tick.

Lock button: When Lock is on, changing one Custom tangent changes the other by equal but opposite amount. For example, if the Lock button is on and the In value is 0.85, then the Out value is -0.85.

Normalize Time: Averages out the position of the keys in time. Applicable to any consecutive blocks of selected keys. Useful if you have an object that speeds up, slows, down, speeds up, slows down, and you want to smooth out the motion.

Constant Velocity: When this check box is set for a key, values in between that key and the next one are interpolated in a way that makes the object move at a constant velocity across that curve segment.

How To use Key Info

To set the tangent type for a key:

  1. Select an object and open the Key Info (Basic) rollout.
  2. Use the arrows to select a key.
  3. Choose a tangent type from the In or Out tangent flyouts.

To normalize time for a key:

  1. Select an object, then choose a key to Normalize.

    2. You can use the arrows in the Key Info (Basic) rollout to step through Keyframes.

  2. In the Key Info (Advanced) rollout, click Normalize Time.

    3. The key is moved in time to average the velocity through the key.


TCB Controllers

TCB Controllers produce curve-based animation much like Bezier controllers. However, TCB controllers do not use tangent types or adjustable tangent handles. They use fields to adjust the Tension, Continuity, and Bias of the animation.

This controller works well as a position controller in conjunctoin with the Motion Panel/Trajectories display of an object. With Sub-Object keys turned on and the Key Info dialog for a key displayed (right-click and select Key Info on the selected key in the viewports to display Key Info properties), you can change the parameters in the Key Info dialog and see the trajectory path change. This allows for very precise control of an objects trajectory with visual feedback.

The TCB Rotation controller is the default rotation controller.

Reference

Motion Panel/Parameters/Key Info rollout:

TCB controllers display their properties in a Key Info dialog in Track View and a single Key Info rollout in the Motion panel.

Time field: Enter a value to specify when in time the key occurs.

Time Lock: Select to prevent horizontal key motion in Track View edit modes.

Key Value fields: Stores the animation values for the key. The number and meaning of the fields vary with different parameter data types. Some typical field arrangements are:

  • XYZ fields for Position and Point3 keys.
  • XYZ percentage fields for Scale keys.
  • A single value field for Float keys.

TCB Graph: Charts the effect that changing the controller properties will have on the animation. The red mark at the top of the curve represents the key. The marks to the left and right of the curve represent an even division of time to either side of the key.

The TCB graph is a stylized representation of the animation around a single key. If you want to view the effect of changing TCB properties on the true animation curve, use the Function Curves mode of Track View.

The following descriptions refer to both the TCB graph and the function curve as the animation curve.

Note: When you are changing the properties of a selection of multiple keys, the TCB graph is blank unless all properties are equal.

Tension: Controls the amount of curvature in the animation curve.

High Tension produces a linear curve. It also has a slight Ease To and Ease From effect.

Low Tension produces a very wide, rounded, curve. It also has a slight negative Ease To and Ease From effect.

The default value of 25 produces an even amount of curvature through the key.

Continuity: Controls the tangential property of the curve at the key. The default setting is the only value that produces a smooth animation curve through the key. All other values produce a discontinuity in the animation curve causing an abrupt change in the animation. Default=25.

High Continuity values create curved overshoot on both sides of the key.

Low Continuity values create a linear animation curve. Low continuity creates a linear curve similar to high tension except without the Ease To and Ease From side effect.

The default setting creates a smooth continuous curve at the key.

Bias: Controls where the animation curve occurs with respect to the key. Default=25.

High Bias pushes the curve beyond the key. This produces a linear curve coming into the key and an exaggerated curve leaving the key.

Low Bias pulls the curve before the key. This produces an exaggerated curve coming into the key and a linear curve leaving the key.

The default setting distributes the curve evenly to both sides of the key.

Ease To: Slows the velocity of the animation curve as it approaches the key. Default=0.

High Ease To causes the animation to decelerate as it approaches the key.

The default setting causes no extra deceleration.

Ease From: Slows the velocity of the animation curve as it leaves the key. Default=0.

High Ease From causes the animation to start slow and accelerate as it leaves the key.

The default setting causes no change of the animation curve.

How To

To change a Bezier Position Controller into a TCB Position Controller:

  1. Select an object animated with a Bezier Controller.
  2. In Motion Panel/Parameters/Assign Controller rollout, select the position track in the list window.
  3. Click the Assign Controller button, then select TCB Position.

    4. You can also assign this controller in Track View.


Linear Controller

The Linear controller interpolates between animation keys by evenly dividing the change from one key value to the next by the amount of time between the keys.

Linear controllers do not display a properties dialog. The only information stored in a linear key are the time and animation value.

Use Linear controllers whenever you want a very regular, even transition from one key to the next. For example:

  • Use a linear controller for a color parameter to change from one color to another at a constant rate of change.
  • Use a linear controller for transforms to produce mechanical, robot-like motion.

Reference

No properties dialog is available for linear controllers.

Time

Change linear key time by moving keys horizontally in Track View Edit Keys or Function Curves mode.

Value

Change linear animation values by moving keys vertically in Track View Function Curves mode or by directly changing the parameter value in the viewport with the Animate button on.

How To

To assign a Linear Controller:

  1. Select an animated object.
  2. In the Motion Panel/Parameters/Assign Controller rollout, select the Position track in the list window.
  3. Click the Assign Controller button, then select Linear Position in the Assign Controller dialog.

    4. The animated object has a mechanical motion.

    You can also assign this controller in Track View.


Smooth Rotation Controller

Use Smooth Rotation when you want rotation to have a smooth and natural look. Smooth rotation functions the same as Linear Rotation, but uses non-adjustable curved interpolation, and has the following characteristics:

  • Displays no controller, key properties, or function curve.
  • Move keys in Track View to change timing.
  • Directly rotate objects in the viewports to change rotation values.


Euler XYZ Rotation Controller

The Euler XYZ rotation controller is a compound controller that combines separate, single-value float controllers to specify an angle of rotation about each of the X, Y, and Z axes. Euler XYZ is not as smooth as quaternion rotation, but it is the only rotation type that you can use to edit rotation function curves.

Euler Rotation and the Waveform Float Controller

Because the Euler Rotation Controller uses radians, unit adjustments should be made when other controllers are applied to Euler axes. For example, the Waveform Float Controller has a default amplitude of 100 in the Characteristic Graph. When the Waveform Float controller is applied to an Euler axis, the default amplitude is 100 radians. This sets the Amplitude setting to 5729.598 (the number of degrees in 100 radians).

Euler Rotation and the Noise Float Controller

When a Noise Float controller is applied to an Euler axis, the default Strength setting is 2864.789 or 50% of 100 radians in degrees (maximum deflection).

Euler Rotation and the Midi Motion Capture Controller

When a MIDI Motion Capture controller is applied, the Parameter Scaling is taken in radians so that the Max. default setting of 1.0 will result in an upper boundary of 57.2958 degrees.

Reference

Motion Panel/Euler Parameters rollout:

This rollout appears when Rotation is selected in the PRS Parameters rollout.

Axis Order: Choose the order that rotations are calculated in the drop down list. The default is X,Y,Z order, where the X axis is rotated first.

X: Click to display controller properties for X axis rotation angle.

Y: Click to display controller properties for Y axis rotation angle.

Z: Click to display controller properties for Z axis rotation angle.

Each axis uses its own independent controller using the float data type. For example, the X and Y Rotation axes could use Bezier Float controllers, while the Z Rotation axis uses a Noise Float controller.

How To

To use Euler XYZ Rotation:

  1. Create a box, then select the rotation track in the Motion Panel/Parameters/Assign Controller rollout.
  2. Click the Assign Controller button, then select Euler XYZ in the Assign Controller dialog list window and click OK.
  3. Turn on the animate button and move the Time Slider to frame 50.
  4. Select Rotation at the bottom of the PRS Parameters rollout.

    5. This displays the Euler Parameters rollout.

  5. Select the X axis in the Euler Parameters rollout.
  6. Click Rotation in the Create Key area of the PRS Parameters rollout.

    7. A rotational key is created.

  7. In the Key Info (Basic) rollout, enter a value of 500 in the value field.
  8. Select the Z axis in the Euler Parameters rollout, then enter a value of 90 in the value field of the Key Info (Basic) rollout.

    9. Play the animation. The box rotates 500 degrees around the X axis and 90 degrees around Z. In this case the X axis is rotated first, then the rotation in Z occurs.


Waveform Controller

The Waveform Controller is a float controller that provides regular, periodic waveforms. Created originally to control blinking lights, you can use it on any float value.

A good way to view how the trajectory of an object is being affected by the Waveform controller is to turn on Motion Panel/Trajectories.

Reference

After assigning the Waveform Controller, right-click on its track in Track View to display its properties.

Waveform List Window

List Window: Displays waveforms in a list.

Add: Adds a new waveform to the end of the list. The default waveform is a sine wave with a period of 10 frames and an amplitude of 100.

Insert: Inserts a new waveform before the selected waveform slot.

Remove: Deletes the selected waveform. This is disabled when only one waveform remains.

Move Up and Move Down: Shifts the selected waveform up and down in the list, allowing the waveform order to be altered.

Disable: When selected, disables the selected waveform.

Waveform area

This area provides control parameters for the currently-selected waveform.

Tip: Using the Sphere example, you can observe the waveform in the Function Curve displays of the Trackview, and watch changes in the waveform while testing the parameters described below.

Name: Editable field.

Waveform Icons: The icon buttons let you specify five waveform types, Sine, Square, Triangle, Sawtooth, and Half Sine.

Inverted: Flips the waveform vertically.

Flipped: Flips the waveform horizontally.

Period: The number of frames to complete one waveform pattern. (Spinner Value: float, 0.01 to 9,999,999)

Duty Cycle: For square waves only, this specifies the percentage of time the square wave is “on.” The default is 50. (Spinner Value: float, 0 to 100)

Amplitude: The height of the wave. (Spinner Value: float, 0 to 9,999,999)

Phase: The offset of the wave. (Spinner Value: float, 0 to 1)

Vertical Bias area

A waveform’s output value can be altered by adjusting the Vertical Bias parameter. (Spinner Value: float, -9,999,999 to 9,999,999). The options are:

Centered: The waveforms vertical bias is centered about zero. For example, a 100-unit amplitude waveform would range from -100 to 100.

Auto > 0: Shifts the waveform above the zero line.

Auto < 0: Shifts the waveform below the zero line.

Manual: Lets you set the waveform manually by adjusting the spinner.

Effect area

Each waveform has an Effect parameter, which can be one of the following:

Add: Causes the current waveform’s value to be added to the previous waveform’s output. This is the default.

Multiply: Multiplies the previous waveform’s output by this waveform’s value.

Clamp Above: Limits the previous waveform’s output to be above this waveform’s value.

Clamp Below: Limits the previous waveform’s output to be below this waveform’s value.

Characteristic Graph

The Characteristic Graph display shows one of three displays, controlled by the radio buttons below the display.

This Wave: Shows the current waveform only, independent of all other waveforms.

This Output: Shows the output of the current waveform, including all previous waveforms.

Final Output: Shows the output of all the waveforms in the list. You can also see the final output by turning on the Track View’s Function Curve display for the track which has the waveform controller assigned.

All displays show the output graph of the controller waveforms in a solid dark line, with the zero line drawn in a dotted gray line. To the right of the display are two numeric displays showing the high and low range of the waveform curve. The graph autoscales vertically to always fit the waveform output curve, and autoscales horizontally to twice the period of the longest-period waveform.

How To

To use the Waveform Controller to animate the radius of a sphere.

  1. Create a sphere primitive as a sample object.

    2. Note: The Waveform controller can be assigned to any float track. We’ll use the sphere as an example.

  2. Open Track View and expand the sphere’s tracks.
  3. Select the Radius track, click Assign Controller, and select Waveform Float.
  4. Play the animation to see the effect.
  5. Right-click the range bar to display the Waveform Controller dialog and a default waveform.


Color RGB Controller

Color RGB Controller (Point 3 XYZ Controller)

The Color RGB Controller splits the R, G, and B components into three separate tracks. You can use this controller with color tracks. By default, each track is assigned a Bezier Float controller. The Bezier Float controller is a single parameter controller.

Note: The Color RGB and the Point3 XYZ controllers are identical in function, except that the labels of their tracks are RGB and XYZ respectively. Point3 XYZ controllers can be use for functions such as Noise Strength, the FFD modifier, and the Unwrap UVW’s modifier.

Reference

Bezier Float controller properties.

See Bezier Controller for a description of these parameters.

How To

To animate the color of a box:

  1. Create a box, then assign it a color.
  2. In the Track View hierarchy expand the Material track.
  3. Select the Diffuse track, then assign the Color RGB controller.

    4. Use the Assign Controller button on the Track View toolbar for this.

  4. Expand the Color RGB track.
  5. Add 3 keys along the red track at frames 0, 50, 100.
  6. Set the key values to 0, 400, 0 respectively. To set key values, right-click on a key to display the Bezier Float dialog, then change the value field.

    7. To see the objects color update in the viewports when you change the value field, move the Time Slider to the same frame as the key that is being adjusted.

    • Although you can set values over 255 in the value field, the actual color value stops when 255 is reached.
    • Play the animation. The color of the box changes from black to red and back to black.


Barycentric Morphing Controller

Barycentric Morph Controller

This controller is automatically applied when a morph object is created in the Create/Geometry/Compound Objects/Morph Panel. Morph targets are selected and keys are created at different times to morph the original object into the shape of the Morph Targets. See the Morph help topic for more information on creating morphs.

The Barycentric Morph controller represents each key as a series of weights for all targets. One barycentric key represents a new object which is a blending of all targets.

You can adjust each morph key to various percentages of the available morph targets. This lets you create subtle adjustments in the animation.

You can add keys between existing morph keys. The added keys contain interpolated values for all targets.

To access the key properties dialog, enter Track View, select the Morph track, select one of its keys, and click the Properties button to display the Key Info dialog.

Reference

Barycentric Morph Controller Key Info dialog

Current Key: Specifies the current key that you’re adjusting.

Time: Specifies where, in time, the current key is placed.

Tension/Continuity/Bias: Adjusts the TCB parameters of the key spline interpolation.

TCB Spline: Displays the key interpolation spline.

Targets: Lists all morph targets for the object, along with the percentage of their influence at the current key. Below the window is the total percentage of all targets. You can select any target in this window, and then adjust its percentage of influence using the spinner at right.

Percentage: Sets the percentage of influence for the target selected in the list window. Note that percentage values can be negative as well as greater than 100 percent.

Constrain to 100%: Check this to limit total weight of all targets to 100 percent. As you increase or decrease the percentage of a selected target, the other targets adjust accordingly. The adjustment takes the form of balancing all of the target percentages so that their relative weights remain the same.

When this check box is clear, you can adjust the weight of each target without affecting the others, and create a total that’s greater or less than 100 percent. Totals greater than 100 percent cause the morph object to scale up in size, while totals less than 100 percent cause the morph object to scale down. Note that this check box is global, and not confined to a single key or track.

How To

To use the Barycentric Morph controller:

  1. Load tut23_1.max (the “Achoo” morphing faces used in the tutorials).
  2. Select the nearest face, and convert it into a Morph object.
  3. Click the Pick Target button and, at frames 20, 40, 60, and 80, assign each of the remaining four faces that are behind the frontmost face, in that order. Your morph targets should be:

    4. 00 M_face

    20 M_twitch 1

    40 M_twitch 2

    60 M_ahhh

    80 M_chooo

  4. Go to frame 100, select M_face in the Morph Targets list window, and click Create Morph Key.
  5. If you’re concerned about power outages in your area, save the file at this point under a different name.

    6. Next, access the Morph keys.

  6. Open Track View, and then open and select the Morph track under face/Object(Morph).
  7. Select the key dot at frame 0, and then right-click over it to display the Key Info dialog with the Barycentric Morph controls.
  8. Set the key field in the Key Info dialog to Key 2, and then drag the time slider to frame 20 so you’re on the same frame as the key you’re adjusting.
  9. The Targets list window shows that the M_twitch1 target is at 100 percent at this key, while all the other targets are at 0 percent. Let’s say you want to add a bit of the “ahhh” in the “ahhh-choo.” Here’s how:
  10. Make sure the Constrain to 100% check box is selected.
  11. Select M_ahhh in the Targets window.
  12. Move the Percentage spinner up and down, creating positive and negative values while observing the morph object.

    13. Higher percentage values add some of the open-mouthed expression, while negative values actually make the face collapse in on itself.

    Continue experimenting at different keyframes. Try turning off the Constrain to 100% check box, and see how the object scales up or down when the total percentage is no 100. Try also adding a key between the existing keys, and adjusting its target percentages.


Surface Controller

This controller positions an object along the surface of another.

The type of object that can be used as the surface object is limited to those that can represent their surfaces parametrically. Use the Surface controller with the following types of objects:

  • Sphere
  • Cone
  • Cylinder
  • Torus
  • Quad Patches (single quad patches)
  • Loft object
  • Nurbs object

The surface used is a “virtual” parametric surface, and not the actual mesh surface. Objects with a low number of segments may have a mesh surface quite different than the parametric surface.

The parametric surface ignores Slice and Hemisphere options. So if the object is sliced, for example, the controlled object will position itself as if the missing portion were still there.

Since the Surface controller only works on parametric surfaces, if you apply a modifier that converts the object to a mesh, the controller will no longer work. For example, you can’t use it with a Cylinder with Bend applied.

The Surface controller can be used with IK in the same way as the Path controller. However, it will only work properly when the No Alignment option is chosen.

Reference

Motion Panel/Parameters/Surface Controller Parameters rollout:

Current Surface Object area

Provides a method of selecting and then displaying the selected surface object.

Text: Displays the name of the object selected for its surface.

Pick Surface: Selects the object you want used as a surface.

Surface Options area

Provides controls for adjusting the position and orientation of the object along the surface.

U Position: Adjusts the position of the controlled object along the U coordinates of the surface object.

V Position: Adjusts the position of the controlled object along the V coordinates of the surface object.

No Alignment: When chosen, the controlled object is not reoriented, regardless of its position on the surface object.

Align to U: Aligns the local Z axis of the controlled object with the surface normal of the surface object, and the X axis with the U axis of the surface object.

Align to V: Same as above except that the X axis is aligned with the V axis of the surface object.

Flip: Flips the alignment of the local Z axis of the controlled object. This check box is disabled if No Alignment is chosen.

How To

To animate a sphere over the surface of a cylinder:

  1. In the Top viewport create a cylinder and a sphere.
  2. After selecting the sphere, open the Motion Panel, then open the Assign Controller rollout.
  3. Select Position in the list window, then click the Assign Controller button.
  4. Choose Surface in the Replace Position Controller dialog, then click OK.

    5. The Surface Controller Parameters rollout replaces the Key Info rollout.

  5. Click the Pick Surface button, then select the cylinder.
  6. Turn on the Animate button and place the Time Slider at frame 0.
  7. Use the V Position spinner to move the sphere to a starting position at the bottom of the cylinder.
  8. Place the Time Slider at frame 100.
  9. Use the V Position spinner to place the sphere at the top of the cylinder.
  10. Set U Position to 3.

    11. Play the animation. The sphere moves over the surface of the cylinder in a helical path.


Noise Controllers (Controllers)

Noise Controllers

The Noise controller produces random, fractal-based animation over a range of frames. Noise controllers are parametric; they work on a range of frames, but do not use keys.

When you assign a Noise controller in Track View or the Motion Panel, it is initially applied to all frames in the current time segment. You can change the range of frames by dragging the Noise range bar in Track View.

  • Use Noise whenever you need completely random animation around a given value. For example, use a Noise Rotation controller when you want an object to wobble in place.
  • Use Noise as part of a compound List controller to apply noise variations to the result of another controller. For example, use a List controller to combine Noise Position with Bezier Position. The Bezier controller moves the object through your scene while the Noise controller makes the object shake and stray a little from the path.

Reference

Noise Controller dialog:

Characteristic Graph: Shows a stylized graph of how changing Noise properties affects the Noise curve.

Seed: Number used to start the noise calculations. Changing the seed creates a new curve.

Frequency: Controls the peaks and valleys of the noise curve. The useful range is from 0.01 to 1.0.

High values create jagged, heavily oscillating noise curves.

Low values create soft, gentle noise curves.

Strength fields: Sets the value range for noise output. These values can be animated.

The number and meaning of the fields vary with different parameter data types. Some typical field arrangements are:

XYZ fields for Position and Point3 keys.

XYZ percentage fields for Scale keys.

A single value field for Float keys.

>0 Value constraint:Forces Noise values to stay positive. Each strength field has its own >0 constraint.

When selected, the application of the Strength field is changed. Noise values will range from 0 to the value of Strength; most values will hover around Strength/2.

Ramp In: Sets the amount of time Noise takes to build to its full strength.

A value of 0 causes Noise to start immediately at full strength at the start of its range.

Any other value causes Noise to start at 0 strength and then build to full strength by the elapsed time set in the Ramp In field.

Ramp Out: Sets the amount of time Noise takes to fall to 0 strength.

A value of 0 causes Noise to stop immediately at the end of its range.

Any other value causes Noise to fall off to 0 strength by the end of its range. The value in the Ramp Out field sets the amount of time before the end of the range that Noise begins to fall off.

Fractal Noise: When selected, noise is generated using a fractal Brownian motion. The main value of using Fractal Noise is that it enables the Roughness field.

Roughness: Changes the roughness of the Noise curve (when Fractal Noise is checked). Where Frequency sets the smoothness of the overall Noise effect, Roughness changes the smoothness of the Noise curve itself.

How To

To apply a Noise Controller to a rotation track:

  1. Create a Box in any viewport.
  2. In the Motion Panel/Parameters/Assign Controller rollout, select the rotation track in the list window.
  3. Click the Assign Controller button.
  4. Select Noise Rotation from the list of controllers.
  5. Play the animation.

    6. The box rotates randomly around all three axes.

  6. Right click the noise track in the list window and select properties to display the Noise Controller dialog.


Audio Controller

Use the Audio controller to drive the animation of almost any parameter in 3DS MAX. The Audio controller converts the amplitude of a recorded sound file or real-time sound wave into values that can be used by an animated parameter.

Using the Audio controller, you have full control over sound channel selection, base threshold, oversampling, and parameter range.

The Audio controller works with most parameters in Track View, including:

  • Transforms
  • Float values
  • Point3 values (color)

Reference

Audio File area

Use this area to add and remove sound files from the controller and to adjust how amplitude is handled.

Choose Sound: Click to display a standard file selector dialog. You can choose files using the .wav and .avi formats.

Remove Sound: Click to remove any sound file associated with the controller.

Absolute: Controls how the sound amplitude is interpreted. The value returned by the Audio controller is a function of sample amplitude divided by maximum amplitude.

Value=(sample amp.)/(maximum amp.)

When checked, the maximum amplitude equals the maximum sampled amplitude from the waveform. This ensures the potential for the output value to reach the set Target Value.

When unchecked, the maximum amplitude equals the maximum potential amplitude of the sampled waveform. Output reaches your specified Target Value only if the waveform reaches its maximum potential amplitude.

The maximum potential amplitude for an 8-bit file is 128; for a 16-bit file, it’s 32768.

Channel area

Choose an option to select which channel drives the controller output value. These options are only available if you have chosen a stereo sound file.

Left: Uses the left channel amplitude.

Right: Uses the right channel amplitude.

Mix: Combines the two channels such that the returned amplitude is the greater value of either channel.

Sample area

Controls to filter out background noise, smooth out the waveform, and control display in Track View.

Threshold: Sets the bottom cut out level as a percentage of total amplitude. Any amplitude below the threshold drops to 0.0.

Threshold range is from 0.0 to 1.0.

A Threshold of 0.0 has no affect on amplitude output values.

A Threshold of 1.0 drops all amplitude output values to 0.0.

You can use low threshold values to filter out background noise from the controller.

Oversampling: Smoothes the waveform. Multiple samples are averaged to remove peaks and valleys. Enter a number in the Oversampling field to specify the number of samples used to calculate the average

Fast Track View: Controls the display of oversampling in Track View.

When checked , oversampling is ignored for the Track View display.

When unchecked, oversampling is applied to the Track View display. High oversampling values can slow display of the waveform.

Base & Target Scale area

You enter values here to specify the minimum and maximum parameter values returned by the controller. The fields you see vary by the type of parameter using the Audio controller.

Float parameters display in the Controller Range area with Min. and Max. fields.

Vector parameters (3 component) such as Transforms display Base and Target areas with fields for X, Y, and Z values.

Base Scale: Define the float value or X, Y, and Z values returned for amplitude of 0.0.

Target Scale: Define the float value or X, Y, and Z values returned for maximum amplitude.

Real Time Control area

Use to create interactive animation that’s driven by sound captured from an external audio source, such as a microphone. These options are used only for interactive presentations. You cannot save the real-time sound or save the animation produced by the controller.

Enable Real Time Device: Sets whether sound is captured from an external audio source. This option is inactive if a sound capture device is not installed in your system.

When checked, any selected audio file is ignored and the controller uses sound captured by the selected input device.

When unchecked, the controller uses the selected audio file.

Real Time device list: Displays all available real time sound devices installed in your system. Select the device you want to use for real time sound capture.

How To

Animate the Z axis scale of a box using a sound file:

  1. Create a box.
  2. In the Track View hierarchy, select the Scale track and assign the AudioScale controller.
  3. Use the Assign Controller button on the Track View toolbar to assign the AudioScale controller.

  4. Right click on the Scale track in the Track View hierarchy list and choose properties.
  5. Select Choose Sound, then find a sound file to use.

    6. Any .wav file will work.

  6. In the Base Scale area, set the Z field to 0.
  7. In the Target Scale area, set the Z field to 600.
  8. Close the Sound Controller dialog and play the animation.

    9. The box scale is animated along the Z axis.

    Tip: If you want to hear the sound as the animation plays, include the same audio file in the Sound Track. (Sound Track in the Track View hierarchy)

    In the Time Configuration dialog, turn Real Time on.


Script Controller

Five scriptable controllers are available in MAX, mirroring the five current expression controllers. They are:

  • Float Script - float controller
  • Position Script - position Point3 controller
  • Point3 Script - Point3 controller
  • Rotation Script - rotation Quat controller
  • Scale Script - scale Point3 controller

The Script Controller functions in a similar way to expression controllers, providing a properties dialog in which a script can be entered that is used to compute the controller value. The primary advantages of script controllers are:

  • They can use all the features of the MAXScript language including loops, scripted functions, pathnames, etc.
  • Almost *any* property of any object in the scene can be used to help compute controller values, including things like mesh vertices, values of properties at arbitrary frame times, and other non-animatable properties that are not accessible in Expression controllers.
  • They can use MAXScript global variables to communicate and coordinate with other controllers and scripts in MAX.

Refer to MaxScript for a complete explanation of this scripting language.

Writing Controller Scripts

3DS MAX interprets the text you type into the Script text box as the body of a MAXScript block expression, so you can type as many expressions as you want on as many lines as you want and they are evaluated in turn and the value of the *last* expression is taken as the controller value. This value must yield the right type for the controller, Float for float, Point3 for position, Quat for rotation, etc.

Since the text is effectively 'inside' a block expression, you can declare local variables which are visible only within the script and are temporary for one evaluation. You can also declare or access global variables that are shared with all other scripts in MAXScript and hold their values from one evaluation to the next.

A controller is always evaluated by MAX with respect to a specific animation time. This might be the current time slider or incrementing frame time if an animation is playing or a render is under way. In the case of Script controllers, the time being evaluated is used to establish an automatic 'at time' context around the controller script, so any properties you access (outside of other explicit 'at time' expressions) yield the correct values for the current controller evaluation time. This means you don't have to do anything special in your scripts to work at the correct time. You can access the eval time if you need, with the standard MAXScript variable, current Time. You can also reference scene property values at other times by using explicit 'at time' expressions in your scripts, as in normal MAXScript programming.

See MAXScript.

Reference

After assigning a Script Controller, a properties dialog is available by right clicking on the track in the Track View Hierarchy and selecting properties or selecting the Properties button on the Track View toolbar.

The Script Controller dialog:

Script: You type the script to compute the controller value here. See the section below on writing controller scripts for details.

Result: This box shows the results of an evaluation or any error messages caused by errors in your script.

Evaluate button: Cause an evaluation of the controller script to be made and prints the result in the Result box. The evaluation is computed for the current position of the MAX time slider.

Load/Save buttons: Load and save scripts to text files.

Close button: Compiles and checks the controller script. If everything works, the properties dialog is closed. Any problems result in a query box asking whether you really want to close the box with an incorrect script. If you do, the controller will yield a null value (0, [0,0,0], etc.) when evaluated by MAX.

How To

Keep an object centered relative to other objects in the scene during an animation:

  1. Assign a Script Controller to the position track of the object that should remain centered.
  2. Right click on the Position. track in the Track View hierarchy and select properties.
  3. Enter the following script.

    4. This script computes the average position of all objects except the current one (written as $foo here) by setting up a local, iterating over all objects except $foo accumulating a total position vector and compute the average in the last line, which is the final result of the script.

    local pos = [0,0,0]

    for o in objects where o != $foo do

    pos += o.pos

    pos / (objects.count - 1)


PRS Controller

The Position/Rotation/Scale (PRS) controller is the default Transform controller for most objects. Use it for all general purpose transforms.

Reference

Motion Panel/PRS Parameters rollout:

Create Key/Delete Key: The six buttons in the PRS Parameters rollout let you create or delete a transform key at the current frame. These buttons become active or inactive depending on the existence of a key type at the current frame.

For example, if you're on a frame containing a Scale key, the Scale button is inactive in the Create column, because a key already exists. At the same time, the Position and Rotation buttons are inactive in the Delete column because there are no keys of that type to delete.

Position/Rotation/Scale: Determines the contents of the Key Info rollouts that appear below the PRS Parameters rollout in the Motion Panel.

How To

Create PRS Transform keys:

  1. Select an object.
  2. Select Motion Panel/Parameters.
  3. Drag the time slider to the frame where you want to place a key.
  4. Click one of the following buttons in the Create Key area of the PRS Parameters rollout:
    • Click Position to create a Position key.
    • Click Rotation to create a Rotation key.
    • Click Scale to create a Scale key.

    If a particular Position, Rotation, or Scale controller does not use keys, then that button is not available in the Create Key area. For example, you cannot create Position Keys if a Noise Position controller is being used.


Position XYZ Controller

This Position controller splits the X, Y, and Z components into three separate tracks (similarly to the Euler XYZ Rotation controller). This provides separate control of the three tracks when referenced from expression controllers.

Reference

Motion Panel/Parameters/Position XYZ Parameters rollout:

X: Click to display controller properties for X axis transformation.

Y: Click to display controller properties for Y axis transformation.

Z: Click to display controller properties for Z axis transformation.

When an axis is selected, a Key Info (Basic) and Key Info (Advanced) rollout is available to change values.

A Bezier Float Controller is assigned to each track by default. Use Key Info (Basic) and Key Info (Advanced) to control how the keys behave. See the Bezier Controller topic for further information.

How To

To use the Position XYZ and Noise controller together:

  1. Create a sphere.
  2. In the Motion Panel/Parameters/Assign Controller rollout select the Position track of the sphere.
  3. Click the Assign Controller button and choose Position XYZ.
  4. Turn the animate button on and create 3 keys that move the sphere on the XY plane.
  5. In the Assign Controller rollout, expand the position track and select Z Position.
  6. Click the Assign Controller button, then select Noise Float.
  7. Play the animation. The sphere moves around the keys that were created earlier. The random up and down movement in the Z axis is generated by the noise controller on the Z track.

    8. This effect can also be created using the List Controller to combine controllers.


Expression Controllers

Expression controllers are another way to control animation. They let you use mathematical expressions to:

  • Control object parameters, such as length, width, and height.
  • Control transform and modifier values, such as an object’s position coordinates.
  • Constrain values by basing them on the controller values of other objects in the scene.

An expression is a mathematical function that returns a single value. 3D Studio MAX evaluates the expression once for each frame of an animation, generating values that can change from frame to frame.

You create and manage expression controllers in Track View. You can assign expressions to the following kinds of animation controllers:

Creation parameters:

Any numeric creation parameter

Transforms:

Position [X, Y, Z]

X Rotation

Y Rotation

Z Rotation

Scale [X%, Y%, Z%]

Modifiers:

Any numeric modifier parameter (including creation parameters)

Materials:

Colors [R, G, B]

Any numeric material parameter

Note: Expression controllers can work only with the individual XYZ components of Euler rotation. You can’t assign an expression to TCB rotation or other kinds of rotation controllers.

Expression Return Types

The type of value returned by an expression depends on the kind of controller:

  • Float expressions return a floating-point scalar value. For example, 5.617. Scalars are used in the animation controllers of numeric parameters.

If the parameter has an integer value, the expression rounds the float value to the nearest integer.

  • Position, Scale, and Point3 expressions return a three-component vector. For example, [5, 18, 24]. The vector can represent an object’s X,Y,Z location, percent scaling in X, Y, and Z, or a color (RGB values) in a material.

Operators

In the following tables, p and q are any scalar value or expression, V and W are any vector value or expression. (The character “x” is used as the vector cross-product operator.)

Scalar Operators

These are the arithmetic operators for scalar values:

Operator Use Meaning

+ p+q addition

- p-q subtraction

- -p additive inverse

* p*q multiplication

/ p/q division

^ p^q power (p to the power of q);
** p**q ^ and ** are the same operation

You can also use logical (Boolean) operators with scalar values. These operators all return 1 if true, 0 otherwise:

Operator Use Meaning

= p=q equal to

< p<q less than

> p>q greater than

<= p<=q less than or equal to

>= p>=q greater than or equal to

| p|q logical OR, returns 1 if either p or q is non-zero; otherwise, returns 0

& p&q logical AND, returns 1 if p and q are both non-zero; otherwise, returns 0

Note: Logical operators are useful with the “if” function.

Vector Operators

For vectors that have a variable name, you can use a special component operator (.) to refer to the three scalar components of the vector:

Use Meaning

V.x first component (X)

V.y second component (Y)

V.z third component (Z)

These are the operators for vector arithmetic:

Operator Use Meaning

+ V+W addition

- V-W subtraction

* p*V scalar multiplication
V*p

* V*W dot product

x VxW cross product

/ V/p scalar division

Operator Precedence

3D Studio MAX expressions use eight levels of precedence. The higher the operator is on the list the earlier it is evaluated.

- + as unary operators~e.g., -8, +25

. the component operator-as in V.x

** ^

x cross product

* /

+ -

= < > <= >=

| &

Parentheses are a special case. They are a grouping or subexpression operator that is provided so you can override the precedence order of the other operators.

Variables

In 3D Studio MAX expressions, variables are represented by symbolic names. You create them to contain constant or variable values in your expressions. 3D Studio MAX also provides several predefined variables that have constant or variable values.

Predefined Variables with Constant Values

These are the predefined variables that have a constant value in 3D Studio MAX expressions (variable names are case-sensitive):

pi 3.14159... Ratio of a circle’s circumference to its diameter.

e 2.71828... Base of natural logarithms.

TPS 4800 Ticks per second~the basic time unit of 3D Studio MAX animation.

Predefined Variables with Variable Values

These are the predefined variables that have a variable, time-based value in 3D Studio MAX expressions (variable names are case sensitive):

F Frame number.

For each frame, F equals the current frame number, counting from zero. The range of frames can vary depending on the number of frames in the active time segment.

NT Normalized time.

By definition, normalized time (NT) ranges from 0 to 1 over the active time segment, regardless of how many frames are in the segment. If you base an expression on NT, its effect happens exactly once over the range . You can also multiply NT by a factor to cause the expression’s effect to happen a certain number of times (for example, 2*NT causes the expression’s effect to happen twice).

Expressions based on NT speed up or slow down if you later change the length of the time segment.

S Seconds (elapsed time in seconds).

Elapsed time is measured from the first frame to the current frame. The range of seconds can vary depending on the total time of the active time segment.

T Ticks (elapsed time in ticks).

There are 4800 ticks per second. Elapsed time is measured from the first frame to the current frame. The range of ticks can vary depending on the total time of the active time segment.

Rules for Variable Names

  • Variable names can contain as many alphanumeric characters as you like, their length is not limited.
  • Variable names cannot contain spaces.
  • Numbers are valid within a variable name (as in “Pos1” or “M23”), but the name must begin with a letter in the alphabet.
  • Variable names are case-sensitive. For example, “pos”, “Pos”, and “POS” designate three different variables.
  • You can’t create a variable with a name that duplicates another name, including the variable names that are predefined.

Variables and Controllers

You can create a variable whose value varies over time by assigning a controller to it. The controller must be one of the tracks of a different object. The value of the user-defined variable will then vary according to how the other object’s track varies over time.

There is one exception to the rule that the controller must belong to a different object; you can also assign Transform expressions to the same object’s base parameters, and vice versa.

Vector Variables and Objects

You can assign vector variables to objects as well as controllers, making the result of the expression absolute to the local object. The value returned is the absolute value of the object relative to the world.

When you click the Assign to Controller button, the hierarchy list appears with the valid controller and the valid objects in bolded text.

Global Variables

Use Global Tracks in the Track View hierarchy to create global variables. Using expression controllers, you can point to a controller in the Global Tracks from several other tracks. Then, to change all of the other tracks, simply alter the expression in the Global Tracks.

Functions

Following is a list of functions provided for 3D Studio MAX expressions. In this list, p, q, and r represent scalar values or scalar expressions; V and W represent vector values or vector expressions.

To use a function in an expression, enter the name of the function and appropriate arguments to it.

Trigonometric Functions

The sine, cosine, and tangent functions take an angle in degrees and return a floating-point value. The arc functions take a floating-point value and return a value in degrees.

sin(p) sine

cos(p) cosine

tan(p) tangent

asin(p) arc sine

acos(p) arc cosine

atan(p) arc tangent

Hyperbolic Functions

Hyperbolic functions take a floating-point value and return a floating-point value.

sinh(p) hyperbolic sine

cosh(p) hyperbolic cosine

tanh(p) hyperbolic tangent

Conversion Between Radians and Degrees

radToDeg(p) takes p in radians and returns the same angle in degrees

degToRad(p) takes p in degrees and returns the same angle in radians

Rounding Functions

ceil(p) smallest integer greater than or equal to p

floor(p) largest integer less than or equal to p

Standard Calculations

ln(p) natural (base e) logarithm

log(p) common (base 10) logarithm

exp(p) exponential function exp(p) = e^p

pow(p,q) p to the power of q (p^q)

sqrt(p) square root

abs(p) absolute value

min(p,q) minimum returns p or q, depending on which is smaller

max(p,q) maximum returns p or q, depending on which is greater

mod(p,q) remainder of p divided by q

Conditional

if(p,q,r) works like the common spreadsheet “if”. If p is non-zero then “if”
returns q, otherwise “if” returns r.

vif(c,V1,V2) "Vector If". Value is V1 if c is true, else V2

Vector Handling

length(V) the length of V

comp(V,i) i’th component (I=0,1,2)~comp([5,6,7],1)=6

unit(V) returns a unit vector in the same direction as V

Note: The comp function is an alternative to the notation V.x, V.y, V.z.

Special Animation Functions

Noise(p,q,r) 3D noise, returns a randomly generated position

p,q and r are arbitrary values used as a random-generation seed; re-use these values to ensure that noise() returns the same value

Reference

The Expression Controller Dialog

Create Variables area

Name: Enter a name in this field. This is the first step in creating a variable.

Scalar: Select the type of variable to be created.

Vector: Select the type of variable to be created.

Create: Click to create a variable.

You must enter a name and specify a type before using the Create button.

Delete: Select a variable in the Scalars or Vectors list, then click Delete to delete the variable.

Variable Parameters area:

Tick Offset: Enter an offset value in the Tick Offset field.

A tick is 1/4800 of a second. If a variable has a non-zero tick offset, that value is added to the current time before the controller track is evaluated.

Assign to Constant

Assign a constant value to a variable.

  1. Highlight the variable name in the Scalars or Vectors list.
  2. Click Assign to Constant.
  3. In the subdialog, enter the new value of the constant, and then click OK.

Assign to Controller

Assign a controller to a variable.

  1. Highlight the variable name in the Scalars or Vectors list.
  2. Click Assign to Controller.

    3. The Track View Pick subdialog appears, showing the track hierarchy. The display in the dialog is like the Hierarchy window of Track View itself.

  3. Select the track for the variable to use, and then click OK.

Expression area

Type an expression in the Expression box.

The expression must be a valid mathematical expression that evaluates to the proper type, its result is either a three-value vector for a vector expression (position, scale, or point3) or a scalar value for a float expression.

Description area

Enter text in this area to document an expression.

Describe user-defined variables, for example.

Function list: Displays a list of expression controller functions.

In the Function list, p, q, and r represent scalar values or scalar expressions; V and W represent vector values or vector expressions.

Save: Save an expression.

Expressions are saved as files with a .xpr filename extension.

Load: Load an expression.

A saved expression does not save variable definitions or values. After loading the expression, you need to redefine them.

Debug: Display the Expression Debug window.

This window displays the values of all variables, plus the value of the expression itself. When you change the variables or move the time slider, the debug window automatically updates so you can interactively view what’s happening with the expression. Also displayed are the values for frames (F), normalized time (NT), secs (S), and ticks (T).

Evaluate: Evaluate the expression for each frame in the animation.

There is no explicit assignment (= or := operator) as in a conventional programming language, the assignment is implicit, and takes place over time.

If there is a syntax error in the expression, an alert box displays an error message. The error message is the first part of the expression itself. The last character in the error message is the point at which the evaluator detected the error. This is usually where the error actually is, unless the problem is that opening and closing parentheses (or the braces for vectors) don’t match up. In this case, evaluation may proceed further through the expression before it detects the error.

Close: Close the expression controller dialog.

How To

To create an expression that moves a sphere in a precise circle:

  1. Reset 3D Studio MAX and then create a sphere about 30 units in diameter.

    2. Use Track View to create the expression controller.

  2. Bring up Track View.
  3. In the Hierarchy list, expand Objects/Sphere01 so the sphere’s Position track is visible. Select this track by clicking the Position label once to highlight it.
  4. Click Assign Controller on the Track View toolbar.

    5. The Choose Controller dialog appears.

  5. Select Position Expression from the list of controller types, and then click OK.

    6. Use the Expression Controller dialog to create the expression.

  6. Click Properties on the Track View toolbar.

    7. The Expression Controller dialog appears.

  7. Replace the default expression by typing the following position expression in the Expression field:

    8. [ 100*cos(360*NT), 100*sin(360*NT), 0 ]

  8. Click Evaluate.

    9. Play the animation. The sphere moves in a circle about the world origin (0,0,0). The radius of the circular path is 100 units.

    You’ve now specified a circular path for the sphere. NT is a variable that means normalized time. Movement based on NT happens exactly once per the active time segment, regardless of how many frames are in the animation.

To change the radius:

The two 100s in the expression specify the radius. To adjust the radius of the circle’s path, create a symbolic variable to represent the radius. The variable has a constant value that is easy to edit.

  1. Make Track View visible again.
  2. In the Expression Controller dialog, type radius in the Name field. Make sure the Scalar radio button is chosen, and then click Create.

    3. The name radius appears in the Scalars list in the lower-left part of the dialog.

  3. Click Assign to Constant.

    4. A dialog titled radius appears.

  4. Type 150 in the value field, and then click OK.

    5. The radius variable now equals 150.

    Now use the new variable in the expression.

To replace the literal value with the variable name:

  1. In the Expression field, change 100 to radius in both places. The expression should now look like this:

    2. [ radius*cos(360*NT), radius*sin(360*NT), 0]

  2. Click Evaluate.

    3. Play the animation. The sphere moves in a circle about the world origin (0,0,0). The radius of the circular path is 150 units.

    Now make the sphere rotate about a box:

  3. Create a box about 40 units square and animate its position over three or four keyframes.
  4. In the Expression Controller dialog, type boxposn in the Name field. Make sure the Vector radio button is chosen, and then click Create.

    5. The name boxposn appears in the Vectors list in the lower-left part of the dialog.

    Variable names are case sensitive; the variable name should be lower case.

  5. Click Assign to Controller.

    6. The Track View Pick dialog appears. It shows the object hierarchy as it appears in the left side of Track View.

  6. In the Hierarchy list, highlight the Box01 object’s Position controller, and then click OK.
  7. Edit the Expression field to use boxposn as an offset:

    8. [ radius * cos(360*NT),
    radius * sin(360*NT), 0] + boxposn

  8. Click Evaluate, and then click Close.

    9. Play the animation again. The sphere moves in a circle around the box while following the box wherever it moves.


Combustion Atmospheric Effect

Combustion effects can be fire, smoke, explosions, and so on.

The following topics describe how to create and adjust combustions:

Creating Combustion Effects

Combustion Example

Creating a Combustion Apparatus

Adding Combustion Atmospheres

Picking a Source Apparatus

Setting Colors

Choosing Flame Shape

Setting Flame Characteristics

Animating Combustion

Phase Function Curve Sample

Creating Explosions


Creating Combustion Effects

Use Combustion to produce animated fire, smoke, and explosion effects. Possible uses for combustion effects include campfires, torches, fireballs, clouds, and nebula.

You use three steps to create Combustion effects:

  1. Create one or more combustion apparatus objects to locate the combustion effect in your scene.
  2. Define one or more combustion atmosphere effects in the Environment dialog.
  3. Assign combustion apparatus objects to combustion effects.

Combustion Example

Creating a Combustion Apparatus

Adding Combustion Atmospheres

Sample Combustion effects

Note: Combustion renders only in Camera or Perspective views. Orthographic or User views do not render Combustion effects.


Combustion Example

This example describes how to set up a campfire effect for a 100 frame animation.

To create a campfire Combustion apparatus:

  1. Click Helpers in the Create panel and choose Atmospheric Apparatus from the sub-category list.
  2. Click Sphere Gizmo.
  3. Drag in the Top viewport to define an apparatus radius of about 20 units.
  4. Check the Hemisphere check box in Sphere Gizmo Parameters.
  5. Click Non-Uniform Scale. Click Yes in the warning dialog (this warning doesn't apply to atmospheric gizmos), and scale the apparatus 250% along its local Z axis only.

The next page shows how to set the Combustion atmosphere parameters and assign the apparatus to the effect.

Example Combustion model and rendered effect

You can model logs, embers, and rocks around the base of the apparatus.

To create the campfire Combustion atmosphere:

  1. Choose Rendering/Environment.
  2. In the Atmosphere rollout, click Add and choose Combustion from the Add Atmospheric Effect dialog.
  3. Click Pick Gizmo in the Combustion Parameters rollout and click the Sphere Gizmo apparatus in the scene.
  4. Set the following parameters in the Shape and Characteristics areas --
  • Flame Type = Tendril
  • Stretch = 0.8
  • Flame Size = 18.0
  • Flame Density = 30.0
  1. Turn on Animate and advance to the end of the animation.
  2. Set the following parameters in the Motion area --
  • Phase = 300.0
  • Drift = 200.0
  1. Leave all other parameters at their default setting.

Combustion does not cast any light in the scene. You must create lights if you want to simulate illumination from the Combustion effect.

Creating a Combustion Apparatus

Adding Combustion Atmospheres


Creating a Combustion Apparatus

You create a combustion apparatus -- or "gizmo" -- to position the effect in your scene and to define the maximum boundaries of the effect. The apparatus is a Helper object found in the Atmospheric Apparatus sub-category.

There are three kinds of apparati: BoxGizmo, SphereGizmo, and CylGizmo.

You can move, rotate, and scale the apparatus, but you cannot apply modifiers.

Using non-uniform scale is a good way to change the shape of the apparatus for effects other than spheres and hemispheres. (You will see a warning when you use this transform. Because you don't modify atmospheric apparati, you can safely ignore the warning.)

Common Parameters

The final two parameters for all atmospheric apparati set a random seed to create variation when you assign multiple combustion apparatus objects to the same effect. If more than one apparatus uses the same seed and same atmospheric effect, they will produce nearly identical results.

Seed: Sets a base value used to generate the Combustion effect. Each apparatus in the scene should have a different seed.

New Seed: Click to generate a random number automatically and place it in the seed field.

BoxGizmo

This gizmo has the shape of a box.

Length, Width, and Height: Set the dimensions of the box gizmo.

To create the BoxGizmo, drag in a viewport to define the initial length and width, then release the mouse and drag to set the initial height. Click to end BoxGizmo creation.

SphereGizmo

The SphereGizmo is shaped like a sphere or hemisphere.

Radius: Sets the radius of the default sphere. Drag in any viewport to define the initial radius, then adjust it with the spinner.

Hemisphere: When set, the bottom half of the SphereGizmo is discarded, creating a hemisphere.

CylGizmo

The CylGizmo is shaped like a cylinder.

Radius and Height: Set the dimensions of the cylinder gizmo.

To create the CylGizmo, drag in a viewport to define the initial radius, then release the mouse and drag to set the initial height. Click to end CylGizmo creation.


Adding Combustion Atmospheres

Before a Combustion apparatus can generate an effect you must add and set parameters for a Combustion atmosphere.

To add Combustion to the Atmosphere Effects list:

  1. Choose Rendering/Environment.
  2. Click Add in the Atmosphere area.
  3. Choose Combustion from the Add Atmospheric Effect dialog.
  4. Click Move Up or Move Down to change the order of a selected effect in the list.

You can add any number of combustion effects to a scene. The order of effects is important, effects near the bottom of the list are layered in front of effects near the top of the list.

Each effect has its own parameters. When you select a combustion effect in the Effects list, its parameters appear in the Environment dialog.


Picking a Gizmo

You must assign an atmospheric apparatus to a combustion effect before you can render the effect. Use buttons in the Gizmos area to manage the list of apparatus objects.

Pick Gizmo: Click to enter Pick mode and click an atmospheric apparatus in the scene. The apparatus displays the combustion effect when you render. The name of the apparatus is added to the apparatus list.

Multiple apparatus objects can display the same combustion effect. For example, torches on a wall can all use the same effect. Assign a different seed to each apparatus to vary the effect.

A single apparatus can be assigned to multiple combustion effects. For example, one apparatus could display both a fireball and a tendril flame effect.

You can pick multiple gizmos. Click Pick Gizmo and then press H. This displays a Pick Object dialog that lets you choose multiple objects from the list.

Gizmo List: Lists apparatus objects assigned to the combustion effect.

Remove Gizmo: Click to remove the gizmo selected in the gizmo list. The gizmo remains in your scene but it no longer displays the combustion effect.


Setting Combustion Colors

You can set three color properties for a combustion effect using the color swatches in the Colors area. Click a color swatch to display the 3DS MAX Color Selector dialog.

Inner Color: Sets the color of the densest part of the effect. For a typical fire, this color represents the hottest part of the flame.

Outer Color: Sets the color of the sparsest part of the effect. For a typical fire, this color represents the cooler, dissipating edge of the flame.

The combustion effect is colored using a gradient between the inner and outer colors. The dense areas of the effect use the inner color and gradually blend to the outer color near the edges of the effect.

Smoke Color: Sets the color of smoke for use with the Explosion option.

If Explosion and Smoke are checked, the inner and outer colors animate to the smoke color.

If Explosion or Smoke are unchecked, the smoke color is ignored.


Choosing Flame Shape

You control the shape, scale, and pattern of flames within the combustion effect using controls in the Shape area.

Flame Type

Two options set the direction and general shape of flames.

Tendril: Creates directional pointed flames with veins along their center. The flames are oriented along the local Z-axis of the combustion apparatus. Tendril creates campfire-like flames.

Fireball: Creates round puffy flames. Fireball creates flames that are well suited for explosions.

Comparing Tendril to Fireball
Top = Tendril, Bottom = Fireball

Stretch: Scales flames along the Z-axis of the apparatus. Stretch works best with Tendril flames, but it can also be used to give Fireballs an oval shape.

Values less than 1.0 compress flames, making them shorter and thicker.

Values greater than 1.0 stretch flames, making them long and skinny.

You can combine Stretch with non-uniform scaling of the apparatus.

Use non-uniform scale to change the boundary of the effect and scale the shape of the flames.

Use the Stretch parameter to scale only the flames inside the apparatus. You can also use Stretch values to reverse the effect scaling the apparatus had on the flames.

Effect of changing Stretch
Value = 0.5, 1.0, 3.0

Non-uniform scaling of an apparatus
Stretch = 0.5, 1.0, 3.0

Regularity: Modifies how the flames fill the apparatus. The range is from 1.0 to 0.0.

A value of 1.0 completely fills the apparatus. The effect fades near the edges of the apparatus, but the overall shape is still very noticeable.

A value of 0.0 produces a very irregular effect that might occasionally reach the boundary of the apparatus, but is usually trimmed back and smaller.

Effect of changing Regularity
Value = 0.2, 0.5, 1.0


Setting Flame Characteristics

You set the size and appearance of flames using parameters in the Characteristics area. All of these parameters are dependent on the apparatus size and are interdependent on each other. Changing one parameter affects the behavior of the other three.

Flame Size: Sets the size of individual flames inside the apparatus. The flame size is affected by the size of the apparatus. A larger apparatus requires a larger flame size. A good starting range is 15.0 to 30.0.

Large values work best for Fireballs.

Small values work best for Tendrils.

If the flame size is very small, you might need to increase Samples to see individual flames.

Effect of changing Flame Size
Value = 15.0, 30.0, 50.0
Radius of apparatus = 30.0

Flame Detail: Controls the amount of color change and edge sharpness seen within each flame. Value range is from 0.0 to 10.0. Default value = 3.0.

Low values produce smooth, fuzzy flames and render faster.

High values produce patterned, sharp flames and render slower.

Use higher detail values for large flame sizes. If the detail value is greater than 4, you might need to increase Samples to capture the detail.

Effect of changing Flame Detail
Value = 1.0, 2.0, 5.0

Density: Sets the opacity and brightness of the combustion effect. The density is affected by the size of the apparatus. A large apparatus with the same density as a small apparatus appears more opaque and brighter, because of its larger size.

Low values make the effect less opaque and use more of the outer color.

High values make the effect more opaque and brighten the effect by gradually replacing the inner color with white. The higher the value, the more white in the center of the effect.

If Explosion is checked, Density is animated from 0.0 at the start of the explosion to the set density value at the peak of the explosion.

Effect of changing Flame Density
Value = 10, 60, 120

Samples: Sets the rate at which the effect is sampled. Higher values produce more accurate results but take longer to render. Default = 15.

You might consider raising the samples value under the following conditions --

Flame Size is small.

Flame Detail is greater than 4.

Any time you see color banding in the effect. The chance of color banding increases if a flat surface intersects the combustion effect.

Note: 100% transparent objects that intersect the effect will become partially visible. To use particles with Combustion, consider using 3D particles instead of opacity-mapped particles.


Animating Combustion

Use the parameters in the Motion area to animate the churning and rise of flames.

Phase: Controls the rate of change for the combustion effect. Turn on Animate and change the phase value at different times.

Phase value changes meaning according to the state of the Explosion check box.

Explosion unchecked, Phase controls churning of the fire. The faster the value changes, the more furiously the fire burns. If the phase function curve is a line, you get a steady burning fire.

Explosion checked, Phase controls churning of the fire and explosion timing, using values between 0.0 to 300.0. The phase function curve for a typical explosion starts steep and flattens out.

Phase values control explosion timing in the following way:

Value Explosion Effect

0-100 Explosion begins and builds to peak density at 100.

100-200 Explosion burns. Effect turns to smoke if Smoke is checked.

200-300 Explosion clears and is completely gone at 300.

> 300 No effect.

Phase Function Curve Sample

Drift: Sets how quickly flames rise along the Z-axis of the combustion apparatus. The value is the amount of rise in units.

Low values give a slow-burning cool fire.

High values give a fast-burning hot fire.

For the best fire effects, drift should be a multiple of the height of the combustion apparatus.

You can also animate the location and size of the combustion apparatus and most of the combustion parameters. For example, a combustion effect can animate color, size, and density.


Phase Function Curve Sample

Explosion effect at Phase = 50, 100, 150, 200, and 250


Creating Explosions

Use the parameters in the Explosion area to automatically animate explosions.

Explosion: When checked, size, density, and color are automatically animated based on animation of the Phase value.

Smoke: Controls whether or not the explosion creates smoke.

When checked, fire colors change to smoke between Phase values 100 to 200. Smoke clears between Phase values 200 to 300.

When unchecked, fire colors remain at full density between Phase values 100 to 200. Fire fades away between Phase values 200 to 300.

Fury: Varies the churning effect of the Phase parameter.

Values greater than 1.0 cause faster churning.

Values less than 1.0 cause slower churning.

Set Up Explosion: Click to display the Set Up Explosion Phase Curve dialog. You enter a start time and end time, then click OK. The Phase value is automatically animated for a typical explosion effect.


Fog

Provides fog and smoke atmospheric effects.

This plug-in provides effects such as fog that causes objects to appear to fade as they increase in distance from the camera (standard fog), or layered fog that envelops all or parts of objects in a blanket of mist.

Reference

The Fog Parameters rollout appears when you select Fog under Effects in the Environment dialog. It has the following controls:

Fog

Color: Sets the color for the fog. Click the color swatch, then select the color you want in the Color Selector dialog. You can animate the color effect by changing the fog color at a non-zero frame with the Animate button on.

Environment Color Map: This option gives you the ability to derive the fog color from a map. You can map the background and the fog color, you can animate procedural map parameters in the Track View, and you can opacity map the fog (see the next option).

The large button displays the name of the color map, or None if none is assigned. The map must use Environmental mapping coordinates (spherical, cylindrical, shrink-wrap, and screen).

To assign the map you can drag a map from a sample window or map button in the material editor (or anywhere else in 3DS MAX; for example, a projector map button) and drop it on the Environment Color Map button. A dialog asks if you want the environment map to be a copy (independent) or an instance of the source map.

Clicking Environment Color Map displays the Material/Map Browser, where you can choose a map type from the list. To adjust the environment map’s parameters, for example to assign a bitmap or change the coordinate settings, display the Material Editor and then drag the Environment Color Map button and drop it over an unused sample window.

The Use Map toggle lets you turn the effect of this map on or off.

Environment Opacity Map: Using an opacity map alters the density of the fog.

You assign the opacity map, edit it, and toggle its effect in the same way you do the Environment Color Map.

Fog Background: When this box is on (the default), the fog function is applied to the background of the scene.

Type: When Standard is selected it uses the parameters in the Standard section and when Layered is selected it uses the parameters in the Layered section.

Standard

Thins and thickens the fog based on the distance from the camera.

Exponential: When checked, density increases exponentially with distance. When unchecked, density increases linearly with distance. Check this only when you want to render transparent objects in volume fog.

Tip: If you check Exponential, increase the Step Size value to avoid banding.

Near %: Sets the density of the fog at the Near Range (camera Environment Range parameter).

Far %: Sets the density of the fog at the Far Range (camera Environment Range parameter).

Layered

Thins and thickens the fog between an upper and lower limit. You can have multiple layers of fog by adding multiple fog entries to the list. Since all the fog parameters are animatable, you can animate the fog rising, falling, changing density and color, and add horizon noise.

Top: Sets the upper extent (in world units) of the fog layer.

Bottom: Sets the lower extent (in world units) of the fog layer.

Density: Sets the overall density of the fog.

Falloff (Top/Bottom/None): Adds an exponential falloff effect so that the density is reduced to 0 at either the Top or Bottom of the fog extent.

Horizon Noise: Turns on the horizon noise system. Horizon Noise perturbs just the horizon of the fog layer to add realism.

Size: Scale factor applied to the noise. Larger scale values make the fog tendrils larger. Defaults to 20.

Tip: If you want tendrils to really pop out, try making the density greater than 100.

Angle: Determines the angle off the horizon line that is affected. For example, if the angle is set to 5 (a reasonable value), then starting at 5 degrees below the horizon the fog will start to break up.

This effect is mirrored above and below the horizon, which can produce strange results when the height of the fog layer traverses the horizon. Typically you'd want the fog to be either above or below the actual camera horizon. (You can use the horizon line in the camera parameters as an aid to help you position this.)

Phase: Animating this parameter animates the noise. If phase is moving in the positive direction then the fog tendrils will drift upward (and deform at the same time). If your fog is above the horizon you may want to animate phase in the negative direction to make the tendrils fall down.

How To

To use standard fog:

  1. Create a camera view of your scene.
  2. In the camera's creation parameters, check Show to show the Environment Ranges.

    3. Standard fog is based on the camera's environment range values.

  3. Adjust Near Range and Far Range to include the objects you want to fog in your rendering.

    4. As a general guideline, set Far Range just beyond the objects, and Near Range to intersect the object geometry closest to the camera.

  4. Choose Rendering/Environment.
  5. In the Atmosphere area of the Environment dialog, click Add.

    6. The Add Atmospheric Effect dialog appears.

  6. Choose Fog, and then click OK.
  7. Make sure that Standard is chosen as the type of fog.

To use layered fog:

  1. Create a camera or perspective view of your scene.
  2. Choose Rendering/Environment.
  3. In the Atmosphere area of the Environment dialog, click Add.

    4. The Add Atmospheric Effect dialog appears.

  4. Choose Fog, and then click OK.
  5. Choose Layered as the fog type.
  6. Set the parameters for layered fog.

    7. You can have multiple fog layers in the scene by adding multiple Fog entries to the list and making the fog Layered.


Volume Fog

Provides a fog effect in which the fog density is not constant through 3D space.

This plug-in provides effects such as puffy, cloudy fog which appears to drift and break up in the wind.

The Volume Fog Parameters rollout appears when you select Volume Fog under Effects in the Environment dialog. It has the following controls --

Reference

Gizmos

By default, volume fog fills the entire scene. However, you can choose a gizmo (an atmospheric apparatus) to contain the fog. The gizmo can be a sphere, a box, a cylinder, or some combination of these.

Tip: When you use gizmos with volume fog, you can safely use higher Max Steps settings.

Pick Gizmo: Click to enter Pick mode and click an atmospheric apparatus in the scene. The apparatus contains the volume fog when you render. The name of the apparatus is added to the apparatus list.

Multiple apparatus objects can display the same fog effect.

You can pick multiple gizmos. Click Pick Gizmo and then press H. This displays a Pick Object dialog that lets you choose multiple objects from the list.

Changing the dimensions of a gizmo changes the region that fog affects, but doesn’t change the scale of the fog and its noise. For example, reducing the radius of a spherical gizmo crops the fog, and moving the gizmo changes the fog’s appearance.

Caution: When you SHIFT + copy a gizmo, the new gizmo isn’t bound to the volume fog. If you want to use it, you must use Pick Gizmo to add it explicitly.

Remove Gizmo: Removes a gizmo from the volume fog effect. Select the gizmo in the list, then click Remove Gizmo.

Soften Gizmo Edges: Feathers the edges of the volume fog effect. The higher the value, the softer the edges. Can range from 0 to 1.0. Default = 0.2.

Tip: Don’t set this value to zero. At 0, Soften Gizmo Edges causes aliased edges.

Volume

Color: Sets the color for the fog. Click the color swatch, then select the color you want in the Color Selector dialog. You can animate the color effect by changing the fog color at a non-zero frame with the animate button on.

Exponential: When checked, density increases exponentially with distance. When unchecked, density increases linearly with distance. Check this only when you want to render transparent objects in volume fog.

Tip: If you check Exponential, increase the Step Size value to avoid banding.

Density: Controls the fog density. The useful range here is between 0-20. Anything over that tends to obliterate the scene.

Step Size: Determines the granularity of the fog sampling; the “fineness” of the fog. A large step size creates coarse (and to some extent, aliased) fog.

Max Steps: Limits the amount of sampling so that computing the fog doesn’t take forever (literally). This is especially useful when the fog is of low density. Default = 100.

If both Step Size and Max Steps have low values, this can cause aliasing.

Fog Background: When this box is on (the default), the fog function is applied to the background of the scene.

Noise

Noise options for volume fog are comparable to the noise options for materials.

Type: Choose the kind of noise to apply:

Regular: The standard noise pattern.

Fractal: An iterative fractal noise pattern.

Turbulence: An iterative turbulence pattern.

Invert: Reverses the noise effect. Dense fog becomes translucent, and vice versa.

Noise Threshold: These values limit the noise effect. Both can range from 0 to 1.0. When the noise value is above the Low threshold and below the High threshold, the dynamic range is stretched to fill 0-1. This makes for a smaller discontinuity (1st order instead of 0 order) at the threshold transition and thus produces less potential aliasing.

High Sets the high threshold. Default = 1.0.

Low: Sets the low threshold. Default = 0.0

Uniformity: Ranges from -1 to 1 and acts like a high-pass filter. The smaller the value, the more of the volume is transparent with discrete blobs of smoke. By around -0.3 or so you start to get something that looks like specks of dust. Note that since the fog becomes thinner as this parameter gets smaller, you'll probably need to increase the density or the volume will start to disappear.

Levels: Enabled only for Fractal noise or Turbulence. Sets the number of times the noise is iteratively applied. Can range from 1 to 6, including fractional values. This parameter is animatable.

Size: Determines the size of the tendrils of smoke or fog. Smaller values give smaller tendrils.

Phase: Controls the speed of the wind. If you have Wind Strength also set to greater than 0, the fog volume will animate in accordance with the wind direction. With no Wind Strength, the fog churns in place. Since there’s an animation track for phase, you can use the function curve editor to define precisely how you want your wind "gusts" to happen.

Wind moves the fog volume in the specified direction over time. Wind is tied to the phase parameter, so as the phase changes the wind moves. If Phase is not animated there will be no wind.

Wind Strength: Controls how fast the smoke moves away from the wind direction, relative to phase. As mentioned above, if phase is not animated then the smoke will not move, regardless of the wind strength. By having the phase animate slowly with a large wind strength, the fog will move more than it is churning.

Alternatively, if the phase is changing rapidly while the wind strength is relatively small, the fog will churn fast and drift slowly. If you want the fog to just churn in place, animate the phase but keep wind strength at 0.

Wind from the: Defines the direction the wind is coming from.

How To

To use volume fog:

  1. Create a camera or perspective view of your scene.
  2. Choose Rendering/Environment.
  3. In the Atmosphere area of the Environment dialog, click Add.

    4. The Add Atmospheric Effect dialog appears.

  4. Choose Volume Fog, and then click OK.
  5. Set the parameters for volume fog.

    6. Note: If there are no objects in your scene, rendering shows only a solid fog color. Also, with no objects and Fog Background set, volume fog obscures the background.

To create a volume fog gizmo:

  1. In the Helpers category of the Create panel, choose Atmospheric Apparatus from the pop-up menu.
  2. Click one of the buttons to choose a gizmo shape -- SphereGizmo, CylGizmo, or BoxGizmo.
  3. Drag the mouse in the viewport to create the gizmo.

    4. Gizmos are created in much the same way as their matching geometry types. Drag the mouse to create the initial dimensions. The Sphere gizmo has an additional Hemisphere checkbox that turns the sphere into a hemisphere.

    In addition, each gizmo has a Seed spinner and a New Seed button. Different seed values generate different patterns. Clicking the New Seed button randomly generates a new seed value for you.

To assign a gizmo to volume fog:

  1. Click the Pick Gizmo button in the Volume Fog Parameters rollout.
  2. Click a gizmo in the viewport.

    3. The name of the gizmo appears in the list field at right.

    When you render, the volume fog will be confined to the shape of the gizmo.

To remove an assigned gizmo:

  1. In the Environment dialog, go to the Volume Fog Parameters rollout and in the Gizmos area, select the gizmo name from the pop-up list.
  2. Click Remove Gizmo.

    3. This action does not delete the gizmo from the scene, but simply unbinds it from the fog effect.


Volume Light

Provides light effects based on the interaction of lights with atmosphere (fog, smoke, and so on).

This plug-in provides effects such as radial glows for omni lights and conical glows for spotlights. Object’s within the light volume can cast shadows within the spotlight’s cone. You can also use volumetric lighting with directional lights.

Reference

The Volume Light Parameters rollout appears when you select Volume Light under Effects in the Environment dialog. It has the following controls:

Lights

Pick Light: In any viewport, click the light that you want to enable for volume light.

You can pick multiple lights. Click Pick Light and then press H. This displays a Pick Object dialog that lets you choose multiple lights from the list.

Remove Light: Deletes a light from the list.

Volume

Fog Color: Sets the color for the fog that makes up the volume of the light. Click the color swatch, then select the color you want in the Color Selector dialog. You can animate the color effect by changing the fog color at a non-zero frame with the Animate button on.

Unlike the other fog effects, this fog color is combined with the color of the light. Possibly the best effect is to use white fog and then color it with a colored light.

Attenuation Color: Lets you attenuate volume light over distance. The volume light ramps from the Fog Color to the Attenuation color over the light’s Near and Far attenuation distances. Clicking the color swatch displays a color selector so you can change the attenuation color.

Attenuation Color interacts with Fog Color. For example, if your fog color is red and your attenuation color is green, in the rendering your fog will shade to purple. Typically the attenuation color should be very dark and neutral -- such as black.

Use Attenuation Color: Turn on to make attenuation color active. Default = off.

Exponential: When checked, density increases exponentially with distance. When unchecked, density increases linearly with distance. Check this only when you want to render transparent objects in volume fog.

Tip: If you check Exponential, increase the Step Size value to avoid banding.

Density: Sets the density of the fog. The denser the fog, the more the light reflects off it inside the volume. Densities of 2-6% probably make the most-realistic fog volumes (defaults to 5).

Max Light%: Represents the maximum glow effect that can be achieved (defaults to 90%). By turning this down, you can limit the brightness of the glow so that it doesn’t get denser and denser as it gets farther away from the light and "whites out."

Min Light%: This is similar to an ambient light setting. If Min Light% is greater than 0, areas outside the light volume will also glow. Note that this means areas of open space (where the light ray can travel forever) will end up the same as the fog color (just as with normal fog).

If there are no objects behind the fog, then the scene will always be as bright as the fog color if the Min Light% is greater than 0 (no matter what the actual value is). This is because the fog is going to infinity and is accumulating infinitely. If you’re going to be using min light% values greater than 0, you should make sure that your scene is enclosed by geometry.

Atten. Mult. (Attenuation Multiplier): Adjusts the effect of the attenuation color. Default = 2.0.

Filter Shadows: Allows you to get better quality volume-light rendering by increasing the sampling rate (at the cost of some increased rendering time). These are the options:

Low: The image buffer is not filtered, but directly sampled instead. This option is fine for 8-bit images, AVI files, and so on.

Medium: Adjacent pixels are sampled and averaged. This produces a very significant improvement in cases where you are getting banding types of artifacts. Slower than Low.

High: Adjacent pixels and the diagonal pixels are sampled, and each are given different weights. This is the slowest method, and provides somewhat better quality than medium.

Use Light Smp Range: Blurs the shadows cast in the volume based on the Sample Range value in the light’s shadow parameters. Because increasing the Smp Range value blurs the shadow cast by the light, this makes shadows in the fog better match cast shadows, and helps prevent aliasing in the fog shadows.

Tip: With the Use Light Smp Range option, the higher the light’s Smp Range value, the slower the rendering. However, with this option you can usually get good results with a lower Sample Volume % setting (such as 4), which reduces rendering time.

Sample Volume %: Controls the rate at which the volume is sampled. It ranges from 1-1,000 (where 1 is the lowest quality and 1,000 is the highest quality).

Auto: When this box is checked, the Sample Volume % parameter is controlled automatically and the spinner is disabled (this is the default). The preset sampling rates are as follows:

low = 8
medium = 25
high = 50

Since the parameter ranges up to 100 there’s still room to set it higher. Increasing the Sample Volume % parameter will definitely slow things down, but in some cases you may want to push it higher (for extremely high sample quality).

Attenuation

The controls in this section are contingent upon the settings of the Start Range and End Range attenuation parameters for the individual light.

Start %: Sets the start attenuation of the light effect, relative to the actual light parameter’s attenuation. It defaults to 100%, which means that it will start attenuating at the Start Range point. When you reduce this parameter, it will start attenuating the light at a reduced percentage of the actual Start Range value, that is, closer to the light itself.

Because you usually want a smooth falloff, you can keep this value at 0, and no matter what the light’s actual Start Range is set to, you’ll always get a smooth glow, with no hotspots.

End %: Sets the end attenuation of the lighting effect, relative to the actual light parameter’s attenuation. By setting this lower than 100%, you can have a glowing attenuating light that casts light much farther than it’s actually glowing. When it's set to 100% (the default) the glow and the attenuation will go equally as far, which is probably more glow than you want.

Noise

Noise On: Turns the noise on and off. When noise is on there is a slight decrease in performance.

Noise options for volume lights are comparable to the noise options for materials.

Amount: The percentage of noise applied to the fog. If the amount is 0 there is no noise. If the amount is 1 the fog becomes pure noise.

Link To Light: Turn on to link the noise effect to its light object, rather than to world coordinates.

Usually you want noise to look like fog or dust motes in the atmosphere, in which case, as the light moves, the noise should remain with the world coordinates. For certain special effects, however, you might want the noise to be fixed to the light’s coordinates. In these cases, turn on Link to Light.

Type: Choose the kind of noise to apply:

Regular: The standard noise pattern.

Fractal: An iterative fractal noise pattern.

Turbulence: An iterative turbulence pattern.

Invert: Reverses the noise effect. Dense fog becomes translucent, and vice versa.

Noise Threshold: These values limit the noise effect. Both can range from 0 to 1.0. When the noise value is above the Low threshold and below the High threshold, the dynamic range is stretched to fill 0-1. This makes for a smaller discontinuity (1st order instead of 0 order) at the threshold transition and thus produces less potential aliasing.

High Sets the high threshold. Default = 1.0.

Low: Sets the low threshold.Default = 0.0.

Uniformity: Ranges from -1 to 1 and acts like a high-pass filter. The smaller the value, the more of the volume is transparent with discrete blobs of smoke. By around -0.3 or so you start to get something that looks like specks of dust. Note that since the fog becomes thinner as this parameter gets smaller, you'll probably need to increase the density or the volume will start to disappear.

Levels: Enabled only for Fractal noise or Turbulence. Sets the number of times the noise is iteratively applied. Can range from 1 to 6, including fractional values. This parameter is animatable.

Size: Determines the size of the tendrils of smoke or fog. Smaller values give smaller tendrils.

Phase: Controls the speed of the wind. If you have Wind Strength also set to greater than 0, the fog volume will animate in accordance with the wind direction. With no Wind Strength, the fog churns in place. Since there’s an animation track for phase, you can use the function curve editor to define precisely how you want your wind "gusts" to happen.

Wind moves the fog volume in the specified direction over time. Wind is tied to the phase parameter, so as the phase changes the wind moves. If Phase is not animated there will be no wind.

Wind Strength: Controls how fast the smoke moves away from the wind direction, relative to phase. As mentioned above, if phase is not animated then the smoke will not move, regardless of the wind strength. By having the phase animate slowly with a large wind strength, the fog will move more than it is churning.

Alternatively, if the phase is changing rapidly while the wind strength is relatively small, the fog will churn fast and drift slowly. If you want the fog to just churn in place, animate the phase but keep wind strength at 0.

Wind from the: Defines the direction the wind is coming from.

How To

To use volume light:

  1. Create a scene with lights.
  2. Create a camera or perspective view of your scene.

    3. Avoid making the view axis parallel to the cone of a spotlight. This tends to create only a washed-out scene, possibly with rendering artifacts.

  3. Choose Rendering/Environment.
  4. In the Atmosphere area of the Environment dialog, click Add.

    5. The Add Atmospheric Effect dialog appears.

  5. Choose Volume Light, and then click OK.
  6. Click Pick Light and then click a light in a viewport to add the light to the list of volume lights.

    7. You can also use a Select by Name dialog to select multiple lights. Click Pick Light, then press H to display the dialog.

  7. Set the parameters for volume light.

To add a light to the list:

  1. Click Pick Light.
  2. Click the light in a viewport.

To remove a light from the list:

  1. Drop down the list of volume lights.
  2. Click Remove Light.


MAXScript

MAXScript is the built-in scripting language for 3D Studio MAX. It provides MAX users with the ability to:

  • Script all aspects of MAX use, such as modelling, animation, materials, rendering, etc.
  • Control MAX interactively through a command-line shell window.
  • Package scripts within custom utility panel rollouts or modeless windows, giving them a standard MAX user interface.
  • Build custom import/export tools using the built-in file I/O
  • Write procedural controllers that can access the entire state of the scene
  • Build batch-processing tools, such as batch-rendering scripts
  • Set up live interfaces to external system via OLE Automation

Choose one of the following topics for more information about the different aspects of MAXScript:

MAXScript Overview

The MAXScript Utility

Using MAXScript

The MAXScript Language

Working with MAX Objects

Script Controllers

TrackView Nodes

Running Scripts from DOS

MAXScript Tutorial

MAXScript SDK


MAXScript Overview

The MAXScript language is specifically designed to complement 3D Studio MAX. It is object-oriented, just like MAX, and has several special features and constructs that mirror high-level concepts in the MAX user-interface, such as coordinate system contexts, an animation mode with automatic keyframing and access to scene objects via hierarchical pathnames that match the MAX object hierarchy. These make it both easy to understand for MAX users and provide an expressiveness that enables sophisticated tasks to be done with very little scripting.

The syntax is simple enough for non-programmers to use, with minimal punctuation and formatting rules. It is runtime-typed with type-free variables and memory management is automatic, again simplifying programming. Coupled with the modeless interactive command-line window and the ability to operate on sets of objects with a single statement, MAXScript can be employed casually by the user to augment the MAX UI.

MAXScript is also rich enough to enable extremely sophisticated programming tasks. It has all the necessary control structures and data types (such as 3D vector and matrix algebras), and advanced language features such as higher-order and recursive functions and lexical closures. MAXScript is particularly suited to working with large collections of objects, for example, making complex procedural selections, constructing random star fields or placing objects in numerically precise patterns. Some of these tasks are so tedious to do interactively that using a scripting language is sometimes the only practical approach.

MAXScript is particularly useful in the larger production houses. The ability to package scripts within utility panel rollouts means that job-specific tools can be rapidly scripted by the technical department and made available to artists through standard MAX point-and-click user interfaces.

MAXScript supports formatted text I/O, so it is possible to both read in files containing scene layout, naming and texture details, etc. exported from other project management software and to produce asset reports directly from MAX scene files.

MAXScript can also be used as a high-level import vehicle. At the moment, the import options available in MAX do not include the ability to import high-level MAX objects, modifiers, materials, animation controllers, etc. Further, the MAX file structure itself is opaque, so other programs cannot directly construct MAX scene files. However, by outputting MAXScript scripts containing object creation commands, it is now possible for other programs and packages to export directly to any of the high-level MAX constructs.


The MAXScript Utility

MAXScript appears in the Utilities panel as a rollout.

If you open it, the following options appear:

Open Listener

Opens the MAXScript Listener window. Also restores it and brings it to the front if it was minimized or behind the MAX window.

New Script

Opens the MAXScript Editor window in which you can start writing a new script.

Open Script

Opens a common File Open dialog for choosing an existing script. The MAXScript Editor window then displays the selected script.

Run Script

Opens a common File Open dialog for choosing an existing script. MAXScript then reads and executes the selected script. Any output is printed to the Listener window.

Utilities

Displays a list of available scripted utilities.

Close

Closes the MAXScript Utility.


Using MAXScript

The MAXScript rollout in the Utility panel gives you access to the tools in MAXScript. The following topics describe the MAXScript user interface and features.

The MAXScript Listener Window

Using the MAXScript Listener

Using the MAXScript Editor Windows

Script Editor Features

Running Script Files

The Startup Script File

Accessing Scripted Utilities

Controlling MAXScript's Memory Allocation

The Scripts Directory


The MAXScript Listener Window

The MAXScript Listener window is an interactive interpreter for the MAXScript language and works in a similar way to a DOS command prompt window. You enter MAXScript commands into this window and when you press ENTER, they’ll be executed from here immediately.

To open the MAXScript Listener window, choose the MAXScript utility on the Utilities panel and click Open Listener.

The MAXScript Listener window is a resizable, modeless dialog window. You can switch back and forth between it and MAX as you work. If you close the MAXScript Listener window and then reopen it, the text that was in the window before closing reappears. It opens automatically when a script runs that produces output to this window.

You can open only one instance of the MAXScript Listener window at a time.


Running Script Files

You can run existing script files by pressing the Run Script button in the MAXScript rollout. This opens a common File Open dialog for choosing the script. MAXScript then reads and executes the selected script. Any output is printed to the Listener window.

You can also run a script from the Listener or from within other running scripts using the fileIn function:

fileIn "my_utils.ms"

This opens the named script file and evaluates all the code it contains.

Scripts might contain function libraries, scriped utilities, or any MAXScript code. For example, a script file could contain a sequence of commands that automatically performs a series of events, such as opening a scene file, modifying it, rendering the scene, and then closing the scene file.

You can also insert the text in a script file into the current position in the Listener by using the include function:

include "demo.ms"

This inserts the contents of the file into the Listener without evaluating it. You can use this function to load a script and then step through it, executing any selected text with SHIFT-ENTER.


The Startup Script File

When the MAXScript rollout is first opened, MAXScript searches for the file startup.ms, the startup script file. It searches the scripts directory first and then the directories specified in the Windows PATH environment variable. If it finds the script, MAXScript loads and executes it using the fileIn function. You can use this mechanism to set up the MAX environment, such as:

  • Pre-load useful function libraries.
  • Establish UI settings through the MAXScript UI commands.
  • Pre-load scripted utility rollouts.

In a future release, there will be a facility for this file to be loaded when MAX itself starts, which would allow you to run a series of commands automatically without interacting with the MAX user interface, much like a batch file.

MAXScript currently ships with a startup.ms file that contains a set of useful functions and scripted utility rollouts.


Accessing Scripted Utilities

The Utilities list in the MAXScript utility rollout contains scripted utilities that have been defined in the startup script or while working in MAXScript. For details about the utility definition facility, see the Utility Rollouts topic.

As soon as you define a utility, MAXScript adds it to the Utility list. When you select a utility from this list, its rollout is added to the Utilities panel after the MAXScript rollout. You can open as many utilities as you need, and close each one with its designated Close button.

If you re-define and execute the script for an open utility rollout, that rollout is replaced immediately with the updated rollout. This lets you develop scripted utility rollouts incrementally and with immediate, visual feedback.


Controlling MAXScript's Memory Allocation

MAXScript allocates its own working memory in addition to any memory MAX allocates as it works. The default working memory size setting for MAXScript is 5 MB, and the memory space is virtual and pageable like all MAX memory. The default allocation accomodates most tasks, but you can increase it by incrementing the MAXScript system global variable heapSize:

heapSize += 2000000      -- another 2 MB

You can add this statement to your startup script if you always need extra memory allocated for MAXScript tasks.

Increasing the MAXScript heap reduces memory address space for other MAX tasks, so adjust the default memory setting only after you receive "Out of memory" error messages from MAXScript, or when garbage collection pauses occur frequently.

You can increase the MAXScript heap as many times as you need during a MAX session, but you cannot reduce it. Restart MAX to reset the MAXScript memory heap to the default setting.


The Scripts Directory

Script files reside by default in the scripts sub-directory within the MAX root directory, which is usually c:\Max\scripts. Functions that open scripts, such as >SPinclude(), >SPfileIn(), and >SPedit(), search the scripts directory first, then the MAX root directory, and finally the directories specified in the PATH environment variable. This is also the search order for the startup script startup.ms.

You cannot alter this default directory from within MAX, as you can with the scene, image and map directories. However, because MAXScript searches all directories for script files that are specified in the Windows PATH environment variable, you can effectively control the placement of this directory using the PATH environment variable. You can access the variable through the Windows System Control Panel.

An auto-load startup folder exists inside the scripts folder. Any script files you place into that directory will be automatically run when MAXScript starts up. MAXScript first loads the startup.ms boot file, then scans the Startup folder for *.ms and *.mse files and loads them.


Using the MAXScript Listener

The MAXScript Listener is a cross between a text editor and a command prompt window. MAXScript executes the commands you write when you press ENTER, but you can also scroll through the text to re-execute existing commands, or edit them and then have MAXScript execute the modified code.

The Listener window uses RichEdit text boxes with the following features:

  • line selection margin down the left side
  • drag-and-drop copying of text within Listener and between Script Editor windows
  • support for CTRL-X, CTRL-C, CTRL-V (cut, copy, and paste) accelerators
  • support for CTRL-B parenthesis balancing feature as in Script Editor windows
  • CTRL-Z (undo) after a command evaluation now removes all the text printed in the Listener, making it easy to clean up large print-outs
  • color-coding for distinguishing between input text, output text, and error message text. There are three MAXScript system globals to control these colors:

Text Type Variable Default Color

typed input text inputTextColor black

ouput text ouputTextColor blue

error message text messageTextColor red

The following rules exist for working in the MAXScript Listener and help you control the editing and execution of MAXScript commands:

End-Of-Text Commands

The simplest way to use the MAXScript Listener is to enter commands at the end of the existing text and pressing ENTER. This is called the end-of-text compilation. After each command is executed and any results are printed, you can enter another command and press ENTER again, and so on. When you write new commands at the end of the text in the MAXScript Listener window, pressing ENTER both executes the last line and inserts a new line.

Editing and Executing Mid-Text Commands

When you want to work with or edit existing text in the window, you can differentiate between inserting new lines and executing the current line as follows:

  • Press ENTER to insert a new line at the current cursor position.
  • Press SHIFT-ENTER to execute the command line that contains the cursor. When you re-execute an existing command line, its output and any error messages are inserted after the current line.

Tip: If you have a number pad on your keyboard, the Number-Pad ENTER key is an alternative to SHIFT-ENTER and can be used generally in place of SHIFT-ENTER to execute commands. You may find the Number-Pad ENTER key faster and easier to use than SHIFT-ENTER.

Selecting and Executing Commands

You can drag-select multiple text lines and press SHIFT-ENTER to execute them all in one go. Each command in the selection is executed in the order it appears in the selection and any output is inserted after the entire selection. You can also select a portion of text within a line and press SHIFT-ENTER to evaluate it, as long as it constitutes a valid MAXScript expression. For example, you can display the value of a sub-expression in a long equation by selecting and executing only that sub-expression within a line.

Executing Code Blocks

MAXScript commands may be single- or multi-line commands or block expressions. If you want to enter a block expression or multi-line command within existing text in the MAXScript Listener window, press ENTER to insert each line and then drag-select all the lines in the command or block and press SHIFT-ENTER to execute it.

If you enter multi-line commands at the end of the text in the MAXScript Listener window, remember that each line is compiled when you press ENTER. You cannot edit a faulty previous line that has already been compiled, but you can edit any text within the current line before you press ENTER. You can abort the current end-of-text compilation by pressing the ESC key and start over if you need to.

The Listener window is appropriate for interactive work and developing small code fragments. It is usually more convenient to develop extended blocks of code in a Script Editor window.

See Also:

Interrupting Execution with the ESC Key

Commands or Expressions?

Using the '?' Symbol

Turning On the Listener Log


Interrupting Execution with the ESC Key

You can interrupt running MAXScript code by pressing and holding the ESC key. MAXScript may take a moment to respond, so, keep holding the ESC key down until it does. The ESC key interrupts any currently executing MAXScript code, whether it is in a scripted utility, a script controller, or running in the MAXScript Listener window.

MAXScript code locks out the rest of MAX when it is executing. You cannot work interactively in MAX while MAXScript code is running to avoid conflicts between code actions and your actions. If MAX appears unresponsive at any time, it may be running some MAXScript code which you can attempt to interrupt by pressing ESC. If you are testing some scripts and MAX doesn't return control to you within a reasonable time, press ESC to interrupt the code execution.

You can also press ESC to abort an end-of-text compilation of a multi-line command in the MAXScript Listener window.


Commands or Expressions?

Each command you execute in the Listener is actually an expression that yields a result that the Listener prints out after each execution. All commands in MAXScript are expressions or function calls that look like commands in a command language. The terms command and expression are synonymous as far as MAXScript is concerned. You can enter any MAXScript expression or sub-expression into the Listener for evaluation, and the Listener prints out its result.


Using the '?' Symbol

The Listener evaluation result is captured into an internal variable, denoted by the ? symbol, each time you evaluate a command or code selection. You can access that value again with the ? question mark symbol. You can use the ? anywhere you use a variable name and MAXScript then evaluates it as the last Listener result. A common use is to capture the ? value into one of your own variables for later reuse, such as in the following statement:

x = ?


Turning On the Listener Log

While you work in the Listener, you can use the logging utility to capture your entered text and all printed output into a text file. You turn on logging with the openlog function:

openlog <file_name_string>

where <file_name_string> is an expression that evaluates to the name of the log file to be created, for example:

openlog "my_log.txt"

MAXScript creates a new file with the given name and records Listener activity as it occurs until you stop logging. You can stop logging and close the log file using the closelog function:

closelog ()

For more details about logging functions, see the Listener Log File Control topic.


Using the MAXScript Editor Windows

MAXScript Editor windows are text editor windows that you can open and use within MAX for creating or editing text files, notably MAXScript script files. Press Open Script on the MAXScript rollout for choosing an existing script file. MAXScript opens the selected script in a modeless editor window, such as the one shown:

Press New Script to open a new, empty script editor window if you want to create a fresh script. You can write and edit text in these editors as you would in other editors like WordPad, including drag-and-drop editing. The menus are similar to those in many other standard Windows text editors. You can open any number of script editor windows at the same time. By convention, MAXScript script files have the suffix: .ms

Additionally, a script editor window can send code selections to the Listener for evaluation. Select some text in the editor and press SHIFT-ENTER to send the selected text to the Listener, which then compiles and evaluates it and prints out the result at the end of the current text. If you press SHIFT-ENTER with no text selected, the line containing the cursor is sent to the Listener for evaluation. This behavior is similar to the Listener window, except that the results of the evaluations are printed in the Listener, not inserted into the editor window text.

Script editors are suited to developing longer scripts or code fragments you want to keep, and you can edit and test parts of it until it is complete. You can then save your code in a script file for later use. This is the common method for developing large scripts, utilities and function libraries.

You can open a script editor from within the Listener or from other running scripts by calling the edit function, for example:

edit "floater.ms"

MAXScript remembers the state of its 'desktop' (which editor and listener windows are open and where) when you exit MAX and restores this state when you restart the scripter. Any script editor files that are missing when you restart will not have their windows re-opened.

The desktop state is stored in a file called maxscrpt.dsk in the 3DSMAX executable directory. You can save and replace this file with another one if you want to keep several desktop setups around, or simply delete it to forget the current desktop.

For other editor functions, see the Editor and Compiler Access topic.

For more details about the editor window, see the Script Editor Features topic.


Script Editor Features

  • Script editor windows provide a line selection margin at the left window border. When you move the cursor into the left margin, it changes to a right-pointing arrow. A single-click selects an entire line, and click-dragging selects multiple lines.
  • You can use TAB to indent multiple selected lines text in one step or SHIFT-TAB to remove an indentation level.
  • The File > Evaluate All menu item lets you evaluate the entire contents of the editor window. This is similar to selecting all text, and then pressing SHIFT-ENTER, but it has the advantage that the window's scroll position does not change. Keyboard shortcut: CTRL+E.
  • Script editor window titles display only the current script's file name, rather than its full pathname, so that minimized script editor windows can be distinguished easily.
  • If you select some text before choosing Search > Find or Search > Replace, the selected text is loaded automatically into the search text dialog field. This is useful for quickly finding other occurrences of the selected text.
  • You can use a CTRL+Right-Click anywhere in the editor window to display a popup menu of all the functions and handler definitions that exist in the current script. Selecting one of the items in the popup menu positions that function or handler definition at the top of the editor window, which simplifies large script navigation.
  • Simple syntax coloring scheme in the Script editor windows: Each time you press CTRL+D, the window is redrawn with comments in green and MAXScript reserved words in blue. This often helps in reading large, complex programs. Later releases may do this syntax-coloring on the fly as you type, but the current version always colors freshly-entered text black and you have to press CTRL+D at some point to recolor the script.
  • Bracket balancer in the Script Editor windows: This lets you check bracket balancing in long bits of code. The balancer works with any of the following: (), [] and {}. To use it, place the cursor anywhere in the script text and press CTRL+B. If the cursor is next to a bracket, the code bracketed by it and its matching bracket will be selected and highlighted. If the cursor is not next to a bracket, the closest bracketed code containing the cursor will be selected. If you press CTRL+B again, the next outer bracketed fragment is selected and so on. You can keep pressing CTRL+B to move back out through bracket nestings. If at any point there is a bracket mismatch, the balancer will beep and not select any text.


The MAXScript Language

The following topics comprise the MAXScript Language Reference:

Introduction to the MAXScript Language

Syntax Definitions in this Document

Language Tokens

Variables, Assignment and Scoping

Memory Management

Expressions

Automatic Collections Operations

Utility Rollouts

MAX Commands

MAXScript Classes

MAXScript Class Reference

Miscellaneous Built-In Functions

System Globals

MAX System Globals

MAXScript System Globals

OLE Automation

MAXScript Grammar

For information about extending MAXScript using C++, see the MAXScript SDK topic.


Introduction to the MAXScript Language

The MAXScript language is a state-of-the-art, dynamically typed object-oriented language that reflects MAX's object-oriented nature. The main features of the MAXScript language are:

  • Comprehensive set of built-in types and functions, including collections, math, trig, noise, etc.
  • Memory management via automatic garbage collection.
  • Simple syntax with almost no punctuation.
  • Polymorphism via generic functions
  • Syntax particularly suited to command-line style of use in a shell window.
  • Advanced capabilities such as higher-order functions and automatic collection mapping.
  • As expressive as the Lisp languages but looks like a conventional language.


Syntax Definitions in this Document

The ways you can write MAXScript tokens and clauses are given using a set of shorthand rules as shown in the following example:

[-]{<digit>}[.{<digit>}[(e | E)[+ | -]{<digit>}+]

These rules, or syntax definitions, follow the standard EBNF notation (Extended Backus-Naur Form).

The example above shows the syntax for a decimal number in MAXScript. The rules typically contain a number of characters which have special meanings. For example, brackets enclose optional items, such as the minus sign in front of the number. Braces enclose items you can use repeatedly, and bars separate multiple items from which you can choose one. Sometimes, rules are given names so they can be referred to in the documentation or as part of other rules. The special characters in the rules have the following meaning:

[...] -- items inside the brackets are optional

(...|...|...) -- choose one of the items separated by the bars

{...} -- you can repeat the braced item ZERO or more times

{...}+ -- you can repeat the braced item ONE or more times

<rule> -- you can insert what is defined by the named rule

bold_characters      -- characters or token as written

The above number syntax example can be interpreted as follows:

an optional minus sign, followed by -- the sign
0 or more digits, followed by -- the integer part
an optional sequence comprized of: -- the fraction part
a period character, followed by
0 or more digits, followed by
either an ‘e’ or ‘E’, followed by -- the exponent part
an optional plus or minus sign, followed by
one or more digits.

Examples of valid numbers are:

123

1.456

-0.89e-7

1.536E23

The following numbers are not valid:

12x34

-0.45x10^3

0e


Language Tokens

The basic building blocks of MAXScript are a set of lexical tokens, corresponding to the words and numbers and punctuation that are the building blocks of English. Tokens fall into several categories:

  • Reserved ‘keywords’ that typically introduce clauses in the language, such as if, for, and function.
  • Punctuation marks and symbols that separate or group clauses or specify math operators, etc.
  • Names
  • Literals for common types like strings and numbers
  • Comments

The syntax definitions for tokens disallow spaces, tabs or line breaks, also known as whitespace, between token characters unless explicitly specified. This is in contrast to the expression rules where defined tokens appear as bold character components and, generally, any amount of whitespace can be written between tokens.

The following list of topics contains information about the above types of tokens and their syntax:

Language Reserved Words

Punctuation and Symbols

Names

Literals

Comments

Source Code Layout and Continuation Lines


Language Reserved Words

The following table lists all MAXScript reserved words. They introduce or separate clauses in the language and may not be used as names or identifiers. Some of these language constructs offer more information. Click on a linked construct to go to that topic. This is also summarized in the MAXScript Grammar topic.

about and animate as at

by collect coordsys do else

exit fn for from function

global if in local max

not off on or return

then to utility when where

while with


Punctuation and Symbols

The following table shows all MAXScript punctuation marks and symbols. Their meanings are described in the definitions of the various language constructs that use them and also in the MAXScript Grammar topic.

( ) + * - /

^ += -= *= /= <

= ; <eol> , [ ]

: ' & . { }

# == != < > >=

<= ? / ... .. ()


Names

Names are used to identify variables, functions, parameters, etc. They start with an alphabetic character or "_" (underscore), and can contain any number of alphanumeric characters or "_".

Examples:

foo

bar123

this_is_a_very_long_identifier

heresOneWithStudlyCaps

In contrast to most general purpose programming languages, MAXScript names are not case-sensitive. For example, the names in the following list refer to the same variable in MAXScript:

BitMapTexture

bitmaptexture

BITMAPtexture

In syntax descriptions, name identifiers are specifed as:

<name>

A name in a program is always interpreted as the name of a variable or parameter and it effectively stands for the current value of that variable or parameter in any expression in which it is used.

MAXScript also allows you to work directly with names themselves as values, as you can with numbers and strings. These are commonly used for symbolic parameters, and several of the built-in functions use them as such. To write a name value in MAXScript, you precede the name with a "#":

#<name>

Examples:

#foo

#integer

#noslide

Quoted Names

Quoted names allow the use of property names, variable names and name literals that contain otherwise illegal identifier characters, such as spaces and other punctuation. They are intended primarily for specifying MAX object properties that have special characters in their names.

The form is:

'<any_char_except_quote>' for an identifier or property name

#'<any_char_except_quote>' for a name literal

'<any_char_except_quote>':      for a keyword parameter label

Examples:

b = bevel 'heigh,_level_1':5

b.'outline,_level_1' = 0.1


Comments

Comments in MAXScript start with a '--' double-hyphen and extend to the end of the current line. Many code examples in this help file use comments in this style.


Source Code Layout and Continuation Lines

The layout rules for MAXScript code are unlike those of most programming languages. They give you the advantages of free-form languages, such as C and C++, but without the need for extensive punctuation, like semicolons and parenthesized parameter lists.

MAXScript lets you break statements and expressions across lines wherever you want, providing the line break is in the middle of an expression. It reads your code until the end of each line and determines whether it has a complete expression. If it does not, it continues to read subsequent lines until it finds the rest of the expression.

Example:

a + b * c / d - e + f * g / h

The above example line can be broken after any of the operators and MAXScript continues to read the next line, because an operator needs another argument:

a + b * c / d - e +

f * g / h

You cannot break the example line as shown below and get the same result, because the expression on the first line is a complete expression. MAXScript considers these two lines as separate expressions, and the second line is now syntactically wrong, because it starts with an operator:

a + b * c / d - e

+ f * g / h

This scheme allows you to write the following forms of the same statement without having to use periods or semicolons, as you might in other free-form languages:

if a < b then print c else print d

or,

if a < b then print c

else print d

or,

if

a < b

then

print c

else

print d

If you do want to break a line at the end of a sub-expression, you can use the line continuation character: '\' backslash. The example above of an invalid break can be made valid using the line continuation character after the 'e':

a + b * c / d - e \

+ f * g / h

Whenever MAXScript encounters a '\' as the last character on a line, except for whitespace or comments, it continues to read the next line as though the line break were not present.

Line continuations are often used to break up function calls with many arguments, as shown in many of the Expressions topics.


Literals

MAXScript has many built-in types: numbers, strings, names, arrays, vectors, matrices and all the MAX objects, such as boxes and spheres, splines and twist modifiers, etc. Some have special 'literal' forms so they can be written directly in code. These are described in the following topics:

Numbers

Strings

Time

Keyword Arguments

Pathnames

The following literals are not strictly tokens, because you can use whitespace between the tokens as shown in their syntax definitions:

Arrays

2D and 3D Points


Numbers

MAXScript uses two types of numbers:

  • single precision floating point
  • 32 bit signed integers

These number types correspond to the two number types used internally in MAX. The syntax for numbers is:

[-]{<digit>}[.{<digit>}[(>SPe | >SPE)[+ | -]{<digit>}+] -- decimal number

0x{<hex_digit>}      -- hexadecimal number

Examples:

123

123.45

-0.00345

1.0e-6

0x0E

.1


Strings

String literals in MAXScript are one or more characters enclosed in double quotes:

"3D Studio MAX"

"October 5th, 1996"

They can contain any character except another plain double quote. You can include a double quote into a string, as well as some useful control characters, by using a '\' (backslash) escape character sequence. The valid escape sequences are:

\" -- a double quote character

\n -- a newline character

\r -- a carraige return character

\t -- a TAB character

\\      -- a single '\' character

Example:

"foo should be quoted like this: \”foo\” and a new line: \n"

A '\' backslash that does not precede one of the specifed characers is left as a single backslash.

You can break a string literal into several lines and the line breaks stay in the string:

"Twas brillig and the slithy tobes

did gyre and gimbol in the wabe

or something like that..."

Non-Printing Characters in Strings

Added support for specifying non-printing characters in string literals using the \x hexadecimal escape sequence convention from C/C++. The form is:

\x{d} where d is a hexadecimal digit (0-9,a-f)

Example:

str = "Copyight \xa9 1997, FrabWorks, Inc"

would insert a copyright sign ©, hexdecimal a9 is the code for that symbol.


Arrays

An array in MAXScript is an ordered collection of values. The collection can contain any kind of value and you can index and iterate an array. You can write array literals directly in a program or build the collection with the array functions provided in MAXScript. For details, see the Array Collection topic. Array literals can be expressed in two forms:

#( <expr> { , <expr> } )

#()      -- empty array

In the first form, the braces {...} mean '0 or more repetitions' of any number of comma-separated expressions. Names in '<>' angle brackets are used to identify other kinds of constructs in MAXScript, in this case <expr> means any valid expression.

Examples:

#(1, 2, 3)

#()

#(1, "foo", #(1.2, -4, #fred), [1,2,3]) -- this one has a nested array

#(1, sin x, a * 2.3)      -- can contain expressions

Expressions in an array are evaluated when the array is built, so array literals in MAXScript are known as 'eager' literals, unlike, for example, those in Lisp or Smalltalk.

For details about expressions, see the Expressions topic. For details about the EBNF syntax specification scheme, see the Syntax Definitions in this Document topic.


2D and 3D Points

Coordinates are used extensively in MAXScript programming. They support a large range of operations as described in the Point2 : Value and Point3 : Value topics. You can write point literals using the following forms:

2D

[ <expr>, <expr> ]

3D

[ <expr>, <expr>, <expr> ]

Examples:

[320, 240]

[10, 20, 30]

[x, y, z]

[sin a, 2 * foo, a^2 + b^2]


Time

Time is a basic data type in MAXScript. Its semantics are based on animation time in MAX, which lets you express time in frames, ticks or normalized time. As with MAX, time is stored with a resolution of 4800 ticks per second. The format for a time literal is one of:

[-]{<decimal_number>[m | s | f | t]}+ -- minutes/sec/frames/ticks

[-]{<digit>}:{<digit>}[.{<digit>}] -- SMPTE mins:secs.frame

[-]<decimal_number>n      -- active segment normalized time

In the first form, the {...}+ means 'one or more repetitions', so you can string mins/secs/frames/ticks together. If you do this, they must be in m/s/f/t order.

The normalized time form is always relative to the current active animation time segment.

Examples:

2.5s -- 2.5 seconds

1m15s -- 1 minute 15 seconds

2m30s5f2t -- 2 mins 30 secs 5 frames 2 ticks

125f -- 125 frames

1f20t -- 1 frame 20 ticks

2:10.0 -- 2 mins 10 secs 0 frames (SMPTE)

0:0.29 -- 29 frames (SMPTE)

0.45n      -- 0.45 normalized time (fraction of active segment)

For more details, see the Time : Value and Time Operations topics.


Variables, Assignment and Scoping

MAXScript has two kinds of variables, global and local. Global variables are visible in all running MAXScript code and hold their values until you exit MAX. Local variables are visible to code only in the function or block-expression in which they are declared, and hold their values only as long as the current function or block is executing. This is similar to how most modern programming languages implement variables. Variables are identified with MAXScript >SP<names>, as described in the Names topic.

You don’t need to explicitly declare variables before you can use them. MAXScript creates an undeclared variable the first time you use it, and initializes it to hold the special value undefined. It defines implicitly declared variables as local if you use them for the first time inside a function or block, or as global otherwise. There are language constructs that let you explicitly declare and initialize both kinds of variables and it is good practice to use these to be sure what kind of variable you have.

The syntax for variable declaration, <variable_decls>, is as follows:

( local | global ) <decl> { , <decl> }

where <decl> is defined as:

<name> [ = <expr> ]      -- name and optional initial value

A local or global declaration can have one or more comma-separated variable declarations and each one can have an optional initial value assigned. The <expr> construct is a general MAXScript expression defined in the Expressions topic.

Examples:

global baz -- initialized to 'undefined'

global foo, bar

local x = 1, -- continued on several lines

y = 2,

      z = sqrt(123.7)

For more information, see the following topics:

Assignment

Type-Free Variables

Operator Assignment

Reference Assignment


Assignment

The syntax for general assignment, >SP<assignment>, is:

<destination> = <expr>

where >SP<destination> can be one of:

<name>

<property>

<array_index>

The last two forms provide a way of assigning to the components of a compound value, like an array or 3D Point. If the <destination> is a name, it identifies the variable to assign a value to, as shown in the following examples.

x = 2 + 2 * 3

y = [1, 2, 3] + pos

z = #(1, 2, "foo", "bar")

z = #oops      -- oops, changed my mind


Type-Free Variables

Variables can hold any type of value, and the type they hold can change from assignment to assignment. They are known as type-free variables, unlike variables in C, Basic or Java, which can only hold values of a particular, declared type. This freedom makes scripting simpler and more exploratory.

As well as being type-free, variables in MAXScript are also type-safe. This means you can’t perform the wrong operation on a value in a variable, as shown in the following example, where MAXScript prints an error message following the invalid operation:

x = "foo"

x = x + 2

Error: Unable to convert 2 to type String

Assignment in MAXScript is itself an expression and yields the value just assigned. This means you can use assignments inside other expressions or cascade assignments, as in:

x = y = z = 0

#(1, 2, a = [0,0,1], 4)


Operator Assignment

MAXScript contains a set of >SP<assignment> variants that you can use for applying a math operation to the value in a variable and keep the result in that variable. These are >SP<math_assignment> constructs and their syntax is:

<destination> += <expr>

<destination> -= <expr>

<destination> *= <expr>

<destination> /= <expr>

Examples:

x += 1 -- increment x by one

z *= scale      -- scale up z

For more details, see the Math Expressions topic.


Reference Assignment

MAXScript uses a type of assignment called reference assignment. When you create a variable value, for example by writing a literal, the memory for that value is allocated and a reference to the value is placed into the variable rather than the value itself. If you assign that variable's value to another variable, the reference to that value is passed to the new variable. The same applies to assigning a variable’s value to an array element or passing it as a function call argument; in all cases the reference is assigned or passed.

This is in contrast to copy or value assignment in which a copy of the whole value's memory is made and assigned. Copy assignment has one advantage over reference assignment, namely that every time a variable or an array element is re-assigned, the old value’s memory space can be immediately reclaimed. The new copy is unique and has no ties to the old value. With reference assignment, the system cannot reclaim the original value’s memory space, because other variables may still point to the same value.

Some scripting languages use a copy-based approach, such as HyperCard's HyperTalk, but its inefficiency as well as some value sharing problems make it inappropriate for MAXScript. This creates the task of reclaiming memory in MAXScript. Programming languages like C or Pascal require that the programmer explicitly reclaim a value's memory when it is no longer needed, and this is one of the most difficult parts of programming in those languages. Recent variants like Java and some advanced languages like Lisp and Smalltalk provide automatic memory reclamation. So does MAXScript and this is described in the Memory Management topic.


Memory Management

MAXScript uses a memory management scheme called automatic garbage collection. This means you don’t have to explicitly reclaim any memory that a value takes up when you no longer need it. When you assign a new value to a variable or when a local variable’s block exits, the reference that the variable contained is dropped. When your program has dropped all references to a value's memory, that memory becomes eligible for reclamation.

Some values, such as arrays have internal references to other values. In an array, each element contains a reference to another value. When you assign a new value to an array element, the element's old reference is dropped. If you remove all references to the array itself, all the references in the elements of that array are implicitly dropped. The same applies to component values, such as in user structs and certain MAX objects.

MAXScript reclaims memory in a garbage collection pass through memory whenever MAXScript runs out of memory. This simple approach can result in a short pause because the entire MAXScript memory is scanned for garbage. Some languages use background collectors that work continuously, others use advanced schemes that minimize the scanning. Later versions of MAXScript may adopt one or more of these techniques.

The advantage of garbage collection is that you can create as many values as you need, and MAXScript cleans up the ones you no longer use.


Expressions

MAXScript is an expression-based language, which means that every construct in the language is an expression and yields a result, including constructs that other languages consider statements. This both simplifies the syntax of the language and allows you to build very expressive code. Anywhere you can write an >SP<expr> expression, you can write any construct in MAXScript.

A good example is the if construct. In statement-based languages, there is usually one syntax for if statements and a separate one for conditional expressions. In MAXScript, they are one and the same. For example, the following two lines of code are both valid, and their meaning should be obvious:

if a > b then print c else print d

x = if a > b then c else d

You could even write the following line, containing a nested if expression and a nested assignment, which is an expression itself:

x = if (if a > b then c else d) < e then f else (g = 23)

Another example is the block-expression, denoted <block_expr>. It contains a series of <expr> expressions enclosed in parentheses:

(

print a

print b

if a > b then print "the big a"

)

Each expression in the block is separated by a line break, or you can also write several expressions on one line using a ‘;' semicolon to separate them:

(print a; print b; if a > b then print "the big a")

Block-expressions like this are themselves <expr> expressions. They evaluate their component expressions in sequence and yield as their value the value of the last expression in the block. To create classic block-structured statements, you might write:

if a > b then

(

print c

x = sqrt (c)

)

else

(

print d

x = sin (e)

)

Or, you could use a nested block-expression to compute a comparison operand:

if a > (y = sin b; sqrt(y * z)) then print c

At its simplest, a MAXScript program is made up of <expr> expressions. An <expr> is defined to be any of the following:

<simple_expr>

<assignment>

<if_expr>

<while_loop>

<do_loop>

<for_loop>

<loop_exit>

<variable_decls>

<function_def>

<function_return>

<context_expr>

<max_command>

<utility_def>

These expression types constitute the main constructs in MAXScript. They are described in more detail in the following topics:

Simple Expressions

Control Constructs

Language Constructs

Function Definition

Pathnames

Context Expressions


Simple Expressions

Simple expressions in MAXScript, denoted as <simple_expr>, correspond to those constructs normally considered expressions in conventional programming languages or in math, as in the following two examples:

a + b * c

sin x

They are generally comprized of operands (a, b, c and x), that may be operated on by operators (+ and *) or given as parameters to functions (sin). Simple expressions are divided into a number of groups:

  • Operands -- denoted as <operand>
  • Math Expressions
  • Comparison Expressions
  • Logical Expressions
  • Function Calls
  • Block Expressions

Operands

Operands, denoted as <operand> in the syntax definitions, surround operators or are passed as parameters to a function. Prime examples are literals, such as variable names, numbers, or strings. Operands are divided into two groups:

  • Accessors -- denoted as <accessor>
  • Factors -- denoted as <factor>

See also:

Local Variables and Scoping


Comparison Expressions

The comparison expressions, <compare_expr>, let you compare values of comparable types. The result is always one of the two Boolean values, true or false. These are forms of <compare_expr>:

<comp_operand> == <comp_operand>

<comp_operand> != <comp_operand> -- not equals

<comp_operand> > <comp_operand>

<comp_operand> < <comp_operand>

<comp_operand> >= <comp_operand>

<comp_operand> <= <comp_operand>

where <comp_operand> can be one of:

<math_expr>

<operand>

<function_call>

Examples:

a > b

sin x == 0.0

a + b <= n - 1

Comparison operations have lower precedence than math operations. In the examples above, the sin function call and the '+' and '-' operations are performed before the comparisons.

As with math expressions, the comparison operators work on all appropriate types. Equals '==' and not-equals '!=' operate on all types, and the relative comparisons work between comparable types. This comparability is defined in the Value topic.


Accessors

Accessors are constructs that let you access the components in compound values, such as arrays and 3D points. There are two kinds of accessors corresponding to the two kinds of compound values in MAXScript:

  • The component values are arranged in an indexable sequence, as in arrays or strings.
  • The compound value contains a fixed set of named components, as with 3D points and time intervals.

All MAX objects, such as boxes, spheres, bend modifiers, or bitmap textures, are treated as compound values in this sense, and all their parameters, such as height and angle, or map file name, are accessed as named components. In MAXScript, these named components are referred to as properties.

Accessors have one of two forms, an <array_index>:

<operand> [ <expr> ]      -- an indexed element

or a <property>:

<operand> . <name>      -- a named property

Examples:

maps[i]

selection[n + 1]

position.x

bend.angle

Because MAXScript is an origin 1 language, all sequencable collections in MAXScript start at index position 1. This is an important convention to remember when using the indexing operator.

The syntax definitions allow you to use any <operand> before the . or []. Because accessors are themselves operands, this definition is recursive, which means that you can string accessors together to query nested arrays or properties:

my_things[i][j]

my_objects[i].target.position.x

Accessors are evaluated left-to-right, so the first example evaluates the i’th element of my_things, which is presumably a nested array, before yielding the j'th element of that.

The second example retrieves an object from an array of my_objects, then its target, then the position of the target (a 3D point), and finally the x coordinate of that point.

Because an <operand> can also be a nested expression, you can compute the target object to be accessed, for example:

(pos * matrix1).x

(find_table "foo")[n - 2]

MAXScript values and objects with named properties are described in detail in the MAXScript Class Hierarchy topics.

See also:

Assignment to Accessors

Computed Property Access


Assignment to Accessors

It was mentioned in the Assignment topic that you can assign a value or an expression to accessors in addition to variables. The <property> and <array-index> destinations allow you to assign new values to any component that you can specify with an accessor expression.

Examples:

table[i] = 0

$box01.pos = [0,0,100]

objects[n + 1].target.pos.y = 42.3

(get_target obj1).name = "fred"


Computed Property Access

Two built-in functions allow you to abstract over property access using computed property names:

getProperty <obj> <property_name>

setProperty <obj> <property_name> <val>

The property name can be either a name, for example #length, or a string, for example "length", so you can construct property names with string operations.

Examples:

getProperty foo #x -- equiv. to foo.x

setProperty $foo "radius" 23 -- equiv. to $foo.radius = 23

getProperty $foo.ffd_2x2x2 ("control_point_" + n as string)


Factors

Factors represent the second group of operands, the first being accessors. The following factors are literals, as described in the Language Tokens topic:

<number>

<string>

<name>

<array_literal>

<point3_literal>

<time_literal>

<name_literal>

<path_name>

The bold factors below are reserved system global variables that contain distinguished values, as described in more detail in the Reserved MAXScript System Globals topic:

true

false

on

off

undefined

unsupplied

pi

e

x_axis

y_axis

z_axis

The unary minus applies the math negate operator to its operand:

-<operand>      -- unary minus

A single expression in parentheses nests the expression, forcing it to be evaluated first:

( <expr> )      -- nested expression

Because the item in parentheses can be any <expr>, you can turn any construct in MAXScript into an operand by putting it in parentheses. This allows you to write the following example, in which the operand to be indexed is the conditional result of an if expression:

(if a > b then c else d)[n + 1]

The block expression, <block_expr>, is described in more detail in the Block Expressions topic. As with a single nested expression, a block expression can be used as a simple operand anywhere in MAXScript code, allowing you to nest long sequences of code:

<block_expr>

The '?' question mark is a special variable that is used only in the context of the MAXScript Listener:

?

It names a variable that contains the result of the last expression evaluated in the Listener. For more details, see the Using the '?' Symbol topic.


Reserved MAXScript System Globals

The 11 system variables listed in the Factors topic contain important MAXScript values.

true, false

Boolean values, the results of comparisons and state tests.

on, off

Synonyms for true and false, sometimes easier to read in state accesses.

undefined

The initial value of all variables and array elements. MAXScript generates an error if you try to perform any operation on the undefined value, except for checking to see if some value is equal to it or not:

if a == undefined then print "oh, oh"

unsupplied

The initial value of all keyword function arguments. Keyword arguments are optional arguments to functions. If they are not supplied by the function caller or if their function definition does not specify a default value, MAXScript initializes them to unsupplied. You can test for this value to see whether a caller has supplied a particular keyword. For more details, see the Function Calls topic.

pi, e

The standard mathematical constants.

x_axis, y_axis, z_axis

3D point values that define normal vectors for the 3 major axes. They are equivalent to [1, 0, 0], [0, 1, 0], and [0, 0, 1], respectively.


Math Expressions

The math expressions in MAXScript correspond to the common operator expressions in mathematics, such as add, subtract, multiply, divide, etc. These are the <math_expr> constructs in MAXScript:

<math_operand> + <math_operand>

<math_operand> - <math_operand>

<math_operand> * <math_operand>

<math_operand> / <math_operand>

<math_operand> ^ <math_operand> -- exponential, raise to the power

<math_operand> as <factor>      -- conversion between types

where <math_operand> can be one of:

<operand>

<function_call>

<math_expr>

Note that a math operand can be another nested math expression. This is another instance of a recursive syntax definition, as with <accessor>, which lets you create arbitrary sequences of operands and operators. Note also that the math unary minus is not defined here, it is one of the <operand> types.

Examples:

42

2 + 2

2 * a - sin x / b -- using a function call

(a + b) * -c

2 ^ n

(n + 1) as string      -- converts result to a string value

The conversion operator, as, works between selected sets of source and destination value types. Only certain kinds of values can be converted into certain other kinds of values. These allowed conversions are defined for each type of value, which you can look up in the topics you can access from the MAXScript Class Hierarchy topic.

See also:

Math Assignment

Precedence and Associativity

Polymorphism


Math Assignment

MAXScript provides the C language shorthand form of assignment that can be used for modifying a value in place, as happens the following long-form examples:

x = x + 1

$obj.pos = $obj.pos * scale

Corresponding to the four math operations +, -, *, and /, are assignment operators that apply the operation to the assignment's destination and update the destination with the result. Their syntax is:

<destination> += <expr> -- add <expr> to destination

<destination> -= <expr> -- subtract <expr> from destination

<destination> *= <expr> -- multiply destination with <expr>

<destination> /= <expr>      -- divide destination by <expr>

Using the shorthand form of assignment, the above examples can be written as:

x += 1 -- increment x by one

$obj.pos *= scale      -- multiply $obj.pos with scale


Precedence and Associativity

As in mathematics, a sequence of operands and operators is evaluated according to a set of precedence and association rules. The following table shows some example expressions and their order of evaluation:

Expression Order of evaluation

a + b * c a + (b * c)

a + b - c (a + b) - c

a ^ b ^ c      a ^ (b ^ c)      -- exponentiation, raise to the power

The evaluation order in the above table follows standard precedence rules, where * and / operations are evaluated before + and - operations, and where + and - operations associate to the left and exponentiation operations associate to the right.

These precedence rules define the ordering of evaluation in all expressions in MAXScript, unless parenthesizing is used to force a different order.

The following list shows the precedence order for math expressions starting with the highest precedence:

<operand>

<function_call>

as

^ -- right associative

* and / -- left associative

+ and -      -- left associative

For more details, see the Precedence topic.


Polymorphism

As in mathematical expressions, MAXScript operators are polymorphic. A single operator can be used to operate on a number of different types of values and does the appropriate thing for each type of operand.

For example, a '+' operator between two integers performs integer arithmetic, between two floats, it performs real arithmetic, and between to matrices, it performs a matrix addition.

For more information about polymorphism, see the Inheritance and Polymorphism topic, and the MAXScript Tutorial topic about linear algebra. You can also look up allowable operand's types for polymorphic operators in the MAXScript Class Hierarchy topic.

MAXScript uses some non-mathematical types that can still define an operation for some of the math operators, for example, strings. You can concatenate two strings with the '+' operator:

"twas brillig" + " and the slithy tobes"

x.name += sequence_number as string

In some cases, you can mix operand types and MAXScript converts them appropriately. For example, adding a float to an integer results in a float. Multiplying a 3D point by a float results in scalar vector product, etc. The valid type mixings are also defined in the reference topics that you can access from the MAXScript Class Hierarchy topic. There, you can also look up the kinds of values that support non-mathematical type operations.


Logical Expressions

Logical expressions combine the results of Boolean expressions, such as comparisons, to construct complex conditional expressions. The forms of a <logical_expr> are as follows:

<log_operand> or <log_operand>

<log_operand> and <log_operand>

[ not ] <log_operand>

where <log_operand> is one of:

<operand>

<compare_expr>

<function_call>

<logical_expr>

Logical operators only operate on Boolean values, so the <log_operand>'s must all evaluate to true or false.

Examples:

a > 0 and a < n + 1

not x or y

a and b or c and d and not e

As with math expressions, <logical_expr> is a recursive definition, meaning that a logical operand can be another logical expression. You can have arbitrary sequences containing and, or and not, and the order of evaluation is defined by the following precedence ordering (in decreasing order of precedence):

not

and -- left associative

or      -- left associative

This means that in an un-parenthesised logical expression, not is evaluated before and which is evaluated before or.

Logical operators have a lower precedence than comparison operators, math, and function calls, so these operations are always evaluated before logical operators, which follows convention. The above examples would be evaluated in the following order:

(a > 0) and (a < (n + 1))

not (x or y)

(a and b) or ((c and d) and (not e))

See also:

Short-Circuiting Logical Expressions


Short-Circuiting Logical Expressions

Following the convention in most other programming languages, logical expressions in MAXScript are short-circuiting or non-strict. This means that only enough of the sub-expression is evaluated to determine the overall result:

  • If the first operand is false in an and expression, the result must be false, therefore, the second operand is not evaluated.
  • If the first operand is true in an or expression, the result must be true, therefore, the second operand is not evaluated.

This saves execution time and enables useful shorthand notation. For example, if you want to use the value of the variable 'a' and then calculate 'sin a', but only if 'a' isn’t undefined, then you could use the example below, in which 'sin a' wouldn't be evaluated if 'a' were indeed undefined:

if a != undefined and sin a > 0 then ...

In a strict language, the 'sin a' evaluation of an undefined operand would result in an error and you would need to break up the expression into two if statements.


Function Calls

One important kind of expression is the function call. A <function_call> has one of the following forms:

<operand> { <argument> }+ -- one or more arguments

<operand> ()      -- no arguments

in which, <argument> is one of:

<operand>

<name>: <operand>      -- keyword argument

Examples:

sin a

tan2 x y

print (n + 1) to:debug

fns[i] $box01 -- get function out of a table

move object1 [10,20,x * 3]

box height:20 width:40

This syntax is unlike most programming languages which typically use parenthesized lists of comma-separated arguments. It was chosen for MAXScript for the following reasons:

  • It is simpler and easier to use, particularly if a function has many optional keyword arguments.
  • The language is used in a command-line window within MAX, and so this form is similar to other command or shell languages that users might be familiar with.

See the following topics for more information about function calls:

Positional and Keyword Arguments

Precedence

Code Layout

Calling Built-In Functions


Positional and Keyword Arguments

A function can take two kinds of arguments:

  • Positional Arguments. If you call a function that takes positional arguments, you must specify those arguments first and in the correct order. Positional arguments correspond to the function arguments in most programming languages—they are required and have a fixed number and order.
  • Keyword Arguments. You write keyword arguments as a keyword:value pair, and they can appear in any order after the positional arguments. Functions can use some or all of their keyword arguments as optional arguments. If you call a function and don't supply optional keyword arguments, they will either have the default value supplied by the called function, or have the special value unsupplied when first referenced in the called function.

Optional keyword arguments are useful in command languages where commands can have many options. They are particularly useful within MAX where most functions have numerous optional keyword arguments. For example, all scene object creation functions take optional keyword arguments for their creation parameters, sometimes more than 20, and using positional arguments would simply be unworkable.


Code Layout

The end-of-line layout rules, as described in the Source code layout and continuation lines topic, mean that an end-of-line marks the end of a function call if the line ends at the end of a complete argument.

You cannot simply break up a function call with many arguments into several lines, because each line becomes a separate expression, almost certainly causing an error. You should use the '\' continuation character in this situation:

foo = standardMaterial twosided:on shininess:34 \

diffuseMap:baz \

opacityMap:bar \

bumpMap:boo


Calling Built-In Functions

All of the MAX operations that you can access with MAXScript are made available to you as functions. You invoke them with standard function calls, there is no special syntax or mechanisms especially for the MAX built-in functions. MAX functions make up the bulk of the built-in functions in MAXScript.

Special notes about function calls:

  • Functions in MAXScript are just another kind of value that can be stored in variables and arrays and passed on to other functions as arguments. Such functions are sometimes called higher-order functions. All built-in functions are values stored in reserved system global variables of the same name as the function. When you define a scripted function, the function value is placed in a global variable with the same name as the function. You can use the value in these variables and work with them as you would with other values, such as storing them in an array or passing them as arguments.

· Functions that take no arguments need to called in a special way. For example, if you wanted to call a function get_current_target that takes no arguments, you could not simply write:

t = get_current_target

because this is a variable access that simply yields the function itself, and does not call the function. Instead, you must use the '()' nullary call operator:

t = get_current_target ()

  • The function to be called is defined as an <operand> in the syntax for function calls. This means that it can be an expression that is itself evaluated to get the function to call. For example:

(if a > b then sin else cos) x -- conditional function choice

handlers[x] $box01 [1,1,1] -- get the function out of an array


Block Expressions

Block-expressions are the basic constructors for structured code. They allow you to group together a sequence of expressions and have them evaluated in sequence as though they were a single expression. The syntax for <block_expr> is:

( <expr> { (; | <new_line>) <expr> } )

That is, a parenthesized sequence of expressions with each <expr> separated by either a line-break or a ';' semicolon.

The compiler allows empty block-expressions. This is useful when incrementally building code to be able to place an empty expression in some path to be filled in later.

When evaluated, empty expressions yield the value undefined.

Examples:

(

d = centre.x^2 - (p.x^2 + p.y^2)

newz = if d > 0 then sqrt d else p.z

print newz

)

if x < y then (print x; print y; u += 10; print u)

You can use a mixture of line-breaks or semicolons:

(

print x; print y

u += 10

print u; print z

)

Because a block-expression is an <operand>, you can insert a block of code anywhere you can put an <operand>. This is unlike most languages which limit the places you can put blocks of code to only a few. Further, because all constructs are expressions in MAXScript, a block-expression yields a value that is defined to be the last <expr> in the block. This allows you to use a nested sequence of expressions to compute an operand for some operation:

$box.z =

(

d = x^2 - y^2

if d > 0 then sqrt d else z

)

Here, the result of the final if expression is the result of the block which is then assigned.


Local Variables and Scoping

To further assist the structuring of code, MAXScript lets you declare local variables in a block-expression. These are typically used to hold temporary or intermediate results that may be dropped when the block is exited. You declare local variables in a block with the <local_decl> construct, introduced in the topic Variables, Assignment and Scoping. Here is the syntax again:

local <decl> { , <decl> }

where <decl> is defined as:

<name> [ = <expr> ]      -- optional initial value

Example:

local foo

local x = 0, y = 100

You use local variables in block expressions like this:

(

local foo = $box01.pos

print foo.x

local baz = length foo

$box02.pos.x += baz / 2

baz -- value in baz is block result

)

You can use local declarations at any point in the expression sequence. They are usable from there on in the block.

See also:

Scoping and Extent


Scoping and Extent

When you declare a local variable, you can re-use the same name as a global variable or local variable in an enclosing block or function. If you do this, the newly declared local variable hides the outer variables with the same name, any reference to that variable identifier later in the local variable's block refers to the new local variable. At the end of the local's block, the next outer variable becomes visible again. This visibility scheme is called lexical scoping and the segment of code in which a particular variable is visible is called its scope.

Example:

global foo = 23

if x > y then

(

local baz = foo + 1, -- gets the global foo

foo = y - 1      -- declares 1st local foo, hides global foo

$obj.pops.x = foo -- gets 1st local foo

if (foo > 0) then

(

local a, b, foo = y - x      -- a nested 2nd local foo, hides 1st local

a = sin foo      -- get 2nd local foo

print a

) -- leave scope

$obj2.pos.x = foo - 1.5 -- back to 1st local foo

) -- leave scope

print foo      -- back to global foo

This might seem a strange way of over-using a single variable name, but in large programs, however, these scoping rules can be quite useful.

Extent

Another important property of variables is their extent. Extent refers to the length of time that a variable's value is accessible. In the case of global variables, their extent lasts for the entire MAX session, matching its scope, or visibility, which covers all of the MAXScript code you run while you are using MAX.

On the other hand, local variables have a scope that is limited to the block they are declared in, and their extent also lasts for the block they are in.


Control Constructs

MAXScript has several <expr> expression forms that are used to control the flow of execution. They are:

<if_expr>

<while_loop>

<do_loop>

<for_loop>

<loop_exit>

They correspond to the classical control constructs found in most programming languages. Each is described in its own topic:

If Expression

While and Do Loops

For Loop

Loop Exit


If Expression

The syntax for an <if_expr> is one of:

if <expr> then <expr> [ else <expr> ]

if <expr> do <expr>

The first <expr> is a test expression that must evaluate to true or false, such as a comparison or logical expression. If the result is true, the then or do <expr> is evaluated and its value is returned as the result of the whole <if_expr>. If the result is false, either the optional else <expr> is evaluated and returned as the result of the <if_expr>, or if there is no else or the do form is used, the <if_expr> returns the value undefined.

Examples:

if a > b do (print d; print e)

a = if d == 0 then 0 else a / d

The do form is provided particularly for use during interactive sessions in the MAXScript Listener. When you enter expressions for immediate evaluation into the Listener, MAXScript determines if your expression is complete and then evaluates it. If you use the optional else form as a top-level command in the Listener and you want to omit the else <expr>, as in the following example, MAXScript continues to "wait and see" if you are going to enter an else, because the line break after the then <expr> is legal and does not cause MAXScript to evaluate the current line right away:

if match x y then print x

When you use the optional else form inside a block or other expression, MAXScript can determine from the code that follows it whether you omitted the optional else. Use the do form for if statements without an else as top-level commands in the Listener:

if match x y do print x


While and Do Loops

The while loop and do loop are simple variants of one another. The syntax is:

do <expr> while <expr>

while <expr> do <expr>

Both are loops that repeat the do <expr> as long as the while <expr> evaluates to the value true. The do form evaluates the do <expr> at least once, evaluating the test expression at the end of each loop. The while form evaluates the test-expression at the start of each loop and so may not loop at all.

They both return as their value the result of the do <expr> from the last successful loop iteration. The while form may return the value undefined if the loop test returns false immediatley.

Examples:

while x > 0 do

(

print x

x -= 1

)

do print (read_value f) while not eof f


For Loop

A for-loop lets you iterate through a range of numbers, time values, or a sequenced collection of values, such as an array or object set.

Examples:

for i = 1 to 10 do print I -- sequence numbers

for item in table1 do x = x + item.height -- sequence an array

for t in 0f to 100f by 5f do ... -- sequence time (given as -- frames, here)
bigones = for obj in $box* -- you can sequence pathnames!

where obj.height > 100 collect obj      -- collect the big boxes into      -- an array

The syntax for the for loop is:

for <name> ( in | = ) <sequence> ( do | collect ) <expr>

where <name> is the name of the automatically-created local variable inside the loop <expr> that holds the loop value, and <sequence> is the source of values for the loop which can be one of:

<expr> to <expr> [ by <expr> ] [ where <expr> ]

<expr> [ where <expr> ]

The first <sequence> form is the classic number loop, the first <expr> is the start value, to <expr> is the limit value and the optional by value is the loop value increment. The allowable types are integer, float and time. If the by value isn't given it defaults to 1.

The second form of <sequence> takes a sequencable collection, such as an array or object set, and iterates through all its values, assigning successive elements in the collection to the loop value each time around the loop. MAXScript contains several types of sequence collections, including pathnames, the current selection set, the children of a node, and the stack of modifiers on an object. They are all defined in the MAXScript Class Hierarchy topic.

Each <sequence> source form takes an optional where <expr> which must evaluate to true or false. The where expression is evaluated at the beginning of each loop and only executes the loop body for that loop if the where expression is true.

The do <expr> form simply evaluates the body expression once for each value in the source. The loop variable is visible to the code in the body expression as though it was declared locally and initialized to the successive loop values each time.

The collect <expr> form gathers all body expression values from each loop iteration and stores them in an array value, which is yielded as the value of the overall for-loop. This is a good way of gathering procedural selections of objects from a scene, for example.


Loop Exit

MAXScript provides a special construct for breaking out of a loop prematurely, even though the loop test <expr> is still true. This is often useful to simplify the loop test, but still use error or other complex termination tests in the body <expr> of the loop. Its syntax is:

exit [ with <expr> ]

Example:

while x < y do

(

local delta = x - y

if delta <= 0 then exit -- time to bail

$foo.pos.x = compute_x (foo / delta)

x += 0.1

)

The optional with <expr> lets you specify what the overall value of the loop expression should be if the loop exits prematurely. If you don't specify an exit value, the loop returns the value undefined upon exit.

Exiting a for ... collect loop using a with <expr> does not work as with other loops. The result is always the array of body values collected up to the point of exit.


Function Definition

Functions can be defined in MAXScript using the function definition expression, <function_def>. The syntax is:

(function | fn) <name> { <parameter> } = <expr>

in which <name> is the name of the function, the optional sequence of <parameter>'s can be one of:

<name>

<name>: [ <operand> ]      -- keyword parameter with optional default value

and the <expr> after the '=' equal sign is the body of the function.

The function <name> is actually used to name a global variable into which a value representing the function is placed. When you call a function by using its name, you are accessing its definition in a global variable of that name.

The parameters for a function are either positional or keyword. Positional parameters are defined with a simple <name> and must come before any keyword parameters. Keyword parameters have a ':' colon after the name and an optional default value. The caller of the function can optionally supply keyword arguments in any order, and those not supplied will be set to the default value given, or the special value unsupplied, if a default value is not given.

Examples:

function add a b = a + b

fn factorial n = if n <= 0 then 1 else n * factorial(n - 1)

fn starfield count extent:[200,200,200] pos:[0,0,0] =

(

local f = pos - extent / 2,

t = pos + extent / 2

for i = 1 to count do

sphere name:"star" \

radius:(random 0.1 2.0) \

position:(random f t) \

segs:4 smooth:false

)

A scripted function returns as its value the value of the body <expr>. If the body is a block expression, the function evaluates to the value of the last expression in the block.

A function can be defined recursively, as is the factorial function in the examples above.

Note: Prior to this release, MAXScript classed all user-scripted functions as mapped, which meant that they were always automatically called repeatedly on the elements of a collection if the collection was given as the first argument to the function. This has been the cause of several obscure bugs in testers' scripts, so the default now is that user-scripted functions are not automatically mapped (in other words, a collection first argument is passed along as a collection to a single call of the function).

You can define mapped functions by preceding the definition with the new reserved word mapped, for example:

mapped function rand_color x =

x.wireColor = random (color 0 0 0) (color 255 255 255)

Note that this requires a change to the main demo file demo.ms. The updated file is in the 0.2.16 samples folder available in the Compuserve scripter library.

See also:

Function Variables

Parameters

The Return Expression


Function Variables

When you define a function, two events occur:

  • The function <name> is used to declare a new global variable with that name.
  • The function value is placed into that global variable when the definition is evaluated.

This lets you not only call the function, but also pass the actual function to a variable, and store it in an array, for example, just by using that variable:

-- some 3D surface functions

fn saddle x y = sin x * sin y

fn sombrero x y = cos (x^2 + y^2) / (1 + (x^2 + y^2))

print (saddle 1 1) -- try one out

surface_functions[1] = saddle      -- store them in an array

surface_functions[2] = sombrero

z = (surface_functions[i]) 10 10 -- call one of them from within the array

build_math_mesh sombrero      -- pass one in to a higher-order function


Parameters

The parameters to a function act exactly as though they were local variables that have been declared at the head of the function body, and that are initialized with the arguments given by the caller. They have a scope that extends to the end of the body <expr>. They can be assigned to and hidden by nested local variables with the same name, as can other local variables. Assigning to a parameter variable has no effect on the caller's context, it is an entirely local action.

Keyword parameters can be given default values in the function definition, implicitly making them optional to the caller, as in the starfield function example in the Function Definition topic. If the caller does not supply one of these keyword arguments, it is initialized to the default value upon function entry. The default values are specified after the ':' colon.

If a keyword parameter is defined with no default value and is not supplied by the caller, it is initialized to the special value unsupplied. You can check for this value in the body of your function and handle missing required keyword argument errors accordingly.

Example:

fn foo a b: c: d: =

(

if c == unsuppplied then print "Where's the c: argument??"

...

)


The Return Expression

As with the loop constructs, you can break out of a function body block expression prematurely in MAXScript, and return a result without evaluating the block remainder. For this purpose, you use the <function_return> expression:

return <expr>

If a return expression is evaluated in the course of running a function body, the function exits immediately and yields the value given in the return <expr>.

Note that it is unnecessary and somewhat inefficient to place a return expression at the end of a function body; simply place the result expression there.

Example:

fn find_root twod_fn =

(

local root, last_root

while true do

(

...

if abs(root - last_root) < epsilon then return root

...

)

)


Pathnames

Names identify entities like variables and parameters inside the running MAXScript program. If you want to identify objects in the MAX scene by name, you use a Pathname.

Pathnames can name a single object in the scene, specify a particular object via a path through the object hierarchy, or name sets of objects using pattern matching.

Pathnames start with a '$' dollar sign:

$<path>

Examples:

$box01 -- object named 'box01'

$torso/left_upper_arm/left_lower_arm -- hierarchy path name

$*box* -- all objects with 'box' in the name

$torso/*      -- all the direct children of $torso

For more details about pathnames, see the PathName : Collection and the Using Pathnames topics.


Spaces and Other Special Characters in Names

MAX lets you use any characters you want in object names, including spaces and other MAXScript punctuation. You can write pathnames that contain these characters by putting the name in single quotes, for example:

$'a silly name!!'

These quotes do not hide wild-card characters, so if you happen to have an object in your scene with a '*' in it, you have to escape the '*' character in the pathname with a backslash:

$'what the \*'


Indexing and Sequencing Pathnames

Pathnames that have wild-cards in them are considered to be a sequenced collection of scene objects that you can index into and iterate over. For example:

a = $*feet*[1]      -- retrieves the first object in the *feet*'s

-- select everything within a 100 units of $foo

for o in $* where distance o $foo < 100 do selectmore o

-- tell me what things inside dummy have a non-identity scale

for obj in $dummy...*

where obj.scale != [1,1,1]

do format "% has non-identity scale: %\n" obj.name obj.scale

The order of sequencing is consistent in a stable scene but somewhat arbitrary - it depends on how MAX stores its object hierarchy internally which is effected mostly by order of additions and deletions to and from the scene.


Built-In Object Sets

In MAX, there are a number of categories of scene object - geometry, cameras, lights, helpers, etc, that you can use in various selection filters and hiders, etc. These are reflected in MAXScript as named Object Sets, that act just like path expressions. The object sets are:

objects -- all the objects

geometry -- the standard MAX categories...

lights

cameras

helpers

shapes

systems

spacewarps

selection      -- the current selection

You can use them where you would a pathname, for example:

hide cameras

move selection [20, 0, 0]

lights.multiplier *= 0.8 -- turn down all the lights, please

a = selection[1] -- grab the first object in the selection

     -- into variable 'a'

You can also use them as the root of a pathname, like this:

$helpers/d*

which limits the pathname searching to the object set you've specified. So, in the above example, it will name only helper objects that start with 'd'. If one of the objects you want get at with a pathname happens to be named with one of these special set names, you can quote the name to force MAXScript to interpret it as a scene object name.

Object sets are actually special types of value that denote their sets, stored in reserved system variables of the same name, so you can assign them to other variables and pass them around as function arguments, etc.


Working Levels

MAXScript lets you set up a 'working level' in the MAX scene hierarchy that effects pathnames and coordinate systems and object creation. You do this with a <level_expr>, one of the many context expressions that are described in the Context Expressions topic. The syntax is:

( in | at level ) <operand> <expr>

Example:

in $dummy

(

sphere name:"ear1" pos:[10,10,10]

sphere name:"ear2" pos:[-10,10,10]

scale $foo/* [1,1,2]

)

This causes the code within the body <expr> to be run as though the object given in <operand> is the root of the object tree. So, in the example, the two new spheres are created automatically as children of $dummy and the pathname $foo/* looks for 'foo' as a child of $dummy, not in the whole scene.

In order to be able to use pathnames within level contexts to name objects anywhere in the scene you can override the current working level by using a rooted pathname. It has an extra '/' before the first level name and means 'start at the actual root of the object tree'. So, for example, if the scale expression in the previous example was:

scale $/baz/* [1,1,2]

it would operate on the 'baz' in the actual top level, not just as a child of the current working level.

You can also use this rooted pathname form to force a pathname to ONLY consider top-level objects when you name a single object. So, for example,

$foo

looks throughout the whole scene, at all levels for an object named 'foo', but,

$/foo

will only look for a top-level object named 'foo'.


Making a Snapshot of Selections

You can convert object sets and wild-card pathnames to arrays using the as operator. This has the effect of taking a 'snapshot' into the array of the current objects in the set or those matched by the pathname, so that you can then later work on that collection of objects without worrying if the set or match has changed. This is similar to named selection sets in the MAX UI, and can be used, for example, to keep track of selections as you work interactively with MAXScript.

Examples:

sel1 = selection as array

boxes_at_load = $box* as array

snap_children = $torso...* as array

original_cameras = cameras as array

You can then work with the arrays just as you would with object sets or pathnames. See Automatic collection operations and Collections for more information.

If the user deletes from the scene any of the objects in the array, you will get an error if you try to map operations over the array.


Object Set and Pathname Properties

Object sets and wild-card pathnames have 4 properties that relate to the specified set of objects as a whole. They are:

<objectset_or_pathname>.count

<objectset_or_pathname>.min

<objectset_or_pathname>.max

<objectset_or_pathname>.center

The .count property yields the number of objects currently specified by the object set or pathname pattern. For example:

n = geometry.count

assigns the number of geometry objects in the scene to the variable 'n'.

The other 3 properties yield bounding box info for the entire set. For example:

selection.center

yields the coordinate at the center of all the objects in the current selection, and:

$foo.pivot = $box*.max

would place $foo's pivot point at the max corner of the set of 'box*' objects.


Syntax

The full syntax for a path expression is as follows:

<path_name> ::= $<path>

<path> ::= [ / ] [ <levels> ] <level_name>

<levels> ::= <level> { / <level> }

<level> ::= <level_name>

...

'<any_characters>'

<level_name> ::= { <alphanumeric > | _ | * | ? | \ }


Context Expressions

The context expressions are those parts of the MAXScript syntax that are most specifically designed for use with MAX. They are mirrors of some of the most important abstractions in the MAX user interface - the animate button, the time-line slider, the working coordinate system, and so on. They make it as easy to do animation and perform geometry manipulation in the scripter as these tools do in the user interface.

The basic idea is that a prefix is supplied that sets up a context for the evaluation of its expression. For example:

animate on

(

move $box01 [20, 0, 0]

rotate $box02 45 x_axis

)

This effectively 'turns on' the animate button for the duration of its block expression. The move and rotate will automatically generate keyframes, just as would happen if you turned the animate button on in the UI and moved some objects around. Another kind of context expression has a prefix for setting the current animation time, as though you had moved the time slider. If we mix the two forms together, like this:

animate on

(

at time 0 $box01.position = [-100, 0, 0]

at time 100 $box01.position = [100, 0, 0]

)

you can see how to do keyframe animation in MAXScript.

Here is the full syntax for <context_expr>:

<context> { , <context> } <expr>

where <context> is one of:

[ with ] animate <boolean_expr>

with redraw <boolean_expr>

at level <operand>

in <operand>

at time <operand>

[ in ] coordys <coordsys_spec>

about <center_spec>

undo <boolean_expr>

Examples:

-- randomly jiggle each object in the selection around + or - 20 units

in coordsys local selection.pos = random [-20,20,20] [20,20,20]

-- rotate all the boxes 30 degrees about the y_axis of $foo

about $foo rotate $box* 30 y_axis

-- generate a keyframed animation of $foo randomly chasing $baz

animate on

for t in 0 to 100 by 5 do

at time t

$foo.pos = $baz.pos + random [-10,-10,-10] [10,10,10]

The contexts effect code as follows:

animate: if on causes keyframes to be generated whenever an animatable property of a MAX object is changed. It works identically to the animate button in the user interface. Default is off.

at level or in: takes a <node> operand and sets it to be the current parent for any scene object creation, so that new objects are automatically made children of that <node> and makes it the effective root for any pathnames. Default is no parent.

at time: sets the current working time. Any animatable property references will yield their interpolated values for that time. Default is the current time slider position.

The following are Context expressions:

coordsys

about

undo

See also:

Cascading Contexts

Nested Contexts

Sticky Contexts


coordsys

The coordsys context in MAXScript corresponds to the current working coordinate system drop-down menu in the main MAX toolbar. Prefixing an expression or operation or block-expression with a coordsys context causes 3D coordinate operations to be interpreted in the specified coordinate system. Moves, scales, rotates, setting position, pivot, rotation, etc., properties within a coordsys context operate relative to the given coordsys. Accessing coordinate properties such as position, center, rotation axis, etc., within a coordsys context causes those values to be delivered relative to the given coordsys.

The following forms are supported:

[ in ] coordsys world

uses the world space coordinate system

[ in ] coordsys local

uses the object local coordinate system

[ in ] coordsys parent

uses the object's parent's coordinate system

[ in ] coordsys grid

sets the current working system to the active grid.

[ in ] coordsys screen

sets the current working system to screen space in the currently active viewport.

[ in ] coordsys <node>

uses the object local coordinate system of the given object - this is equivalent to the 'pick' coordinate system capability in the MAX UI.

[ in ] coordsys <matrix3>

uses the coordinate system specified by the given 3D matrix.


about

The about context is the MAXScript equivalent of the rotate/scale center drop-down menu on the main MAX toolbar. It defines the center point about which any scale or rotation operation is performed within its context. Note that, like the center drop-down in MAX, this only sets the center point for the operation, not the axis. The axis is taken from the current working coordinate system set using the coordsys clause.

about selection

rotates/scales about the center of the current selection

about pivot

rotates/scales about each object's pivot point

about coordsys

rotates/scales about the center of the current working coordinate system set using the 'coordsys' context expression

about <node>

rotates/scales about the pivot point of the given object.

about <matrix3>

rotates/scales about the center of the coordinate system specified by the given 3D matrix.

about <point3>

rotates/scales about the given point with coordinate system and axes taken from the current working coordinate system.


undo

The undo context provides control over whether scripted scene changes will be undoable or not. By default, the operations performed in MAXScript are undoable. This means that scene-modifying commands typed in the listener are undoable by default. Making this a context-controlled activity allows the MAXScript user to decide when the undo overhead is to be taken. The form of this context is:

undo <boolean_expr>

Example:

undo on

(

delete $box*

delete $sphere*

)

The undoable operations appear as items labeled "MAXScript" in the MAX Undo menu. In future releases, a more descriptive label will be provided. It is important to note that the granularity of the undoable operations is at the level of entire undo clauses, so in the above example, one entry is added to the undo stack containing both deletes as a single operation. Choosing undo for this entry in the undo menu will cause both deletes to be undone. You can thusly control the granularity of undo's by choosing appropriate undo block expression groupings.

You can invoke an undo from MAXScript with the MAX command:

max undo

When you script very large scene changes, you should turn undo on with care as it would be quite easy to fill up the undo buffers and consume substantial amounts of memory. Disabling undo can improve performance in this situation.


Cascading Contexts

You can cascade a set of context prefixes, separated by commas, onto one subject expression, effectively applying all the contexts (in order) to the subject expression, as in:

animate on, at time (t+1), with redraw off, coordsys local

(

...

)

All the context forms are true expressions, yielding the value of their subject expression, so:

pos0 = at time 35 $box01.position

pos1 = at time 75 $box01.position

assigns box01's position at time's 35 and 75 to variables 'pos0' and 'pos1'. The is particularly useful with the time context, since you can very easily do across-time computations. The operand to a time context can be any valid time value (integers are taken as frames for convenience), including subframe times down to the tick level. The animation system in MAX will interpolate animated parameters at these fine levels so you can do sub-frame simulation computations, for example, quite easily.


Nested Contexts

All context expressions remember the setting of the context at the time it changed the setting for its subject expression, and restores that original setting when the expression completes. This means you can nest context clauses in any way you want, including contexts of the same type to countervail an outer setting.

Example:

with animate on, at time t

(

move ... -- all these place keys

rotate ...

animate off -- turn off animate for a bit

(

move ...      -- working maneuvers, these don't effect animation

rotate ...

) -- animate on is restored here

scale ... -- place keys again

...

)

Further, all the contexts are dynamically scoped. This means that any code inside a context expression or any functions that code calls or functions it calls down to any level, are executed in the currently prevailing runtime context. So, a function can be moving an object and placing keyframes at a certain time when called from one client and doing no keyframing when called from another client, depending on how the callers have set up the contexts. Of course, the called function can explicitly set its own contexts if it wants to, overriding those that may have been set up by the caller.


Sticky Contexts

You can force the settings of contexts such as coordsys, animate, time, etc., to be "sticky" so they stay active for any code execution that follows, up until the point you change them or override them with a context prefix for some expression. This is particularly useful when working in the Listener, allowing you to set a context and then perform several interactive operations in that context without having to prefix each with the desired context construct. Establishing a sticky context is accomplished with the set construct:

set <context>

where <context> is one of the MAXScript context prefixes, animate, time, redraw, in, coordsys, about, level or undo.

Example:

set animate on

set time 30f

move $foo [80,0,0]

scale $baz [1,1,3]

$bar.bend.angle += 23

...

set animate off

set time off

This turns animate on and sets the current time to frame 30 after which any number of interactive operations can be performed that will generate animation at frame 30. The modes are then returned to default. As shown in this example, certain the MAXScript contexts permit syntactic variants to make the set construct read clearly. In particular, these are:

set time <time_value> | off -- variant of at time <t>

set level <scene_node>      -- variant of at level <o>

The time context can be set to off, signifying that the current value of the MAX time slider is to be used.

All the set constructs are expressions that yield the context setting that was in force at the time the new context was set. This allows you to simulate the standard nested forms of these constructs by storing the old context in a variable and the using that to restore the context later, for example:

oc = set coordsys parent -- remember old coordsys

rotate $foo (quat 30 z_axis)

...

set coordsys oc      -- restore it

When using the set undo on construct to enable the undoing of scripted changes in the Listener, undo granularity is at the level of top-level expressions - every time you evaluate an expression or sequence of selectected expressions with the ENTER or <numpad-enter> key, a single entry is added to the undo stack.


Automatic Collection Operations

Many of the values you work with in MAXScript are sequenced collections, notably arrays and wild-card pathname selections and the built-in object sets. In the manner of most OS shell command languages, MAXScript will automatically apply appropriate operations to each of the members in these target collections.

Examples:

hide $lights/key* -- hide all the 'key' lights in the scene

$box*.position = [0,0,0] -- recenter all boxes

delete dead_objects -- delete all the objects in the array

-- 'dead_objects'

lights.value *= 0.8      -- turn down all the lights 80%

MAXScript does this by looking at the first argument to a function or the target in a property assignment to see if it is a sequenced collection. In the case of a function call, it also looks to see if the function is of the appropriate kind, evaluates all the other argument expressions once only and then calls the function on each of the members of the first argument collection passing along the other evaluated arguments. In the case of a property assignment, it evaluates the right-hand-expression once only and assigns the value to the named property of each of the elements in the target value collection.

This means that every element in the collection must be a valid target for the function or have the named property in question. If MAXScript comes across an inappropriate target it will report an error and stop the automatic operation.

This behavior of calling a function on all the elements of a collection is known as mapping in computer science. In the reference topics that you can access from the MAXScript Class Hierarchy topic, you will find those kinds of sequenced collections that can be mapped over marked with the label mappable, and all the functions that are appropriate to map labeled mapped. In general, the functions that are mapped are those that have some side-effect on the value they take, such as moves, and deletes and hides. Others, like the test function isHidden, are not mapped because it would be pointless.

Prior to this release, MAXScript classed all user-scripted functions as mapped, which meant that they were always automatically called repeatedly on the elements of a collection if the collection was given as the first argument to the function. This has been the cause of several obscure bugs in testers' scripts, so the default now is that user-scripted functions are not automatically mapped (in other words, a collection first argument is passed along as a collection to a single call of the function).

You can define mapped functions by preceding the definition with the new reserved word mapped, for example:

mapped function rand_color x =

x.wireColor = random (color 0 0 0) (color 255 255 255)

Note that this requires a change to the main demo file demo.ms. The updated file is in the 0.2.16 samples folder available in the Compuserve scripter library.


Working with MAX Objects

Working with the MAX Rendering Environment

Working with Spacewarps

Working with Named Selection Sets

Overview - the MAXWrapper Class Family

Creating MAX Objects

MAX Object Properties and Access Schemes

Support for 3rd-Party Plug-in

Scene Objects (Nodes)

Creating Scene Objects

Common Node Properties

Context Expressions and Their Effects on Node Properties

Accessing Special node Properties

Modifiers and the Modifier Stack

Property Animation Controllers

Animation Keyframes

Navigating and Creating Node Hierarchies

Cloning Nodes

Editable Meshes

Creating Meshes

Derving Meshes from Other Objects

Meshes and the Modifier Stack

Mesh Access Functions

Bezier Curves and Shapes in General

Creating Curves

Curve Interpolation and its Uses

Curve Access Functions

NURBS Curves and Surface

<t.b.d.>

Modifiers

Creating Modifiers

Working with an Object's Modifier Stack

Cloning Modifiers and Setting up Instancing and Referencing

Controllers

Creating Controllers

Getting at Existing Controllers

Controller Functions

Controller Functions that Operate on Trackview Hierarchies

Keyframes

Accessing Keyframes on Exisiting Controllers

Keyframe Arrays

Working with Standard Keys: Linear, Bezier, TCB

Materials and Material Libraries


Working with the MAX Rendering Environment

You can use the following functions for maintaining the list of atmospherics in the global rendering environment:

addAtmospheric <atmos>

adds the atmospheric

getAtmospheric <index>

gets the indexed atmospheric. Index is 1-based.

setAtmospheric <index> <atmos>

sets the indexed atmospheric

deleteAtmospheric <index>

The global MAX variable numAtmospherics gives you the number of current atmospherics in the rendering environment.

The following global MAX variables give you access to the global rendering environment:

backgroundColor : color

backgroundColorController : color controller

ambientColor : color

ambientColorController : color controller

environmentMap : texture map

useEnvironmentMap : boolean on/off

numAtmospherics : integer, readonly

Examples:

ambientColor = color 10 10 25

environmentMap = bitmapTexture filename:"foo.bmp"


Working with Spacewarps

You can bind spacewarps to scene objects and access spacewarp binding modifiers from the scripter.

The form is:

bindSpaceWarp <node> <warp_obj_node>

which is used to bind the 1st argument scene node to the 2nd argument spacewarp object scene node.

Spacewarp bindings show up in the modifier stack and can be accessed like any other modifier. Use the deleteModifier() function to unbind objects from spacewarps.


Working with Named Selection Sets

The MAX system global variable selectionSets contains an array of all the current node selection sets in the Named Selection Set dropdown on the MAX toolbar.

You access an individual selection set by indexing the selectionSets array with its name or index:

set1 = selectionSets["my set 1"]

You can then use that set just as you would use any other object set in MAXScript, such as selection, objects, lights, etc. For example,

move set1 [10,0,0]

moves all the objects in the set across 10 in x.

You can use strings or MAXScript names (starting with #) interchangably as indexes for the selectionSets array, or you can use an integer as an index if you want to loop over all the sets, for example:

selectionSets[#set2].wireColor = red

for i in 1 to selectionSets.count do

saveNodes selectionSets[i] ("set" + i as string + ".max")

You can change, add and delete new Name Selection Sets by using the standard array methods on the selectionSets array:

selectionSets["new set"] = selection -- snap the current selection

selectionSets["old spheres"] = $sphere* -- all the current objs named -- "sphere*"

deleteItem selectionSets "old set"      -- delete the set named "old set"


Script Controllers

The following scriptable controllers are available in MAX, mirroring the expression controllers:

Float Script float controller

Position Script position Point3 controller

Point3 Script Point3 controller

Rotation Script rotation Quat controller

Scale Script scale Point3 controller

They function in similar way to expression controllers, providing a properties dialog in which a script can be entered that is used to compute the controller value. The primary advantages of script controllers are:

  1. They can use all the features of the MAXScript language including loops, scripted functions, pathnames, etc.
  2. Almost any property of any object in the scene can be used to help compute controller values, including things like mesh vertices, values of properties at arbitrary frame times, and other non-animatable properties that are not accessible in Expression controllers.
  3. They can use MAXScript global variables to communicate and coordinate with other controllers and scripts in MAX.

properties

.script

lets you programmatically get and set the text for scripts. For example,

$foo.position.controller.script = "$baz.pos - [20,20,35]"

When you assign a Script controller to some parameter, a properties dialog becomes available through the right-mouse-button menu or the Properties button on the Track View toolbar. This dialog contains two text boxes and several buttons:

Script text box: You type the script to compute the controller value here. See the section below on writing controller scripts for details.

Result text box: This box shows the results of an evaluation or any error messages caused by errors in your script.

Evaluate button: Cause an evaluation of the controller script to be made and prints the result in the Result box. The evalutation is computed for the current position of the MAX time slider.

Load/Save buttons: Load and save scripts to text files.

Close button: Compiles and checks the controller script and if all is OK, close the properties dialog. Any problems result in a dialog box asking whether you really want to close the box with an incorrect script. If you do, the controller yields a null value (0, [0,0,0], etc.) when evaluated by MAX.

Writing Controller Scripts

MAX interprets the text you type into the Script text box as the body of a MAXScript block expression, so you can type as many expressions as you want on as many lines as you want and they are evaluated in turn and the value of the last expression is taken as the conroller value. This value must yield the right type for the controller, Float for float, Point3 for position, Quat for rotation, etc.

Because the text is effectively 'inside' a block expression, you can declare local variables which are visible only within the script and are temporary for one evaluation. You can also declare or access global variables that are shared with all other scripts in MAXScript and hold their values from one evaluation to the next.

A controller is always evaluated by MAX with respect to a specific animation time. This might be the current time slider or incrementing frame time if an animation is playing or a render is under way.

In the case of Script controllers, the time being evaluated is used to establish an automatic 'at time' context around the controller script, so any properties you access (outside of other explicit 'at time' expressions) yield the correct values for the current controller evaluation time. This means you don't have to do anything special in your scripts to work at the correct time. You can access the eval time if you need with the standard MAXScript variable, currentTime. You can also reference scene property values at other times by using explicit 'at time' expressions in your scripts, as in normal MAXScript programming.

Remember that MAXScript lets you write multi-line string literals, if you need.

Examples:

A position script keeping the object at the center of all other objects in the scene as they move about:

local pos = [0,0,0]

for o in objects where o != $foo do

pos += o.pos

pos / (objects.count - 1)

The above script computes the average position of all objects except the current one (written as $foo here) by setting up a local variable that iterates through all objects except $foo, accumulates a total position vector, and computes the average in the last line, which is the final result of the script.

A position script keeping the object attached to the highest vertex in a given object:

local high_index = 1, high_z = (getVert $foo 1).z

for i in 1 to $foo.numVerts do

if (getVert $foo i).z > high_z then

(

high_index = i

high_z = (getVert $foo i).z

)

getVert $foo high_index

The above script runs over the vertices in $foo remembering the index of the vertex with the largest z and returns that vertex's coordinates as the new position.

Limitations

Script controllers are not automatically updated when you interactively modify objects that they depend on.

If you move the time slider or if you animate the changes and then play the animation, the changes are reflected automatically. Because the scripts can refer to other objects in very indirect ways or conditional ways, it is not possible for MAXScript to automatically determine the objects a script depends on.


TrackView Nodes

Added access to global Track View nodes. You can now access and modify controllers in the Global Tracks and Video Post sections in Track View, and even create new named global tracks. Among other things, these can be used to provide keyframe-able parameters in your scripted utilities.

There is a new class and several new variables and functions in support of this:

Classes

MAXTVNode

MAXTVNode is the class whose instances represent track view global track nodes. Each track can have any number of sub-tracks or sub-controllers. The sub-tracks and sub-controllers turn up as properties so you navigate through the nesting using property access.

There are three track nodes you can access through global variables, the root node to which you can add new custom tracks, the existing Global Tracks node and the Video Post tracks node which lets you get at global track and video post controllers. These nodes are also accessible as properties on the root node.

Properties

<maxtvnode>.name :<string>

the track view node name as it appears in trackview

Variables

trackViewNodes : the overall root track view node

globalTracks : the top-level Global Track node

videoPostTracks : the top-level Video Post track node

Functions

newTrackViewNode [<tvnode>] <name_string> [#hidden]

if the <tvnode> argument is supplied, adds a sub-track node to it. If not, creates a new 'top-level' track in the Track View. If the optional #hidden flag is supplied, the node is not visible in the Track View.

deleteTrackViewNode [<parent>] <tvnode>

deletes the given node from the supplied parent or the top-level.

addTrackViewController <tvnode> <controller> <name>

adds the sub-controller to the given trackview node

deleteTrackViewController <tvnode> <controller>

deletes the controller from the given track view node

Examples:

-- access a video post track

videoPost.glow.size = 5

-- set up some visible tracks for some keyframable parameters in a rollout panel

my_tracks = newTrackViewNode "Grinner"

happy_ctrl = position_controller ()

addTrackViewController my_tracks happy_ctrl "Happy"

...

-- plant keyframes in rollout spinner handler if the animate button is on

rollout grinner ...

(

...

on happy changed val do

(

...

happy_ctrl.value = [x, y, z]

...

)

...

)

-- add a new float controller to the global tracks float controller list

globalTracks.float.controller.available.controller = bezier_float ()


Running Scripts from DOS

You can launch MAX from a DOS command line and have it run a specified script, which is useful for tasks such as unattended batch-rendering. This capability uses the existing -U command line switch that names a utility to be run when MAX is started. The -U switch allows an optional string argument which, in the case of MAXScript, is taken to be the name of a launch script to run.

Example:

c:\3dsmax\3dsmax -U MAXScript rendercams.ms

This example command line would launch the MAX executable in c:\3dsmax, start MAXScript and then have it run the script rendercams.ms.

The following example launch script loads two scenes and renders frames from each of the cameras in them, and then quits MAX:

loadMaxFile "foo.max"

for c in cameras do render camera:c outputfile:("foo_"+c.name+".bmp")

loadMaxFile "baz.max"

for c in cameras do render camera:c outputfile:("baz_"+c.name+".bmp")

quitMax #noPrompt

This example makes use of the new quitMax() function. Launch scripts need not be 'batch' scripts as in this example, but may be used, for example, to condition Max for interactive use, say by loading a scene file and setting some UI options.

The normal startup script, startup.ms, is run before the launch script.


Utility Rollouts

<<BETA: this section is still to come.>>


MAXScript Classes

All of the values you work with in MAX each have a well-defined type, like integer or matrix or twist modifier, etc. The 'type' of a value is also known as its class, following the convention of modern object-oriented languages. MAXScript is internally object-oriented - all the built-in classes are arranged in an inheritance hierarchy and most of the built-in functions are polymorphic, terms we'll explore below. You cannot, however, create new classes in MAXScript and the functions you can script are not polymorphic. This may change in later versions of the scripter, but it is an advanced refinement that is not really necessary in an application scripting language, where the most important abstractions - the features of the host application - are already built-in.

See also:

Inheritance and Polymorphism


Inheritance and Polymorphism

Inheritance and polymorphism are the two defining characteristics of object-oriented languages and we'll explore them here a bit to see how they turn up in MAX and MAXScript. First and foremost, both characteristics depend on the system having a well defined type, or class, for every value. This divides up all the values you can work with into groups each of which have well defined operations and properties for their values. In some languages, like standard C++, the class is only manifest at compile-time. In others like Smalltalk and MAXScript, the classes are actual runtime entities and every value has a runtime 'tag' that says what class it is. This is the main reason that MAXScript can have type-free variables - it can look at the class-tag of the value in a variable at runtime to see what the class is.

We've been using a somewhat neutral convention so far of calling the things you compute with 'values'. The term for these things in object-oriented languages is, not surprisingly, object. The terms object and value are synonymous as far as this document is concerned.

Once you have a grouping of objects into classes, you can start arranging the groups themselves into hierarchies. We do this all the time, of course, in real life - the classic example is the biological hierarchy, arranging us all hierarchically into animals and plants and mammals and vertebrates and humans and adults and children, etc. An object-oriented language provides a way to arrange value classes into hierarchies like this, and like the hierarchies we are used to, a class at some point in the hierarchy shares all the operations and properties of all its parent classes. This sharing is known as inheritance in object-oriented languages and it has a substantial impact on the way code is built. You only need to code the operations and properties once for a class high up in the hierarchy and then all the descendant classes automatically get those operations and properties. At each point in the inheritance hierarchy you only need to code those things that are special about the new class. This can be an enormous saving if you choose the hierarchy well.

In the MAXScript Class Hierarchy topic, all the built-in classes in MAXScript are laid-out in their place in the hierarchy so you can see who inherits what from whom. Some of the hierarchy comes from within MAX itself. It is internally object-oriented, and all the objects and modifiers and controllers and so on are arranged in a well-defined inheritance heirarchy.

The other thing you can do once you've got values arranged into identifiable classes is start factoring and simplifying the symbology for all the different kinds of operations each class can do. The classic example of this comes from mathematics. The symbolic operators '+' and '-' and '*' and '/' are shared among many different types (integers, reals, complex, vectors, matrices, etc.), and do the right thing depending on the types they are applied to. This capability for a single named operation to work on different types is called polymorphism. Object-oriented languages let you use the same name for a bunch of different functions or operators across different classes, and it figures the right one to use depending on the class of the value you are using at any point.

In MAXScript, all the math operators and functions are polymorphic in this sense and reflect the standard mathematical conventions. An interesting example for MAX use is the random() function. It takes 2 arguments and generates a random value between them. So, if you give it floats it gives you a float back, if you give it 3d points, it gives you random a point in the box they define the corners of, if you give it quaternions, it gives you back a random rotation between them, etc.

Further, all the functions that work on MAX objects are polymorphic within their hierarchies. So moves and hides and selects work on all kinds of scene objects, time scaling and insertion work on all the kinds of controllers, etc.


MAX Classes

One important family of classes is the MAXWrapper classes that give you access to the scene objects, lights, cameras, modifiers, controllers, materials, etc., in the MAX world. MAXScript essentially has its own kind of value in its own memory space that points to the MAX world object so it doesn’t interfere with the MAX world's memory; that's why they are called wrappers. But, as far as the scripter is concerned, having hold of a MAX object via MAXScript wrapper is just same as if you were pointing at it with a mouse.

See also:

Max Core Classes and Access to 3rd-Party Plug-Ins

Access to Animatable Sub-Objects

Modifier Sub-Object Transform Properties

Controller Access

Controller Creation and Assignment

Controller Time and Keyframe Functions

Recursive Time and Key Functions

Accessing Controller Keys and Key Properties

Bezier Keys

TCB Keys

Key Array Functions


Max Core Classes and Access to 3rd-Party Plug-Ins

The MAXWrapper classes listed in the Class Reference are the core MAX classes that are supported directly within MAXScript. Many of the kinds of MAX objects you will work with are provided through 3rd-party plug-ins for MAX, and are so are not built directly in to MAXScript.

For these classes, an automatic plug-in detector scans for plug-ins that MAXScript doesn't internally know about and attempts to provide scripter access to them. This includes new core classes in new releases of MAX that MAXScript doesn't internally know about, and 3rd-party plug-ins (such as HyperMatter, Sand Blaster, Surface Tools, etc.). Not all parameters and properties of the detected plugins are accessible. In general, the detector will only find animatable parameters on these plugins, and in some cases none at all, if the plug-in uses non-standard parameter coding.

In order to help you figure what 3rd-party classes you can get at (and as a kind of online reference), there is a function called showClass(). This prints info about a specified MAX class or classes. It has the following form:

showclass <pattern_string> [to:<file>]

where <pattern_string> is a string containing a wild-card pattern to match against MAX class names, superclass names and property names. The pattern string has this form:

"<class_name>[:<superclass_name][.<property_name>]"

Examples:

showclass "path*" -- all MAX classes starting 'path'

showclass "noise.*" -- all the accessible properties on the Noise

-- texture map

showclass "*:mod*" -- all the modifier classes

showclass "*.*rad*" -- all the classes with a property name containing

-- 'rad'

showclass "*.*" to:f      -- everything, out to a file

If you leave out the superclass pattern (the ':' part), it matches all superclasses. If you leave out the property pattern (the '.' part), you only get class names printed.

Note: This function only displays matching MAXWrapper classes (nodes, modifiers, materials, etc.), not the foundation classes in MAXScript (float, integer, array, point3, etc.).


Access to Animatable Sub-Objects

In addition to the properties listed in the reference that follows, MAXScript provides access to the so-called subanimatables in MAX entities. These includes such things as animatable modifier sub-objects like gizmos and FFD control points and sub-controllers like those in a List controller or P/R/S Transform or Path controller. The property name you specify is matched against the subanimatable name (as it would be seen in the track view or sub-object drop-down) using the standard MAXScript conventions of mapping spaces to '_' underscores and ignoring case.

The MAX object name matcher checks against a version with all spaces elided. In prior releases, you could name MAX objects such as classes and parameters that had spaces in them by using underscores '_' in place of spaces. In addtion to this, you can now simply leave out the spaces when specifying these names in scripts.

The plug-in scanner strips trailing spaces from the names of any classes and parameters it finds.

Example:

p = $foo.bend.center

$baz.taper.gizmo.rotation = quat 30 z_axis

$foo.pos.controller.bezier_position = [10,0,0]

These subanimatable properties are dynamic and may change as controllers are replaced and sub-objects become animated. Because of this, they may vary from object to object and so are not reported in the properties section of the showClass() function output. Instead, you can use the built-in function showProperties() which will display the accessible properties on a MAX entity including the currently visible subanimatables. It has the form:

showProperties <max_object> [<property_pattern>] [to:<file>]

Example:

showProperties $foo.bend

mod = $baz.ffd_3x3x3

showProperties mod "control*" to:log

showProperties $foo.pos.controller      -- subs of a pos list controller


Modifier Sub-Object Transform Properties

In this release of MAXScript, the values of modifier subanimatable transform properties, such as centers and gizmo pos, rotation and scale, are not given in the current working coordinate system. This is in obvious contrast to scene node transform properties. The values given are typically modifier local and are exactly as would be seen in the sub-object's corresponding track view or as might be referenced in an Expression controller track variable for that subobject property.

FFD control point sub-object properties are now accessible through this mechanism but have several special considerations. The control points properties are named as they appear in the track view, subject to the MAXScript convention of using '_' underscores for spaces, so for example:

$foo.ffd_2x2x2.control_point_1

$baz.ffd_3x3x3.control_point_32 = [1,2,3]

The considerations are as follows:

  1. You can only access control points that have ALREADY been animated by hand. The FFD doesn't actually create accessible control points until you do this, a behavior that shows up in the track view in normal MAX use - you can't actually place control point keyframes in the track view until you've interactively animated the control point at least once away from time 0.
  2. Control point coordinates are in FFD lattice space. This is a normalized space, with [0,0,0] at the lower left-hand corner (at control_point_1) and [1,1,1] at the opposite corner of the FFD lattice, so you have to be careful about computing and scaling correct coordinates when you set them. This is also reflected in the track view for FFD control points in normal MAX use - if you look at their values in a keyframe property dialog or a function graph, they are in this normalized lattice space, not world-space coordinates. You'd have to work in this space also if you tried to use expression controllers to control FFDs.


Controller Access

All animatable properties let you reference several controller-related sub-properties. These are:

.controller -- the property's controller

.track -- ditto

.isAnimated -- a boolean indicating whether property is animated

.keys -- readonly, gets the controller's key array

.value      -- get or set the current controller value

The .key and .value properties give you access to the value and keys in a free-standing controller, which is useful when working with the global tracks controllers that are accessible in MAXScript.

The .value property is sensitive to the current time and animate contexts, so you can use it to evaluate a controller at various times or to plant keyframes in those controllers that support keys.

Example:

$foo.pos.controller

bend_mod1.angle.isAnimated

$bar.taper.gizmo.scale.keys[2]

The .track property is a simple synonym for .controller. If an animatable property does not yet have a controller assigned, the .isAnimated property returns false and the .controller/.track/.keys properties return undefined.


Controller Creation and Assignment

Controllers can be created and applied to animatable properties. The list of available controllers can be determined using the showClass() function:

showClass "*:*controller*"

which lists all the known classes that have "controller" in their superclass name. The controllers include, at least, MAX's core controllers:

superClass floatController

class linear_float

class bezier_float

class tcb_float

class float_list

superClass point3Controller

class bezier_point3

class tcb_point3

class point3_list

class bezier_color

superClass positionController

class linear_position

class bezier_position

class tcb_position

class position_list

class path

superClass rotationController

class linear_rotation

class bezier_rotation

class tcb_rotation

class rotation_list

superClass scaleController

class linear_scale

class bezier_scale

class tcb_scale

class scale_list

superClass matrix3Controller

class prs

class lookat

and any 3rd-party plug-in controllers. In some cases, embedded controllers for some complex plug-ins may be visible in the showClass() listing (such as for Character Studio and HyperMatter). You should not attempt to create and use these controllers individually, this may result in system exceptions.

You create controllers as you do other MAX objects by calling the class as a function:

c = bezier_position ()

and assign them to animatable properties by assigning to the controller property in those animatables:

$foo.pos.controller = c

$baz.bend.gizmo.rotation.controller = tcb_rotation ()

$box01.length = linear_float ()


Recursive Time and Key Functions

Certain of the above time and keyframe functions can be called on any MAX object or collection of MAX objects, not just controllers. If called in this way, they apply recursively to all the nested controllers within those objects and on any on sub-objects and sub-controllers within the objects. In this way, they work in a manner similar to the object-level tracks in the MAX Track View that allow you to manipulate keys and time for all the sub-objects and sub-controllers within them.

The time and controller functions that work this way are:

deleteTime

reverseTime

scaleTime

insertTime

setTimeRange

addNewKey

deleteKeys

selectKeys

deselectKeys

moveKeys

sortKeys

reduceKeys

addEaseCurve

deleteEaseCurve

setBeforeORT

setAfterORT

enableORTs

The above functions can be called on any MAX object collection (such as a wild-card pathname or object set or array of objects ) and will recursively apply to all animation within those objects.

Examples:

insertTime $box01.xform 0f 10f

all keys after 0f in all controllers in the xform modifier are moved by 10f

insertTime $box01 0f 10f

all keys after 0f in box01 are moved (transform, creation, modifiers)

selectKeys $box02.xform.gizmo.rotation.controller 0f 100f

selects keys in 0-100f, if controller is Euler, e.g., will select x,y and z keys

deleteTime $box* 10f 10f

delete 10f at frame 10 in all keys in all objects named $box* (works with any pathname or array of objects)

insertTime $box03.children 0f 10f

inserts time in all controllers of all children of $box03

reduceKeys $box01.modifiers

applies key reductions to all controllers in all modifiers in $box01 (leaves transform and creation parameters alone)


Accessing Controller Keys and Key Properties

The keys and their properties on certain common kinds of controllers can be accessed in MAXScript. The supported controllers, which are the core keyframed controllers in MAX, are:

linear_float

linear_position

linear_rotation

linear_scale

bezier_float

bezier_position

bezier_point3

bezier_rotation

bezier_scale

bezier_color

tcb_float

tcb_position

tcb_point3

tcb_rotation

tcb_scale

For all key types, the following properties are accessible:

<key>.time : time value or number (interpreted as frames)

<key>.value : class determined by its containing controller

<key>.selected      : true or false

Changing the .time property of a key may cause it to go out of time order relative to the other keys in the controller. You must call the sortKeys() function on the controller or associated MAXKeyArray once all key time manipulations of this kind is complete so that animation will perform correctly.

The class of a key's value property is determined by the controller it is in, for example, a linear_float key has a float .value, a tcb_rotation key has a quaternion .value, etc. The properties are all settable and support the math-assignment operators and nested-property access. Here are some examples:

$foo.pos.keys[2].time += 20f

$box1.uvw_map.center.keys[2].value.x += 20

for k in $baz.bend.angle.keys do k.value *= 1.1

The units and scaling on a key's value property are as you would see in the MAX track view. For example, percentages are normally 1-100, angles are in degrees, colors are 0-255,0-255,0-255. This scaling is an attribute of the animatable property, not the controller, so in (the admittedly rare) situations in which a controller is shared by several animatables that have different scaling, you should take care to access the .value property through the correct animatable - this provides a scaling context for the access operation. For example,

c = bezier_float ()

$foo.bend.angle.controller = c -- assign to bend angle

$baz.pos.controller.percent = c      -- and to path percent

shares the same controller between two differently scaled properties. You should access keys carefully in this case:

$foo.bend.angle.keys[1] = 45 -- degrees

$baz.pos.controller.percent.keys[2] = 100      -- percent


Bezier Keys

For Bezier keys, the following additional properties are accessible:

<key>.inTangent : float or point3

<key>.outTangent : float or point3

<key>.inTangentType : <see below>

<key>.outTangentType : " "

<key>.x_locked : Boolean

<key>.y_locked : Boolean

<key>.z_locked : Boolean

<key>.constantVelocity : Boolean

The .inTangent and .outTangent values are floats in keys of float controllers and point3s for the other appropriate controllers.

The .inTangentType and .outTangentType properties have symbolic name values:

#smooth

#linear

#step

#fast

#slow

#custom

representing the 6 possible tangent types available in the drop-down menu in the Bezier key property dialog.

Examples:

c = bezier_position () -- create and assign new controller

$bar.pos.controller = c

k = addNewKey c 0f -- add a key at frame 0

k.value = [10,0,0] -- set value there

k.outTangentType = #slow      -- and outgoing tangent type

k = addNewKey c 100f -- add another key at 100

k.value = [200,10,0] -- set value

k.inTangentType = #custom -- make inTangent custom

k.inTangent = [0.2, 0.02, 0.112] -- set its tangents

k.x_locked = false      -- and unlock handles


TCB Keys

For TCB controller keys, the following additional properties are accessible:

<key>.tension : float

<key>.continuity : float

<key>.bias : float

<key>.easeTo : float

<key>.easeFrom : float


Key Array Functions

For convenience, MAXKeyArrays support four functions that are the equivalents of the same-named functions on controllers. See the Key Operations topic for each of these functions.

addNewKey <key_array> <time> [#select] [#interpolate]

deleteKeys <key_array> [#allKeys] [#selection] [#slide][#rightToLeft]

deleteKey <key_array> <index>

sortKeys <key_array>

Example:

keys = $box01.bend.angle.keys

for t in 0f to 100f by 10f do addNewKeys keys t

All of the above functions may re-sequence keys in the key array and so cause existing keys to take on different indexes, because key array indexes are time positional. Take care when inserting and deleting keys into arrays that have individual keys in variables and other containers -- MAXKey values are defined internally in terms of this index and so may point to different keys if you re-arrange the keys in a congtroller.

MAXKeyArrays also support mapped property assignment on their contents in the same way that pathname and array collections do on their contents. So, for example:

$box01.pos.keys.time += 10f

bumps all key times by 10 frames, and,

$cyl23.bend.angle.keys.value *= 1.2

scales all the bend angle key values up by 1.2.


Controller Time and Keyframe Functions

Controllers that can be keyframed support several time and key-related functions:

Time Operations

Key Operations

Out-Of-Range Parameters

Ease and Multiplier Curve Functions

Key Reducer


Time Operations

supportsTimeOperations <ctrl>

returns true or false depending on whether the controller supports the following time operations

deleteTime <ctrl> <interval> [#incLeft] [#incRight] [#noSlide]

Deletes an interval of time from the controller, removing all the keys with that interval and, by default, sliding the keys to the right of the interval to the left by the width of the interval. The optional symbolic arguments choose one of several options:

#incLeft: includes any key exactly at the start time of the interval

#incRight: includes any key exactly at the end time of the interval

#noSlide: doesn't slide the later keys to fill in the gap removed- this effectively just deletes any keys in the interval.

The <interval> argument can be specified as an Interval value or as two numbers or time values defining the start and end times. Number values are taken as frame numbers.

reverseTime <ctrl> <interval> [#incLeft] [#incRight]

Reverses time in the given interval, essentially swapping keys around so that their time placements are reversed within the interval. The notes on inclusion and interval arguments from deleteTime() apply.

scaleTime <ctrl> <interval> <float_scale>

Scales the times of the keys within the given interval. Again, the <interval> argument can be specified as an Interval value or as two numbers or time values defining the start and end times. Number values are taken as frame counts.

insertTime <ctrl> <at_time> <amount_time>

Inserts a block of time at the specified time, effectively moving all later keys out in time by the amount inserted. The times can be numbers or Time values. Numbers are taken as frame counts.

getTimeRange <ctrl> [#selOnly] [#allKeys] [#children]

Returns a time Interval specifying the range of time covered by keys in the controller. The optional symbolic arguments specifiy options:

#selOnly: return the time range covered by the currently selected keys (in the track view)

#allKeys: the time range for all keys in the controller

#children: descends into sub-controllers and returns the total time interval covering all keys in all sub-controllers

setTimeRange <ctrl> [<interval>] [#linkToKeys]

Sets the time range to be an interval other than that covered by existing keys, typically to influence when the out-of-range methods take over. If the optional #linkToKeys argument is given any keys exactly at the start or end of the given interval become anchors for the time range and moving them move the time range for the controller.

If you call setTimeRange() with just the single argument, #linkToKeys, it will set the time range to the current start and end keys in all the controllers affected:

setTimeRange $box* #linkToKeys

This is equivalent to the Recouple Ranges function in the Position Ranges mode in Track View.


Key Operations

addNewKey <ctrl> <time> [#select] [#interpolate]

Adds a new key to the controller track at the time specified. The new key is also selected in the track view if the #select optional argument is specified. The value for the new key is taken from the previous key, unless the #interpolate argument is specified in which case the value is the interpolated controller value at that time.

This function returns a MAXKey value representing the key so you can set its various properties. See the Accessing Controller Keys and Key Properties topic for details.

deleteKeys <ctrl> [#allKeys] [#selection] [#slide] [#rightToLeft]

Deletes keys from the controller according to the optional symbolic argument supplied.

#allKeys: deletes all keys in the track.

#selection: deletes the currently selected keys

#slide: slides unselected keys to the right, later in time

#rightToLeft: Used in conjunction with #slide to make the unsleected keys slide to the left, earlier in time

deleteKey <ctrl> <index>

Deletes the indexed key. Key indexes are 1-based.

selectKeys <ctrl> [<interval_or_time>]

Selects the specified keys in the track view. If an interval is given, all the keys within the interval are selected. If a single time is given, the key at that time is selected. If no time or interval is given, select all keys.

deselectKeys <ctrl> [<interval_or_time>]

Deselects specified keys. Arguments are as described in selectKeys().

selectKey <ctrl> <index>

Selects the indexed key. Key indexes are 1-based.

deselectKey <ctrl> <index>

Deselects the indexed key. Key indexes are 1-based.

moveKeys <ctrl> <time> [#selection]

Moves the specified keys by the time given. If #selection is specified, move the current selection otherwise move all keys.

moveKey <ctrl> <index> <time>

Move the indexed key by the specified time.

numKeys <ctrl>

Returns the number of keys in the controller

getKey <ctrl> <index>

Returns the indexed key as a MAXKey instance. See the Accessing Controller Keys and Key Properties topic for MAXKey class information.

getKeyTime <ctrl> <index>

Returns the time of indexed key.

getKeyIndex <ctrl> <time>

Returns the index of the key at the specified time.

numSelKeys <ctrl>

Returns the number of keys currently selected in the track view.

sortKeys <ctrl>

Re-sorts keys according to their times. Some MAXKey operations can result in out of order keys and this function must be called to correctly order keys. See the Accessing Controller Keys and Key Properties topic for MAXKey properties information.


Out-Of-Range Parameters

getBeforeORT <controller>

Gets the Out-of-Range type (ORT) for the controller for the time before the first key. Returns one of the symbolic values:

#constant

#cycle

#loop

#pingPong

#linear

#relativeRepeat

getAfterORT <controller>

Gets the Out-of-Range (ORT) type for the controller for the time after the last key. Returns one of the symbolic values as for getBeforeORT() shown above.

setBeforeORT <controller> <ORT-type>

Sets the Out-of-Range (ORT) type for the controller for the time before the first key. The <ORT-type> must be one of the symbolic values:

#constant

#cycle

#loop

#pingPong

#linear

#relativeRepeat

setAfterORT <controller> <ORT-type>

Sets the Out-of-Range (ORT) type for the controller for the time after the last key. The <ORT-type> must be one of the symbolic values shown in setBeforeORT() above.

enableORTs <controller> <boolean>

Enables or disables the Out-of-Range processing for the controller. If set to disabled with false, the controller effectively employs a constant ORT.


Ease and Multiplier Curve Functions

addEaseCurve <controller> [<float_controller>]

Adds an ease curve to the specified controller. You may provide an optional float controller for the curve or have the function generate a default float controller for you. Since there is currently no way to access existing ease curve controllers once added, it is useful to create your own float controller and add it explicitly here so you can add keys and otherwise modify it after it has been added as an ease curve.

deleteEaseCurve <controller> <index>

Deletes the indexed ease curve from the controller. The indexes are 1-based and correspond to the order in which the curves were originally added to the controller.

numEaseCurves <controller>

Returns the number of ease curves currently operating on the controller.

applyEaseCurve <controller> <timevalue>

Applies the combined ease curves in the specified controller to the given time value, returning the transformed time.

addMultiplierCurve <controller> [<float_controller>]

Adds a multiplier curve to the specified controller. You may provide an optional float controller for the curve or have the function generate a default float controller for you. Since there is currently no way to access existing multiplier curve controllers once added, it is useful to create your own float controller and add it explicitly here so you can add keys and otherwise modify it after it has been added as an ease curve.

deleteMultiplierCurve <controller> <index>

Deletes the indexed multiplier curve from the controller. The indexes are 1-based and correspond to the order in which the curves were originally added to the controller.

numMultiplierCurves <controller>

Returns the number of multiplier curves currently operating on the controller.

getMultiplierValue <controller> <timevalue>

Returns the combined (float) value of the multiplier curves in the specified controller at the given time value.


Key Reducer

reduceKeys <controller> <threshold> <step> [<range>]

where <threshold> is the closeness that the key-reduced controller will match the original keys, <step> is the time step at which the controller will be sampled and <range> is an optional time range within which the keys are reduced given as either 2 time values or an Interval value, defaulting to the active animation range.

Examples

reduceKeys $foo.pos.controller 0.5 1f

reduce keys on foo's position, retain 0.5 units accuracy, sample every frame.

reduceKeys $baz.bend.angle.controller 0.1 0.5f (interval 20 75)

Reduce keys on baz's bend angle, retain 0.1 units accuracy, sample every half frame, reduce within the interval 20f to 75f.

As with the reducer in the track view, a progress bar and cancel button is displayed.


MAX Commands

The general syntax for MAX commands is:

max <command_name>

max <partial_command_name>?

MAXScript allows you to invoke MAX menu and toolbar commands from within scripts.

You use the max construct to do this. For example:

max file open

max unhide all

max hold

max time play

The keyword max is followed by one or more words that describe the command. The available commands can be displayed using the '?' character in a partial max command:

max time ? -- show all the time-related commands

max sel ? -- show all the commands with 'sel' in them as a substring

max ?      -- show all the commands (there are a lot!)

The max command always returns the system value ok.

Command names:

accel pan | acthomegrid
activate grid | adaptive persp grid toggle
align | alignnormals
angle snap toggle | apply ik
array | backface
background | bindwsm
box mode | box toggle
configure paths | create mode
cycle select | cycle sublevel
def lgt toggle | delete
display mode | dolly
drawingaids | fetch
file import | file merge
file new | file open
file preferences | file save
file saveas | fov
freeze inv | freeze selection
fullinteract | grid nudge down
grid nudge up | grid toggle
grids align | group attach
group close | group detach
group group | group open
group ungroup | help about
hide camera toggle | hide helper toggle
hide inv | hide light toggle
hide object toggle | hide selection
hide shape toggle | hide system toggle
hide wsm toggle | hierarchy mode
hold | ik terminator
ipan | izoom in
izoom out | key mode
link | mirror
modify mode | motion mode
move | mtledit
next mod | override
pancamera | panview
persp | prev mod
preview | properties
quick render | redo
renamepreview | render last
render scene | reset file
rns | roll
rotate | rotateview
safeframe toggle | saveplus
scale | scale cycle
select | select all
select by color | select child
select invert | select none
select parent | shade selected
shade toggle | show last img
showaxisicon | showhomegrid
snap toggle | spacebar
spinsnap toggle | subobject sel
swap layouts | texture correct
time back | time config
time end | time forward
time play | time start
toggle ik | toggle sound
tool animmode | tool center
tool dualplanes | tool hlist
tool maximize | tool x
tool xy | tool y
tool z | tool zoom
tool zoomall | tool zoomextents
tool zoomextents all | tool zoomregion
trajectories | treeview
truck | tti
undo | unfreeze all
unfreeze by hit | unfreeze by name
unhide all | unhide by name
unitsetup | unlink
utility mode | videopost
view file | view redo
viewpreview | views redraw
views undo | vpt back
vpt bottom | vpt camera
vpt disable | vpt front
vpt grid | vpt iso user
vpt left | vpt persp user
vpt right | vpt shape
vpt shifttab | vpt spot
vpt tab | vpt top
vpt track | vptconfig
wire facet | wire smooth
zoom in 2x | zoom in 2x all
zoom out 2x | zoom out 2x all
zoomext sel | zoomext sel all


MAXScript Class Reference

The following tables and lists document all of MAXScript's classes and their capabilities. The classes are arranged in an inheritance hierarchy as summarized on the next page. At the root of all MAXScript classes is the class Value. The classes are listed below in functional groups.

The class list follows the order in the hierarchy diagram. The details for each class are arranged into the following sections:

methods: Defines all the functions you can call on values of the class. It gives the form for the function call including argument types as described above, and an indication of those that are automatically mapped over collections.

operators: Defines the math and other symbolic operators that are defined on values in the class.

properties: Accessible properties for values in the class.

literals: Any literal form for values in the class, sometimes just as examples.

constructors: The various ways you can get and create instances of the class.

In some sections, there are syntax forms given for function calls and operations. The arguments are specified using the <name> convention, but in this case, it is a descriptive name, identifying the type of value that is allowable for that argument. For exampe, <boolean> means an operand, possibly a complex parenthesised expression, yielding a true or false Boolean value.

The collection classes whose values are mappable are so marked. Remember, also that all indexable collections have their first value at index 1.


MAXScript Class Hierarchy

<<not up-to-date - use the reference list that follows>>

Value

-- the basic types

Number

Float

Integer

String

Name

Boolean

Color

Bitmap

-- linear algebra classes

Point2Value

Point3Value

RayValue

QuatValue

AngAxisValue

EulerAnglesValue

Matrix3Value

-- time classes

MSInterval

MSTime

-- special value classes

Unsupplied

Undefined

Ok : Value

Empty

-- sequenced collections Collection

Array

PathName

ObjectSet

KeyArray

ModifierArray

MaterialLibrary

-- callable functions

Function

Generic

MappedGeneric

NodeGeneric

Primtive

MappedPrimitive

MAXScriptFunction

-- streams

CharStream

FileStream

StringStream

-- MAX-side objects

MAXWrapper

-- scene objects

Node

Geometry

Box

Cone

Cylinder

Hedra

QuadPatch

Sphere

Teapot

Torus

Tube

Mesh

ParticleSystem

Spray

Snow

Shape

Arc

Circle

Donut

Ellipse

Helix

Ngon

Rectangle

Star

Text

Helper

Grid

Tape

Spacewarp

Bomb

Deflector

Gravity

SpaceRipple

SpaceDisplace

SpaceWave

Wind

Light

OmniLight

TargetSpot

DirectionalLight

Camera

TargetCamera

FreeCamera

Atmospheric

Modifier

Bend

Extrude

MaterialModifier

NoiseModifier

Optimize

Ripple

Skew

Smooth

Normal

Lathe

Twist

UVWMap

VolumeSelect

Wave

BombBinding

-- materials

Material

StandardMaterial

MultiMaterial

TextureMap

BitmapTexture

-- controllers

Control

Key

-- utility rollouts

RolloutPanel

RolloutControls

LabelControl

ButtonControl

SpinnerControl

EditTextControl

PickerControl

RadioControl

CheckboxControl

GroupStartControl

GroupEndControl


Value

The Value class is the root class for all MAXScript values. It supplies some methods and operators that any class can use.

methods

print <value> [to: <filestream>] :mapped

prints argument to Listener or optional filestream

classOf <value>

returns the value's class

superClassOf <value>

returns the value's superclass

isKindOf <value> <class>

returns true if value has given class or inherits from class

operators

<value> == <value>

compare if equal

<value> != <value>MAXScript Class Hierarchy

compare if not equal

<value> as <class>

convert value to instance of given class. See the individual classes that you can access from the MAXScript Class Hierarchy topic for valid conversions. All values can be converted to class String -- you get a string with the printed representation of the value.


Number : Value

Float : Number
Integer : Number

The number classes provide the standard arithmetic capabilities to MAXScript. The two types, Integer and Float can be freely intermixed and MAXScript will convert as necessary. They both support all the following:

example literals

123

1.234

-1.2345e7

0xFFE0

operators

<number> + <number>

<number> - <number>

<number> * <number>

<number> / <number>

standard arithmetic operations. They widen both arguments to floats if ints and floats are mixed.

<number> ^ <number>

raise the first number to the power given by the second number

- <number>

unary minus

<number> == <number>

<number> != <number>

<number> > <number>

<number> < <number>

<number> >= <number>

<number> <= <number>

standard number comparison operations

<number> as <class>

convert number to given class. Allowed classes are:

Float

Integer

Class

Time (number taken as frames)

methods

abs <number>

absolute value

mod <number1> <number2>

modulo arithmetic, the remainder when <nuber1> is divided by <number2>

acos <number>

asin <number>

atan <number>

ceil <number>

cos <number>

cosh <number>

sin <number>

sinh <number>

tan <number>

tanh <number>

atan2 <number> <number>

standard trig functions

exp <number>

floor <number>

log <number>

log10 <number>

sqrt <number>

pow <number> <number>

standard transcendental functions

random <number> <number>

returns a pseudo random number inclusively between the two arguments of the type given by the first argument

seed <number>

reseeds the random number generator


String : Value

literal

"<characters>"

properties

<string>.count

number of characters in string

operators

<string> + <string>

return a new string that is the concatenation of the two strings

<string> == <string>

<string> != <string>

<string> > <string>

<string> < <string>

<string> >= <string>

<string> <= <string>

standard lexical string comparison (case sensitive)

<string>[]

return indexed character as a single-character string, index starts at 1.

<string>[] = <single_character_string>

set indexed character to character given

<string> as <name>

converts a string value into a name value using the as operator, for example:

"foo" as name -> #foo

You can also convert strings to numbers using the as operator. For example:

x = "123.4" as float -- returns 123.4

You can use any of the Number classes as a target class, Number, Float or Integer. If you use Number, the appropriate class will be used depending on the syntax of the number in the string.

methods

findString <string> <search_string>

returns index of search_string in string or undefined if not found

substring <string> <from_integer> <length_integer>

return indexed substring

The string method substring() returns a short string containing as many characters as are available in the source. For example:

s = "Balerofon"

ss = substring s 5 100      -> "rofon"

replace <string> <from_int> <length_int> <new_string>

replace indexed substring with new string. New string can be any length.


Name : Value

literal

#<name>

operators

<name> == <name>

<name> != <name>

<name> < <name>

<name> > <name>

<name> <= <name>

<name> >= <name>

The ordering is caseless alphabetic. Among other things, this allows arrays of names to be sorted using the array sort function.


Boolean : Value

literals

true

false

on -- equivalent to true

off      -- equivalent to false

operators

not <boolean>

<boolean> and <boolean>

<boolean> or <boolean>


Point3 : Value

Points in 3D space. Also known as 3D vectors. Coordinates are floating point numbers. All the coordinates passed to and from MAX are in these values.

literals

[x, y, z]

[10, 10, 10]

[sin x, cos y, tan z]

x_axis

y_axis

z_axis

properties

<point3>.x -- returns the x coordinate as a Float

<point3>.y -- returns the y coordinate as a Float

<point3>.z      -- returns the z coordinate as a Float

operators

<point3> + <point3_or_number>

<point3> - <point3_or_number>

<point3> * <point3_or_number>

<point3> / <point3_or_number>

- <point3>

standard vector arithmetic. If the second operand is a number it does scalar arithmetic on vector.

<point3> == <point3>

<point3> != <point3>

methods

length <point3> -- length of the vector

dot <point3> <point3> -- vector dot product

cross <point3> <point3> -- vector cross product

normalize <point3> -- normalize vector length

distance <point3> <point3> -- distance: length of (p2 - p1)

random <point3> <point3>      -- generates a psuedo-random point

-- MAX 3D noise functions:

noise3 <point3>

A floating point noise function over 3D space, implemented by a pseudo-random tricubic spline. The return value is in the range -1.0 to +1.0.

noise4 <point3> <phase_float>

The same function as noise3 in which the phase can be varied using the 2nd parameter. The return value is in the range -1.0 to +1.0.

turbulence <point3> <frequency_float>

This is a simple fractal-loop turbulence built on top of the noise3 function. The second parameter controls the frequency of the turbulence. The return value is in the range 0.0 to +1.0.

fractalNoise <point3> <H_float> <lacunarity_float> \

<octaves_float>

This is a fractal function of 3D space implemented using fractional Brownian motion. The function is homogeneous and isotropic. It returns a float.

The parameters are as follows:

<point3> - the point in space at which the noise is computed.

<H_float> - the fractal increment parameter in the range [0,1]. When H is 1 the function is relatively smooth; as H goes to 0, the function approaches white noise.

<lacunarity_float> - The gap between successive frequencies, best set at 2.0.

<octaves_float> - The number of frequencies in the function.

In a later release, the 1D and 2D noise functions will also be exposed. All the noise functions are based on code and algorithms in the book:

"Texturing and Modelling: A Procedural Approach", Musgrave, Peachey, Perlin & Worley. Academic Press, ISBN: 0-12-228760-6.


Ray

A Ray in 3D space. It has two points defining a position and a direction vector for the ray.

constructors

ray <pos_point3> <dir_point3>

makes a new ray with given position and direction vector

<scene_object> as ray

takes a scene object that has a target, such as a tape measure or a target camera and returns a ray from the object to the target. Returns undefined if the object has no target.

properties

<ray>.pos

<ray>.position -- pos and position are synonyms

<ray>.dir


Quat : Value

A 3D quaternion.

Rotations in MAXScript follow the right-hand-rule, namely positive angles rotate counter-clockwise about positive axes, consistent with the convention in MAX.

constructors

quat <x_float> <y_float> <z_float> <w_float>

quat <degrees_float> <axis_point3>

<angle_axis> as quat

<euler_angle> as quat

<matrix3> as quat      -- extracts the rotation component as a quat

properties

<quat>.w

<quat>.x

<quat>.y

<quat>.z

<quat>.angle

<quat>.axis

Quaternion complex components as Floats

operators

<quat> + <quat>

<quat> - <quat>

<quat> * <quat_or_number>

<quat> / <number>

- <quat>

Quaternion algebra

<quat> == <quat>

<quat> != <quat>

<quat> as <class>

Quats can convert to Matrix3's, Angleaxis's, Eulerangle's

methods

isIdentity <quat>

normalize <quat>

Inverse <quat>

Conjugate <quat>

LogN <quat>

Exp <quat>

Slerp <quat> <quat> <number>

LnDif <quat> <quat>

QCompA <quat> <quat> <quat>

Squad <quat> <quat> <quat> <quat> <number>

qorthog <quat> <axis_point3>

transform <quat> <matrix3>

squadrev <number> <point3> <quat> <quat> <quat> <quat> <number>

random <quat> <quat>

Random rotation in degrees between the two quats, using slerp.


AngleAxis : Value

Rotation in 3-space held as an angle in degrees and a rotation axis. Angles can specify multiple revolutions, unlike quaternions. Rotations follow the right-hand-rule in MAXScript.

constructors

angleaxis <degrees_float> <axis_point3>

<quat> as angleaxis

<euler_angle> as angleaxis

<matrix3> as angleaxis

extracts the rotation component as an angleaxis

operators

<angleaxis> == <angleaxis>

<angleaxis> != <angleaxis>

<angleaxis> as <class>

AngleAxis can convert to Matrix3's, Quat's, Eulerangle's

properties

<angleaxis>.angle

<angleaxis>.axis

<angleaxis>.numrevs

methods

random <angleaxis> <angleaxis>

Random rotation in degrees, but uses quat slerp, so loses multiple revolution angles.


EulerAngles : Value

Rotation about the primary axes, held as floating point degrees. Rotations follow the right-hand-rule in MAXScript.

constructors

eulerangles <x_degrees> <y_degrees> <z_degrees>

<quat> as eulerangles

<angleaxis> as eulerangles

<matrix3> as eulerangles

extracts the rotation component as an eulerangle

operators

<eulerangles> == <eulerangles>

<eulerangles> != <eulerangles>

<eulerangles> as <class>

EulerAngles can convert to Matrix3's, Quat's, AngleAxes

properties

<eulerangles>.x

<eulerangles>.y

<eulerangles>.z

rotation about each primary axis in float degreees

methods

random <eulerangle> <eulerangle>

Random rotation, but uses quat slerp, so loses multiple revolution angles.


Matrix3Value : Value

A 3D homogeneuos matrix mostly used to hold object coordinate systems and transformations.

constructors

matrix3 <row1_point3> <row2_point3> <row3_point3> <row4_point3>

matrix from row vectors

matrix3 0

zero matrix

matrix3 1

identity matrix

<quat> as matrix3

<angleaxis> as matrix3

<eulerangles> as matrix3

rotation matrices

rotateXMatrix <number> -- all angles in degrees.

rotateYMatrix <number>

rotateZMatrix <number>

transMatrix <point3>

scaleMatrix <point3>

RotateYPRMatrix <number> <number> <number>

operators

<matrix3> + <matrix3>

<matrix3> - <matrix3>

<matrix3> * <matrix3>

<matrix3> as <class>

Matrix3's can convert to Quat's, AngleAxes, EulerAngles as the matrix's rotation component

properties

<matrix3>.row1

<matrix3>.row2

<matrix3>.row3

<matrix3>.row4

<matrix3>.translation

<matrix3>.rotationpart

<matrix3>.translationpart

<matrix3>.scalerotationpart

<matrix3>.scalepart

<matrix3>.determinantsign

rotation about each primary axis in float degreees

methods

isIdentity <matrix3>

Inverse <matrix3>

XFormMat <matrix3> <matrix3>

Identity <matrix3>

Zero <matrix3>

Orthogonalize <matrix3>

Translate <matrix3> <point3>

RotateX <matrix3> <number> -- all angles in degrees

RotateY <matrix3> <number>

RotateZ <matrix3> <number>

Scale <matrix3>[ <boolean> ]

PreTranslate <matrix3>

PreRotateX <matrix3> <number>

PreRotateY <matrix3> <number>

PreRotateZ <matrix3> <number>

PreScale <matrix3> [ <boolean> ]

Rotate <matrix3> <quat>

PreRotate <matrix3> <quat>


Time : Value

Time values represent animation time in MAXScript. They reflect the properties of animation time in MAX. Resolution in in ticks, 4800 ticks per second. You can work with time as ticks, frames, h.m.s, or normalized time.

You can intermix numbers and time values in time computations as defined below. The rule is that numbers are always interpreted as frame counts, with floating point numbers specifying fractional frames. The numbers are always converted to tick-based time values internally and so have an ultimate resolution of 4800 ticks per second.

You can do time arithmetic and comparisons using numbers as well as time values and convert between time and (frame) numbers using the as operator.

Examples:

t = animationRange.start + 5

sliderTime = 30

t2 = n as time

if currentTime == 45 then ...

Some of the examples above refer to system globals. See the MAX Sytem Globals topic for more details.

literals

2.5s -- 2.5 seconds

1m15s -- 1 minute 15 seconds

2m30s5f2t -- 2 mins 30 secs 5 frames 2 ticks

125f -- 125 frames

1f20t -- 1 frame 20 ticks

2:10.0 -- 2 mins 10 secs 0 frames (SMPTE)

0:0.29 -- 29 frames (SMPTE)

0.45n      -- 0.45 normalized time (fraction of active segment)

constructor

normtime <float>      -- time from normal fraction

properties

<time>.ticks -- time as ticks

<time>.frame -- time as frames

<time>.normalized      -- time as normalize fraction of active segment

operators

<time> + <time>

<time> - <time>

- <time> <time> * <number>

<time> / <number>

scale time

<time> == <time>

<time> != <time>

<time> > <time>

<time> >= <time>

<time> < <time>

<time> <= <time>

<time> as <class>

You can coerce a time to a number - you get the time in ticks.

methods

random <time> <time>

abs <time>


Interval : Value

An Interval object represents an interval of time. It has two time values, start and end. The time values can be numbers or Times, numbers being interpreted as frame counts.

constructor

interval <start_time> <end_time>

properties

<interval>.start

<interval>.end


Undefined : Value

The undefined value is used to initialize all new variables. There is one distinguished instance of the Undefined in the reserved system variable undefined.

constructor

undefined


Ok : Value

The ok value is a void value returned by some imperative functions that don’t have a meaningful value to return.

constructor

ok


Unsupplied : Value

The distinguished value unsupplied is used to initialize unsupplied keyword parameters to functions.

constructor

unsupplied


FileStream : Value

A filestream represents an open text file in MAXScript. Text file I/O is performed by making calling functions on the filestream.

constructors

createfile <filename_string>

openFile <filename_string> [ mode:<mode_string> ]

the mode_string can be "a" to mean open an existing file for append output, or "r" to mean open file read-only. Both yield a FileStream value denoted <file> in this reference.

Returns undefined if the named file is not found.

methods

sformat <file> <fmt_string> { <value> }

readvalue <file>

read and evaluate next MAXScript <operand> from the file

readexpr <file>

read and evaluate next MAXScript <expr> from the file

readline <file>

read next line, return as string

readchar <file>

read next char, return as string

execute <file>

read and evaluate all the expressions left in the file

readChars <file> <char_count>

reads the specified number of characters and returns them in a string.

readDelimitedString <file> <string>

takes a delimiter character (as a string) and reads in characters until the delimiter is found (or end-of-file is reached) and returns the characters in a string.

skipToString <file> <string>

takes a character string and scans forward in the file until it finds an occurrence of the string and positions the file just after that string. If the string is not found, the function returns the value undefined.

skipToNextLine <file>

positions the input file at the beginning of the next line

filepos <file>

seek <file> <integer>

eof <file>

close <file>

flush <file>

associated functions

print <value> to: <file>

format <fmt_string> { <value> } to: <file>


Array : Collection :Mappable

An array is a variable length indexable sequence of values.

literals

#(<value>, <value>, ...)

#()      -- an empty array

methods

append <array> <value>

append value to array, growing it as necessary

deleteItem <array> <number>

delete element indexed by number from array, shrinking it in size by 1

join <array> <collection>

appends all the elements of the second argument to the array (first) argument

sort <array>

sorts the elements of the array into ascending order. All the elements must be comparable.

findItem <array> <value>

does a MAXScript '==' comparison between elements in the array and the target object and then returns the index of the first occurrence of the given value in the array or zero if the value is not in the array.

Values such as Point3s and Strings match if they have the same contents -- in prior releases they would only match if they were identically the same value object.

For example:

a = #("foo", "baz", "bar")

findItem a "baz"

works in the current release, but would fail to find anything in prior releases

s1 = "baz"

a = #("foo", s1, "bar")

findItem a s1

works in all releases because the value in the array is the same object as the target in the findItem

operators

<array>[<integer>]

<array>[<integer>] = <value>

<array> + <collection>

like join except a completely new array is constructed containing all the elements of the first and second operands

For example:

a = #(1,2,3,4)

join a #(5,6,7,8)

(cameras as array) + lights

props = getPropNames Node

join props getPropNames (classof $foo)

join props getPropNames $foo $dynamicOnly

sort props

properties

<array>.count


ObjectSet : Collection :Mappable

Object sets represent the main scene object categories in MAX. The 'constructors', below are all reserved system variables.

constructors

objects -- all the objects

geometry -- the standard MAX categories...

lights

cameras

helpers

shapes

systems

spacewarps

selection      -- the current selection

operators

<objectset>[<integer>]

properties

< objectset >.count


PathName : Collection :Mappable

Pathnames provide the mechanism for naming objects in the MAX scene.

literals

$box01

$torso/left_upper_arm/left_lower_arm

$*box*

$torso/*

$torso...*

operators

<pathname>[<integer>]

properties

<pathname>.count


KeyArray : Collection :Mappable

A key array represents all the keyframe keys in a MAX controller track.

constructors

$foo.position.keys

$foo.twist.angle.keys

the key array is always constructed by accessing the keys property on an animatable MAX object property

operators

<key_array>[<integer>]

<key_array>[<integer>] = <key>

methods<key_array>

append <key_array> <key>

delete <key_array> <number>

properties

<key_array>.count


MaterialLibrary : Collection :Mappable

A material library contains a table of materials. When you access the currentMaterialLibrary system global, it gives you back on of these objects. You can use the standard array indexing accessors to get and set materials in the library. Materiallibraries also allow you to use name and string literals as indexes to get at materials in them by name:

$foo.material = currentMaterialLibrary["Rough Gold"]

append currentMaterialLibrary $baz.material

constructors

currentMaterialLibrary -- system global

materiallibrary { <material> }

you can create a temporary material library and add to it with array accessors, but there is currently no way to save it or make it the current library.

operators

<mat_lib>[<integer> | <name_lit> | <string>]

<mat_lib>[<integer> | <name_lit> | <string>] = <material>

methods<key_array>

append <mat_lib> <material>

delete <mat_lib> ( <integer> | <name_lit> | <string> )

properties

<mat_lib>.count


MAXWrapper

The MAXWrapper is the superclass of all classes in MAXScript that represent MAX-world objects, such as scene nodes, modifiers, materials, etc. It contains references to the associated MAX-world objects that allow it kep track of the object, such as knowing when a MAX-world object is deleted by the user so as to disable the MAXScript representative.

methods

copy <max_object>

The copy() function is implemented by all the MAX objects available in MAXScript, such as scene objects, controllers, modifiers, materials, etc. You can use this function to make a clone of the source object, for example in situations where you want individual copies or you want to make a shared object unique. For example:

addModifier $foo $baz.bend

will cause foo to share baz's bend modifier, whereas:

addModifier $foo (copy $baz.bend)

will give foo a separate clone of baz's bend modifier. Any changes to foo's bend will not affect baz and vice versa.

In the next example, we set up several objects all sharing a single rotation controller:

c = bezier_rotation ()

$foo.rotation.controller = c

$baz.rotation.controller = c

$bar.rotation.controller = c

To later make one of the controllers unique, you could do this:

$baz.rotation.controller =

copy $baz.rotation.controller

isDeleted <max_object>

This function yields the result true if the object has been deleted and false if it still exists in the scene. Using the function only makes sense in situations where references to MAX objects are held in variables or arrays or passed as parameters and you want to determine whether the object has been deleted from the scene. Performing an operation on a deleted MAX object referenced in a variable or array otherwise generates an exception. Any kind of MAX object can be tested in this way, scene objects, modifiers, controllers, materials, etc.

For example:

sel = selection as array -- snapshot selection

...
<one or more objects in the selection are deleted, by the user or other scripts>
...

for obj in sel

where not isDeleted obj do

move obj [10,0,0]

getPropNames <maxwrapper_obj>

This returns the property names in an array, for example,

getPropNames $box01

yields

#(#height, #length, #lengthsegs, #width, #widthsegs, #mapcoords, #heightsegs)

This function returns the names of any creation parameters or sub-anim parameters of an object, but does not return any of the common scene node properties (such as .position, .name, .wirecolor, etc.).

The getPropNames() function can be used in conjunction with the getProperty() function to implement object ‘dumping’ tools that can iterate over all the properties of an arbitrary object and output them as required. For example,

for p in getPropNames $foo do

format “% = %\n” p (getProperty $foo p) to:f

You can call getPropNames() on MAXWrapper classes such as Box, Line, or Bend, and it will return the properties common to all instances of that class. If you add the optional keyword #dynamicOnly to the getPropNames() call for an individual object, it returns the dynamic properties unique to that instance.

For example,

getPropNames $box01 #dynamicOnly

You can also call getPropNames() on the superclass 'Node' to get the list of properties common to all scene nodes such as .position, .name, or .wireColor.

Certain time and keyframe functions on controllers can be called on any MAX object or collection of MAX objects. If called in this way, they apply recursively to all the nested controllers within that object and on any on sub-objects and sub-controllers within those objects. In this way, they work in a manner similar to the object-level tracks in the MAX Track View that allow you to manipulate keys and time for all the sub-objects and sub-controllers within them.

The time and controller functions that work this way are:

deleteTime

reverseTime

scaleTime

insertTime

setTimeRange

addNewKey

deleteKeys

selectKeys

deselectKeys

moveKeys

sortKeys

reduceKeys

addEaseCurve

deleteEaseCurve

setBeforeORT

setAfterORT

enableORTs

The above functions can be called on any MAX object collection (such as a wild-card pathname or object set or array of objects ) and will recursively apply to all animation within those objects.

Examples:

insertTime $box01.xform 0f 10f

-- all keys after 0f in all controllers in the xform modifier are moved by 10f

insertTime $box01 0f 10f

-- all keys after 0f in box01 are moved (transform, creation, modifiers)

selectKeys $box02.xform.gizmo.rotation.controller 0f 100f

-- selects keys in 0-100f, if controller is Euler,e.g., will select x,y and z keys

deleteTime $box* 10f 10f

-- delete 10f at frame 10 in all keys in all objects named $box* (works with
-- any pathname or array of objects)

insertTime $box03.children 0f 10f

-- inserts time in all controllers of all children of $box03

reduceKeys $box01.modifiers

-- applies key reductions to all controllers in all modifiers in $box01 (leaves
-- transform and creation parameters alone)

The following list displays the MAXWrapper objects:

Node

Modifier

Controller

Material

TextureMap

Control

Key

Atmospheric


Node : MAXWrapper

Nodes represent MAX scene objects, such as geometry, cameras, or shapes. All nodes have a set of common operations, defined here. Each kind of MAX scene object is a sub of Node.

constructors

<non_wild_card_pathname>

identifies a unique node in the scene

<object_set>[<integer>]

<wild_card_pathname>[<integer>]

n'th scene object in collection

<node_constructor> [ name: <string> ]

[ prefix: <string> ]

[ material: <material> ]

[ target: <node> ]

[ pos: <point3> ] -- default [0,0,0]

[ position: <point3> ] -- synonym for pos

[ rotation: <quat> ]

[ scale: <node> ]

[ pivot: <point3> ]

[ dir: <point3> ] -- set local z direction

All of the MAX scene object constructors listed below can take the above optional keyword argument.

The transformation arguments, pos, scale, rotation, pivot, are applied to the new object in the order they are specified in the constructor call, so you can control transform order.

The prefix keyword can be used in place of the name keyword argument to specify the start of the node name from which MAX will generate a unique name by adding a series of digits, as it does when creating objects interactively.

For example:

for i in 1 to 100 do instance $foo prefix:"baz"

creates 100 instances of $foo, giving each a unique name beginning with "baz", such as $baz01, $baz02, $baz03, etc.

methods

All node methods are automatically mapped over node collections

-- node operations move <node> <point3>

scale <node> <point3>

rotate <node> <angle> <axis_point3> -- angle in degrees

rotate <node> <quat>

rotate <node> <eulerangles>

copy <node>

reference <node>

instance <node>

all the copy operations can take any of the standard node creation optional keyword arguments which are applied after the node has been copied.

These functions clone all the original node's transform controllers and keys and the visibility controller and its keys if a visibility track has been assigned.

delete <node>

-- set node state

hide <node>

unhide <node>

freeze <node>

unfreeze <node>

-- node selection

select <node>

deselects any current selection first

selectmore <node>

adds to the current selection, you can use the Max command: max select none to clear the selection, say, before using selectMore in a loop

-- stack related

addModifier <node> <modifier>

adds the modifier to all instances of the node to which the function is applied.

deleteModifier <node> <modifier_or_index>

lets you delete modifiers from the modifier stack. Takes either a modifier value present on the <node> stack or an index, specifying the index of the modifier to delete, counting from the top of the stack.

collapseStack <node>

collapses the modifiers out of a stack, leaving a resultant editable mesh as the base object of the node. If there are no modifiers in the stack when this is called, no action is taken. If you want to force an object to be an editable mesh, use the following function, convertToMesh().

convertToMesh $foo

this function converts appropriate scene object types into Editable Meshes. It is similar to collapseStack() in that it will remove all modifiers present, but unlike collapseStack() it will always replace the base object with an editable mesh version, even if there are no modifiers present.

It can be applied to any object that an Edit Mesh modifier can work on, such as geometry and shapes, but not helpers, spacewarps, lights, etc.

-- utilities

distance <node> <node>

computes the distance between the pivot points of two nodes

intersectRay <node> <ray>

takes a ray and computes the closest intersection to the surface of the given node. Returns another Ray which defined the position of intersection in 3-space and the surface normal direction vector at the point.

This only works if the world state of the node is a mesh, say because it started as an editable mesh or because it as modifiers applied, or of it is one of the standard primitives, not a patch. Returns undefined if the ray doesn't intersect or the node isn't a mesh.

printstack <node>

properties

All the properties listed here are accessible on any node subclass.

Some of the properties are specified as a sequence of nested properties. These name nested properties that are still 'connected' to the node and so assignment to them will effect that nested property in the node. If you first get the intermediate value into some variable and then set the property on it, the change will not be reflected in the original node. For example:

$foo.pos.x += 23 -- move the node 23 units in x

p = $foo.pos -- get foo's position as a 'detached' point3

p.x += 23 -- set the x prop of that point, it doesn’t know about

-- foo anymore

<node>.name

<node>.target

<node>.targetDistance

All scene objects that have targets (target cameras, target spots, tape measures, etc.) support this property You can both get and set this property. Setting the property moves the target along its current direction to the distance specified. For example,

$spot01.targetDistance

$cam2.targetDistance = 100

<node>.mat

<node>.material -- synonym for .mat

<node>.parent

You can determine the parent of an object using the parent property:

foo_mom = $foo.parent

If the object is a top-level object, accessing the parent property will return undefined. You can attach a child object to a parent object by assigning to the parent property:

$foo.parent = $baz

This has the efffect of detaching $foo from its original parent and attaching it as a child of $baz.

You can detach an object and make it a top-level object by assigning undefined to the parent property:

$foo.parent = undefined

<node>.children

This yields a special array subclass, NodeChildrenArray, that can be accessed using normal MAXScript array indexing and can be sequenced over in a for-loop or with collection-mapped functions, for example:

c = $foo.children[i]

move $foo.children [10,10,10]

for c in $baz.children do print c

You can get the number of children via the .count property:

num_chilren = $foo.children.count

You cannot directly set an indexed child using this facility, but you can append new children using the append() function and delete children using the deleteItem() function:

append $foo.children (box name:"fred")

deleteItem $baz.children[m]

The ordering of child indexes corresponds to the ordering shown in the MAX hierarchy view and corresponds to the order in which the children were initially added to the parent.

Scene Node Properties

<node>.motionblur : #none or #object or #image

<node>.imageMotionBlurMultiplier : float

<node>.showLinks : boolean

<node>.showLinksOnly : boolean

<node>.isfrozen : boolean, readonly (use freeze() to freeze)

<node>.showTrajectory : boolean

<node>.renderable : boolean

<node>.showVertexColors : boolean

<node>.vertexColorsShaded : boolean

<node>.inheritVisibility      : boolean

For backward compatibility, the .motionBlur property can also be set to false for none or true for object motion blur.

Mesh Property

<node>.numcpvverts -- returns the number of color-per-vertex vertices

See also:

General Node Properties

MAX Scene Node Properties

Transform Properties

Node Subclasses


General Node Properties


MAX Scene Node Properties

These properties give you access to scene object user properties. The MAX SDK provides a way to get at the user defined properties in the Object Properties dialog in two ways -- either as one single string representing the entire contents or as a set of key/property pairs in the form:

<key1> = <property1>

<key2> = <property2>

...

where the keys are identifiers (with the same syntax as names in MAXScript) and the properties can be numbers, booleans (true/false) or text strings. If you set up the property box in the above form, there are two new MAXScript methods for setting and getting individual keyed properties. There are two other methods that let you treat the property text as a single big string, which can also be used to save and load property sets in the key/property form.

Caution: There is currently a bug in the get/set property functions in the MAX SDK for text string properties that truncates retrieved string properties at the first space character in the string value.

The <node> methods are:

getUserProp <node> <key_string>

retrieves the node's user property with the given key

setUserProp <node> <key_string> <value>

sets the node's user property with the given key to the given value (values must be either numbers, booleans or strings)

getUserPropBuffer <node>

retrieves the entire user property buffer as a string containing all the user property settings. This is effectively the contents of the User Defined Properties box in the MAX Object Properties dialog

setUserPropBuffer <node> <buffer_string>

sets the user property buffer to the given string

The following two example code fragments save and load user properties for objects in a scene:

The first one creates a file and loops through all objects outputting for each the object name and user property buffer string. Note that the object name goes out in a form that will come back in (via a readValue()) as a direct reference to a scene object. Also, the user property string is output using print() so it will be in a quoted form to be read as one (long) string literal by a corresponding readValue().

The second code fragment reads in the file created by the first piece and applies the user properties to any same-named object in the current scene. Note that readValue() can read in pathnames ($<name>) and will yield either the named scene object or undefined if the named object is not in the scene. The readValue() function can also read in a multi-line string literal in one pass.

-- create file and for all objects,

-- dump object name and user props

f = createFile "foo.dat"

for o in objects do

(

format "$%\n" o.name to:f -- ouput name in a pathname form

print (getUserPropBuffer o) to:f -- out buf as a string literal

)

close f

-- open file and read in object names and

-- user properties to set

f = openFile "foo.dat"

while not eof f do

(

o = readValue f -- read object

if o != undefined then -- if present, read and set user prop string

setUserPropBuffer o (readValue f)

)

close f


Transform Properties

The following transform properties are always interpreted with respect to the current working coordinate system as defined by the currently active coordsys context. The default coordsys is world.

The transform properties are derived from and modify the values of the transform controllers associated with the node, they are not associated directly with the node's main transformation matrix. This has a number of consequences:

  1. Assigning to a transform property with animation enabled plants keyframes only in the associated controller. If you modify the node's transform matrix directly, keyframes are generated for all the transform controllers for that node.
  2. Rotation properties and in fact all rotation-related functions in MAXScript reflect the direction convention used in the MAX user interface. This convention is the right-hand rule, namely, positive angles rotate counter-clockwise about positive axes. Internally, however, MAX stores rotations in node matrices using the left-hand rule. It is important to remember this inversion when working directly with node transform matrices using the .transform and .objectTransform properties. You'll need to invert rotations (for example, by multiplying axes by [-1,-1,-1] or using the inverse() function on quaternions) when mixing them with MAX and MAXScript standard rotations.
  3. Certain controllers, such as the path controller with bank or follow enabled, affect the rotation of a node by adjusting the node's transform matrix directly and this rotation is not reflected in rotation controller values. This means, in this example for instance, that bank and follow rotations are not directly accessible through the .rotation property, you need to dig them directly out of the node's transformation matrix using something like:

r = $foo.transform.rotationPart

which returns a quaternion. Remember, however, that the MAX rotation direction convention is not reflected when directly accessing a transform matrix, so to use this value in other rotation operations you would need to invert it:

$baz.rotation = inverse r.

<node>.pos      -- can use .position synonym throughout

<node>.pos.controller

<node>.pos.isAnimated

<node>.pos.keys

<node>.pos.track

<node>.pos.x

<node>.pos.y

<node>.pos.z

<node>.rotation

<node>.rotation.controller

<node>.rotation.isAnimated

<node>.rotation.keys

<node>.rotation.track

<node>.rotation.angle

<node>.rotation.axis

<node>.rotation.x_rotation

<node>.rotation.y_rotation

<node>.rotation.z_rotation

<node>.scale

<node>.scale.controller

<node>.scale.isAnimated

<node>.scale.keys

<node>.scale.track

<node>.scale.x

<node>.scale.y

<node>.scale.z

<node>.dir      -- local z-axis direction vector

<node>.max

<node>.min

<node>.center

<node>.transform -- the node's main transformation matrix

Note that rotation in the internal transformation matrices is left-handed in contradiction to the MAX UI and MAXScript. Take care when mixing rotation derived from these matrices and rotation used in rotation-related functions or from rotation properties.

<node>.pivot

<node>.pivot.x

<node>.pivot.y

<node>.pivot.z

<node>.objectoffsetpos

<node>.objectoffsetrot

<node>.objectoffsetscale

<node>.objecttransform      -- pivot offset tm

<node>.ishidden

<node>.boxmode

<node>.alledges

<node>.backfacecull

<node>.wirecolor

<node>.castshadows

<node>.receiveshadows

<node>.motionblur

<node>.gbufferchannel

<node>.isselected

<node>.isdependent

<node>.istarget

<node>.visibility

This is a boolean property (unlike its value as a signed float in the MAX track view) - true or on denotes visible, false or off invisible. Animate this property to control an object's visibility at render-time, for example:

animate on

(

at time 0 $foo.visibility = on

at time 35 $foo.visibility = off

at time 57 $foo.visibility = on

)


Node Subclasses

In the following node subclasses, the properties listed can all be specified as optional constructor keyword arguments with defaults as shown, along with the common keyword arguments for all node constructors, listed in the Node topic. The property listings show name, type and constructor default value. The following list displays the MAX node subclasses:

Geometry

Particle Systems

Shape

Helper

Spacewarp

Light

Camera

Mesh


Geometry : Node

The following list displays the MAX geometry objects:

Box

Cone

Cylinder

Hedra

Quadpatch

Sphere

Teapot

Torus

TriPatch

Tube


Box : Geometry

constructor

box ...

properties

<box>.length float default: 25.0

<box>.width float default: 25.0

<box>.height float default: 25.0

<box>.widthsegs integer default: 1

<box>.lengthsegs integer default: 1

<box>.heightsegs integer default: 1

<box>.mapcoords boolean default: FALSE


Cone : Geometry

constructor

cone ...

properties

<cone>.radius1 float default: 15.0

<cone>.radius2 float default: 0.0

<cone>.height float default: 25.0

<cone>.heightsegs integer default: 5

<cone>.capsegs integer default: 1

<cone>.sides integer default: 24

<cone>.smooth boolean default: TRUE

<cone>.sliceon boolean default: FALSE

<cone>.slicefrom float default: 0.0

<cone>.sliceto float default: 0.0

<cone>.mapcoords boolean default: FALSE


Cylinder : Geometry

constructor

cylinder ...

properties

.radius float default: 15.0

.height float default: 25.0

.heightsegs integer default: 1

.capsegs integer default: 1

.sides integer default: 24

.smooth boolean default: TRUE

.sliceon boolean default: FALSE

.slicefrom float default: 0.0

.sliceto float default: 0.0

.mapcoords boolean default: FALSE


Hedra : Geometry

constructor

hedra ...

properties

.radius float default: 25.0

.family integer default: 0

.p float default: 0.0

.q float default: 0.0

.scalep float default: 1.0

.scaleq float default: 1.0

.scaler float default: 1.0

.vertices integer default: 0

.mapcoords boolean default: FALSE


Quadpatch : Geometry

constructor

quadpatch ...

properties

.length float default: 25.0

.width float default: 25.0

.widthsegs integer default: 1

.lengthsegs integer default: 1


Sphere : Geometry

constructor

sphere ...

properties

.radius float default: 25.0

.segs integer default: 16

.smooth boolean default: TRUE

.hemisphere float default: 0.0

.chop integer default: 0

.recenter boolean default: FALSE

.mapcoords boolean default: FALSE


Teapot : Geometry

constructor

teapot ...

properties

.radius float default: 25.0

.segs integer default: 4

.smooth boolean default: TRUE

.body boolean default: TRUE

.handle boolean default: TRUE

.spout boolean default: TRUE

.lid boolean default: TRUE default:

.mapcoords boolean default: FALSE


Torus : Geometry

constructor

torus ..

properties

.radius1 float default: 25.0

.radius2 float default: 10.0

.tubeRotation angle default: 0.0

.tubeTwist float default: 0.0

.segs integer default: 24

.sides integer default: 12

.smooth integer default: 0

.slice boolean default: FALSE

.slicefrom float default: 0.0

.slicetoo float default: 0.0

.mapcoords boolean default: FALSE


TriPatch : Geometry

constructor

tripatch ...

properties

.length float default: 25.0

.width float default: 25.0


Tube : Geometry

constructor

tube ...

properties

.radius1 float default: 25.0

.radius2 float default: 20.0

.height float default: 50.0

.sides integer default: 24

.capsegs integer default: 1

.heightsegs integer default: 1

.smooth boolean default: TRUE

.slice boolean default: FALSE

.slicefrom float default: 0.0

.slicetoo float default: 0.0

.mapcoords boolean default: FALSE default:


Particle Systems

Particle system access functions

Five <node> functions work with particle system objects in MAX to allow you to get at individual particle information. The functions return information about particles at the time set by the current 'at time' context clause, or the current time slider if there is not time context active.

A quick note about how the particle systems in MAX work will help you use these functions. The particle system keeps an array of particles big enough to hold all those alive at any one time. Each particle is identified by an index in this array. When one dies, it may be 'born' again sometime later and appear to be a different particle. Over the course of an animation, the same 'particle' may live and die many times, as its indexed slot in the array gets re-used. Some of the functions described below use this index to identify particles, so you can have a situation where the 'same' particle (by index) becomes a new particle in the animation as its slot gets re-used. The way you can check this is by looking at the 'age' of the particle - if it cycles around to zero (or a lower number depending on time resolution), you know it has become a 'new' particle. If a particle is actually not alive at a given time, for example at the beginning of an animation or when you set up an 'explosive' emission, the functions below that get position, velocity and age return undefined. This tells you that the particle is not currently on screen.

Here are the particle system functions:

particleCount <part_sys>

Returns the number of current particle slots in the system.

particleSize <part_sys>

Returns the size of the particles in the system. This is set in the particle system parameter rollout - there is one size for all particles. If you are using these functions to attach objects to particles, you can of course, make the individual objects any size you want.

particlePos <par_sys> <particle_index>

Returns the position coordinate of the indexed particle at the current time. Indexes are 1-based. The coordinate returned is in the current working coordinate system. Returns undefined if the particle is not alive at the current time.

particleVelocity <par_sys> <particle_index>

Returns the current velocity vector for the indexed particle. The vector returned is rotated into the current working coordinate system. Returns undefined if the particle is not alive at the current time.

particleAge <par_sys> <particle_index>

Returns the current age of the indexed particle as a time value, relative to when it was last born. Remember, particles get recycled and you can detect this by looking at the age value cycling round. Returns undefined if the particle is not alive at the current time.

The following list displays the particle system objects:

Spray

Snow


Spray : ParticleSystem

constructor

spray ..

properties

.viewportcount integer default: 100

.rendercount integer default: 100

.dropsize float default: 2.0

.speed float default: 10.0

.variation float default: 2.0

.display integer default: 0

.render integer default: 0

.starttime time default: 0.0

.lifetime time default: 30f

.birthrate float default: 0.0

.constant boolean default: TRUE

.emitterwidth float default: 25.0

.emitterheight float default: 25.0

.hideemitter boolean default: FALSE


Snow : ParticleSystem

constructor

snow ...

properties

.viewportcount integer default: 100

.rendercount integer default: 100

.flakesize float default: 2.0

.speed float default: 10.0

.variation float default: 2.0

.display integer default: 0

.render integer default: 0

.starttime float default: 0.0

.lifetime float default: 30.0

.birthrate float default: 0.0

.constant boolean default: TRUE

.emitterwidth float default: 25.0

.emitterheight float default: 25.0

.hideemitter boolean default: FALSE

.tumble float default: 0.0

.tumblescale float default: 1.0


Shape : Node

The following three properties apply to all shape objects:

<shape>.renderable

boolean, controls shape rendering

<shape>.thickness

float, render line thickness

<shape>.mapcoords

boolean, controls UVW map for rendering

Interpolation functions

There are a number of interpolation functions that operate on shape scene objects. They provide capabilities such as stepping along a curve within a shape getting coordinates on the curve, getting curve lengths or determining the closest point on a curve to a given coordinate. These are useful for placing cloned objects along a curve or keeping a set of objects in formation near a 'spine' curve as it animates, etc.

The interpolators all take a shape scene object (for example, a line), an optional curve number in case there are several curves in the shape, defaulting to 1, and a parameter in the range 0.0 to 1.0, that specifies a spot on the curve as a proportion along its length. There are two types of interpolator provided:

  • One interpolator matches the MAX Path controller in which the percentage along the path is not uniform, but weighted by the control-point spacing.
  • Another interpolator that gives you a uniform interpolation along the length of the curve.

The non-uniform Path interpolator in MAX gives rise to the varying velocity of a path-animated object when the path has unevenly spaced control points. The arc-length interpolators provided here give a uniform placing along the curve no matter how uneven the control point placement. The advantage of the Path interpolator is that it is computationally much more efficient than a uniform arc-length interpolator. The length interpolator uses some caches to speed it up, but you have to help manage them in the way described below.

All coordinates are in the current coordinate system.

pathInterp <shape> [<curve_num>] <parameter>

Return a point3 coordinate on the numbered curve (defaults to 1) corresponding to the parameter value (0.0 to 1.0) that matches the MAX Path controller percentage interpolation.

lengthInterp <shape> [<curve_num>] <parameter> [steps:<integer>]

Return a point3 coordinate on the numbered curve (defaults to 1) corresponding to the parameter value (0.0 to 1.0) that is that fraction along the curve's total length. The optional steps: keyword argument lets you specify the integration steps which default to 5 per unit length, usually more than enough. The function employs a cache to speed up its operation in the common case where you stepping gradually along a single curve. The cache remembers the state for the last point on the curve and picks up there if you call again on the same curve at the same animation time. This can exponentially speed up interpolation processing. However, MAXScript does not have a way of knowing if you've edited the curve from one call to the next (I'm looking into this now), so you have to be sure to reset the cache with the following function if the user can edit the curve between calls in your code.

resetLengthInterp ()

Clear length interp cache. Use this if the curve you are length-interpolating along might have been edited between calls.

curveLength <shape> [<curve_num>]

Return the arc length of the numbered curve.

pathTangent <shape> [<curve_num>] <parameter>

Return the tangent direction vector at the MAX-Path-interpolated point along the specified curve. You can use this function, for example, to set an object's direction to follow the curve.

lengthTangent <shape> [<curve_num>] <parameter> [steps:<integer>]

Return the tangent direction vector at the arc-length-interpolated point along the specified curve. You can use this function to set an object's direction to follow the curve.

nearestPathParam <shape> [<curve_num>] <point3> [steps: <integer>]

Return the interpolation parameter value (0.0 to 1.0) corresponding to the point along the curve that is closest to the given <point3> coordinate. The parameter is given as a MAX Path-interpolation parameter value. You can then use pathInterp with this value to find the nearest point's coordinates, or use one of the following functions for converting between arc-length parameters and MAX Path percentage parameters.

pathToLengthParam <shape> [<curve_num>] <param> [steps:<integer>]

Return the uniform arc-length length parameter corresponding to the given MAX Path parameter for this curve.

lengthToPathParam <shape> [<curve_num>] <param> [steps:<integer>]

Return the MAX Path length parameter corresponding to the given uniform arc-length parameter for this curve.

The following list displays the shape objects:

Arc

Circle

Donut

Ellipse

Helix

Ngon

Rectangle

Star

Text

Spline Shapes


Arc : Shape

constructor

arc ...

properties

.radius float default: 25.0

.from float default: 45.0

.to float default: 135.0

.pie boolean default: FALSE


Circle : Shape

constructor

circle ...

properties

.radius float default: 25.0


Donut : Shape

constructor

donut ...

properties

.radius1 float default: 35.0

.radius2 float default: 25.0


Ellipse : Shape

constructor

ellipse ...

properties

.length float default: 25.0

.width float default: 35.0


Helix : Shape

constructor

helix ...

properties

.radius1 float default: 35.0

.radius2 float default: 15.0

.height float default: 25.0

.turns float default: 2.0

.bias float default: 0.0

.direction integer default: 0


Ngon : Shape

constructor

ngon ...

properties

.radius float default: 25.0

.sides integer default: 6

.circular boolean default: FALSE


Rectangle : Shape

constructor

rectangle ...

properties

.length float default: 10.0

.width float default: 25.0


Star : Shape

constructor

star ...

properties

.radius1 float default: 25.0

.radius2 float default: 12.0

.points integer default: 6

.distort float default: 0.0


Text : Shape

constructor

text ...

properties

.size float default: 100.0

.text string default: ""

.font string

.italic boolean default: off

.underline boolean default: off


SplineShape : Shape

SplineShapes are the general editable versions of all the shape objects, in the same way that Editable Meshes relate to geometry objects. They are the objects that a shape is converted to when you apply an Edit Spline modifier and the result of collapsing a modifier stack on a shape base object. MAXScript lets you construct SplineShapes from scratch, adding individual curves and controls points or you can modify an existing shape by converting it to a SplineShape and using the methods listed below.

As when using MAXScript mesh functions on existing geometry, you need to make sure a shape with a non-empty modifier stack is collapsed or explicitly converted to a SplineShape before you work on it. There is a function, convertToSplineShape(), that will convert any shape object to a SplineShape, collapsing any modifiers present.

See the notes below relating to the updateShape() function, which needs to be called to get MAX to update caches and screen displays after you have made a series of modifications to a shape.

constructor

splineShape ...

To create a SplineShape scene object from scratch, you call the SplineShape constructor function, for example:

splineShape pos:[10,10,10] name:"foo"

This creates an empty shape. Use the methods listed below to add curves to the shape and knots and segments to the curves.

properties

.numSplines

number of individual spline curves in the shape.

.steps

the number of interpolation steps per control point used when generating meshes from the shape. You can activate adaptive interpolation mode by setting the steps property to -1.

.optimize

a boolean that controls interpolation optimization.

methods

Notes:

  1. You must convert existing shapes to SplineShapes in order to operate on them with the new functions. Use the convertToSplineShape() function to do this.
  2. Only the updateShape() function below updates the shape's internal caches and images in MAX viewports. This is because updates can be computationally expensive and you don't want them performed on every function call. However, you must make sure you do call the update() function after a series of changes and before the shape is to be worked on in MAX or by other functions in MAXScript.
  3. The in and out vectors for Bezier control points are given as vector handle coordinates, not as true vectors as the names suggests.
  4. Coordinates in the following are given in the MAXScript working coordinate system - this is important to note if you are familiar with the corresponding SDK spline functions which always work in object-local coordinates.
  5. If the updateShape() function is called on an object that is selected and currently open in the modifier panel, it will drop the current selection in order to avoid a potential crash in MAX, which at the moment, does not support scripted changes to an object open in the modifier panel.

convertToSplineShape <node>

converts the given scene node to a SplineShape object. If the object cannot be converted (typically, if it is not a shape), the function returns undefined. Any modifiers present will be collapsed. The collapseStack() function can also be used as can the collapse button in the modifier stack dialog in MAX; both generate a SplineShape, but will only do so if there is at least one modifier present. Note that the following functions only work on SplineShapes.

addNewSpline <shape>

adds a new spline curve to the spline shape. Individual spline curves are given index numbers starting at 1. The addNewSpline() function adds new spline curves to the end of the list of curves in a shape. It returns the index of the newly added curve spline.

deleteSpline <shape> <spline_index>

deletes the indexed spline curve from the shape. The remaining curves are renumbered to account for the deletion.

numSplines <shape>

returns the number of spline curves in the shape (equivalent to the .numSplines property.)

setFirstSpline <shape> <spline_index>

rolls the order of the splines in a shape around so that the numbered spline is the first spline in the shape. This is useful when working with multi-spline shapes in the Lofter and some other modifiers such as Surface Tools which are sensitive to spline order.

resetShape <shape>

clears all the curves out of a shape.

updateShape <shape>

updates the shape's internal caches and viewport display to account for all the changes made by other functions in this kit. This update must be done before MAX or any other code tries to work with a modified shape object.

The updateShape() function makes any scripted changes to a base object spline shape propagate into the bottom of any modifier stack that is present. Note that there is no check to warn you that modifications such as topology changes might invalidate modifiers already in the stack. This is equivalent to opening and modifying the base object in a modifier panel, ignoring its warnings about invalidating the object.

numKnots <shape> <spline_index>

returns the number of knots (also known vertices or control points) in the indexed spline.

numSegments <shape> <spline_index>

returns the number of line segments in the indexed spline. This is the same as the number of knots for closed splines and 1 less for open splines.

isClosed <shape> <spline_index>

returns true if the indexed spline is closed, false if it is open.

close <shape> <spline_index>

closes the indexed spline.

open <shape> <spline_index>

opens the indexed spline between its last and first knots.

addKnot <shape> <spline_index> \

(#smooth|#corner|#bezier|#bezierCorner) \

(#curve|#line) <point> [invec outvec] [where]

adds a new knot (control point) to the indexed spline. The 3rd argument specifies the type of the knot, the 4th specifies the type of the segment leaving the knot. The 5th specifies the coordinates for the new point (given in the current working coordinate system). If the knot type is bezier or bezierCorner, you must give the in-vector and out-vector handle coordinates as the 6th and 7th arguments. In the same way as splines are indexed in a shape, knots are indexed in a spline. The optional last argument lets you specify where in the knot order the new knot is to be inserted, defaulting to the end of the spline if you leave this argument off. The addKnot() function returns the index of the newly added knot.

deleteKnot <shape> <spline_index> <knot_index>

deletes the indexed knot in the indexed spline. The remaining knots are renumbered to account for the deletion.

setKnotType <shape> <spline_index> <knot_index> \

(#smooth|#corner|#bezier|#bezierCorner)

sets the knot type of the indexed knot in the indexed spline. This is equivalent to the right-mouse-button change you can make to spline control-points using the Edit Spline modifer in MAX.

getKnotType <shape> <spline_index> <knot_index>

returns the knot type of the indexed knot in the indexed spline. The value is one of the names #smooth, #corner, #bezier, or #bezierCorner.

setSegmentType <shape> <spline_index> <seg_index> (#curve|#line)

sets the segment type of the indexed segment in the indexed spline.

getSegmentType <shape> <spline_index> <seg_index>

gets the segment type of the indexed segment in the indexed spline.

refineSegment <shape> <spline_index> <seg_index> <seg_param>

adds a new knot to the indexed segment of the indexed curve at a place along the indexed segment corresponding to the given segment interpolation parameter. This value is a float in the range 0.0 to 1.0, specifying a proportion along the segment. The new knot coordinates and in-vector and out-vector are automatically computed to maintain the segment's existing curvature. This is the primitive used by the refine function in the Edit Spline modifier. You can use the MAXScript spline path interpolation functions to derive segment parameters given that a curve's path interpolation parameter is divided evenly among the segments in a curve. (So given a path interpolation parameter u and a target segment n in a spline of m segments, the segment parameter is u - (n-1)/m.) The refineSegment() function returns the index of the newly inserted knot.

reverse <shape> <spline_index>

reverses the order of the knots in the indexed spline.

setFirstKnot <shape> <spline_index> <knot_index>

rolls the order of the knots in the indexed spline around so that the nominated knot becomes the first knot in the spline.

setKnotPoint <shape> <spline_index> <knot_index> <point3>

set the coordinates of the indexed knot in the indexed spline. Coordinates are given in the current working coordinate system.

getKnotPoint <shape> <spline_index> <knot_index>

retrieves the coordinates of the indexed knot in the current working coordinate system.

getInVec <shape> <spline_index> <knot_index>

retrieves the coordinates of the in-vector handle for the indexed knot in the current working coordinate system.

setInVec <shape> <spline_index> <knot_index> <point3>

sets the coordinates of the in-vector handle of the indexed knot. Coordinates are given in the current working coordinate system.

getOutVec <shape> <spline_index> <knot_index>

retrieves the coordinates of the out-vector handle for the indexed knot in the current working coordinate system.

setOutVec <shape> <spline_index> <knot_index> <point3>

sets the coordinates of the out-vector handle of the indexed knot. Coordinates are given in the current working coordinate system.


Helper : Node

The following list displays the helper objects:

Grid

Tape

Bone


Grid : Helper

constructor

grid ...

properties

.length float default: 25.0

.width float default: 25.0

.grid float default: 10.0


Tape : Helper

constructor

tape ...

to construct a tape, you have to create its target node first (using the targetobject constructor), then construct the tape giving it the target:

tape pos:p target:(targetobject pos:q)

properties

.length float


Bone : Helper

constructor

bone ...

Bones appear in MAXScript as a Helper object, rather than as a System object as they do in MAX. The MAX bones system object is actually a hierarchy of these Bone helper objects which you can construct now in MAXScript. For example:

b0 = bone pos:[x,y,z]

in b0 b1 = bone pos:[x1,y1,z1]

in b1 b2 = bone pos:[x2,y2,z2]

in b2 b3= bone pos:[x3,y3,z3]

You can rearrange bone hierarchies using the .parent property.


Spacewarp : Node

The following list displays the spacewarp objects:

Bomb

Deflector

Gravity

Spaceripple

Spacedisplace

Spacewave

Wind


Bomb : Spacewarp

constructor

bomb ...

properties

.strength float default: 1.0

.chaos float default: 0.0

.gravity float default: 1.0

.detonation integer default: 5

Bombbinding : Modifier


Deflector : Spacewarp

constructor

deflector ...

properties

.bounce float default: 1.0

.width float default: 25.0

.height float default: 25.0

Deflectorbinding : Modifier


Gravity : Spacewarp

constructor

gravity ...

properties

.strength float default: 1.0

.decay float default: 0.0

.type integer default: 0

.iconsize float default: 10.0

Gravitybinding : Modifier


Spaceripple : Spacewarp

constructor

spaceripple ...

properties

.amplitude1 float default: 5.0

.amplitude2 float default: 5.0

.wavelength float default: 25.0

.phase float default: 0.0

.decay float default: 0.0

.circles integer default: 10

.segments integer default: 16

.divisions integer default: 4

Ripplebinding : Modifier

properties

.flexibility float


Spacedisplace : Spacewarp

constructor

spacedisplace ...

properties

.maptype integer default: 0

.utile float default: 1.0

.vtile float default: 1.0

.wtile float default: 1.0

.blur float default: 0.0

.strength float default: 1.0

.decay float default: 0.0

.centerlum boolean default: FALSE

.uflip boolean default: FALSE

.vflip boolean default: FALSE

.wflip boolean default: FALSE

Displacebinding : Modifier


Spacewave : Spacewarp

constructor

spacewave ...

properties

.amplitude1 float default: 5.0

.amplitude2 float default: 5.0

.wavelength float default: 25.0

.phase float default: 0.0

.decay float default: 0.0

.circles integer default: 10

.segments integer default: 16

.divisions integer default: 4

Wavebinding : Modifier

properties

.flexibility float


Wind : Spacewarp

constructor

wind

properties

.strength float default: 1.0

.decay float default: 0.0

.type integer default: 0

.iconsize float default: 10.0

.turbulence float default: 0.0

.frequency float default: 0.0

.scale float default: 0.0

Windbinding : Modifier


Light : Node

The following properties apply to all lights:

<light>.softenDiffuseEdge

float

<light>.attenDecay

integer, 1=linear, 2=square, 3=inverse sq.

<light>.raytracedShadows

boolean, true=raytraced shadows, false=mapped

<light>.affectDiffuse

<light>.affectSpecular

<light>.useNearAtten

<light>.showNearAtten

<light>.useFarAtten

<light>.showFarAtten

<light>.projector

<light>.projectorMap

<light>.castShadows

<light>.useGlobalShadowSettings

<light>.absoluteMapBias

The following list displays the light objects:

Omnilight

Targetspot

Directionallight


Omnilight : Light

constructor

omnilight ...

properties

.color RGB color default: 180.0,180.0,180.0

.rgb RGB color default: 180.0,180.0,180.0

.multiplier float default: 1.0

.attenstart float default: 80.0

.attenend float default: 320.0

.on boolean

.enabled boolean

.hsv HSV color

.hue color channel

.saturation color channel

.value color channel


Targetspot : Light

constructor

targetspot ...

properties

.color RGB color default: 180.0,180.0,180.0

.rgb RGB color default: 180.0,180.0,180.0

.multiplier float default: 1.0

.attenstart float default: 80.0

.attenend float default: 320.0

.hotspot float default: 43.0

.falloff float default: 45.0

.aspect float default: 1.0

.mapbias float default: 4.0

.mapsize integer default: 256

.samplerange float default: 4.0

.raytracebias float default: 0.2

.on boolean

.enabled boolean

.hsv HSV color

.hue color channel

.saturation color channel

.value color channel

.showCone boolean

.overShoot boolean

.coneShape


Directionallight : Light

constructor

directionallight ...

properties

.color RGB color default: 180.0,180.0,180.0

.rgb RGB color default: 180.0,180.0,180.0

.multiplier float default: 1.0

.attenstart float default: 80.0

.attenend float default: 320.0

.hotspot float default: 43.0

.falloff float default: 45.0

.aspect float default: 1.0

.mapbias float default: 4.0

.mapsize integer default: 256

.samplerange float default: 4.0

.raytracebias float default: 0.2

.on boolean

.enabled boolean

.hsv HSV color

.hue color channel

.saturation color channel

.value color channel

.showCone boolean

.overShoot boolean

.coneShape


Camera : Node

The following properties apply to all cameras:

<camera>.orthoProjection

boolean

<camera>.showCone

boolean

<camera>.showHorizon

boolean

<camera>.showRanges

boolean

<camera>.clipManually

boolean

The following list displays the camera objects:

Targetcamera

Freecamera


Targetcamera : Camera

constructor

targetcamera ...

properties

.fov float default: 45.0

.nearrange float default: 0.0

.farrange float default: 1000.0

.nearclip float default: 1.0

.farclip float default: 1000.0


Freecamera

constructor

freecamera ...

properties

.fov float default: 45.0

.nearrange float default: 0.0

.farrange float default: 1000.0

.nearclip float default: 1.0

.farclip float default: 1000.0


Mesh : Node

The mesh class represents a constructable editable mesh node. For details, see the following topics:

Mesh Constructors

Mesh Operations

Mesh Boolean Operations


Mesh Constructors

mesh [length:<integer>] [ width:<integer> ]

[ lengthsegs:<integer> ] [ widthhsegs:<integer> ]

creates a flat rectangular mesh with the given size and number of segments

mesh numverts:<number> numfaces:<number>

creates a mesh of the given geometry but with no topology. You have to set the face and vertices individually.

mesh vertices:<array_of_point3s>

faces:<array_of_point3s>

[ materialIDs:<array_of_integers> ]

[ tverts:<array_of_point3s> ]

creates a mesh from an array of vertices and faces

collapseStack <node>

collapses the modifiers out of a stack, leaving a resultant Editable Mesh as the base object of the node. If there are no modifiers in the stack when this is called, no action is taken. So, if you want to force an object to be an editable mesh (say for the mesh operation listed below), you can apply a null modifier and then collapse the stack:

addmodifier $foo (normalmodifier())

collapseStack $foo

convertToMesh $foo

this function converts appropriate scene object types into Editable Meshes. It is similar to collapseStack() in that it will remove all modifiers present, but unlike collapseStack() it will always replace the base object with an editable mesh version, even if there are no modifiers present.

It can be applied to any object that an Edit Mesh modifier can work on, such as geometry and shapes, but not helpers, spacewarps, lights, etc.

properties

<mesh>.numverts

<mesh>.numfaces

<mesh>.numtverts

You can both read and assign to these properties. If you assign numbers to them to add room for more vertices or faces, the mesh will lose all current topology/geometry, assuming you want to rebuild it from scratch. If you want to retain it, use the setnumverts(), setnumtverts() and setnumfaces() functions as describes in the Mesh Operations topic.


Mesh Operations

These functions operate on the base object in a node if no modifiers are present. If modifiers are present, the mesh get operations access the world-state mesh, after the modifiers have been applied. The mesh set operations signal an error if there are modifiers present, informing you that the mesh is not changeable when modifiers are present. If there are no modifiers present, both get and set operations work on the base editable mesh object.

Because the mesh get operations require a mesh, the combination of base object and modifiers must yield a mesh at the top of the modifier stack. This excludes combinations such as Patch base-objects and deformer modifiers such as bend and twist, because they pass a patch object, not a mesh up the stack. Applying an Edit Mesh modifier always forces the world-state object to be a mesh.

If you have a modifier stack active on top of the base mesh and want to operate on the world state of the object, you can use the collapseStack() function to collapse the stack into a single resultant editable mesh. You can also use the function convertToMesh() to convert any meshable geometry into an editable mesh object, regardless of whether there is a modifier stack present or not.

The Mesh update() function makes any scripted changes to a base object mesh propagate into the bottom of any modifier stack that is present. Note that there is no check to warn you that modifications such as topology changes might invalidate modifiers already in the stack. This is equivalent to opening and modifying the base object in a modifier panel, ignoring its warnings about invalidating the object.

Note: Meshes you create with MAXScript mesh functions are automatically polygon-stripped in the update() function, supporting the stripping optimizations in the MAX geometry pipeline.

All vertex and face indexes in the following operations are start at 1, following the other indexing conventions in MAXScript.

All coordinates used with the following functions are relative to the current working coordinate system.

getvert <node> <integer>

takes a vertex index and returns its position (in the current working coordinate system) as a point3

setvert <node> <integer> <point3>

sets the indexed vertex coordinates

getface <node> <integer>

return face vertex indexes for the indexed face as a point3

setface <node> <integer> <point3>

set the face vertex indexes for indexed face from a point3

setface <node> <integer> <integer> <integer> <integer>

set the face vertex indexes for indexed face from 3 indexes

getnormal <node> <integer>

get the normal at the indexed vertex

getfacenormal <node> <integer>

get the normal of the indexed face

getfacematid <node> <integer>

get the indexed face material id

setfacematid <node> <integer> <mat_id_integer>

set the indexed face material id

getfacesmoothgroup <node> <integer>

get the indexed face material id

setfacesmoothgroup <node> <integer> <smooth_grp_integer>

set the indexed face material id

update <node>

updates the mesh geometry and normal caches. The caches are not updated mesh vertex and face operations because this is time consuming and you may be modifying many vertices or faces. So, batch-up all the changes, then call update() to reflect the changes in the scene.

The update() function makes any scripted changes to a base object mesh propagate into the bottom of any modifier stack that is present. Note that there is no check to warn you that modifications such as topology changes might invalidate modifiers already in the stack. This is equivalent to opening and modifying the base object in a modifier panel, ignoring its warnings about invalidating the object.

settvert <mesh> <index> ( <point3> | <x> <y> <z> )

gettvert <mesh> <index>

TVert versions of the setvert and getvert functions

getnumverts <mesh>

getnumtverts <mesh>

getnumfaces <mesh>

Return counts, equivalent to using the properties above

setnumverts <mesh> <number> [true | false]

setnumtverts <mesh> <number> [true | false]

setnumfaces <mesh> <number> [true | false]

Set the geometry counts as specified. If the 3rd optional argument is true, the existing topology remains intact. If it is false or left off, the topology is lost.

getedgevis <mesh> <face_index> <edge_index>

setedgevis <mesh> <face_index> <edge_index> [on | off]

Gets/Sets edge visibility for given edge (1,2,3) on indexed face.

deletevert <mesh> <vert_index>

Deletes indexed vertex from the mesh and all faces that share the vertex. Renumbers vertexes and faces to account for the deletions. Also adjusts face vertex indexes as necessary.

deleteface <mesh> <face_index>

Deletes indexed face from the mesh. Renumbers faces accordingly.

collapseface <mesh> <face_index>

Deletes indexed face from the mesh, welding its 3 vertices together at the center of the original face. Renumbers faces accordingly.

getVertSelection <node> [<modifier_or_index>]

getEdgeSelection <node> [<modifier_or_index>]

getFaceSelection <node> [<modifier_or_index>]

Retrieves the vertex, edge or face selection set. The optional <modifier_or_index> identifies the Edit Mesh modifier on the given scene object from which the selection index array is obtained. For example:

getVertSelection $foo $foo.modifiers[3]

If the third optional argument is not supplied, the <node> must be an Editable Mesh object and the selection is taken from the base object. If it is, it should be either a modifier on the node or a number. If it is a modifier, it must be either an Edit Mesh or a Mesh Select modifier. If it is a number, it is used as an index into the Edit Mesh/Select Modifiers on the <node> starting from the top of the stack. Note that this index does not count any other types of modifier present. So, an index of 1 will always get the selection currently active at the top of the stack.

The function returns an array of integers that are the 1-based indexes of the vertices currently selected in the object by the given modifier. For example:

getVertSelection $foo $foo.modifiers[3]

yields

#(2,3,4,5,9,25,26,27)

This is a snapshot of the selection -- the array doesn't change automatically as you make different selections. Further, it reflects the current vertex selection whether or not the modifier is in vertex sub-object selection mode (this selection is remembered and re-established whenever you go back into vertex subobject mode). So, for example, if you select some vertices then click out of vertex subobject mode, the whole object rather than the selection is passed up the stack to the next modifier, but getVertSelection() returns the selected vertices at the time the subobject mode was exited.

You might use the .modifiers modifier array accessing scheme here if you've got many edit mesh modifiers with non-unique names. You can also use a constructed string as an index into the .modifiers array, for example:

$foo.modifiers["edit mesh" + i as string]

assuming the variable 'i' had some indexing value and the names were set up thusly. '+' on strings concatenates.

setVertSelection <node> [<modifier_or_index>] <sel_array> [keep:false]

setEdgeSelection <node> [<modifier_or_index>] <sel_array> [keep:false]

setFaceSelection <node> [<modifier_or_index>] <sel_array> [keep:false]

Set the vertex, edge and face selections in an Editable Mesh base object. These mirror the selection getting functions above.

The <modifier_or_index> argument is interpreted as for the get- forms above, except that only the Mesh Select modifier is supported for set operations.

For example:

setVertSelection $foo #(1,2,3,4,100,101,102)

setFaceSelection $foo \

(getFaceSelection $baz) keep:true

The selection index array argument is an array of integers giving the indexes of the sub-object items to be selected. If the optional keep: keyword argument is false or not supplied, any current selection will be replaced by the new one. If the keep: keyword argument is true, the new selection is added to the current selection.

Use the mesh update() function after making a group of selection changes in order to make them visible to any modifiers on the object.

getTVFace <mesh> <face_index>

setTVFace <mesh> <face_index> <point3>

setTVFace <mesh> <face_index> <index1> <index2> <index3>

The getTVFace() and setTVFace() functions mirror the getFace() and setFace() functions and are used to specify texture mapping topology in terms of texture vertices. You can set up and access texture vertices with the getTVert(), setTVert(), getNumTVerts(), and setNumTVerts() functions described above.

buildTVFaces <mesh> [<keep_old_faces>]

The buildTVFaces() function only needs to be called on meshes you are adding texture verts to yourself to create the internal texture face array. Meshes that MAX applies mapping coordinates to maintain the TVFace array automatically. This is not done automatically when you add texture vertices to meshes yourself so you need to call buildTVFaces() explicitly whenever you change the tvertex count.

attach <node1> <node2>

corresponds to the mesh attach function in the Editable Mesh Modifier panel allowing you to construct a mesh by adding complete objects to it. Extracts the mesh from <node2> (first converting to a mesh if need), adds it to <node1> which must be an Editable Mesh object and then deletes <node2>. The materials and material IDs in <node2> are merged into <node1> using the default settings for the attach operation in the Editable Mesh Modifier panel.

extrudeFace <node> (<index>|<index_array>|#selection) \

<amount> <scale> \

[dir:(<point3>|#common|#independent)]

provides capabilities equivalent to the Extrude Face modifier. This function works only on Editable Mesh nodes. The second argument defines which faces to extrude, either a single face index, an array of face indexes, or the name literal #selection meaning the current face selection in the Editable Mesh. The <amount> argument specifies the extrude distance and the <scale> specifies a % amount to scale each face cluster.

If the optional dir: keyword argument is not specified, face clusters are extruded by moving their vertices independently along the average normal at each vertex, as does the Extrude Face modifier. If it is, it can be a point3 giving a direction vector in which all vertices are moved, or it can be the value #independent which is the same as the default direction, or it can be the value #common which extrudes face clusters along the average normal of all the face normals in each cluster. #common is equivalent to the way face extrude worked in the Edit Mesh modifier of the previous release of MAX.

getnumcpvverts <mesh>

same as .numcpvverts property (See Node : MAXWrapper for this property.)

setnumcpvverts <mesh> <count>

sets the number of c-p-v vertices

buildVCFaces <mesh>

builds the c-p-v face array after you have set the the c-p-v vertex count

defaultVCFaces <mesh>

sets the number of c-p-v vertices and c-p-v faces to match exactly the current mesh's geometry and topology and calls buildCVFaces()

getvertcolor <mesh> <index>

returns the color of the indexed c-p-v vertex

setvertcolor <mesh> <index> <color_or_R_G_B>

sets the color of the indexed c-p-v vertex specified as a color value, or 3 floats R,G,B

getVCFace <mesh> <face_index>

gets the topology for the indexed c-p-v face as a point3 containing 3 c-p-v vertex indexes

setVCFace <mesh> <face_index> <point3_or_V1_V2_V3>

sets the indexed c-p-v face topology from either a point3 or 3 index number arguments

The c-p-v vertex and face indexes are 1-based as with other mesh indexes in MAXScript. Remember that you need to call update() on the mesh after making changes to it for the changes to be reflected in the scene.


Mesh Boolean Operations

The mesh operations underlying the Boolean Compound Object in MAX are accessible in MAXScript. They appear as operators (+, -, *) that you can apply to any two scene objects that are convertible to meshes. The operators are:

<node1> + <node2> -- the union of node1 and node2

<node1> - <node2> -- the subtraction of node2 from node1

<node1> * <node2> -- the intersection of node1 and node2

Example:

$foo - $baz

$sphere01 + $sphere02 + $sphere03 + $sphere04

The Boolean operators change the first operand to be the result of the operation and leave the second operand untouched. So, in the first example, the $foo node is changed to an Editable Mesh object containing the result of the difference operation. In the second example, $sphere01 is successively unioned with each of the other spheres - $sphere01 contains the compound result and the other spheres are left standing. This behavior is experimental and I'm open to suggestions.

Note that unlike the Boolean compound object in MAX, this operation destructively modifies the first operand - you can't retrieve the original first operand after the Boolean operation is performed. You can effectively keep the first operand by using a copy function, for example,

result = (copy $foo) - $baz

will put a modified copy of $foo into the variable result, leaving the original $foo unchanged.


Modifier : MAXWrapper

The modifier family of classes can be created and added to an object's modifier stack, using the addModifier function. By making a single modifier and adding it to several objects, you are sharing the modifier between the objects. The constructors in the following classes can take any of the listed properties as optional keyword arguments with the defaults as shown.

Existing modifiers can be accessed in two ways:

  1. As a property access on a <node>. When you access a property on a <node> scene object, such as its name or position, or length, MAXScript will also consider modifiers on the object to be properties, for example:

$box1.heightsegs -- get creation parameter

$box1.twist -- get the twist modifier

$box1.twist.angle      -- the twist's angle

  1. You can then access modifier properties as sub properties on the modifier as shown. If the modifier name has spaces in it, you can use the '_' as space convention that pathnames use, like this:

$box1.uvw_map      -- to get the 'UVW Map' modifier

This will work in simple situations, but there may be several modifiers with the same name, or a modifier with the same name as a creation parameter (which is always looked for first). In this situation you can use the modifier array mechanism, which yields an array of modifiers's you can index into:

$box1.modifiers -- get modifier array

$box1.modifiers[2] -- get the 3rd down the list

$box1.modifiers[#twist] -- get the one name twist

$box1.modifiers["ffd 4x4x4"]      -- get the ffd

As you can see from the examples, you can use both name literals and strings to index modifiers by name in the table, so this is a way to get at modifiers with characters you can’t use in a MAXScript property name.

The ordering is as you would see in the modifier panel, numbered starting at 1 from top-to-bottom.

All modifiers have a name property:

properties

.name <string>      -- get and set modifier name

The following list displays the modifier objects:

Bend

Extrude

Linked_xform

NoiseModifier

Optimize

Ripple

Skew

Smooth

NormalModifier

Lathe

Taper

Twist

UVWmap

Volumeselect

Wave


Linked_xform : Modifier

constructor

linked_xform ...

properties

.control node

– the control scene object for the linked xform. This property is currently read-only.


NoiseModifier : Modifier

constructor

noisemodifier ...

properties

.seed integer default: 0

.scale float default: 1.0

.fractal boolean default: FALSE

.roughness float default: 0.0

.iterations float default: 6.0

.animate boolean default: FALSE

.frequency float default: 0.25

.phase float default: 0.0

.strength point3, 25.0, 25.0, 25.0


Optimize : Modifier

constructor

optimize ...

properties

.renderLOD integer default: 0

.viewLOD integer default: 0

.facethreshold1 angle default: 4.0

.edgethreshold1 angle default: 1.0

.bias1 float default: 0.1

.preservemat1 boolean default: FALSE

.preservesmooth1 boolean default: FALSE

.facethreshold2 angle default: 4.0

.edgethreshold2 angle default: 1.0

.bias2 float default: 0.1

.preservemat2 boolean default: FALSE

.preservesmooth2 boolean default: FALSE

.autoedge boolean default: FALSE


Ripple : Modifier

constructor

ripple ...

properties

.amplitude1 float default: 5.0

.amplitude2 float default: 5.0

.wavelength float default: 25.0

.phase float default: 0.0

.decay float default: 0.0


Skew : Modifier

constructor

skew ...

properties

.amount float default: 25.0

.direction float default: 0.0

.axis integer default: 2

.limit boolean default: FALSE

.upperlimit float default: 0.0

.lowerlimit float default: 0.0


NormalModifier : Modifier

constructor

normalmodifier ...

properties

.unify boolean default: FALSE

.flip boolean default: FALSE


Taper : Modifier

constructor

taper ...

properties

.amount float default: 1.0

.curve float default: 0.0

.primaryaxis integer default: 2

.effectaxis integer default: 2

.symmetry boolean default: FALSE

.limit boolean default: FALSE

.upperlimit float default: 0.0

.lowerlimit float default: 0.0


Twist : Modifier

constructor

twist ...

properties

.angle angle default: 0.0

.bias integer default: 0.0

.axis integer default: 2, // z

.limit boolean default: FALSE

.upperlimit float default: 0.0

.lowerlimit float default: 0.0


UVWmap : Modifier

constructor

uvwmap ...

properties

.maptype integer default: 0

.utile float default: 1.0

.vtile float default: 1.0

.wtile float default: 1.0

.uflip boolean default: FALSE

.vflip boolean default: FALSE

.wflip boolean default: FALSE

.cap boolean default: FALSE


Volumeselect : Modifier

constructor

volumeselect ...

properties

.level integer default: 0

.method integer default: 0

.type integer default: 0

.volume integer default: 0

.invert boolean default: FALSE


Wave : Modifier

constructor

wave ...

properties

.amplitude1 float default: 5.0

.amplitude2 float default: 5.0

.wavelength float default: 25.0

.phase float default: 0.0

.decay float default: 0.0


Controller : MAXWrapper

All the controllers in MAX are subclasses of Control. For more details about controllers, see also the Controll Constructs, the Controller Access, and the Controller Creation and Assignment topics.

The following list displays the controller objects:

Path

Noise Controllers


Path : PositionController

constructor

path ...

properties

<path_controller>.path : shape node

<path_controller>.percent : float percentage

<path_controller>.follow : bool

<path_controller>.bank : bool

<path_controller>.bankAmount : float

<path_controller>.smoothness : float

For example,

$foo.pos.controller = path follow:true

assigns a path controller to foo's position,

$foo.pos.controller.path = $line01

assigns $line01 as the controller's path, and,

c = $foo.pos.controller

animate on

(

at time 30 c.percent = 25

at time 100 c.percent = 95

)

applies keyframed animation to the position along the path.


Noise Controllers

noise_float : floatController
noise_position : positionController
noise_point3 : point3Controller
noise_rotation : rotationController
noise_scale : scaleController

properties

Access to the following properties is available on all noise controllers:

.seed : integer

.frequency : float

.fractal : boolean

.roughness : float

.rampin : time

.rampout : time

In addition, for noise float controllers you can get these properties:

.strength : float

.positive : boolean (limits values to > 0)

and for position, point3, rotation and scale controllers:

.x_strength : float

.y_strength : float

.z_strength : float

.x_positive : boolean

.y_positive : boolean

.z_positive : boolean

You need to access these properties explicitly on a controller, for example:

$box01.position.controller.x_strength = 100

or,

c = $box01.rotation.controller

c.seed = random 0 100

c.fractal = off

c.frequency = random 0.1 0.2


Material : MAXWrapper

properties

<material>.name

All the material subclasses can access the .name property and specify it as a constructor parameter.

noMaterial

noTexture

The material noMaterial and the texture map noTexture are equivalent to the "none" items available in the material editor so you can remove maps.

The following list displays the material objects:

StandardMaterial

MultiMaterial


StandardMaterial : Material

constructor

standardmaterial ...

properties

<std_material>.ambient      RGB color      default: 51,51,89

<std_material>.diffuse      RGB color      default: 102,102,178

<std_material>.specular      RGB color      default: 229,229,229

<std_material>.shininess      percent      default: 40.0

<std_material>.shinestrength      percent      default: 30.0

<std_material>.selfillum      percent      default: 0.0

<std_material>.opacity      percent      default: 100.0

<std_material>.opacityfalloff      percent      default: 0.0

<std_material>.filter      RGB color      default: 128,128,128

<std_material>.wiresize      float      default: 1.0

<std_material>.ior      float      default: 1.5

<std_material>.shading

<std_material>.soften

<std_material>.facemap

<std_material>.twosided

<std_material>.wire

<std_material>.wireunits

<std_material>.falloff

<std_material>.opacitytype

<std_material>.lockambientdiffuse

<std_material>.ambientmap

<std_material>.diffusemap

<std_material>.specularmap

<std_material>.shininessmap

<std_material>.shinestrengthmap

<std_material>.selfillummap

<std_material>.opacitymap

<std_material>.filtermap

<std_material>.bumpmap

<std_material>.reflectionmap

<std_material>.refractionmap

<std_material>.ambientmapamount

<std_material>.diffusemapamount

<std_material>.specularmapamount

<std_material>.shininessmapamount

<std_material>.shinestrengthmapamount

<std_material>.selfillummapamount

<std_material>.opacitymapamount

<std_material>.filtermapamount

<std_material>.bumpmapamount

<std_material>.reflectionmapamount

<std_material>.refractionmapamount

<std_material>.ambientmapenable

<std_material>.diffusemapenable

<std_material>.specularmapenable

<std_material>.shininessmapenable

<std_material>.shinestrengthmapenable

<std_material>.selfillummapenable

<std_material>.opacitymapenable

<std_material>.filtermapenable

<std_material>.bumpmapenable

<std_material>.reflectionmapenable

<std_material>.refractionmapenable


MultiMaterial : Material

MultiMaterials have sub materials arranged in a table, so MAXScript allows you to access these submaterials using the array indexing accessor:

mm = multimaterial numsubs:3

mm[1] = $foo.material

$baz.material = mm[2]

constructor

multimaterial ...

properties

<multi_material>.numsubs

operators

<multi_material>[<integer>]

<multi_material>[<integer>] = <material>

MAX Multi materials present themselves as indexable arrays in MAXScript. The only array operations they support are indexed access and indexed assign.


TextureMap : MAXWrapper

The following topic displays the texture map object:

BitmapTexture


BitmapTexture : TextureMap

constructor

bitmaptexture ...

properties

<bitmaptexture>.filename

<bitmaptexture>.filtertype

<bitmaptexture>.alphasource

<bitmaptexture>.endcondition

<bitmaptexture>.monooutput

<bitmaptexture>.playbackrate

<bitmaptexture>.starttime

<bitmaptexture>.mappingtype

<bitmaptexture>.uoffset

<bitmaptexture>.voffset

<bitmaptexture>.utiling

<bitmaptexture>.vtiling

<bitmaptexture>.angle

<bitmaptexture>.blur

<bitmaptexture>.bluroffset

<bitmaptexture>.umirror

<bitmaptexture>.utile

<bitmaptexture>.vmirror

<bitmaptexture>.vtile


Control : MAXWrapper

constructor

<node>.<animatable_property>.control

methods

SupportTimeOperations <control>

DeleteTime <control> :mappable

ReverseTime <control> :mappable

ScaleTime <control> :mappable

InsertTime <control> :mappable

GetTimeRange <control>

EditTimeRange <control>

-- key operations

AddNewKey <control> :mappable

DeleteKeys <control> :mappable

DeleteKeyByIndex <control> :mappable

SelectKeys <control> :mappable

MoveKeys <control> :mappable

ScaleKeyValues <control> :mappable

MapKeys <control>

NumKeys <control>

FlagKey <control> :mappable

GetFlagKeyIndex <control>

GetKeyTime <control>

GetKeyIndex <control>

GetNextKeyTime <control>

CopyKeysFromTime <control>

DeleteKeyAtTime <control> :mappable

IsKeyAtTime <control>

GetKeyTimes <control>

GetKeySelState <control>

NumSelKeys <control>


Key : MAXWrapper

constructor

<node>.<animatable_property>.keys[<integer>]

properties

<key>.time


Rollout : Value

constructor

utility <name> <title_string> ( ... )

properties

<utility>.<control_name>


RolloutControl : Value

constructor

utility <name> <title_string> ( ... )

properties

.text:

.caption:

.enabled:

align:

pos:

offset:

width:

The following list displays the rollout control objects:

ButtonControl

CheckBoxControl

EditTextControl

GroupStartControl

LabelControl

PickerControl

RadioControl

SpinnerControl


ButtonControl : RolloutControl

constructor

button <name> [<title_string>] ...


CheckBoxControl : RolloutControl

constructor

checkbox <name> [<title_string>] ...

properties


EditTextControl : RolloutControl

constructor

edittext <name> [<title_string>] ...

properties

caption:

text:


GroupStartControl : RolloutControl

constructor

group <title_string> ( ... )


LabelControl : RolloutControl

constructor

utility <name> <title_string> ...


PickerControl : RolloutControl

constructor

pickbutton <name> [<title_string>] ...

properties

message:

filter:


RadioControl : RolloutControl

constructor

radiobuttons <name> [<title_string>] ...

properties

labels:

default:


SpinnerControl : RolloutControl

constructor

spinner <name> [<title_string>] ...

properties

range:

type:


Miscellaneous Built-In Functions

MAXScript lets you call built-in functions to control complex MAX tasks. The following topics describe the use of those functions:

Controlling the Renderer

MAX File Loading and Saving

Text File Input and Output

Listener Log File Control

Standard Open and Save File Dialogs

Editor and Compiler Access

Progress Bar Display

Executing DOS Commands

Local Date and Time String

Message and Query Dialog Boxes

Garbage Collection

Exiting MAX

Time Stamping

Generating Unique Scene Node Names

Pausing Script Execution


Controlling the Renderer

render [ camera: <camera_node> ]

[ frame: <number> | #current ]

[ framerange: #(f, t) | #active ]

[ fromframe: <number> ]

[ toframe: <number> ]

[ nthframe: <number> ]

[ outputwidth: <number> ]

[ outputheight: <number> ]

[ pixelaspect: <number> ]

[ videocolorcheck: on | off ]

[ renderhiddenobjects: on | off ]

[ superblack: on | off ]

[ force2sided: on | off ]

[ renderatmosphericeffects: on | off ]

[ renderfields: on | off ]

[ fieldorder: #odd | #even ]

[ outputfile: <string> ]

[ outputdevice: <string> ]

[ vfb: on | off ]

[ netrender: on | off ]

Default actions if you don’t specify the following:

no camera -- render currently active viewport

no frames -- render current render settings

no outputfile -- just render to virtual frame buffer

no vfb switch      -- vfb on

The built-in render() function used to invoke the MAX renderer, and now returns a Bitmap value containing the result of the rendering. This means you can set up and render an image under script control and then manipulate and access that image from within MAXScript.

The following renderer-specific parameters are not defined as accessible in the plug-in SDK, so they are not handled at the moment.

mapping: on/off

shadows: on/off

autoreflect: on/off

forcewireframe: on/off

wirethickness: <number>

objectmotionblur: on/off

blursamples: <number>

blurduration: <number>

blurdurationsubdivisions: <number>

raytracedshadowdepth: <number>

autoreflectiterations: <number>


MAX File Loading and Saving

loadMaxFile <filename_string>

returns true if the file was found and loaded successfully.

mergeMAXFile <filename> \

[<name_array>] \

[#prompt] \

[#select] \

[#noRedraw] \

[#deleteOldDups | #mergeDups | #skipDups | #promptDups]

All arguments are optional except the initial filename. The flag arguments can be specified in any order. The arguments details are as follows:

<name_array>

an array of strings naming the objects in the source scene file to be merged

#prompt

if specified causes the standard merge dialog to be opened

#select

if specified causes the newly merged objects to be selected when merged

#noRedraw

if specified cases the screen redraw to be delayed in case you wish to call megeMAXFile several times and delay the redraw until the last

#deleteOldDups

deletes existing scene objects with the same names as incoming objects, equivalent to a replace

#mergeDups

ignore name conflicts, merge anyway resulting in possibly duplicated names

#promptDups

throw up the duplicates resolution dialog for the user to choose

Returns true if the file was found and loaded successfully.

If you don't specify a full pathname, the file is looked for in the MAX scene directory, then in the MAX directory then in the PATH environment directories.

getMAXFileObjectNames <max_file_name>

returns an array of strings, one for each of the names of the objects in the given MAX file. This provides a way to get a preview list of the objects in another scene file (by name) and allows the user to select objects to be merged under script control using the mergeMAXFile() function, for example.

saveMaxFile <filename_string>

saves the scene to the current MAX scene directory if there is no explicit directory path on the supplied filename.

resetMaxFile () #noPrompt

You can call the resetMAXFile primitive function with an optional #noPrompt argument which, if specified, causes the scene to be reset with no dialog box prompting for verification, for example:

resetMAXFile #noPrompt

holdMaxFile ()

fetchMaxFile ()

importFile <filename> [#noPrompt]

lets you import files using any of the import plug-ins that are available. The kind of file imported is determined by the filename suffix such as DFX for .dxf, 3DS DOS for .3ds, etc.

The #noPrompt flag prevents any configuration or control dialogs from being displatyed, the default configuration is used.

exportFile <filename> [#noPrompt]

lets you export files using any of the export plug-ins that are available. The kind of file exported is determined by the filename suffix such as DFX for .dxf, 3DS DOS for .3ds, etc.

The #noPrompt flag prevents any configuration or control dialogs from being displatyed, the default configuration is used.

saveNodes <node_collection> <filename>

creates a new .max scene file with the given name and stores the node collection to it. The <node_collection> argument can be a single node, an array of nodes, a wild-card pathname, one of the built-in objects sets such as selection or lights, or a <node>.children array.

freeSceneBitmaps ()

frees up all the memory used by the image file bitmap caches. This is useful if memory is fragmented with a lot of different bitmaps and you want to have just the ones currently active reloaded.

enumerateFiles [<max_obj>] <function> [<arg>] \

[#inactive] [#videoPost] [#render] [#missing] \

[#localOnly]

lets you run through all the bitmap files currently used in the scene or in an individual object. You can filter this so it just gives you those for video post or the renderer or the ones that are inactive or missing.

The enumerator works by calling a function you give it once for each of the filenames it finds corresponding to the filters switches and other arguments you set.

The only required argument is the <function> argument. The details are:

<max_obj>

an optional MAX object, such as a node or a material. Supplying this argument causes the enumerator to only consider files associate with this object. See the #localOnly switch for more info.

<function>

the function to be called for each file found. It should be a function of one or two arguments, the first one is the string filename supplied by the enumerator. See example below.

<arg>

if specified is passed to the <function> as its second argument by the enumerator. This is useful if you have a general purpose enumerator function that can be conditioned by the argument you pass in on a particular enumeration, or if you want to pass in an array that the found names should be appended to.

#inactive

include the inactive files

#videoPost

include the files used in video post

#render

include the files used during rendering

#missing

include files that are missing in the filesystem

If you don't specify any of the above filter flags, all the files are enumerated.

#localOnly

use in conjunction with the <max_obj> argument, if specified limits the enumeration to those file directly in the object, if not then any referenced objects are scanned.

For example:

function get_names name a = append a name

files = #()

enumerateFiles get_names files #missing


Text File Input and Output

openFile <filename_string> [ mode:<mode_string> ]

createfile <filename_string>

both these functions return a <file> value. See the class FileStream for details. If they can’t open or create the file, they return undefined.

print <value> [ to: <file> ]

format <format_string> { <value> } [ to: <file> ]

by default, print and format write their output to the Listener window. Use the optional to: keyword argument to direct output to a text file.

The format string is a string that can contain plain text to print interspersed with the '%' percent metacharacter. Each occurrence of a '%' is replaced by the printed representation of the successive argument values following the format string. For example:

format "name:%, pos:%\n" obj.name obj.pos

generating something like:

name: box01, pos: [0, 150.0, 0.5]

Explicit '\n' newlines are needed, so you can build up a line from several format calls and generally control layout better.

sformat <file> <format_string> { <value> }

getSavePath [caption:<window_caption_string>]

filesystem function to display a folder selection browser for the user to select a folder. Returns a string pathname for the selected folder or the value undefined if the user presses Cancel in the folder browser.

getFiles <wild_card_filename>

returns an array of filenames that match the given wild-card name.

getDirectories <wild_card_directory_name>

returns an array of directory paths that match the given wild-card directory name.

deleteFile <file_name>

deletes the named file. Returns true on success, false on failure.

renameFile <old_file_name> <new_file_name>

renames the old file to the new file. This can also be used to move a file between directories. Fails if new file already exists. Returns true on success, false on failure.

copyFile <existing_file_name> <new_file_name>

copies the existing file to the new file. Fails if new file already exists. Returns true on success, false on failure.

makeDir <directory_path>

creates a new directory with the given name Returns true on success, false on failure.

getFilenamePath <full_file_name>

returns the directory path part of a full file name

getFilenameFile <full_file_name>

returns the filename part of a full file name

getFilenameType <full_file_name>

returns the type extension part of a full file name

Examples:

for f in getFiles "3dsmax\\maps\\*.jpg" do deleteFile f

for d in getDirectories "D:\\foo\\*" do

for f in getFiles (d + "*.*") do

copyFile f ("C:\\temp\\" + getFilenameFile f + getFilenameType f)

if (getFiles "foo.max").count == 0 then print "File missing"

encryptScript <script_filename>

creates an encrypted copy of the specified file, with the same name but suffix .mse in the same directory as the source script file. The encryption uses a fixed hidden key that lets it run on any MAX system, but effectively hides the source of the script. Encrypted script files have the suffix .mse.

The Run Script button in the MAXScript panel and the fileIn() function now automatically support .mse encrypted scripts. You can couple this encryption with the hardwareLockID variable and the new encrypted file I/O functions to provide authorization-based protection for your scripts.

Example:

encryptScript "foo.ms"

encryptFile <in_filename> <out_filename> <key>

creates an encrypted copy of the file named by <in_filename> using the integer supplied as a key, naming it <out_filename>

openEncryptedFile <filename> <key>

opens the encrypted file using the given integer key and returns a FileStream value that you can then do read calls on, exactly as you can on FileStreams returned from the openFile() function.

encryptFile() and openEncryptedFile() let you encrypt a text file with your own key and open an encrypted file via a key for reading. Among other things, you can use this to write and read an encrypted file containing a hardware lock ID for doing authorization-based piracy protection.

For example, here's some code that creates an encrypted lock ID file in some authorization process:

f = createFile "lock.tmp"

format "%" hardwareLockID to:f

close f

encryptFile "lock.tmp" "lock.dat" 5476557

deleteFile "lock.tmp"

The following code can be used to read and check the lock ID (obviously, all this is only safe if the creation and checking scripts are themselves encrypted):

f = openEncryptedFile "lock.dat" 5476557

id = readValue f

close f

if id != hardwareLockID then

(

message "Lock ID's don't match"

return 0

)

getMeditMaterial <slot_number>

you can get, but not set, the materials in the material editor slots 1 through 24. The ability to set slots will be added later when supported by the MAX SDK. For example:

foo = getMeditMaterial 3

sceneMaterials

you can retrieve a material library that contains just the materials used in the current scene throught the new MAX system variable. This is a read-only variable. For example:

for m in sceneMaterials do ....

num_matls = sceneMaterials.count

readvalue <file>

read and evaluate next MAXScript <operand> from the file

readexpr <file>

read and evaluate next MAXScript <expr> from the file

readline <file>

read next line, return as string, excluding the terminating ‘\n’

readchar <file>

read next char, return as string

execute <file>

read and evaluate all the expressions in the file

readChars <file> <char_count>

reads the specified number of characters and returns them in a string.

readDelimitedString <file> <string>

takes a delimiter character (as a string) and reads in characters until the delimiter is found (or end-of-file is reached) and returns the characters in a string.

skipToString <file> <string>

takes a character string and scans forward in the file until it finds an occurrence of the string and positions the file just after that string. If the string is not found, the function returns the value undefined.

skipToNextLine <file>

positions the input file at the beginning of the next line


Listener Log File Control

openlog <filename_string> [mode: "w" | "a"] [outputOnly: <boolean>]

create's a text file and copies Listener activity to it. Default mode is to create; specify "a" to append to an existing file. Both input and output are logged by default; specify outputOnly:true to just get program output.

flushlog ()

ensures the log's buffers are flushed so that all output up to this point is out in the file

closelog ()


Standard Open and Save File Dialogs

getOpenFileName [caption:<title>] [filename:<seed_filename>]

getSaveFileName [caption:<title>] [filename:<seed_filename>]

both functions return a fully-specified file pathname or undefined if the user canceled out.

filenameFromPath <filename_string>

this functions strips just the filename part out of a full file pathname, useful for labelling file buttons in rollout panels


Editor and Compiler Access

edit <filename_string>

opens a script editor on the named file

newScript ()

opens an empty script editor window and returns a WindowStream value that may be used as the target for print and format operations. This is useful for directing output to a separate window for ease of inspection or editing or later saving to a file. Output to a WindowStream is inserted at the current cursor position in that window. For example:

debug = newScript ()

...

print $foo to:debug

...

format "name is %\n" obj.name to:debug

filein <filename_string> [quiet: <boolean>]

opens the text (script) file and executes it all. It does this one expression at a time, and halts processing if an error is encountered at any point. By default, the file is not listed as it is loaded; use quite:false to get a running listing to the Listener.

include <filename_string>

open the file and insert it into the Listener without executing it.

execute <string>

compile and execute code in a string. For example:

execute "2 + 2"      -- yields the value 4

str = "$foo.ffd_2x2x2.control_point_" +

n as string + " = [1,1,1]"

execute str

The result of an execute() call is the result of the last expression in the string argument.

You can use execute() as a temporary work-around to the current limitation in naming scene objects - there is currently no way to name an object using a computed name. For example:

obj = execute ("$foo/" + child_name)

would retrieve the child of $foo named in the variable child_name. Here's a more complex example:

side = "left"

finger = 2

limb = "arm"

obj = execute ("$torso/" + limb + "/" +

side + "/finger/" +

finger as string)

In a future release, pathnames will be enhanced to allow the use of computed path elements.


Progress Bar Display

This group of functions let you display a progress bar for operations that may be time consuming, similar to the progress bar MAX uses for IK, Preview Rendering and Reduce Key computations. The functions are:

progressStart "caption"

Initially displays the progress bar with the caption given.

progressUpdate <percent>

Updates the bar display to show the given percentage complete (in the range 0-100). This function also checks to see if the user has hit the Cancel button in the progress bar and returns true if the computation should continue and false if the user has requested a cancel. You can also call getProgressCancel(), described below, to check the cancel status, which is a low overhead function and so may be called more frequently than progressUpdate().

progressEnd ()

Signals the end of the operation and removes the progress bar display.

getProgressCancel ()

A low-overhead function that checks whether the user has cancelled the operation via the Cancel button in the progress bar. You may want to call this function frequently within deep loops in your code to reduce cancel latency for the user, because you should only call progressUpdate() as needed to show significant progress bar changes to keep overhead low. The getProgressCancel() function, as well as progressUpdate(), displays a confirmation dialog if the use hits the cancel button and returns the cancel status from that confirmation. Unlike progressUpdate(), this function returns true if the user has made a confirmed cancel request and false otherwise.


Executing DOS Commands

MAXScript provides a function that will take a DOS command in a string and send it to the system for execution. It has the form:

DOSCommand "<command-string>"

Examples:

DOSCommand "delete c:temp\foo.dat"

DOSCommand ("copy " + source_file + " " + dest_folder)

You can use this function to launch other programs, for example, or perform such tasks as gathering all the material texture and displacement image files in your scene into one folder.

The DOSCommand() function returns an integer which is the status result returned by the executed system command.


System Globals

pi

e

true

false

on -- synonym for true

off -- synonym for false

undefined

unsupplied

x_axis

y_axis

z_axis

?      -- the last result in Listener


MAX System Globals

These globals give you access to state information in the MAX system. You can both access and assign to them.

animationRange

a time Interval value

ticksPerFrame

an <integer>

frameRate

an <integer> in frames per second

currentMaterialLibrary

a MaterialLibrary

activeGrid

a <node>

currentTime

the time as set by the at time context expression currently in force. This is useful in functions that need to do time-relative computations that may be called from code that sets working animation time. You can read but not set the value in this variable.

sliderTime

the time given by the current position of the MAX time slider. You can assign time values to this variable to reposition the time slider in the MAX UI.

selectionSets

contains an array of all the current node selection sets in the Named Selection Set dropdown on the MAX toolbar

hardwareLockID

gives access to the current MAX hardware lock number and yields the hardware lock ID as an integer. This variable is read-only.

maxFileName

returns the filename for the currently open scene as a string. This variable is read-only.

maxFilePath

takes and returns a string. This variable is read-only.

editorFont

takes a string, the name of an existing font, and returns the font face name for the Script Editor window as a string. This variable is read-write and effects all currently open and future Script Editor and MAXScript Listener windows during the current session of MAX. You can permanently change the default value from "Courier New" to another font in your startup.ms boot script, for example:

editorFont = "Fixedsys"

editorFontSize

takes an integer and returns the font point size for the Script Editor window as an integer. This variable is read-write and effects all currently open and future Script Editor and MAXScript Listener windows during the current session of MAX. You can permanently change the default value from fontsize 12 to another size in your startup.ms boot script, for example:

editorFontSize = 14

editorTabWidth

takes an integer and returns tab width (in characters) for the Script Editor window as an integer. This variable is read-write and effects all currently open and future Script Editor windows during the current session of MAX. You can permanently change the default value from tabwidth 4 to another width in your startup.ms boot script, for example:

editorTabWidth = 8

renderer

lets you switch between the draft and production renderers and test which one is active. Takes and returns the values #draft or #production, for example:

if renderer == #draft then ...

renderer = #production

render camera:c ...

hotspotAngleSeparation

this is the Hot Spot/FallOff Angle Separation value that is set in the Rendering Preferences panel. This variable is read-only.

Predefined Color Variables

red

green

blue

white

black

orange

yellow

brown


MAXScript System Globals

These globals give access to system state information for MAXScript. You can access and assign to them as noted.

heapSize

the size of the heap currently allocated to MAXScript. MAXScript carves its own working memory (called a heap) out of the memory that MAX has in order to implement the automatic garbage collection scheme. You can add to this heap at any time by assigning the new size to this system variable, as in:

heapSize += 1000000      -- another meg please

heapFree

returns the current amount of free memory in the MAXScript heap. This value will change up and down constantly depending on where MAXScript is in its collection regime.

scriptsPath

gives you the full directory path to the current Scripts folder. This variable is read-only.


OLE Automation

OLE Server

OLE Automation capability is provided in MAXScript that allows MAX to act as an OLE Automation server for applications such as Visual Basic, Excel, Paradox, etc. With it, you can publish MAXScript functions that can then be called from OLE Automation clients like VB and Excel to generate models or animations or return data from the current scene, etc. There is an example supplied with this release that defines a set of simple business graphing MAXScript functions and an Excel spreadsheet with some Excel VB-scripted menus that will pass a selection of cells across to these MAXScript functions to generate an animated bar chart.

This facility has the following features and limitations:

  • It exposes a single server object to which you can attach a list of MAXScript functions that then appear as the methods of that object to an OLE Automation client. Future releases will allow you to construct any number of OLE Automation objects and give them any number of interfaces.
  • It is registered as a separate process, local server supporting multiple use of its exposed object.
  • It does not support in-place activation or object linking and embedding and provides no containers for other OLE objects. In future versions, you will be able to pass rendered images and animations to OLE clients for direct linking and embedding.
  • It supports only the IDispatch form of interface with no accessible type information -- clients need to declare their reference to the MAX server object as an untyped generic object.
  • It supports the following method argument and result data types:

integers

reals (floats)

currency

string

boolean

Future releases will support arrays and possibly other data types.

  • You need to have MAX running and MAXScript activated before OLE Clients can access X. In the current release, MAXScript is activated (and the startup.ms script run) when you first access its Utility command panel rollout.
  • You need to register MAX with Windows as an OLE server using the registration script supplied with this release. See the instructions in the Setting Up MAXScript OLE Automation for details.

OLE Client

With the current OLE Automation client system, you can use MAXScript to create OLE Automation (now called Active-X) objects within MAX and control OLE Automation servers, such as making an Excel spreadsheet and inserting MAX object info directly into cells there.

The function createOLEObject() lets you use for establishing a connection to OLE Auto Servers. For example,

xl = createOLEObject "Excel.Sheet"

will open a connection to Excel and create a sheet object and put it in the variable xl. The single argument to this function is an OLE progID string. You can then access properties and call methods on the new OLE object. For example,

xl.application.name

will return

"Microsoft Excel"

and

xl.application.visible = true

will make Excel visible on the desktop. You get properties on OLE objects, just as you do in MAXScript. You also refer to OLE methods as properties of an OLE object. For example, the Sheet has a method 'cells' which takes a cell coordinate and returns a Cell OLE object.

xlc = xl.cells 1 1

puts the top-left-hand cell into xlc. Set its value like this:

xlc.value = 123.45

Currently, only IDispatch interfaces are supported and not all meaningful data types can be sent back and forth. Look for a more complete implementation and a big example in a future release.


Setting Up MAXScript OLE Automation

In order to use the OLE Automation features in MAXScript, you need to register MAX as an OLE Automation server in the system registry:

  1. Open the Maxscrpt.reg file that shipped with 3D Studio MAX in Notepad.
  2. Edit this registry entry file to make sure it references the correct MAX executable. Make sure the last line specifies the correct location for your 3DS MAX executable. The supplied .reg files points to c:\3dsmax\3dsmax.exe by default.
  3. Save the file and exit Notepad.
  4. Locate the Maxscrpt.reg registry file in Windows Explorer and double-click it to open the file in the Registry Editor.

This registers MAX as an OLE server. You need to do this on all the systems you expect to run MAX as an OLE server.

For more information, see the following topics:

Exposing MAXScript Functions

MAX-Specific Errors

Running the OLE Demo


Exposing MAXScript Functions

The list of OLE Automation-callable MAXScript functions is defined using the registerOLEInterface() function. It takes an array of functions to be exposed:

registerOLEInterface <array_of_fns>

For example:

registerOLEInterface #(get_object_count,

get_object_name,

get_object_position)

Each time you call this function, it replaces the current set of exposed functions with the new set -- it does not add to the existing set. The functions you expose should limit themselves to passing and returning only the following data types: integers, reals (floats), currency, string, and boolean.


MAX-Specific Errors

There are two errors that may be reported to OLE clients when calling exposed MAXScript functions that are specific to MAX:

#512 -- an exception or interrupt occurred while running the called function

#513 -- the called function attempted to return an unsupported data type


Running the OLE Demo

The example supplied consists of 2 files:

ole.ms -- a MAXScript script containing a grapher interface

oledemo.xls -- an Excel spreadsheet with some data and a VBA script to call the grapher

To run the example, make sure you've registered MAX as an OLE server as described in the Setting Up MAXScript OLE Automation topic, start MAX and open the ole.ms script file in a script editor window. You'll see it contains definitions for six functions and a call to registerOLEInterface() to expose some of those functions. Select the whole script and hit number pad ENTER to evaluate it. This defines the functions and exposes them through OLE.

Start Excel and open the oledemo.xls spreadsheet (in the scripts directory). It contains one worksheet and one module sheet and defines a new Max menu. The worksheet contains some example data to be charted and the module sheet contains the VBA scripts that implement the menu items in the new MAX menu.

Bring up the sheet1 worksheet. It contains a table of numbers representing quarterly sales figure for a number of regions. Drag-select all the label and figure cells and choose the Max > Build Animated Chart menu. This opens a connection to MAX and passes the selected column labels and figures to the appropriate functions in the exposed interface. It then brings MAX to the front which chugs away for a bit building the labeled bar chart and animating the bars over the range of quarters given. Drag the slider to see the bars animate. Business graphs in MAX!

The Max > Render Movie menu in Excel invokes another of the exposed MAXScript functions that creates and animates a camera in the bar chart scene and then sets off a render to an AVI file. (If you want to interrupt the render, hold down the ESC key until it stops at the beginning of the next frame - currently the MAXScript renderer interface only looks at the escape key between frames).


MAXScript Grammar

Here is the complete grammar in EBNF form. It differs slighlty in factoring from the syntax forms given in this online reference, so that all precedence is explicit in the rules.

<program>      ::=      <expr>

<expr>      ::=      <simple_expr>

          <assignment>

          <if_expr>

          <while_loop>

          <do_loop>

          <for_loop>

          <loop_exit>

          <variable_decls>

          <function_def>

          <function_return>

          <context_expr>

          <on_change>

          <max_command>

          <utility>

<variable_decls>      ::=      ( local | global ) <decl> { , <decl> }

<decl>      ::=      <name> [ = <expr> ]

<assignment>      ::=      <destination> = <expr>

          <destination> += <expr>

          <destination> -= <expr>

          <destination> *= <expr>

          <destination> /= <expr>

<destination>      ::=      <name>

          <property>

          <index>

<if_expr>      ::=      if <expr> then <expr> [ else <expr> ]

          if <expr> do <expr>

<while_loop>      ::=      while <expr> do <expr>

<do_loop>      ::=      do <expr> while <expr>

<loop-exit>      ::=      exit [ with <expr> ]

<for_loop>      ::=      for <name> ( in | = ) <source> (do | collect) <expr>

<source>      ::=      <expr> to <expr> [ by <expr> ] [ where <expr> ]

          <expr> [ where <expr> ]

<function_def>      ::=      (function | fn) <name> { <argument> } = <expr>

<argument>      ::=      <name>

          <name>: [<operand>]

          -- keyword arg with optional default value

<function_return>      ::=      return <expr>

<context_expr>      ::=      <context> { , <context> } <expr>

<context>      ::=      [ with ] animate <boolean_expr>

          with redraw <boolean_expr>

          with pivot <boolean_expr>

          at level <operand>

          at time <operand>

          in <operand>

          [ in ] coordys ( local | world | parent | <operand> )

          about ( pivot | selection | coordsys | <operand> )

          undo <boolean_expr>

<utility>      ::=      utility <name> <string> ( { <utility_clause> } )

<utility_clause>      ::=      local <decl> { , <decl> }

          <rollout_item>

          <rollout_handler>

<rollout_handler>      ::=      on <name> <name> { <name> } do <expr>

<rollout_item>      ::=      label <name> [ <string> ] { <name>: <operand> }

          button <name> [ <string> ] { <name>: <operand> }

          spinner <name> [ <string> ] { <name>: <operand> }

          pickbutton <name> [ <string> ] { <name>: <operand> }

          radiobuttons <name> [ <string> ] { <name>: <operand>}

          checkbox <name> [ <string> ] { <name>: <operand> }

<simple_expr>      ::=      <and> { or <and> }

<and>      ::=      <not> { and <not> }

<not>      ::=      [ not ] <compare>

<compare>      ::=      <plus> { == <plus> }

          <plus> { != <plus> }

          <plus> { > <plus> }

          <plus> { < <plus> }

          <plus> { >= <plus> }

          <plus> { <= <plus> }

<plus>      ::=      <term> { + <term> }

          <term> { - <term> }

<term>      ::=      <power> { * <power> }

          <power> { / <power> }

<power>      ::=      <conversion> { ^ <conversion> }      -- right-associative

<conversion>      ::=      <function_call> as <factor>

<function_call>      ::=      <operand> ()

<operand> { <parameter> }+      -- up to an end of line or lower

          -- precedence token

<parameter>      ::=      <operand>

          <name>: <operand>

<operand>      ::=      <factor>

          <property>

          <index>

<property>      ::=      <operand> . <name>
               -- properties and indexes left associate

<index>      ::=      <operand> [ <expr> ]

<factor>      ::=      <number>

          <string>

          <path_name>

          <name>

          <array_literal>

          on

          off

          -<expr>      -- unary minus

          ( <expr> )      -- nested expression

          <expr_seq>

          ?      -- last Listener result

          '<factor>

<expr_seq>      ::=      ( <expr> { (; | <eol>) <expr> } )

<point3_literal>      ::=      [ <expr>, <expr>, <expr> ]

<array_literal>      ::=      #()

          #( <expr> { , <expr> } )

<name_literal>      ::=      #<name>

<path_name>      ::=      $<path>

<path>      ::=      [ / ] [ <levels> ] <level_name>

<levels>      ::=      <level> { / <level> }

<level>      ::=      <level_name>

          ...

          '<any_characters>'

<level_name>      ::=      { <alphanumeric > | _ | * | ? | \ }


MAXScript Tutorial

This section explains the different parts of the MAXScript demo.ms to help you get started with MAXScript.

<<Beta: Until this topic is delivered, use the demo.ms script in Notepad and study the comments that describe this script in detail.>>


MAXScript SDK

The MAXScript SDK extends the MAXScript functionality to 3rd-party MAX plug-ins and plug-in developers. It is not meant for the casual MAX user. The following topics describe the SDK:

DLL Setup

Libraries

Build Configurations

MAXScript Value Constructors

Distinguished Values

Coercion to C++ Types

Protecting Newly Created Values from the Collector

Collector-Safe Value Local Macros

Value Local Arrays

Marking Values as Permanent or Collectable

Scripter-Callable Functions

Working with MAX Objects in the SDK

Constructing Wrappers

Retrieving Wrapped Objects

Handling Deleted Objects

MAX ClassIDs and Superclass IDs

The MAXClass Constructor

classOf() and superClassOf() Methods for MAX Objects

Collection Mapping

Array Access and Construction

Stream I/O

Access to the Compiler and Interpreter

Calling Scripted Functions

MAXScript Header Files

Core Names


DLL Setup

MAXScript plug-in extensions are packaged as Win32 DLL's in almost exactly the same way as standard MAX plug-ins. They are named with a specific suffix to fit in with the MAX plug-in naming scheme (.DLX) and should be installed in one of the MAX plug-in directories. MAXScript looks for and loads all the *.DLX files it finds in the MAX plug-in directories.

You should be familiar with the section on MAX plug-in construction in the MAX SDK documentation because the following notes primarily describe what is different about setting up MAXScript plug-ins.

The plug-in's external interface is defined with a .DEF file, as are MAX plug-ins, but in this case there are only three entry points:

LIBRARY <plugin_name>

EXPORTS

LibDescription @1

LibInit @2

LibVersion @3

SECTIONS

.data READ WRITE

The LibDescription and LibVersion entry points are the same as for MAX plug-ins. The LibInit entry is called by MAX after MAXScript has loaded itself and all its .DLX plug-ins so that each can perform any runtime initialization. MAXScript is fully functional at the time these init functions are called.

The following code shows a typical DLX entry point implementation (this is from sample.cpp in the SDK). All of the required headers are included by the master header file, MAXscrpt.h, including Max.h for MAX SDK-related code.

#include "MAXScrpt.h"

HMODULE hInstance;

BOOL APIENTRY

DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)

{

static BOOL controlsInit = FALSE;

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

// Hang on to this DLL's instance handle.

hInstance = hModule;

if (!controlsInit)

{

controlsInit = TRUE;

// Initialize Win95 controls

InitCommonControls();

}

break;

}

return(TRUE);

}

__declspec( dllexport ) void

LibInit()

{

// do any setup here. MAXScript is fully up at this point.

}

__declspec( dllexport ) const TCHAR *

LibDescription()

{

return _T("Sample MAXscript DLX");

}

__declspec( dllexport ) ULONG

LibVersion()

{

return VERSION_3DSMAX;

}

If any Win32 common controls or MAX custom controls are to be used in the DLL, you should initialize them during process attach, in the same way you would in a MAX DLL. For the LibVersion entry point, you should return the current 3DSMAX version as shown.


Libraries

The MAXScript SDK API is defined in the various headers and the import library, Maxscrpt.lib, supplied with the SDK. You should add this library to your project along with any MAX SDK import libraries needed to support MAX SDK use. The header files are described in the MAXScript Header Files topic.


Build Configurations

For the moment, there is no Debug version of the SDK. You should configure VC++ builds as you would Hybrid MAX SDK plug-in builds (that is, exactly as Debug with code generation set for Multi-threaded DLL rather than Debug Multi-threaded DLL).


MAXScript Value Constructors

In the course of adding new functions and classes to MAXScript, you will encounter the need to create MAXScript values, perhaps to pass back results or to work with other parts of the MAXScript API. This topic describes the MAXScript value classes, their constructors and how to cooperate with the automatic garbage collector.

All computable values in MAXScript are instances of classes derived from Value. MAXScript is polymorphic across all Value subclasses. These values are allocated in a separate, garbage collected heap, and carry their own runtime typing info.

All non-static instances of the Value class family should be heap-allocated with the 'new' operator or one of the following intern() functions so that garbage collection will work.

Certain classes with immutable instances provide interning functions in place of C++ constructors that may implement caches or other interning mechanisms. In particular, Name instances are always be created with Name::intern() to ensure pointer equality on names.

static Value* Float::intern(float init_val);

static Value* Integer::intern(int init_val);

static Value* Name::intern(char* str);

static Value* Name::find_intern(char* str);

static Value* MSTime::intern(TimeValue t);

AngAxisValue (const AngAxis& iaa);

AngAxisValue (const Matrix3& m);

AngAxisValue (const Quat& q);

AngAxisValue (float angle, Point3 axis);

AngAxisValue (float* angles);

AngAxisValue (Value* angle, Value* axis);

AngAxisValue (Value*);

Array (int init_size);

ColorValue (AColor col);

ColorValue (BMM_Color_64& col);

ColorValue (Color col);

ColorValue (COLORREF col);

ColorValue (float r, float g, float b, float a = 1.0f);

ColorValue (Point3 col);

ColorValue (Point3Value* col);

EulerAnglesValue(const AngAxis&);

EulerAnglesValue(const Matrix3&);

EulerAnglesValue(const Quat&);

EulerAnglesValue(float ax, float ay, float az);

Matrix3Value (const AngAxis& aa);

Matrix3Value (const Matrix3& im);

Matrix3Value (const Point3& row0, const Point3& row1,

const Point3& row2, Point3& row3);

Matrix3Value (const Quat& q);

Matrix3Value (float* angles);

Matrix3Value (int i);

MSInterval (Interval i);

MSInterval (TimeValue s, TimeValue e);

Point2Value (float x, float y);

Point2Value (POINT ipoint);

Point2Value (Point2 ipoint);

Point2Value (Value* x, Value* y);

Point3Value (float x, float y, float z);

Point3Value (Point3 init_point);

Point3Value (Value* x, Value* y, Value* z);

QuatValue (AngAxis& aa);

QuatValue (const Quat& init_quat);

QuatValue (float w, float x, float y, float z);

QuatValue (float* angles);

QuatValue (Matrix3& m);

QuatValue (Value* val);

QuatValue (Value* w, Value* x, Value* y, Value* z);

RayValue (Point3 init_origin, Point3 init_dir);

RayValue (Ray init_ray);


Distinguished Values

There are several distinguished values in MAXScript that are implemented as static instances of their classes, as follows:

Undefined undefined;

Ok ok;

Unsupplied unsupplied;

Boolean true_value;

Boolean false_value;

Because these are static instances, you need to remember to work with their addresses:

return &ok; // return the ok value

if (val == &true_value) // value true?

...


Coercion to C++ Types

The Value class defines the following virtual functions for converting selected Value instances to appropriate C++ types. Value subclasses implement the converters that make sense for them. Attempting an unsupported conversion will generate a descriptive MAXScript runtime error.

In most cases, MAXScript Value classes act as wrappers for C++ types and classes. Converters that yield pointer types all return pointers to the value being wrapped, so take care when modifying the data and be aware that the collector may invalidate the pointer underneath you (the topic Protecting Newly Created Values from the Collector shows you ways to prevent this). At the moment, the collector is synchronous and will only run if needed during an allocate, but may become asynchronous in later releases.

class Value

virtual float to_float();

virtual char* to_string();

virtual int to_int();

virtual BOOL to_bool();

virtual Point3 to_point3();

virtual Point2 to_point2();

virtual AColor to_acolor();

virtual INode* to_node();

virtual Ray to_ray();

virtual Interval to_interval();

virtual Quat to_quat();

virtual AngAxis to_angaxis();

virtual Matrix3& to_matrix3();

virtual float* to_eulerangles();

virtual Mtl* to_mtl();

virtual Texmap* to_texmap();

virtual Modifier* to_modifier();

virtual TimeValue to_timevalue();

virtual Control* to_controller();


Protecting Newly Created Values from the Collector

Value family instances created in running C++ code are immediately visible to the collector. The collector cannot see references in plain C++ local or global variables, so to prevent them from being collected while just in C++ variables, you can use the following macros to ensure the collector leaves them alone. You also need to do this if you take a value out of some structure such that nothing else is referencing it and still want to keep hold of it in a C++ variable.

An important convention is that values you get in arguments passed to you are guaranteed to be protected by someone up the call chain. You must ensure this convention holds yourself for any function you call.

See also:

Collector-Safe Value Local Macros


Collector-Safe Value Local Macros

The general approach is to declare special C++ local variables that are known by the collector to contain protected values. You declare them with one of the following macros:

one_value_local(name);

two_value_locals(name1, name2);

three_value_locals(name1, name2, name3);

... etc., up to eight locals.

They are declared as type Value* to be able to hold any MAXScript value. There are also explicitly typed variants:

one_typed_value_local(type name);

two_typed_value_local(type1 name1, type2 nam2);

...

For example,

two_typed_value_locals(Array* result, String* item);

These locals are implemented as members in a local struct named 'vl', so you work with them as members of that struct:

two_typed_value_locals(Array* result, String* item);

...

vl.result = new Array (5);

...

vl.item = new String ("foo");

...

vl.result->append(vl.item);

...

There can be only one value_local declaration macro per C++ block.

Value locals variables must be explicitly dismissed before the block is exited. One way to do this is with the macro:

pop_value_locals();

At this point, the collector protection is lost. In some cases, however, you want to return one of the new values as the result and this value must continue to be protected from the collector. The macro:

return_value(r);

will do this. It both dismisses the value locals and places the return value in a protected area. This return value protection will last as the value passes out through any number of levels of return until the next return_value() use.

In another case, you may have taken a value out of some rooted structure (say an array in a MAXScript global) and want to hand that back as a function result. To protect it against being collected if, for example, that rooted structure gets dropped, you can use the macro:

return_protected(r);

which protects the return value as does return_value(), but doesn't dismiss any value locals.

All functions in the MAXScript core that return potentially new values, including all the new operators, use one of these return value protection schemes. Since this means that a new value returned to you is safe until another function call or operation that might create another new value, you can forego the value_local protection in those cases in which you are immediately returning the new value.

One thing to note about these protected variables is that they are considered to be part of the root set and are scanned by the collector for internal references, so you only need to protect the top-level object if you are constructing some tree of values.

There are some examples of these macros in use in the Scripter-Callable Functions topic.


Value Local Arrays

Sometimes, the number of new locals to be protected is unknown at compile time. To handle this, you can use the following macros that create protected arrays of values. One form creates the array on the stack using _alloca() and so is useful inside one function call, the other puts the array in the heap and so can be used across functions.

In both cases, you also need to declare a Value** variable to hold the pointer to the array.

Stack-resident

value_local_array(pointer_var, count);      // allocate

pop_value_local_array(pointer_var);      // dismiss

Heap-resident

value_temp_array(pointer_var, count);      // allocate

realloc_value_temp_array(pointer_var, count, old_count); // grow

pop_value_temp_array(pointer_var);      //dismiss

For example,

Value** items;

...

value_local_array(items, n);

...

for (int i = 0; i < n; i++)

items[i] = Float::intern(data[i]);

...

pop_value_local_array(items);

...


Marking Values as Permanent or Collectable

You can also mark a value as permanent by calling the make_permanent() member function on it:

vl.foo->make_permanent();

From then on the value is in the root set and will be scanned for internal references but is not eligible for collection. This operation is fairly heavy-weight and so should not be used in place of value_local variables.

You can also make a permanent value collectable again by calling the member function make_collectable():

foo->make_collectable();


Scripter-Callable Functions

Scripter-callable functions are represented by instances of the Function family of classes. These descend from Value and so are all first-class values in MAXScript. For the moment, this document only describes non-polymorphic primitive functions, of which there are three kinds. A future release will describe how to add new classes to MAXScript and how to define polymorphic (or generic) functions for those classes.

Primitive functions are defined using one of the three declaration macros:

def_visible_primitive(fn, name);

def_mapped_primitive(fn, name);

def_lazy_primitive(fn, name);

corresponding to the 3 primitive function types. Mapped primitives are automatically mapped over collection first arguments and lazy primitives have their arguments delivered as unevaluated code fragments (see the Access to the Compiler and Interpreter topic for more details).

The first argument to these macros is the implementing C++ function, the second is a string literal giving the scripter-visible name for the function. This string winds up naming a MAXScript global variable that contains the Primitive instance representing the function.

All the def_x macros have several replaceable definitions in different header files. One is used to statically instantiate the Primitive object that represents the function, another to create externs in a header file. The convention throughout the MAXScript codebase is to gather sets of related scripter function definitions in 'protocol' files (eg, mathpro.h) and include in various places with different def_x macro definitions in force.

The def_x macro definition headers relevant to Primitive function defs are as follows:

"defextfn.h"      - generate externs from def_x macros

"definsfn.h"      - generate static instances from def_x macros

A side-effect of using the instantiating form of the def_ macros is that a scripter global variable named by the second argument is automatically created and loaded with the representing instance; you don't have to do anything else to make them visible in the scripter.

Example:

#include "definsfn.h"

def_visible_primitive( open_file,"openFile");

def_visible_primitive( query_box,"queryBox");

def_lazy_primitive ( quote,"quote");

def_mapped_primtive ( dump,"dump");

The implementing C++ functions you provide to these macros must have the following signature to conform to scripter calling conventions:

Value* func_cf(Value** arg_list, int count);

Further, the C++ function name is a derivative of the name given in the def_x macro (to avoid some naming conflicts). It is constructed by appending '_cf' to the name give, so:

def_visible_primitive( open_file, "openFile");

would refer to:

Value* open_file_cf(Value** arg_list, int count) { ... }

The arguments from the script call are delivered in call order in the arg_list array which is count Value*'s long. The function must return a Value*, which for otherwise void functions, should be the distinguished value ok.

Note that the caller-protects-new-values convention means that values in the arg_list array are already protected from the collector.

There is no implicit type or argument checking in this calling mechanism - you have to do it yourself in the called function. There are several macros to help with this:

check_arg_count(fn_name, wanted_count, got_count);

type_check(val, class, fn_name_or_description);

Example:

Value* open_file_cf(Value** arg_list, int count)

{

// check we have 1 arg and that it's a string

check_arg_count(openFile, 1, count);

type_check(arg_list[0], String, "openFile filename");

...

char* fn = arg_list[0]->to_string();

...

}

In this example, you could have left out the type_check() and let the to_string() converter complain if it didn't have a string, but the error message might be less descriptive.

MAXScript functions also support keyword argument passing. The keyword arguments are placed in the arg_list after all the positional args, preceded by a marker value (accessible in the Value* global, keyarg_marker). The arguments are passed in pairs, a keyword Name and the argument's value, one after the other in the arg_list array.

There are several macros to help extract keyword arguments. All assume that the C++ function parameter names are 'arg_list' and 'count' as shown in the above examples.

key_arg(key);

get the named arg value or &unsupplied if not present

key_arg_or_default(key, def);

get the named argument or the the default value 'def' if not supplied

int_key_arg(key, var, def);

get named key arg into Value* 'var' variable and return it as a C++ int, return 'def' if not supplied.

float_key_arg(key, var, def);

get named key arg into Value* 'var' variable and return it as a C++ float, return 'def' if not supplied.

bool_key_arg(key, var, def);

get named key arg into Value* 'var' variable and return it as a C++ BOOL, return 'def' if not supplied.

There is also a macro for checking positional argument counts in the presence of keyword args:

check_arg_count_with_keys(fn, wanted, got);

Examples

The following 'delete_file' example shows an arg count check, conversion of first argument (arg_list[0]) to a string and the return of MAXScript 'true' or 'false' values.

def_visible_primitive(delete_file, "deleteFile");

...

Value*

delete_file_cf(Value** arg_list, int count)

{

// deleteFile "file_name"

check_arg_count("deleteFile", 1, count);

BOOL result = DeleteFile(arg_list[0]->to_string());

return result ? &true_value : &false_value;

}

The 'file_in' example shows working with an optional keyword argument 'quiet'. The required arg count is checked with check_arg_count_with_keys() in this case.

Two typed value locals are declared, one to hold the temporary FileStream instance and the other to hold the fileIn result.

def_visible_primitive(file_in, "fileIn");

...

Value*

file_in_cf(Value** arg_list, int count)

{

// fileIn "filename" [quiet:true]

check_arg_count_with_keys("fileIn", 1, count);

two_typed_value_locals(FileStream* file, Value* result);

Value* quiet = key_arg_or_default(quiet, &true_value);

type_check(quiet, Boolean, "fileIn quiet:");

Value* result;

// open a temp fileStream

vl.file = (new FileStream)->open(arg_list[0]->to_string(), "rt");

if (vl.file == (FileStream*)&undefined)

throw RuntimeError (GetString(IDS_FILEIN_CANT_OPEN_FILE),

arg_list[0]);

// pass it to the stream-based file_in

try

{

vl.result = file_in(vl.file, (quiet == &true_value));

}

catch (...)

{

// catch any errors and close the temp filestream

vl.file->close();

throw;

}

// pop value locals & return fileIn result

return_value(vl.result);

}

The implementation of the file_in() function is given as another example later in these notes.

Useful Globals

Interface* MAXScript_interface;      -- MAX interface object

Exported Value* Virtual Functions

void      print();      -- print representation to listener

void      sprin1(CharStream* s);      -- print representation on stream with no
          -- terminating \n

Listener Window I/O

mputs(char*);      -- print string to listener

mprintf(char* fmt, ...);      -- printf to listener

MAXScript Exception Classes

Compile and runtime errors are reported in MAXScript using the C++ exception-handling mechanism. A MAXScript exception class hierarchy is defined for these errors, as follows:

class MAXScriptException

class UnknownSystemException

class SignalException

class CompileError

class SyntaxError

class TypeError

class NoMethodError

class AccessorError

class AssignToConstError

class ArgCountError

class RuntimeError

class IncompatibleTypes

class ConversionError

Common exception constructors:

AccessorError (Value* target, Value* prop)

ArgCountError (char* fn_name, int wanted, int got);

ConversionError (Value* val, char* typename);

IncompatibleTypes (Value* v1, Value* v2);

RuntimeError (char* description);

RuntimeError (char* desc_part1, char* desc_part1);

RuntimeError (char* description, Value* implicated_value);

RuntimeError (char* desc_part1, char* desc_part1,

Value* implicated_value);

RuntimeError (Value* implicated_value);

TypeError (char* descr, Value* wrong_val,

      ValueMetaClass* should_be = NULL);

An error is signalled by throwing one of these exceptions, for example:

if (arg_list[0]->to_int() > max_index)

throw RuntimeError ("Index out of range: ", arg_list[0]);


Constructing Wrappers

There are three ways to make wrapper values for a MAX object you have in hand, depending on how much you know about what kind of object it is.

  1. If you know its an Object* or Control* or Modifier*, etc., you can use a wrapper class constructor directly. The available constructors are:

MAXNode      (INode* node);

MAXModifier (Modifier* mod);

MAXControl (Control* cont, ParamDimension* dim);

MAXControl (Control* cont);

MAXObject (Object* obj);

MAXKey (Control* icont, int ikey, ParamDimension* dim);

MAXKey (Control* icont, int ikey);

MAXMaterial (Mtl* imat);

MAXMultiMaterial (MultiMtl* imat);

MAXMaterialLibrary (MtlBaseLib& ilib);

MAXMaterialLibrary (MtlBaseLib* ilib);

MAXMaterialLibrary ();

MAXTexture (Texmap* imap);

MAXBitMap ();

MAXBitMap      (BitmapInfo bi, Bitmap* bm);

  1. If you know you have a ReferenceTarget*, you can use the static member function:

static MAXClass::make_wrapper_for(ReferenceTarget* ref);

This looks at ClassIDs and SClassIDs inside the object and chooses the appropriate wrapper class.

  1. If you want to wrap a subanim inside a known ReferenceTarget*, you can use the MAXSubAnim constructor:

MAXSubAnim (ReferenceTarget* ref, int subanim_num);

Remember, these all construct new MAXScript values in the MAXScript heap, subject immediately to potential collection. You have to use one of the protection schemes mentioned in the Protecting Newly Created Values from the Collector topic to ensure the value is not collected while you are still working with it.


Retrieving Wrapped Objects

You can get MAX objects out of MAXScript wrapper values in several ways:

  1. Using one of the coercion virtual functions that are implemented on the appropriate wrapper classes:

virtual INode*      to_node();

virtual Mtl* to_mtl();

virtual Texmap* to_texmap();

virtual Modifier* to_modifier();

virtual Control*      to_controller();

For example,

INode* node = arg_list[0]->to_node();

  1. Using the general purpose MAXWrapper virtual function, get_max_object():

virtual ReferenceTarget* get_max_object();

Note that this function will retrieve the base object in a node inside a MAXNode wrapper value, rather than the INode itself. The reason for this is explained in the MAX ClassIDs and SuperclassIDs topic.

  1. Using the ReferenceMaker member function, GetReference(). All MAXWrapper objects store their MAX-side object reference as reference 0, so:

ref = arg_list[1]->GetReference(0);


Handling Deleted Objects

There is a potential in MAXScript for a wrapper value to reference a deleted MAX object. This might happen, for example, if a MAX global variable contains a MAXNode value and the user interactively deletes the object that the MAXNode references. It is critical for any code that works with wrapper values to first check to make sure the wrapped MAX objects are not deleted using the macro:

deletion_check(val);

which takes a MAXWrapper derived class instance. This macro will throw an appropriate runtime error if the MAX object referenced by 'val' is deleted. If you want to handle the error reporting yourself or perform some conditional code, you can test the MAXWrapper public data member, ref_deleted, which holds a C++ BOOL.

You typically only need to do this checking once on entry to your code because scripts always run synchronously - MAXScript locks out the MAX UI so users cannot do things to the scene that would potentially crash a running script.


MAX ClassIDs and Superclass IDs

You'll notice that the MAXScript wrapper classes correspond roughly to MAX object superclasses, there are no C++ classes in MAXScript for individual MAX object classes (Box, Sphere, Bend, StdMaterial, etc.). This is primarily because the MAX object classes present in any running copy of MAX is dynamic depending on the plug-ins that are loaded. MAXScript deals with this in much the same way the MAX SDK does by having descriptor classes whose instances define individual MAX plug-in classes. There are two MAXScript classes for this MAXScript-specific metadata, both Value subclasses so their instances can be manipulated as values in the scripter:

Value

MAXSuperClass

MAXClass

The MAXSuperClass instances correspond to object superclasses in MAX and there is one instance per MAX superclass ID. The MAXClass instances correspond roughly to ClassDesc instances in MAX and there is one MAXClass instance per MAX Class ID.

All of the superclass instances and most of the MAXClass instances corresponding to the core objects in MAX are statically instantiated in MAXScript. There are also many MAXClass instances created dynamically by the MAXScript plug-in scanner which attempts to construct metadata for 3rd-party and new MAX plug-ins that it finds as MAX starts up.

MAXScript extension DLLs can statically define new MAXClass instances to provide complete metadata for new or 3rd-party MAX plug-ins. The advantage of doing this is that you can typically provide a much more complete description for new MAX object classes than the plug-in scanner can construct.

These are declared as static instances using the MAXClass constructor described below. As an example, here is the definition for the Box primitive object from the MAXScript core:

MAXClass box

("Box", Class_ID(BOXOBJ_CLASS_ID, 0), GEOMOBJECT_CLASS_ID, &geom_class, 0,

accessors,

paramblock,

"length",      BOXOBJ_LENGTH,      TYPE_FLOAT,      25.0,

"width",      BOXOBJ_WIDTH,      TYPE_FLOAT,      25.0,

"height",      BOXOBJ_HEIGHT,      TYPE_FLOAT,      25.0,

"widthsegs",      BOXOBJ_WSEGS,      TYPE_INT,      1,

"lengthsegs",      BOXOBJ_LSEGS,      TYPE_INT,      1,

"heightsegs",      BOXOBJ_HSEGS,      TYPE_INT,      1,

"mapcoords",      BOXOBJ_GENUVS,      TYPE_BOOL,      FALSE,

end,

end,

end

);

This declares a static instance named 'box' that defines a scripter-visible name, the MAX class ID and superclass ID, and specifies the MAXSuperClass instance for this class and a set of MAX SDK ParamBlock-based properties. The property definitions define a scripter-visible name, parameter ID, type info and a useful default value, used when creating instances of the class in the scripter. The property definitions can also include properties not carried in ParamBlocks, for which you supply getter and setter C++ functions, so you can define any number of real or virtual properties.

As a side-effect of this declaration, a scripter global variable of the given name is created and loaded with the MAXClass value. Scripts can use this value both as a class value in methods such as classOf() and to construct new MAX objects. MAXClass values, like several other class values in MAXScript can be 'applied' like a constructor in C++ to a set of arguments to create instances of themselves. In the case of MAXClass instances, all the properties you describe in its constructor can be used as creation arguments in MAXScript.


The MAXClass Constructor

The MAXClass constructor you should use for static instances is as follows:

MAXClass ( char* cname,      // scripter-visible class name

Class_ID cid, // MAX class ID

SClass_ID sid, // MAX superclass ID

MAXSuperClass* superclass, // MAXScript MAXSuperClass

short cflags, // option flags (see below)

... // accessor definitions

         );

The cflags value can be one or more of:

md_no_create

This class is not instantiable. Scripts cannot use this class a a constructor. Typically specified on object classes that cannot exist alone (such as spacewarp bindings) but are still accessible in the scripter.

md_use_getref0

md_use_getref1

md_direct_index

These three flags relate to ParamBlock-hosted properties. It turns out that core MAX objects use ParamBlocks in a variety of non-standard ways and these flags basically cover the possibilities. According to the docs, object classes that use a ParamBlock can implement Object::GetParamBlock() to return a pointer to the block. Some MAX classes do and some don’t. All of them stick the block in reference(0) or reference(1), so if the class does not implement GetParamBlock() you can specify md_use_getref0 or md_use_getref1 accordingly. If neither of these flags are specified and there are paramblock accessors defined, MAXScript will use GetParamBlock().

Further, the docs suggest that all classes should implement Object::GetParamBlockIndex() to map logical parameter ID's into ParamBlock indexes. Again, only some of the MAX core classes do this and some of them do it inconsistently. The md_direct_index flag indicates that the parameter IDs in the accessor definitions are direct indexes into the ParamBlock. If not this flag is not specified, MAXScript uses GetParamBlockIndex() to map the given IDs to paramblock indexes.

The property accessor definitions are supplied in the … varargs to the MAXClass constructor. These take the form of tagged lists of specifiers each terminated with an 'end' tag. The tags are enumerated constants defined in MAXObj.h.

The syntax for these is as follows:

property_defs      ::= [ <accessors>, ] end

accessors ::= accessors, [ <pb_props>, ] [ <fn_props> ]

pb_props ::= paramblock, { <pb_prop>, } end

pb_prop ::= <name_str> <param_id> <type> [ <default_val> ]

fn_props ::= fns, { <fn_prop>, } end

fn_prop      ::= <name_str> <getter_fn> <setter_fn> <type> [<default_val>]

Where:

<param_id> is a ParamBlock parameter ID or ParamBlock index depending on whether the md_direct_index flag was specified.

<type> is one of:

TYPE_FLOAT

TYPE_INT

TYPE_RGBA // point3 of 0-255 externally, 0-1 internally

TYPE_POINT3

TYPE_BOOL

TYPE_ANGLE // degrees externally, radians internally

TYPE_PCNT_FRAC // percent externall, 0-1 float internally

TYPE_STRING

TYPE_HSV // point3 of 0-255 externally, 0-1 internally

TYPE_COLOR_CHANNEL // 0-255 float externally, 0-1 internally

TYPE_TIMEVALUE // frames externally, tick TimeValue internally

TYPE_UNSPECIFIED

Some of the types imply automatic scaling between scripter visible values and internal parameter values. For example, TYPE_ANGLE causes radians-to-degree conversion on the away out to the scripter for property gets and degrees-to-radians conversion on the way in from the scripter for property sets.

TYPE_UNSPECIFIED can only be used in fns property definitions and means that the accessor functions take care of the type conversions and that there is no default value.

The <default_val> default values must be of the correct C++ type or definition parsing may fail.

Default value C++ type

TYPE_FLOAT      float

TYPE_INT int

TYPE_RGBA three comma-separated floats

TYPE_POINT3 three comma-separated floats

TYPE_BOOL BOOL

TYPE_ANGLE float

TYPE_PCNT_FRAC float

TYPE_STRING string

TYPE_HSV three comma-separated floats

TYPE_COLOR_CHANNEL float

TYPE_TIMEVALUE float

TYPE_UNSPECIFIED      -- no default value --

If you do not wish to specify a default value, perhaps because the property is a synonym for another which already has a default value specified, make the type -ve (put a minus in front of the type code) and leave out the default.

The signature for the getter and setter functions supplied in the fns section is:

Value* getter_fn(ReferenceTarget* obj, Value* prop, TimeValue t,

Interval& valid);

void setter_fn(ReferenceTarget* obj, Value* prop, TimeValue t,

Value* val);

When these functions are invoked by the MAXScript property accessor system, you can be sure the ReferenceTarget parameter points to a MAX object of the Class ID specified in the MAXClass constructor referencing these functions. The TimeValue and Interval parameters are used in the same way as they are on the Control and IParamBlock GetValue() and SetValue() member functions in the MAX SDK.

Here are some more examples:

MAXClass quadpatch

("Quadpatch", Class_ID(PATCHGRID_CLASS_ID, 0), GEOMOBJECT_CLASS_ID,

&geom_class, md_use_getref0 + md_direct_index,

accessors,

paramblock,

"length", PATCHGRID_LENGTH, TYPE_FLOAT, 25.0,

"width", PATCHGRID_WIDTH, TYPE_FLOAT, 25.0,

"widthsegs", PATCHGRID_WSEGS, TYPE_INT, 1,

"lengthsegs", PATCHGRID_LSEGS, TYPE_INT, 1,

end,

end,

end

);

MAXClass text

("Text", Class_ID(TEXT_CLASS_ID, 0), SHAPE_CLASS_ID, &shape, 0,

accessors,

paramblock,

"size", TEXT_SIZE, TYPE_FLOAT, 100.0,

end,

fns,

"text", get_txt_strng, set_txt_strng, TYPE_UNSPECIFIED,

"font", get_txt_font, set_text_font, TYPE_UNSPECIFIED,

"italic", get_txt_italic, set_txt_italic, TYPE_BOOL, FALSE,

"underline", get_txt_under, set_txt_under, TYPE_BOOL, FALSE,

end,

end,

end

     );

The Text class defines both paramblock and function-based properties. It is typical only to specify type information for function-based properties when you want to give default values.

These are the MAXSuperClass static instances you can reference in MAXClass constructors. They are externed in the header file "Maxclses.h".

geom_object

modifier

shape

helper_object

spacewarp_object

light_object

camera_object

material_class

texture_map

system_object

utility_plugin

spacewarp_modifier

float_controller

point3_controller

position_controller

quat_controller

rotation_controller

scale_controller

matrix3_controller

morph_controller


classOf() and superClassOf() Methods for MAX Objects

Even though the individual MAX object classes are not represented by C++ classes in MAXScript, they are considered classes at the scripter level, represented by the MAXClass values. Accordingly, the MAXScript class inquiry methods, classOf(), superClassOf() and isAKindOf(), are implemented in the C++ MAXWrapper classes to use the appropriate MAXClass instance as the class of the wrapped object when called on MAX object wrapper values, such as scene nodes, modifiers, or controllers. The class of the object is always taken from the base object in the stack, even though the world-state of the object might be diffferent.

Examples:

classOf $foo.bend      => Bend

superClassOf $foo.bend => Modifier

classOf $baz.position.controller => Bezier_position

superClassOf $baz.position.controller      => Position_controller

In the case of scene node values (MAXNode instances), these functions always consider the base object in the node to be the determiner of the class of the value, even if the objects have modifiers present. For example:

classOf $box01      => Box

classOf $sphere01 => Sphere

superClassOf $box01      => GeometryClass


Collection Mapping

For Object Sets, Pathnames, Modifer/Key/NodeChildren Arrays and Arrays.

The following virtual functions are defined on Value and implemented by those classes that support them to provide a collection mapping mechanism. Those that support mapping return true from the virtual function predicate is_collection(). The MAXScript 'for x in y ...' loop statement relies on these mapping functions, for example. Attempting to map a non-collection results in a descriptive MAXScript runtime error.

Some of the functions are driven by a mapping structure, 'node_map', defined below.

Only PathNames, ObjectSets and Nodes implement the '_path' variants. Mapping over a scene node Value (MAXNode instance), effectively maps over its descendants.

class Value

Value* map(node_map& m);

map node structure over collection

Value* map_path(PathName* path, node_map& m);

map node collection over values matching pathname

Value* find_first(BOOL (*test_fn)(INode* node, int level, void* arg),

void* test_arg);

find first node matching test

Value* get_path(PathName* path);

get the non-wild-card pathname-specified node

struct node_map

{

value_vfvfn_ptr; // virtual fn to map

value_cfcfn_ptr;      // or, c fn to map (one or the other must be null)

Value**arg_list;      // args to pass on...

intcount;

BOOL(*selector)(INode*, int, void*);      // set selector fn

void*sel_arg;      // arg for the selector

intget_index;      // index if we are doing an indexed get

intget_count;      // local running traverse count during get

Value**get_result_p;      // ptr to result holder for indexed get

Array*collection;
     // append map results here if non-null (used
     // in for ... collect)

shortflags;      // control flags

};

#define NM_INVERT0x0001 // invert map order, map parents last on

// the way out of the recursion

#define NM_SELECT0x0002 // applying a select, adjust clear flag

#define NM_GET 0x0004 // doing a get, return get_index'th item


Array Access and Construction

Arrays are useful for passing multiple values back and forth; there is no multiple-value return mechanism in MAXScript.

Arrays in MAXScript are dynamic and will grow as necessary (by a factor of 1.5 when needed). You can set the initial extent size on creation. Uninitialized elements are set to &undefined.

As with all Value creation inside C++ code, a freshly created array must be protected from garbage collection, either by placing it immediately inside some other protected value, or by using the protection macros described in the Protecting Newly Created Values from the Collector topic.

Array(int init_size);      // constructor allocates initial array size

Value* append(Value*);

Value* get(int index);

Value* map(node_map& m);


Stream I/O

MAXScript contains a number of character stream classes that are used primarily by the compiler and by the text I/O subsystem. These are all Value subclasses and so are first-class MAXScript values. If you want to call the compiler directly or pass or take stream values from scripts, you should use these classes.

The text file I/O classes and functions in MAXScript create and work on FileStream instances.

FileStream

FileStream::FileStream ();

FileStream* open(char* file_name, char* mode);

char      get_char();

void      unget_char(char c);

char      peek_char();

int      at_eos();

void      rewind();

void      flush_to_eol();

char      putch(char c);

char*      puts(char* str);

int      printf(const char *format, ...);

void      flush();

void      close();

You can construct and pass StringStreams to the compiler if you want to compile pieces of source text.

StringStream

StringStream(char* init_string);

StringStream(Value* init_string_value);

StringStream(int ilen);

void init(char* init_string);

char* puts(char* str);

char putch(char c);

int printf(const char *format, ...);


Access to the Compiler and Interpreter

The compiler in MAXScript can be invoked to compile source in files or strings into executable code. You gain access to it by creating an instance of the Parser class with the following constructor:

Parser(CharStream* errout);

Debugging and error output is sent to the given 'errout' charstream. Typically, you would specify the current standard output for this which defaults to the Listener window, for example:

Parser* reader = new Parser (thread_local(current_stdout));

Any number of Parsers can be instantiated and active; they each encapsulate a separate compile environment including lexical scoping tables and source stream tracking.

The following Parser member functions are used to compile source code in a CharStream instance, either a FileStream or a StringStream (see the Stream I/O topic for details on constructing these streams).

Value* compile(CharStream* stream);

Compile the next complete expression in the given stream. The stream pointer is left at the end of the expression compiled, so you can repeatedly call compile() to step through source an expression at a time. Remember that MAXScript is expression-based, so 'expression' here means any MAXScript construct including all the control structures, function definitions, blocks, utility definitions, etc.

Value* compile_factor(CharStream* stream);

Compile the next MAXScript <operand> in the source stream. *** Note: this function is incorrectly named, it compiles an <operand>, not a <factor> - it's name will be changed in the next rev. *** See the MAXScript Grammar topic for the exact definition of <operand>. The MAXScript function readValue() uses compile_factor() to get the next value in a text file, so it is capable of reading global variable references, array indexes, property references, pathnames, etc. as well as simple literals.

Value* compile_all(CharStream* stream);

Compile the whole stream into one piece of executable code.

The compile functions all return a MAXScript value containing the executable code, usually a CodeTree instance, but possibly a Number or String if the expression you give it to compile is a simple literal. The code is executed by invoking the Value virtual function eval() on it. For example,

Value* code = reader->compile(source); // compile an expr

result = code->eval(); // execute it

In the case of simple values, this is a no-op and just returns the value. The code returned from the compiler is always a first-class MAXScript value that you can store for later execution or pass back to running scripts.

Here is the low-level file_in() function in MAXScript, showing how the compiler and interpreter are used.

Value* file_in(CharStream* source, int quiet)

{

three_typed_value_locals(Parser* parser, Value* code, Value* result);

CharStream* out = thread_local(current_stdout);

vl.parser = new Parser (out);

if (!quiet)

source->log_to(out);

// loop through file compiling & evaling all expressions

try

{

source->flush_whitespace();

while (!source->at_eos())

{

vl.code = vl.parser->compile(source);

vl.result = vl.code->eval();

if (!quiet)

vl.result->print();

source->flush_whitespace();

}

source->close();

}

catch (...)

{

// catch any errors and tell what file we are in if any

out->puts("Error occurred during fileIn: ");

source->sprin1(out);

out->puts("\n");

throw;

}

// return last expression in stream as result

if (vl.result == NULL)

vl.result = &ok;

return_value(vl.result);

}


Calling Scripted Functions

If you have a scripted function value in hand (an instance of the class MAXScriptFunction), you can invoke it directly using the Value virtual function apply():

virtual Value* apply(Value** arglist, int count);


MAXScript Header Files

There are many header files supplied with the MAXScript SDK in the directory 'includes'. The following list shows the main ones you might use:

Maxscrpt.h      The main MAXScript header. It includes most of the core headers required for the MAXScript API and 'Max.h', needed for any MAX SDK code.

defextfn.h Scripter-callable function definition macros. See the section definsfn.h in the Scripter-callable functions topic for details.

MAXObj.h The prime MAXWrapper header, used if you are constructing or accessing any of the main MAXScript values that represent MAX objects within MAXScript. See the Working with MAX Objects in the SDK topic for more details on this and the rest of the header files in this group.

MAXKeys.h MAXScript classes for wrapping MAX controller keys.

MAXMats.h MAXScript classes for wrapping MAX materials and texture maps.

BitMaps.h MAXScript class for wrapping MAX bitmaps.

Maxclses.h      Defines all the static MAXClass and MAXSuperclass instances which provide MAXScript-specific metadata for the most of the core MAX classes.

The following headers define most of the foundation classes in MAXScript. Many of them are basically wrappers for primitive C++ types or MAX SDK classes, such as Point2, TimeValue, etc. You would include these headers if you need to create or access any instances of these classes.

3DMath.h      All the MAXScript linear algebra classes

Arrays.h The Array class.

ColorVal.h MAXScript color class.

Funcs.h Scripter functions.

HashTab.h MAXScript's internal hashtable class.

MSTime.h Time classes.

Name.h MAXScript's Name class.

Numbers.h Float and Integer classes.

Parser.h The MAXScript compiler.

Streams.h Character stream I/O, notable FileStream.

Strings.h      Character string class.


Core Names

Instances of the class Name are used extensively throughout MAXScript as variable and parameter names, keyword argument tags, symbolic arguments, etc. Names are immutable, interned values - the same name string always (caselessly) interns to the same Name value. To save interning overhead, many common names are interned once during MAXScript startup and made available in C++ global variables.

The following list shows the pre-interned name globals with the convention that the name for the global is the interned name with an 'n_' prefix.

n_about

n_across

n_active

n_align

n_allKeys

n_ambientmap

n_ambientmapamount

n_ambientmapenable

n_angle

n_aspect

n_axis

n_beep

n_bezier

n_bezierCorner

n_bias

n_bitmap

n_blur

n_bumpmap

n_bumpmapamount

n_bumpmapenable

n_button

n_camera

n_cameras

n_caption

n_center

n_change

n_changed

n_checkbox

n_checkbutton

n_checked

n_children

n_close

n_color

n_colorPicker

n_columns

n_combobox

n_constant

n_constantVelocity

n_continuity

n_contrast

n_controller

n_coordsys

n_corner

n_current

n_curve

n_custom

n_cycle

n_default

n_determinantsign

n_diffusemap

n_diffusemapamount

n_diffusemapenable

n_dir

n_display

n_distance

n_dontSort

n_dropdownList

n_easeFrom

n_easeTo

n_edge

n_edittext

n_enabled

n_entered

n_even

n_faces

n_fast

n_featureBounds

n_fieldorder

n_fieldwidth

n_filename

n_filter

n_filtermap

n_filtermapamount

n_filtermapenable

n_float

n_for

n_force2sided

n_frame

n_framerange

n_from

n_fromframe

n_gamma

n_geometry

n_grayscale

n_grid

n_group

n_height

n_helpers

n_hidden

n_incleft

n_incright

n_inTangent

n_inTangentType

n_integer

n_interpolate

n_into

n_isAnimated

n_items

n_keep

n_keys

n_label

n_labels

n_left

n_length

n_lengthsegs

n_level

n_lights

n_line

n_linear

n_linkToKeys

n_listbox

n_local

n_loop

n_matchSpace

n_material

n_materialIDs

n_max

n_message

n_middle

n_mode

n_motionBounds

n_name

n_netrender

n_noCloseButton

n_nodeTM

n_noslide

n_nthframe

n_numfaces

n_numframes

n_numsubs

n_numtrackers

n_numverts

n_object

n_objects

n_off

n_offset

n_on

n_opacitymap

n_opacitymapamount

n_opacitymapenable

n_open

n_outputdevice

n_outputfile

n_outputheight

n_outputOnly

n_outputSize

n_outputwidth

n_outTangent

n_outTangentType

n_palette

n_parent

n_pickbutton

n_picked

n_pickedobject

n_pingPong

n_pivot

n_pixelaspect

n_point3

n_pos

n_position

n_pressed

n_quiet

n_radiobuttons

n_range

n_rank

n_rankDistance

n_redraw

n_reflectionmap

n_reflectionmapamount

n_reflectionmapenable

n_refractionmap

n_refractionmapamount

n_refractionmapenable

n_relativeRepeat

n_renderatmosphericeffects

n_renderfields

n_renderhiddenobjects

n_rgb

n_right

n_rightToLeft

n_rolledUp

n_rollout

n_rotation

n_rotationpart

n_scale

n_scalepart

n_scalerotationpart

n_screen

n_select

n_selected

n_selectedtracker

n_selection

n_selfillummap

n_selfillummapamount

n_selfillummapenable

n_selOnly

n_shapes

n_shinestrengthmap

n_shinestrengthmapamount

n_shinestrengthmapenable

n_shininessmap

n_shininessmapamount

n_shininessmapenable

n_simple

n_size

n_slide

n_slow

n_smooth

n_spacewarps

n_specularmap

n_specularmapamount

n_specularmapenable

n_spinner

n_state

n_step

n_steps

n_superblack

n_systems

n_target

n_tension

n_text

n_textureVerts

n_time

n_title

n_to

n_toframe

n_toolTip

n_transform

n_translationpart

n_type

n_value

n_vertices

n_vfb

n_videocolorcheck

n_width

n_widthsegs

n_world

n_worldUnits

n_x

n_x_locked

n_x_rotation

n_y

n_y_locked

n_y_rotation

n_z

n_z_locked

n_z_rotation


Video Post (Video Post)

Video Post

Provides composited rendered output of various types of events, including the current scene, bitmap images, image processing functions, and so on.

Video Post is a self-contained, modeless dialog, similar in appearance to the Track View dialog. The edit window of the dialog box shows when each event occurs in the finished video. Each event is associated with a track that has a range bar.

The Video Post dialog contains the following

Video Post Queue: Shows the sequence of post-production events

Video Post Status Bar/View Controls: Shows information about the active Video Post controls and lets you control the display of tracks in the event tracks area.

Video Post Toolbar: Provides Video Post commands

How To

To use the Video Post dialog

  1. Choose Rendering/Video Post.

    2. This displays the Video Post dialog.

  2. Create a new Video Post sequence by adding events to the queue, or open an existing Video Post file in order to edit it.


Video Post Queue

Provides a hierarchical list of the images, scenes, and events to be composited.

Reference

The Video Post queue in the Video Post dialog box is similar to other hierarchical lists in the Track View and Material Editor. In Video Post, the list items are images, scenes, animations, or external processes that together make up the queue. The items in the queue are called events.

The order that the events appear in the queue is the order in which they are executed, from top to bottom. Consequently, to correctly composite an image, the background bitmap must appear before, or above, the image that is to overlay it.

There is always at least one item in the queue (a placeholder labeled Queue). It is the queue’s parent event.

The queue can be linear, but some kinds of events, such as Image Layer, combine other events and become their parent.

How To

To add an event to the queue

  • Click an event button.

The event displays a dialog so you can specify particulars about the event. The dialog depends on the type of event; some events have different kinds of subtypes.

In general, the new event appears at the end of the queue - but some kinds of events require that you first select one or more events in the queue. An event button is grayed out if the selection in the queue (or the absence of one) is not legal input to the button's type of event.

To highlight an event already in the queue, click its icon, label, or range-bar area.

To delete any event in the queue

  • Select the event and press the Delete key.

You can delete both enabled and disabled events, which are grayed out.

To switch the positions of two events in the queue

  1. Highlight both events.
  2. Click Swap.

    3. This operation might not be allowed if the result would be impossible to execute. At the top level of the queue, you can almost always swap events; at lower levels, an event's output must be legal input to its parent event.

To edit an event in the queue, do one of the following

  • Select the event and click the Edit Current Event button.
  • Double-click the event name.
  • Double-click the event’s range-bar area in the edit window.

Use one of the second two methods for disabled events.


Prompt Line (Video Post)

Video Post Prompt Line

Displays instructions for using the currently selected function.


Status (Start, End, Frames, Width, Height)

Video Post Status (Start, End, Frames, Width, Height)

Displays the Start frame and End frame for the current event, and the output resolution of the entire queue.

Reference

S/E: Shows start and end frames of the selected track. If no track is selected, shows the start and end frames of the entire queue.

F: Shows the total frames in the selected track.

W/H: Shows the width and height of the image that results from the rendering of all the events in the queue.


Zoom Region (Video Post)

Magnifies a region that you define by dragging a rectangle in the event tracks area.


Pan (Video Post)

Lets you drag horizontally in the event tracks area to move the view left and right.


Zoom Time (Video Post)

Displays a greater or lesser number of frames in the event tracks area, allowing you to scale or zoom the display. The time ruler displays the current time display unit.

Reference

Drag horizontally in the event tracks area to zoom time.

Drag right to display fewer frames in the track area (zoom in).

Drag left to display more frames in the track area (zoom out).


Zoom Extents (Video Post)

Adjusts the size of the event-track area horizontally so that all the frames of the longest track bar are visible.

Use Zoom Extents to quickly reset the display to show all frames after zooming in on a selection of frames with the Zoom Time button.


New Sequence

Creates a new Video Post sequence by clearing existing entries.

You'll be prompted to confirm deletion of any entries in the current queue.

How To

To create a new Video Post file

  • Click New Sequence.

Warning: This command erases all the current Video Post data.

Use New after you have saved to a different Video Post file. Choosing Video Post from the Rendering menu displays the Video Post data (if any) saved with your 3D Studio MAX scene.


Open Sequence

Opens a Video Post sequence stored on disk.

Reference

Video Post sequences contain all the information relating to the queue and all associated settings and references. They have the file extension .vpx and are stored by default in the 3D Studio MAX vpost folder.

How To

To open an existing Video Post file

  • Click Open Sequence.

Use the file selection dialog that appears to choose the video post (.vpx) file you want to edit.

You can also use Video Post Open to open the queue from a 3D Studio MAX scene (.max file). Video Post loads only the Video Post data from the .max file, leaving the current scene unchanged.


Save Sequence

Saves the current Video Post sequence to disk.

Reference

All of the Video Post configuration data, the queue events themselves, and any queue event external data are saved in the .max file. You can also save the Video Post sequence to a separate file for sharing with other 3D Studio MAX users.

Video Post sequence files contain all the information relating to the queue and all associated settings and references. They have the file extension .vpx and are stored by default in the 3D Studio MAX vpost folder.

How To

To save the active Video Post data

  • Click Save Sequence.

A file selection dialog appears to let you enter a name for the new Video Post file.

By default, Save saves to the vpost subdirectory in your 3D Studio MAX directory. You can change the default path to another directory by using File/Configure Paths.


Delete Current Event

Deletes the selected event from the queue.

You'll be asked to confirm event deletion.

How To

To delete any event in the queue

  • Select the event and press the Delete key.

You can delete both enabled and disabled events, which are grayed out.


Swap Events

Switches the position of two selected events in the queue.

This is useful if you have images in the wrong order for compositing. The background image has to be first and the foreground image with the alpha channel has to be second.

How To

To switch the positions of two events in the queue

  1. Highlight both events.
  2. Click Swap.

    3. This operation might not be allowed if the result would be impossible to execute. At the top level of the queue, you can almost always swap events; at lower levels, an event's output must be legal input to its parent event.


Edit Range Bar

Provides editing functions for the range bars that appear in the event tracks area.

When Edit Range Bar is on, you can:

  • Select any event by clicking its range bar (it turns red when selected).
  • Move the range bar while maintaining its range by dragging in the middle of the bar.
  • Change the start or end frame of the range by dragging either end of its bar.

How To

To select a range bar, do one of the following

  • Click the range bar in the event tracks area.
  • Click the associated event name or icon in the queue.

To select multiple range bars

  1. Click a range bar.
  2. Hold down CTRL and click additional range bars.

To select multiple contiguous range bars

  1. Click a range bar.
  2. Hold down SHIFT and click another range bar.

    3. Both range bars you clicked and all range bars between them are selected.

    Note: In a multiple selection, the last range bar you select becomes the current event, displayed with red squares in its endpoints. The align commands use the current event.

To move a range bar

  • Drag the center of the range bar left or right.

To change the length of a range bar

  • Drag one of its endpoints left or right.

If multiple range abrs are selected, dragging one endpoint changes all selected range bars.

To change the number of frames in an event, do one of the following

  • Double-click the range bar in the event tracks area.
  • Click the Edit Current Event button in the toolbar.


Align Selected Left

Left-aligns two or more selected range bars.

When you select two or more range bars, the last one selected is the current event. The end boxes of the other events are white, while the end boxes of the current event are red. When you click Align Selected Left, the current event stays in place, and the remaining selected events are aligned to its left end.

How To

To change the number of frames in an event, do one of the following

  • Double-click the range bar in the event tracks area
  • Click the Edit Current Event button in the toolbar.


Align Selected Right

Right-aligns two or more selected range bars.

When you select two or more range bars, the last one selected is the current event. The end boxes of the other events are white, while the end boxes of the current event are red. When you click Align Selected Right, the current event stays in place, and the remaining selected events are aligned to its right end.

How To

To change the number of frames in an event, do one of the following

  • Double-click the range bar in the event tracks area
  • Click the Edit Current Event button in the toolbar.


Make Selected Same Size

Makes all selected events the same size as the current event.

When you select two or more range bars, the last one selected is the current event. The end boxes of the other events are white, while the end boxes of the current event are red. When you click Make Selected Same Size, the current event stays in place, and the remaining selected events are expand or shrink to cover the same number of frames.

How To

To change the number of frames in an event, do one of the following

  • Double-click the range bar in the event tracks area
  • Click the Edit Current Event button in the toolbar.


Abut Selected

Places the selected events end-to-end, so that when one ends the next one starts.

The selected events are placed end-to-end according to their order in the queue.


Network Job Assignment

Lets you name the rendering job (task) and specify the computers that will participate in the rendering.

The Network Job Assignment dialog has the following controls:

Job Assignment

Job Name: Provides a field for you to name the job (mandatory). The + button beside the field adds incremental numbering (Job01, Job02, etc.).

Inactive: Adds the named job to the queue in a suspended state. The job is not started until you activate it manually from the Queue Manager Client.

Network Manager

Choose a Network Manager by selecting it from the list.

Connect: Connects to the Network Manager. 3D Studio MAX preserves the connection as a global setting so that you only need to change it when you want to specify an alternative Network Manager.

The field below the Network Manager name field displays a list of all Network Rendering Servers under the specified Network Manager.

Light bulb icons beside each Server indicate whether the server will be activated for the job. By default, all Servers are activated.

Click a Server name to toggle the light bulb. Click the All or None buttons to make all the listed Servers active or inactive, respectively.

When you click OK to exit this dialog, you send the current scene to the Network Manager, which places it in the queue for rendering.


Execute Sequence

You execute the Video Post queue as the final step in creating a post-produced video. Execution is different from rendering because rendering is done for scenes only and you can use Video Post to composite images and animations without including the current 3D Studio MAX scene.

Although the Execute Video Post controls are similar to those in the Render Scene dialog box, the setting are independent, and do not affect each other.

During execution, you can move or close the virtual frame buffer window, but you can’t use the rest of 3D Studio MAX until the execution is completed or cancelled.

The rendering time for the last rendered frame in the Video Post sequence is displayed in the prompt line of the main 3D Studio MAX window.

Reference

Time Output

Select the frames to execute:

Single: Current frame only.

Range: All the frames between and including the two numbers.

Every Nth frame: Regular sample of frames. For example, enter 8 to execute every 8th frame.

Output Size

Format: Choose Custom or a standard film or video format from the list. For Custom, you can set the aperture width of the camera, the rendering output resolution, and the image aspect ratio or pixel aspect ratio. When you choose a standard format, the aperture width and aspect ratios are locked, but you can change the resolution.

Aperture Width (mm): Specifies the aperture width of the camera, providing a third method (along with the Lens and FOV spinners in the camera panel) of measuring the field of view. Changing this value affects only the Lens spinner value for the cameras in the scene, by altering the relationship between the Lens spinner and the FOV spinner. It has no effect on the view of the scene through the camera. For example, if you have a Lens setting of 43.0 mm, and you change the Aperture Width from 36 to 50, when you execute the Video Post queue, the camera Lens spinner has changed to 59.722, but the scene still looks the same in the execution.

Width/Height: Specify the width and height of the image, in pixels. For Custom, you can set these two spinners independently. For other formats, the two spinners are locked to the specified aspect ratio, so changing one changes the other.

Resolution Buttons: Specifies a preset resolution. Right-click a button to display a sub-dialog that lets you change the resolution specified by that button.

Image Aspect: Sets the aspect ratio of the image. As you alter the Image Aspect, you also alter the Height value to maintain the correct aspect ratio. For standard formats, the image aspect ratio is locked, and this spinner is replaced by a text display.

If you lock the Image Aspect (by clicking the Lock button), Width and Height are locked to each other, so that changing one changes the other to maintain the image aspect ratio, and changing the Pixel Aspect value changes the Height value to maintain the image aspect ratio.

Pixel Aspect: Sets the aspect ratio of the pixels of the image. For standard formats, the pixel aspect ratio is determined by the format and this spinner is replaced by a text display.

If you lock the pixel aspect ratio (by clicking the Lock button), the Pixel Aspect spinner is replaced by a text display. The Lock button is available only for the Custom format.

Output

Virtual Frame Buffer: Displays the Video Post execution in a window on the screen.

Net Render: Enables network rendering. If this box is selected, when you render you'll see the Job Assignment dialog.

Keep Progress Dialog: Forces the Video Post Progress dialog to remain displayed when the Video Post sequence has finished executing. By default, it closes automatically. If this option is selected, you must click the Close button to close the dialog.

How To

To execute the queue

  1. Click Execute Sequence.

    2. An Execute Video Post dialog appears.

  2. Set the time range and output size, and then click Render to create the video.
  3. When execution is done, click Close to dismiss the Video Post progress dialog if it is still open.


Configure Presets

If you use the Custom format for Execute Sequence, you can change the values for any preset resolution button by right-clicking the button.

If you use one of the standard formats, the Width and Height spinners are locked to the standard’s image aspect ratio, and the Aspect Ratio spinner is replaced by a text display.

After you change these values and exit the Configure Presets dialog, you must click the button to apply the new values to the Execute Sequence dialog.

Reference

Width: Specifies the width of the image, in pixels.

Height: Specifies the height of the image, in pixels.

Aspect Ratio:Sets the aspect ratio of the image. As you alter the Image Aspect value, you also alter the Height value so that the correct aspect ratio is maintained for the resolution.


Edit Current Event

Displays a dialog that lets you edit the properties of the current event.

Reference

The Edit Event dialog changes to provide different controls, depending on the type of event you've selected. The top field in each event dialog is an editable label field. If the field is left blank, the event uses its assigned label. If you enter an event name, the event window displays your event name in the field.

You can edit the following types of events:

Edit Scene Event

Edit Image Input Event

Edit Filter Event

Edit Layer Event

Edit Output Image Event

Edit External Event

  • Edit Loop Event

How To

To edit an event in the queue, do one of the following

  • Select the event and click the Edit Current Event button.
  • Double-click the event name.
  • Double-click the event’s range-bar area in the edit window.

Use one of the second two methods for disabled events.


Edit Scene Event

Provides controls for editing a Scene event.

A Scene event is a view of the current 3D Studio MAX scene. You can choose which view to display and how to synchronize the scene with the final video. Like Image Input events, Scene events place an image in the queue, but a Scene event is the current 3D Studio MAX scene and it must be rendered when you execute the Video Post queue.

You can use multiple Scene events to show two views of the same scene simultaneously or to cut from one view to another. If you have more than one Scene event in the queue, and they occupy the same time range, composite them with an Image Layer event. Otherwise, the second Scene Event overwrites the first.

Reference

View

Select the viewport you want to render.

Scene Options

Enables various rendering effects.

Render Options: Displays a subset of the parameters in the Render Scene dialog. For information on these controls, see the Common Parameters and MAX Default Scanline A-Buffer help topics. Changes you make to the Scene Event Render Options affect the Render Scene dialog box, as well.

Scene Motion Blur: Turns on the scene motion-blur effect for the whole scene. This is different from object motion blur, which creates motion blur for individual objects in the scene.

Duration: Sets the virtual shutter speed for motion blur. When it’s set to 1.0, the virtual shutter is open for the entire duration between one frame and the next. When it’s set to a smaller numer (for example, 0.25), the number of subdivisions specified in the Duration Subdivision field will be rendered within the specified portion of the frame (in this example, in the first .25 of the duration between one frame and the next).

Duration Subdivision: Determines how many sub-frame slices are rendered within the Duration. The default is 2 slices, but you’ll want at least 5 or 6 to get a decent effect.

Dither %: Sets the amount of dithering between blurred pixels of overlapping frame slices. If Dither % is set to 0, no dithering occurs.

Scene Range

Sets the range of scene frames to be rendered.

Lock Range Bar to Scene Range: Becomes available when you deselect Lock to Video Post Range. When it’s available, the End spinner is disabled and locked to the Video Post range. When you change the Start spinner it automatically updates the End spinner based on the Video Post range set for this event.

If you clear the box, you can change either Start or End spinners to whatever you want. This allows you to keep your scene range locked to its native length, and still provides flexibility for mapping an arbitrary scene range to an arbitrary Video Post range.

Lock to Video Post Range: Renders the same range of scene frames as Video Post frames. You can set the Video Post range in the Execute Video Post dialog.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

How To

To match scene frames with Video Post frames

  • Select Lock to Video Post Range.

Frames in the scene match Video Post frames and have the same frame number. Frame 0 in the scene is frame 0 in the Video Post dialog, and so on. The range bar for the Scene event represents which portion of the scene is selected. If the range covers Video Post frames 25 to 35, execuring the queue renders scene frames 25 to 35. Moving the range bar for the scene is like moving a time window within the scene.

To offset the scene in time

  • Select Lock Range Bar to Scene Range.

The Scene Start control is enabled but the Scene End control remains disabled - synchronization is controlled by the Scene Start value and the length of the range bar.

The Scene Start value is the scene frame number where playback begins. If Scene Start is 0, frame 0 of the scene is the first frame played back; if Scene Start is 12, frame 12 is the first frame to play, and so on.

The range bar length determines how many frames of the scene to play. Dragging the end point of the range bar changes the length of the playback range. Although Scene End is grayed out, its value updates to show the frame number of the last scene frame that will be played.

Dragging the range bar changes where the scene is played within the final video. For example, if you set Scene Start to 5 and move the range bar to begin at Video Post frame 20, frame 5 is played at frame 20 of the final video, and so on.

To offset the scene and change scene playback rate

  • Clear Lock Range Bar to Scene Range.

With Lock Range Bar to Scene Range clear, both Scene Start and Scene End are enabled. As before, Scene Start specifies the first scene frame to play. Scene End specifies the last scene frame to play, and the length of the range bar determines playback speed.

If the range bar specifies the same number of Video Post frames as there are corresponding scene frames, then playback is at the scene's playback rate. If the range bar specifies fewer frames, the scene is sped up. If the range bar specifies more frames, the scene is slowed down. When it executes, Video Post automatically skips frames or adds frames to control the speed of scene playback.

For example, if Scene Start is frame 5 and Scene End is frame 35, the range bar represents 30 frames overall. If the range bar covers only 10 Video Post frames, scene playback is sped up to fit 30 frames into 10 of the final video. If on the other hand, the range bar covers 120 frames, scene playback is stretched to slow it down.

To render the full scene backwards

  1. Clear Lock to Video Post Range.
  2. Clear Lock Range Bar to Scene Range.
  3. Set Scene Start to the last frame in the scene.
  4. Set Scene End to the first frame in the scene.

    5. The length of the range bar also determines the playback speed of the reversed scene.

To add scene motion blur

  1. Select Scene Motion Blur in the Scene Event dialog.
  2. Set the scene motion blur parameters.

    3. The Scene event generates motion blur by simulating a camera with an open shutter. It interpolates and then renders movement within a frame, to generate a series of images of the moving object, instead of the default single image.


Edit Output Image Event

Provides controls for editing an output image event.

Image Output events send the result of executing the Video Post queue to a file or a device. You must add an Image Output event to the end of the queue if you want to save the final video. Otherwise, the results are displayed in the virtual frame buffer window only. The Image Output event’s range bar must include the entire range of frames you want to output.

The output can be the virtual frame buffer, targa files, an avi file, a flic, or even a VTR controller output device.

You can have multiple output image events, outputting to different devices. This lets you monitor your queue with VTR output devices and view your output at any level of the Video Post queue during rendering.

Reference

Image File

You can send the Image Output to either a file or a device.

Files: Lets you name the output image file.

Devices: Lets you choose the hardware output device, for example, a digital video recorder. The device, its driver, and its 3D Studio MAX plug-in must all be installed on your system to use device output.

Image Driver

The two buttons in this area are available only when you choose a device as the image source.

About: Provides information on the source of the image-handler software used to create the image from 3D Studio MAX.

Setup: Displays device-specific setup options.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.


Edit External Event

An External event is typically a program that performs image processing. It can also be a batch file or utility that you want to run at a specific point in the queue, or a way to transfer images from or two the Windows clipboard.

An External event is always a child event. If you select an event in the queue before you add the External event, the External event becomes the selected event’s child. Child events are evaluated before their parents.

Reference

External Event

Allows you to select the external program to be executed.

Browse: Lets you select an external program. For example, you can specify Adobe Photoshop(TM) or another image-processing application.

Command Line Options

For external programs that accept command-line options, lets you send real-time data to the external program. 3D Studio MAX parses three special commands. When found in a string, these commands are replaced with real-time data as in these examples:

%f is replaced with a 4 digit frame number (for example, 0001)

%w is replaced with a 4 digit image width (for example, 0640)

%h is replaced with a 4 digit image height (for example, 0480)

For example, if the given command line option is:

-w%w -h%h -oframe%f.tga

The string sent to the external program might be:

-w0640 -h0480 -oframe0001.tga

Write image to clipboard: Writes the current rendered image to the Windows clipboard for retrieval by an external application.

Read image from clipboard: Reads the contents of the Windows clipboard after processing by the external application. When the processed image is saved to the clipboard it automatically appears in Video Post. With an automated script, it is possible to run the image through any external image processor and get it back automatically.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.


Edit Loop Event

Loop events cause other events to repeat over time in the output video. They control sequencing, but perform no image processing.

A Loop event is always a parent event with a single child. The child itself can be a parent with children. Any type of event can be the child of a Loop event, including another Loop event.

The Loop event’s range bar displays the original duration of the child event’s playback in color and the range of looped events in gray. You can change the duration of the child event’s playback by dragging the child’s frame range or the child’s original range in the Loop event’s track, but you can adjust the full length of the loop (the gray part of the range bar) only by changing the Number of Times parameter in the Edit Loop Event dialog box.

Reference

Order

Loop: Repeats the child event by starting it over when the child event reaches the end of its range. This is the default.

Ping Pong: Repeats the child event by playing it first forwards, then backwards, then forwards, and so on. The last frame of the child event is not repeated.

Number of Times

Specifies the number of times to repeat the loop or ping pong, in addition to the first time that the child event is played.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.


Image Input Options

The Image Input Options dialog contains controls for setting the image’s size and placement relative to the frames of video output. For animated input, you also use it to synchronize the Image Input event with the frame sequence of video output. The same dialog box appears when you click Options from the Mask area of the Filter Event and Layer Event dialog boxes.

Reference

Alignment

Presets: Positions the image according to one of the preset buttons: Top-left, Center, Top-right, and so on. Mutually exclusive with Coordinates.

Coordinates: Positions the image according to coordinates you enter. Mutually exclusive with Presets.

Size

Do Not Resize: Retains the image's original, stored dimensions.

Resize to Fit: Resizes the image to the size of the Video Post rendered image (default).

Custom Size: Resizes the image according to width and height units you enter.

Frames

From/To: Specifies the range of frames to use if the image input file is an animation or video.

Step: Sets the interval between the frames you want to use. For example, if this spinner is set to 7, 3D Studio MAX uses every seventh frame.

Loop at End: Plays the frames from the beginning when the last frame is reached. This will take effect if the frame range used is less than the Video Post frame range.

How To

To align the input image, do one of the following in the Image Input Options dialog

  • Choose Presets and then click one of the preset alignment buttons.
  • Choose Coordinates and then enter the X,Y coordinates for the image's location.

The upper-left corner is (0,0) for both the input image and the output frame. Increasing X moves the image to the right, and increasing Y moves the image down. Negative values move the image in the opposite direction. X and Y values specify pixels.

To set the input image size, do one of the following in the Image Input Options dialog

  • Choose Do Not Resize to maintain the image's original resolution.
  • Choose Resize to Fit to change the image size to match the output frame.

This can change the image resolution, causing it to be rescaled for every frame.

  • Choose Custom Size and then enter the width and height of the image in the output frame.

To control playback of an animated image

  1. In the Image Input Options dialog, set the input animation frame range and speed.
  2. Select Loop at the End if you want the animation to repeat. Clear Loop at the End if you want the animation to stop after playback.

    3. This option applies only when the input animation is shorter than the final video.


Edit Filter Event

Provides image processing for images and scenes. Several kinds of filters are provided. For example, the Negative filter inverts the colors of an image and the Fade filter fades an image in or out over time.

An Image Filter event is usually a parent event with a single child (which can itself be a parent with children), for example, a Scene event, an Image Input event, a Layer event that contains Scene or Image Input events, or a Filter event that contains Scene or Image Input events. You can also add an Image Filter without a child event, in which case the Image Filter processes the result of the previous events in the queue.

Reference

Filter Plug-In

Lists the filter plug-ins you have installed.

See the separate help topics for a description of the filters that come with 3D Studio MAX.

About: Provides version/source information specific to the plug-in.

Setup: Displays a setup dialog specific to the plug-in. Some plug-ins may not use this button.

Mask

Channels: If you are using a bitmap as the mask file, you can use the Alpha channel, the Red, Green, or Blue channel, or Luminance.

Files: Select a file to use as a mask. The name of the selected file appears above the Files button.

Options: Displays a dialog in which you can set alignment and size, relative to the frames of video output. For animated images, you can also synchronize the mask with the frame sequence of video output. This is the same dialog used for Image Input Event options.

Enabled: Enables the mask. If this box is clear, Video Post ignores any other mask settings.

Inverted: When selected, the mask is inverted.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

See also

Edit Adobe Photoshop Plug-In Filter

Edit Adobe Premier Video Filter

Edit Contrast Filter

Edit Fade Filter

Edit Glow Filter

Edit Image Alpha Filter

Edit LenzFX Filter

Edit Negative Filter

Edit Pseudo Alpha Filter

Edit Simple Wipe Filter

Edit Starfield Filter

How To

To choose the mask file

  1. Click Files.
  2. Use the file dialog to choose the mask file, and then click OK.
  3. Choose the channel to use from the dropdown list of channels.

To position or resize the mask

  • Click Options.

An Image Input Options dialog appears, identical to the dialog you use with Image Input events.

If the mask is animated, you also use this dialog to specify its time range and playback speed.


Edit Adobe Photoshop Plug-In Filter

Since Photoshop filters are designed to process static images, each frame of a multiframe file receives the same filter effect.

Reference

Use Plugin Filters In

This area shows the current directory location of Photoshop filters, if one has been chosen.

Browse Filter: Displays a file selection dialog where you can specify the directory containing the plug-ins required for this filter.Input Image

Foreground Color: Specifies the foreground color for the image, used by some Photoshop filters. Click the color swatch to display the Color Selector window.

Use Alpha Plane: The alpha plane is 8 bits of data per pixel (0 - 255 colors) normally used to determine the degree of transparency in an image. In 3D Studio MAX, a pixel with an alpha value of 0 (black) is considered opaque, making it accessible for filtering. In Adobe products, the same value is considered transparent, protecting it from filtering.The effect of this setting depends on the filter version and the presence of a Video Post mask.

For Version 3.0 filters, when Use Alpha Plane is clear, alpha plane information is discarded, but any Video Post mask is used. When Use Alpha Plane is selected, the alpha plane is used as an opaque mask. Any video post mask is discarded.

For Version 4.0 filters, When Use Alpha Plane is clear, alpha plane information is discarded, but any Video Post mask is used. Modified pixels are set to opaque in the alpha plane (depending on filter). When Use Alpha Plane is selected, filtering takes place only on opaque pixels in the alpha plane that are permitted by the Video Post mask. Modified pixels are set to opaque in the alpha plane (depending on the filter).

Background Color: Specifies the background color for the image, used by some Photoshop filters. For example, the KPT Page Curl filter uses the background color when the corner of the image is lifted. Click the color swatch to display the Color Selector window.Current Filter

Category: Lists the category of Photoshop filter, typically the name of a filter series or supplier. Choose a category from the pull-down list.

Filter: Lists the names of particular filters. Choose a filter from the pull-down list.Plug-In Preview

Width: Specifies the width of the preview window, in pixels.

Height: Specifies the height of the preview window, in pixels.

Pixel Aspect Ratio: Set this value to match the pixel aspect ratio of the output device. The default is .89.

Note: Set the preview settings to the same values as the final render settings in Video Post to ensure predictable results. For example, if rendered output is small compared to the preview, you might not see the filter effect in the smaller rendered image.

General

Use Standin Image: Displays a default checkerboard pattern as the background for filter effects during setup. This option saves time if you don’t need to see the actual image, or you’re making a minor adjustment to a filter.

Browse Image: Displays a file Browse dialog from which you select an image file to use as the background for filter effects during setup. The selected file name replaces the "Browse Image" label on the button face.

Use this option to see a selected image while setting up a filter effect. Usually, you select the same image used as input to the filter, or a similar representative image if the current Video Post queue is used as input.

Save As Defaults: Saves the currently selected filter and its directory as defaults. Also saves the current settings for foreground and background colors and the Use Alpha Plane check box.

Get Filter Parameters: Launches the filter to set up the parameters. If you assign a Photoshop filter without setting its parameters, the filter interface is displayed before rendering begins. This halts the Video Post queue.


Edit Adobe Premiere Transition Filter

Adobe Premiere transition filters are also available as Image Layer events.

Reference

Filter Path

Provides controls that let you specify the path in which your Adobe Premiere filters are located.

Add Path: Lets you specify the directory containing your filters. The list lists the paths containing your filters. You can have more than one filter path, though only one path can be used at a time.

Filter Selection

The list displays all transition filters found in the current path. Click to select a filter.

A/B: These two windows provide a start and end preview of the transition effect. Use the sliders below the windows to preview the effect and to set the start and end points of the transition. For example, if the A window is set at 30% from Start, and the B at 20% from end, the transition will begin 30 percent into the effect, and end at 20 percent before the end of the effect.

The directional icon is available for some effects and disabled for others. It lets you choose the direction of the effect by clicking one of the arrows surrounding the square.

Swap Input: Click this to switch the image used in the transition. A transitions into B before the swap, and B transitions into A after the swap.

Filter Description

Displays the name of the currently selected filter, plus a brief description of its effect.

Custom Parameters: Displays a subdialog for the custom effects, for filters that have these effects.

How To

To use the Adobe Premier transition filters

  1. Add two Scene or Image Input events to the queue.
  2. Select both events and assign an Image Layer event consisting of the Adobe Premiere Transition Filter.
  3. Select the Image Layer event and click Edit Current Event.
  4. Click Setup to display the Adobe Premiere Transition Filter Setup dialog.


Edit Contrast Filter

Allows you to adjust the contrast and brightness of an image.

Reference

Contrast: Set the spinner between 0 and 1.0. This compresses or expands the latitude between maximum black and maximum white by creating a 16-bit look-up table for any given gray value in the image. The computation of the gray value depends on whether you select Absolute or Derived.

Brightness: Set the spinner between 0 and 1.0. This increases or decreases all color components (red, green, and blue).

Absolute/Derived: Determines the computation of the gray value for Contrast. Absolute uses the highest value of any of the color components. Derived uses an average of the three color components.


Edit Fade Filter

Fades an image in or out over time.

The rate of the fade is determined by the length of the Fade filter’s time range.

Reference

You can set the following controls in the Setup Options:

In: Fade in.

Out: Fade out.


Edit Glow Filter

Adds a glow to a material or object, making it appear self-illuminating and with a halo.

The glow effect is based on the g-buffer channel. The effect is applied to a particular set of materials or objects.

Reference

You can set the following controls in the Setup Options:

Source

Material Effects Channel: Associates the glow with a particular material or set of materials. You set the ID value to the Material Effects Channel value of that material.

Object Channel: Associates the glow with a particular object or set of objects. You set the ID value to that object’s Object Channel property.

Color

Material: Uses the material’s original color.

User: Lets you select a different color by clicking the color swatch and using the Color Selector.

Size: Changes the size of the glow halo. Size is specified in pixels.

How To

To set an object's G-Buffer ID

  1. Select the object.
  2. Right-click the object and then choose Properties from the popup menu.
  3. In the Object Properties dialog, set G-Buffer Object Channel to a non-zero value, and then click OK.

    4. The G-Buffer ID can be any positive integer.

    If you give the same G-Buffer ID value to more than one object, all these objects will be post-processed.

To set a material's Effects Channel ID

  1. In the Material Editor, make the material you want to be post-processed the active material.
  2. Choose a non-zero ID from the Material Effects Channel flyout.

    3. The Effects Channel ID can range from 1 to 8.

    If you give the same Effects Channel ID value to more than one material, all these materials will be post-processed.

    Note: For Multi/Sub-Object materials, post-processing applies at the sub-object/sub-material level. The Effects Channel ID of the parent Multi/Sub-Object material is ignored.

To set up an RLA file so it saves Object and Material Effects channel data

  1. In the Image Output Event dialog, click Files.
  2. Choose the .rla file type and a file name, and then click Setup.
  3. In the RLA Image File Format dialog, select Object, Material Effects, or both, and then click OK.
  4. Click OK.

    5. When the RLA file has saved the Object and Material Effects channels, you can use the rendered scene file as an Image Input event or a Filter or Layer mask, and continue to use the Object or Material Effects Channel data.


Edit Image Alpha Filter

Replaces the image’s alpha channel with the channel specified by the filter mask.

Reference

The filter takes whatever channel is selected in the channel options under Mask (including g-buffer channel data) and applies it to the queue's alpha channel, thereby replacing what’s there. This is the equivalent of the "Use Image Alpha" function in 3D Studio Release 4.

If you don’t choose a mask, this filter has no effect.

There are no Setup options for this filter.

How To

To set an object's G-Buffer ID

  1. Select the object.
  2. Right-click the object and then choose Properties from the popup menu.
  3. In the Object Properties dialog, set G-Buffer Object Channel to a non-zero value, and then click OK.

    4. The G-Buffer ID can be any positive integer.

    If you give the same G-Buffer ID value to more than one object, all these objects will be post-processed.


Edit Negative Filter

Inverts the colors in the image, making it negative like a negative color photograph.

Reference

When you click the Setup button in the Edit Filter Event dialog for the Negative filter, the Video Post dialog box is replaced by a modeless Negative Filter dialog with a Blend spinner. You can turn on the Animate button, move the time slider, and change the Blend value to create keys. (You can also use other MAX functions. For example, you can create objects.) When you’ve set all the keys you want, click the OK button to return to Video Post.

After creating keys from the Video Post filter, you’ll find the track for the new keys as a child of the Video Post track in the Track View. Specifically, in the above example, you’ll find the following hierarchy in the Track View:

Video Post

Negative

Blend Value (containing the keys)


Add Pseudo Alpha Filter

Creates an alpha channel for the image based on the image’s first pixel (the upper-left corner pixel). All pixels that have the same color as this pixel become transparent.

Reference

Because only one pixel color becomes clear, edges of the opaque areas are aliased. The main use for this filter is when you want to composite a bitmap whose format does not have an alpha channel.

There is also a Pseudo Alpha Layer Event.

There are no Setup options for this filter.


Edit Simple Wipe Filter

Reveals or erases the foreground image with a wipe transition. Unlike the Wipe Layer event, Wipe Filter wipes across a fixed image.

Wipes from image to image (or image to black). The filtered image stays in place, but is revealed or erased with a wipe across the image. If you're using a Wipe as a Filter event, you'll usually want to use an Alpha Compositor as a Layer event as well.

A typical queue sequence would be: Alpha Compositor (layer)

-->Image #1

-->Simple Wipe (filter)

------>Image #2

The rate of the wipe is determined by the length of the Wipe filter’s time range. The area not covered by the image renders as black unless you use an Image Layer event to composite the Wipe filter with another image.

Reference

Direction

Right-pointing arrow: Wipes from left to right.

Left-pointing arrow: Wipes from right to left.

Mode

Push: Reveals the image.

Pop: Erases the image.


Edit Starfield Filter

Generates a realistic starfield with optional motion blur. The Starfield filter requires a camera view. Any motion of the stars is a result of camera motion.

Reference

You can set the following controls in the Setup Options:

Source Camera: Lets you choose from a list of cameras in the scene. Choose the same camera as the one being used to render the scene.

General: Sets the brightness range and size of the stars.

Dimmest Star: Specifies the dimmest star. Choose any value from 0 to 255.

Brightest Star: Specifies the brightest star. Choose any value from 0 to 255.

Linear/Logarithmic: Specifies whether the range of brightness is calculated linearly or logarithmically.

Star Size (Pixels): Specifies the size of the stars, in pixels. Choose any value from 0.001 to 100.

Motion Blur

These settings control the streaking effect of the stars when the camera moves.

Use: Determines whether to use the motion blur. If clear, the stars appear as dots, no matter what the camera’s motion.

Amount: The percentage of the frame time that the camera “shutter” is open. By default, this is 75%.

Dimming: Determines how the streaked stars will dim as their trails lengthen. The default of 40 provides a good effect for video, dimming them a bit so they don’t appear to flash.

Star Database

These settings specify the number of stars in the starfield.

Random: Generates the number of stars indicated by the Count spinner, using the random number Seed to initialize the random number generator.

Custom: Reads the file specified. A provided star database, earth.stb, contains the brightest stars in Earth’s sky.

Seed: Initializes the random number generator. By using the same Seed value in different animations, you’re guaranteed identical starfields.

Count: Specifies the number of stars generated when Random is chosen.

Database: Lets you specify a custom database for generating the stars.

Compositing

Background: Composites the stars in the background. This is the default.

Foreground: Composites the stars in the foreground.

How To

To use the Starfield filter

  1. Create a camera and (optionally) animate the camera’s or target’s position, field of view, and roll.
  2. Select Rendering/Video Post and add a Scene Event, using the camera for the view.
  3. Select the Scene Event in the queue, click Add Image Filter, select the Starfield filter, and click the Setup button.
  4. In the Stars Control dialog, make sure that the selected camera matches the camera used in the Scene Event.

    5. If these don’t match, the stars will not match the camera’s motion. If there is only one camera in the scene, the field will default to that camera.

  5. Set the starfield parameters, then exit the Stars Control dialog and the Edit Filter Event dialog.
  6. Execute the Video Post sequence to see stars.


LenzFX Filters

Adds lens flare effects as a post process to renderings. A flare is applied to a specific object, usually a light, in your scene. The lens flare is generated around that object.

LenzFX gives you control over all aspects of the lens flare, and lets you produce highlights, glows, and blur objects based on the distance from the camera.

LenzFX includes the following:

LenzFX: Controls the creation of lens flares and other optical effects.

HiLight: Controls the creation of visible light highlights on shiny objects. HiLight is integrated into the Lens Flare dialog box and is active when you select a g-buffer Source.

LenzFX Glow: Controls the creation of glowing areas in an image, such as the thruster on a space ship.

Zfocus: Controls the blurring of objects based on their distance from the camera.


LenzFX Previews

LenzFX provides you with nine preview windows. The main preview window in the upper left-hand corner of the LenzFX dialog box shows you the complete scene. The eight smaller preview windows in the upper right corner show the individual parts of the lens flare. Each small preview window has a check box below the window to activate it.

All of the preview windows are multi-threaded to increase redraw speed and take advantage of multi-processor systems. When you make an adjustment to a lens flare properties and the preview window(s) is active, the preview updates automatically. A white line at the bottom of the main preview window indicates that it is updating.

Reference

The main preview window has three controls:

Preview: Displays a generic lens flare for you to use to make adjustments. This button must be active for any preview to be active.

Update: Lets you manually update the preview window, including the smaller windows, at any time.

VP Preview: Lets you view the video post frame in the preview window. Both Preview and VP Preview must be active to use this feature.

The preview windows are also dependent on the lens flare options you have turned on in the Preferences.


Lens Flare Properties

The lens flare properties determine where the lens flare appears, how large it is, and how it is oriented.

Reference

Seed: Gives the random number generator in LenzFX a different starting point, which creates slightly different lens flares without changing any settings. Using Seed guarantees a different lens flare, even if the differences are very small. For example, if you set up a ray effect for your lens flare, you will get slightly different rays in the lens flare if you adjust the seed value.

Size: Affects the size of the overall lens flare. This value is a percentage of the size of the rendered frame. The default is 75. Other parts of the lens flare, such as glow, ring, etc., also have size adjustments, but this size setting affects the entire lens flare, including secondary flares. Adjusting individual sizes does not affect this size variable, or vice versa.

Node Sources: Lets you select the source object for the lens flare effect. The source of the lens flare may be any object in the scene, but is generally a light, such as a target spot light, or an omni light. When you click this button, you see a standard 3D Studio MAX object selection dialog box.

G-Buffer Sources: Lets you select source objects based on their object ID. This option is primarily intended for use with the Hilight module, which uses the object ID and the properties of the Glow panel, but you can use G-Buffer sources for lens flares as well.

If you select a source object, then rename the object later, you must reselect the object here to ensure the correct generation of the lens flare.

Rotation: Affects the amount that the flare rotates from its default position, as the position of the flare changes relative to the camera. This parameter is animatable. The lock button to the right of the animate button locks the secondary flares so they do rotate. When the button is disabled, the secondary flares will not rotate.

Intensity: Controls the overall brightness and opacity of the flare. Higher values produce bright opaque flares, and lower values produce dim, transparent flares.

Squeeze: Squeezes the size of the lens flare, either horizontally or vertically, to compensate for different frame aspect ratios. You can set Squeeze from 100 to -100. Positive values stretch the flare horizontally, and negative values stretch it vertically. The value is a percentage of the size of the flare.

For example, if you convert a film for use on TV, applying Squeeze would cause the lens flare to look correct on the smaller screen, and not thin and tall, although 35-MM film is much wider than a regular TV.

How To

To set an object's G-Buffer ID

  1. Select the object.
  2. Right-click the object and then choose Properties from the popup menu.
  3. In the Object Properties dialog, set G-Buffer Object Channel to a non-zero value, and then click OK.

    4. The G-Buffer ID can be any positive integer.

    If you give the same G-Buffer ID value to more than one object, all these objects will be post-processed.


Lens Flare Effects

The lens flare effects let you control where and what the lens flare affects in the scene.

Reference

Brighten: Lets you set an overall brightness that affects the whole image. When a bright effect, such as a lens flare, appears in an image, the whole image should appear brighter. This effect is available only when the Brighten option is enabled under the Render section of the Preferences dialog box.

Dist Fade: Causes the effect of the lens flare to fade with its distance from the camera. This option is used only when the Dist Fade button is turned on. The values are in 3D Studio MAX world units.

Cent Fade: Fades the secondary flares near the center of the row of flares along the main axis of the flare. This is an effect that can be seen in many lens flares seen through a real camera lens. This value is in 3D Studio MAX world units. Cent. Fade is available only when the Cent Fade button is active.

Dist Blur: Blurs the flare based on its distance from the camera. This value is in 3D Studio MAX world units.

Blur Int: Controls how strong the blur is when applied to the lens flare.

Soften: Provides an overall softening effect for the lens flare.


Lens Flare Settings

A lens flare is composed of 7 basic parts, plus Inferno, which provides special effects such as explosions. Each part of a flare is controlled on its own page of the LenzFX Settings dialog box. Each part of the lens flare can be individually activated and deactivated to create different effects.

Glow : A general glow centered around the source object of the flare. You can control the color, size, shape, and other aspects of the glow.

Ring : A circular color band that surrounds the center of the source object. You can control the color, size, shape, and other aspects of the ring.

Auto Secondary Flares : The small circles you would normally see coming out from the source of the lens flare. As the camera position changes relative to the source object, the secondary flares move. The secondary flares are automatically generated when this option is active.

Manual Secondary Flares : Additional secondary flares added to the lens flare effect. They appear in the same axis as the automatic secondary flares and look very similar.

Rays : Bright lines that radiate out from the center of the source object, providing the illusion of extreme brightness for the object.

Stars : Bright lines that radiate out from the center of the source object, generally composed of 6 or more spokes, (instead of hundreds, like a ray). Stars are generally thicker and extend out farther from the center of the source object than rays.

Streaks : Wide horizontal bands that run through the center of the source object.


LenzFX Gradients

A gradient is a linear transition from one color to another, as shown below. LenzFX MAX uses gradients to control aspects of the lens flares, such as colors and transparency. LenzFX uses several gradient types.

This gradient runs from pure white to a red color, then to a blue. Gradients are always interpreted left to right in this system.

The critical points in a gradient are marked by flags at the bottom of the gradient bar. The flags indicate points where you want to have a specific color. The colors between the flags are interpolated automatically by the system. The current flag is highlighted and green. The number at the right of the gradient bar indicates the position of the current flag, in relation to the overall length of the gradient.

A gradient always has a start and end flag. You can add as many intermediate flags as you like.

You can place flags on top of one another to create interesting layered gradient effects, as shown below.

To change the properties for a gradient flag, right-click the flag you want to change and choose Properties. To change gradient options, right-click the gradient itself, not the flags.

Reference

The Properties dialog lets you change the name of the flag, its color, and its position.

Name: By default, flags are named Flag #. You can enter a different name for the current flag. The arrows to the right of the name box let you choose other flags on the same gradient.

Color: Click the color swatch to display the color picker and choose a different color. The green arrow to the left of the color swatch indicates whether this property of the flag is animatable and whether it shows up in TrackView.

Position: Each gradient has 100 possible positions from left to right. The position option is animatable.

How To

To add an intermediate flag

  • Click on the gradient bar where you want to place the new flag.

The flag uses the color of the gradient at the point where you placed it. To adjust the color, right-click the flag and use the Properties dialog.

To adjust the position of a flag

  • Drag the flag left or right.

The gradient updates to show you the changes.

To delete a flag

  • Drag the flag outside the gradient bar.

The flag turns red, and the mouse point changes to a down arrow pointing to a bucket. When you let go of the mouse button, the flag is deleted.

To change a flag’s properties

  1. Right-click the flag to display a menu
  2. Click Properties and change any settings you want.


LenzFX HiLite

LenzFX HiLight

The HiLight effect provides bright highlights on objects that have shiny materials. For example, a shiny, red car might show highlights in a bright sunlight. The HiLight effect uses the Star parameters.

How To

To create a highlight effect

  1. Select a G-buffer source instead of a Node Source, so you can select objects by Material ID or Object ID.
  2. Disable rendering of all lens flare features except Star.
  3. Configure the Star parameters.

To set an object's G-Buffer ID

  1. Select the object.
  2. Right-click the object and then choose Properties from the popup menu.
  3. In the Object Properties dialog, set G-Buffer Object Channel to a non-zero value, and then click OK.

    4. The G-Buffer ID can be any positive integer.

    If you give the same G-Buffer ID value to more than one object, all these objects will be post-processed.


LenzFX Zfocus

ZFocus blurs objects based on their distance from the camera, using the ZBuffer information from the scene. You can use Zfocus to create effects such as foreground elements in focus and background elements out of focus, similar to a camera shot using a high F-Stop setting.

Reference

The Zfocus dialog box has two sections. On the left side of the dialog box, you select what and where the Zfocus affect is applied. On the right side of the dialog box, you specify how the Zfocus effect is applied to the scene.

Preview: Lets you quickly preview the Zfocus effect.

Scene Blur: Applies the blurring effect to the entire scene, not just a portion of it.

Radial Blur: Applies the blurring effect to the entire scene in a radial fashion, starting at the center of the frame. This is useful for emphasizing fish-eye lens effects and effects where the edges of the frame are blurred. This type of Zfocus depends on the Focal Range and Limit settings.

Focal Object: Lets you set Zfocus to work with a specific object in the scene. The selected object remains in focus, while objects at greater and lesser distances from the camera are blurred. This type of Zfocus depends on the Focal Range and Limit settings.

Select: Lets you select the object to use as the focal object. Only one object may be used as a focal object per Zfocus entry in the video post queue.

Affect Alpha: When this option is active, the blur effect is also applied to the Alpha channel of the image when you render to a 32 bit format. To composite the blurred image over the top of another, enable this option.

Horiz. Focal Loss: Specifies the amount of blur applied to the image in the horizontal direction. Valid values are from 0 to 100% focal loss.

Lock: Locks the horizontal and vertical loss settings together. When active, if you change horizontal, the vertical is automatically updated to match.

Vert. Focal Loss: Specifies the amount of blur applied to the image in the vertical direction. Valid values are from 0 to 100% focal loss.

Focal Range: Specifies how far away from the center of the image (Radial Blur) or from the camera (Scene and Focal Object) the blur effect begins. Larger values move the effect farther away from the camera or the center of the image.

Focal Limit: Specifies the outer limit of the blur effect. Set a high limit with a low range to get a slight variation over the amount of blur in the scene. If Limit and Range are set close together, the amount of change in the blur effect is greater over shorter distances.


Animating Lens Flare Properties

LenzFX lets you use TrackView to control animatable parameters while still inside the Video Post module.

In any LenzFX dialog box, a parameter with a green arrow button next to it can be animated.

When the animation button is active, the associated spinner or variable will appear in TrackView and can be animated. If it is not active, the green button turns gray to indicate the parameter is no longer animatable.

There are two ways to set parameters for use in animation:

  • Enable the Animation button, set the frame in which you want to create a key, and set the value.
  • Use TrackView.

Using TrackView

To use TrackView with LenzFX, the LenzFX Setup dialog box must be open when you click the TrackView button. If you open TrackView without LenzFX being open, the LenzFX Flare01 object does not appear in the TrackView List. If you have more than one LenzFX object in the scene, you will see multiple LenzFX Flare objects in TrackView.

When TrackView is open, a LenzFX Flare01 object appears, showing you the current animation parameters for your lens flare. The major parameters show up individually. Each part of the lens flare also has its own sections, under which you will find the respective parameters, so you will see a long list of animatable parameters. You can animate only the parameters you need to.

In TrackView, the first two flags have a color track only, because, as the start and end points of the gradient, they never move. Any flags beyond 1 and 2 have a position track, unless you disabled animation for the flag in the Flag Properties dialog box. If you disable the animation capabilities for a particular lens flare parameter, the corresponding entry in TrackView immediately disappears.


LenzFX Preferences

The LenzFX preferences control which parts of a lens flare are active and how they effect the overall image.

You can control whether or not specific parts of the lens flare, such as the rays or the star, are rendered. You can also control the axial transparency of the lens flare.

Reference

Affect Alpha: Specifies whether or not the lens flare affects the alpha channel of an image, when the image is rendered in a 32-bit file format. The alpha channel is an extra 8 bits of color (256 colors) that indicate transparency in an image. Alpha channels are used to composite one image seamlessly over the top of another. If you want to composite a lens flare, or an image that contains a lens flare, over the top of another image, enable this option. If you are not rendering to a 32-bit file, do not enable this option.

Affect Z Buffer: The Z Buffer stores an object’s distance from the camera. The Z Buffer is useful for optical effects such as fog. When this option is enabled, the linear distance of the lens flare is recorded, and can be used in special effects that make use of the Z buffer, for example, the ZFocus effect. To use Z Focus with a lens flare, enable this option.

Motion Blur: Determines whether or not an animated lens flare can be rendered using Motion Blur. Motion Blur renders multiple copies in short increments to the same frame, which gives the illusion of a blurred object in motion. When an object is moving rapidly across the screen, it animates more smoothly if motion blur is turned on. Using motion blur can add rendering time.

Occlusion Radius: A radius around the center of the flare that determines when the lens flare effect will begin to fade as it passes behind another object. This radius is measured in pixels.

When the lens flare or scene is animated and the source of the lens flare goes behind another object, if occlusion is enabled, the flare dies down and disappears until the source object reappears on the other side of the hiding object. The radius makes the flare gently fade when it is occluded, instead of blinking out.

Axial Transparency: A standard transparency gradient that affects the transparency of the lens flare along its main axis.

Render: Specifies whether or not each part of the lens flare is rendered in the final image. Use this set of check boxes to turn parts of the lens flare on and off.

Note: Effects such as secondary flares are available in sets. The Render button and Off Scene determine whether the secondary flares are present in the scene. The individual secondary flare sets are controlled on their respective pages.

Off Scene: Specifies whether or not lens flares that have their sources outside the scene will affect the image. For example, if a lens flare source is just off the edge of a frame, the secondary flares, and possibly the star or ring, could still be showing on the screen. Without Off Scene, the lens flare does not appear at all. You can turn this option on or off for each part of the flare.

Squeeze: Specifies whether the Squeeze setting affects a particular part of the lens flare. This setting depends on the Squeeze setting in the lens flare properties.

Occlusion: Defines the percentage of the flare part that appears when it is occluded by another object. A value of 100 indicates that the whole object will disappear. Lower settings cause the lens flare to wrap around the occluding object, making it bleed out. For example, if you look at a cylinder with a bright light behind it, the light makes the cylinder appear thinner at the brightest areas.

Inferno: Defines whether the inferno settings are active for this portion of the lens flare.


Edit Layer Event

Provides controls for editing a layer event.

Image Layer events composite other images and scenes. Several kinds of layer events are provided.

An Image Layer event is always a parent event with two children, which can themselves be parents with children. The children for an Image Layer event can be Scene events, Image Input events, Layer events that contain Scene or Image Input events, or Filter events that contain Scene or Image events.

Reference

Layer Plug-In

Selects the compositor 3D Studio MAX uses for layering the rendered images in the queue. Alpha is the default compositor, but you can also choose from any others you have installed.

Adobe Premiere Transition: Lets you create a transition between Adobe Premiere video events.

Alpha Compositor: Composites the two images using the alpha channel of the foreground image. The background image appears in areas where the foreground image’s alpha channel is transparent.

Cross Fade: Composites the two images over time, crossfading from the background image to the foreground image. The rate of the crossfade is determined by the length of the Cross Fade Transition filter’s time range.

Pseudo Alpha: Composites a foreground image against the background by creating an alpha channel for the foreground image based on the foreground image's upper-left-corner pixel. All pixels in the foreground image that use this color become transparent. Because only one pixel color becomes transparent, edges of the opaque areas in the foreground image are aliased. Use this method when the foreground image is a bitmap whose format does not have an alpha channel.

Simple Additive Compositor: Composites the two images using the foreground image’s intensity (HSV value) to determine transparency. Areas of full intensity (255) are opaque. Areas of zero intensity are transparent. Areas with intermediate transparency are translucent.

Simple Wipe: Reveals or erases the foreground image with a wipe transition. Unlike the Wipe Filter event, Wipe Layer moves the image, sliding it in or out. Under Setup, you can choose the direction of the wipe and whether to reveal the foreground image (Push) or erase it (Pop).

About: Provides version/source information specific to the plug-in.

Setup: Displays a setup dialog specific to the plug-in. Some plug-ins may not use this button.

Mask

Channels: If you are using a bitmap as the mask file, you can use the Alpha channel, the Red, Green, or Blue channel, or Luminance.

Files: Select a file to use as a mask. The name of the selected file appears above the Files button.

Options: Displays a dialog in which you can set alignment and size, relative to the frames of video output. For animated images, you can also synchronize the mask with the frame sequence of video output. This is the same dialog used for Image Input Event options.

Enabled: Enables the mask. If this box is clear, Video Post ignores any other mask settings.

Inverted: When selected, the mask is inverted.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

See also

Edit Adobe Premiere Transition Filter

Edit Alpha Compositor

Edit Cross-Fade Compositor

Edit Pseudo-Alpha Compositor

Edit Simple Additive Compositor

Edit Simple Wipe Compositor

How To

To choose the mask file

  1. Click Files.
  2. Use the file dialog to choose the mask file, and then click OK.
  3. Choose the channel to use from the dropdown list of channels.

To position or resize the mask

  • Click Options.

An Image Input Options dialog appears, identical to the dialog you use with Image Input events.

If the mask is animated, you also use this dialog to specify its time range and playback speed.


Edit Alpha Compositor

Composites the two images using the alpha channel of the foreground image. The background image appears in areas where the foreground image’s alpha channel is transparent.

There are no Setup options for this compositor.


Edit Cross Fade Compositor

Composites the two images over time, crossfading from the background image to the foreground image. The rate of the crossfade is determined by the length of the Cross Fade Transition filter’s time range.

There are no Setup options for this compositor.


Edit Pseudo-Alpha Compositor

Composites a foreground image against the background by creating an alpha channel for the foreground image based on the foreground image's upper-left-corner pixel. All pixels in the foreground image that use this color become transparent.

Because only one pixel color becomes transparent, edges of the opaque areas in the foreground image are aliased. Use this method when the foreground image is a bitmap whose format does not have an alpha channel.

There is also a Pseudo Alpha Filter Event.

There are no Setup options for this compositor.


Edit Simple Additive Compositor

Composites the two images using the second image’s intensity (HSV value) to determine transparency. Areas of full intensity (255) are opaque; areas of zero intensity are transparent; and areas with intermediate transparency are translucent.

This layer event can be useful when the second image is a bitmap whose format does not have an alpha channel.


Edit Simple Wipe Compositor

Reveals or erases the foreground image with a wipe transition. Unlike the Wipe Filter , the Wipe Layer evnt moves the image, slidng it in or out.

The rate of the wipe is determined by the length of the Wipe compositor’s time range.

Reference

Direction

Right-pointing arrow: Wipes from left to right.

Left-pointing arrow: Wipes from right to left.

Mode

Push: Reveals the image.

Pop: Erases the image.


Add Scene Event

Adds the scene in the selected camera viewport to the queue.

The scene is rendered exactly as it would be by the scanline renderer, with the additional options listed below. The resulting scene image has an alpha channel.

Reference

The Add Scene Event provides the following controls:

View

Select the viewport you want to render.

Scene Options

Enables various rendering effects.

Render Options: Displays a subset of the parameters in the Render Scene dialog. For information on these controls, see the Common Parameters and MAX Default Scanline A-Buffer help topics. Changes you make to the Scene Event Render Options affect the Render Scene dialog box, as well.

Scene Motion Blur: Turns on the scene motion-blur effect for the whole scene. This is different from object motion blur, which creates motion blur for individual objects in the scene.

Scenes created with previous versions of 3D Studio MAX that use both Object Motion Blur and Scene Motion Blur may not render correctly, due to changes to Object Motion Blur. Execute some test frames and adjust your blur settings if needed.

When you render with Scene Motion Blur activated, the Render Progress dialog tells you which subsample is being rendered. The information appears in parentheses to the right of the “Rendering Image” text. For example:

Current Task: Rendering Image (Subsample 1 of 2)

Duration: Sets the virtual shutter speed for motion blur. When it’s set to 1.0, the virtual shutter is open for the entire duration between one frame and the next. When it’s set to a smaller numer (for example, 0.25), the number of subdivisions specified in the Duration Subdivision field will be rendered within the specified portion of the frame (in this example, in the first .25 of the duration between one frame and the next).

Duration Subdivision: Determines how many sub-frame slices are rendered within the Duration. The default is 2 slices, but you’ll want at least 5 or 6 to get a decent effect.

Dither %: Sets the amount of dithering between blurred pixels of overlapping frame slices. If Dither % is set to 0, no dithering occurs.

Scene Range

Sets the range of scene frames to be rendered.

Lock Range Bar to Scene Range: Becomes available when you deselect Lock to Video Post Range. When it’s available, the End spinner is disabled and locked to the Video Post range. When you change the Start spinner it automatically updates the End spinner based on the Video Post range set for this event.

If you clear the box, you can change either Start or End spinners to whatever you want. This allows you to keep your scene range locked to its native length, and still provides flexibility for mapping an arbitrary scene range to an arbitrary Video Post range.

Lock to Video Post Range: Renders the same range of scene frames as Video Post frames. You can set the Video Post range in the Execute Video Post dialog.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

How To

To add a Scene event

  1. Make sure no events are selected in the queue.
  2. Click Add Scene.

    3. An Add Scene Event dialog appears.

  3. Choose a view to use from the View list.
  4. Click Render Options to change rendering settings from the way you have set them in the Render Scene dialog.

    5. Note: Unlike settings in the Execute Video Post dialog, changes you make to the Scene event rendering options change the settings in the Render Scene dialog, and vice versa.

  5. Set the Scene Range options and click OK.

    6. The Scene event appears at the end of the queue.

To match the scene's frames with Video Post frames

  • Make sure Lock to Video Post Range is selected.

Lock to Video Post Range is the default. Frames in the scene match Video Post frames and have the same frame number. That is, frame 0 in the scene is frame 0 in the Video Post dialog, frame 15 in the scene is frame 15 in Video Post, and so on. The range bar for the Scene event represents which portion of the scene is selected. If the range bar covers Video Post frames 25 to 35, executing the queue renders scene frames 25 to 35. Moving the range bar for the scene is like moving a time window within the scene.

Other Scene Range options are disabled when Lock to Video Post Range is selected.

To offset the scene in time

  • Select Lock Range Bar to Scene Range.

The Scene Start control is enabled but the Scene End control remains disabled - synchronization is controlled by the Scene Start value and the length of the range bar.

The Scene Start value is the scene frame number where playback begins. If Scene Start is 0, frame 0 of the scene is the first frame played back; if Scene Start is 12, frame 12 is the first frame to play, and so on.

The range bar length determines how many frames of the scene to play. Dragging the end point of the range bar changes the length of the playback range. Although Scene End is grayed out, its value updates to show the frame number of the last scene frame that will be played.

Dragging the range bar changes where the scene is played within the final video. For example, if you set Scene Start to 5 and move the range bar to begin at Video Post frame 20, frame 5 is played at frame 20 of the final video, and so on.

To offset the scene and change scene playback rate

  • Clear Lock Range Bar to Scene Range.

With Lock Range Bar to Scene Range clear, both Scene Start and Scene End are enabled. As before, Scene Start specifies the first scene frame to play. Scene End specifies the last scene frame to play, and the length of the range bar determines playback speed.

If the range bar specifies the same number of Video Post frames as there are corresponding scene frames, then playback is at the scene's playback rate. If the range bar specifies fewer frames, the scene is sped up. If the range bar specifies more frames, the scene is slowed down. When it executes, Video Post automatically skips frames or adds frames to control the speed of scene playback.

For example, if Scene Start is frame 5 and Scene End is frame 35, the range bar represents 30 frames overall. If the range bar covers only 10 Video Post frames, scene playback is sped up to fit 30 frames into 10 of the final video. If on the other hand, the range bar covers 120 frames, scene playback is stretched to slow it down.

To add scene motion blur

  1. Select Scene Motion Blur in the Scene Event dialog.
  2. Set the scene motion blur parameters.

    3. The Scene event generates motion blur by simulating a camera with an open shutter. It interpolates and then renders movement within a frame, to generate a series of images of the moving object, instead of the default single image.


Add Image Input Event

Adds a still or moving image to the scene. Image Input events place an image in the queue, but unlike Scene events, the image is a file that was saved beforehand or a device-generated image. The image can be in one of the following file formats:

  • avi
  • bmp
  • Autodesk animation format (flc, fli, cel)
  • gif
  • ifl
  • jpeg
  • rla
  • tga
  • tif
  • yuv

Reference

Image Input

Files: Lets you choose the bitmap or animation image file.

Devices: Lets you choose an installed hardware input device, for example, a digital disk recorder.

Options: Displays the Image Input Options dialog to allow you to set up alignment, size, and frame range for the input image.

Cache: Stores a bitmap in memory. If you are using a single-image bitmap, you can choose this option. Video Post won’t reload or scale the image for each frame.

Image Driver

These buttons are available only when you choose a device as the image source.

About: Provides information on the source of the image-handler software used to bring the image into 3D Studio MAX.

Setup: Displays a setup dialog specific to the plug-in. Some plug-ins may not use this button.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

How To

To add an Image Input event

  1. Make sure no events are selected in the queue.
  2. Click Add Image Input Event.

    3. An Add Image Input Event dialog appears.

  3. Click Files to choose a bitmap or animation as the image, or click Devices to choose an image-generating device.

    4. If you click Files, a file dialog appears to let you choose the bitmap or animation file.

    If you choose Devices, a Select Image Input Device dialog appears. This dialog has a list of installed device options.

  4. Click Options to choose the size and placement of the image in the final video frames.

    5. An Image Input Options dialog appears.

  5. Adjust other Image Input settings, and then click OK.

    6. The Image Input event appears at the end of the queue.

    Tip: Think of images that share the same time range as layers, comparable to matted film images in a compositor. Images that share a time range must be composited with an Image Layer event; otherwise, the second image in the queue "overwrites" the first.


Add Image Output Event

Provides controls for editing an output image event.

Image Output events send the result of executing the Video Post queue to a file or a device. You must add an Image Output event to the end of the queue if you want to save the final video. Otherwise, the results are displayed in the virtual frame buffer window only. The Image Output event’s range bar must include the entire range of frames you want to output.

You can have multiple output image events, outputting to different devices. This lets you monitor your queue with VTR output devices and view your output at any level of the Video Post queue during rendering.

Reference

Image File

You can send the Image Output to either a file or a device.

Files: Lets you name the output image file.

The rendered output can be a still image or an animation, in one of the following file formats: avi, bmp, Autodesk animation format (flc, fli, cel), Encapsulated PostScript format (eps, ps), jpeg, rla, tga, tif.

Devices: Lets you choose the hardware output device, for example, a digital video recorder. The device, its driver, and its 3D Studio MAX plug-in must all be installed on your system to use device output.

Image Driver

The two buttons in this area are available only when you choose a device as the image source.

About: Provides information on the source of the image-handler software used to create the image from 3D Studio MAX.

Setup: Displays device-specific setup options.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

How To

To add an image output event

  1. Click Add Image Output Event.

    2. Image Output disregards whether any events in the queue are selected or not.

  2. Click Files to save the final video in a file, or Devices to send the video to a device.

    3. If you click Files, a file dialog appears to let you choose the bitmap or animation file.

    If you choose Devices, a Select Image Output Device dialog appears. This dialog has a dropdown list of installed device options.

  3. Adjust other parameters, and then click OK.

    4. The Image Output Event appears at the end of the queue.

    If you choose a device, its configuration controls are enabled:


Add External Event

An External event is typically a program that performs image processing. It can also be a batch file or utility that you want to run at a specific point in the queue, or a way to transfer images from or two the Windows clipboard.

An External event is always a child event. If you select an event in the queue before you add the External event, the External event becomes the selected event’s child. Child events are evaluated before their parents.

Reference

External Event

Allows you to select the external program to be executed.

Browse: Lets you select an external program. For example, you can specify Adobe Photoshop(TM) or another image-processing application.

Command Line Options

For external programs that accept command-line options, lets you send real-time data to the external program. 3D Studio MAX parses three special commands. When found in a string, these commands are replaced with real-time data as in these examples:

%f is replaced with a 4 digit frame number (for example, 0001)

%w is replaced with a 4 digit image width (for example, 0640)

%h is replaced with a 4 digit image height (for example, 0480)

For example, if the given command line option is:

-w%w -h%h -oframe%f.tga

The string sent to the external program might be:

-w0640 -h0480 -oframe0001.tga

Write image to clipboard: Writes the current rendered image to the Windows clipboard for retrieval by an external application.

Read image from clipboard: Reads the contents of the Windows clipboard after processing by the external application. When the processed image is saved to the clipboard it automatically appears in Video Post. With an automated script, it is possible to run the image through any external image processor and get it back automatically.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

How To

To add an external event

  1. Either select an event, or make sure no event is selected in the queue.
  2. Click Add External Event.

    3. An Add External Event dialog appears.

  3. Click Browse.

    4. A file dialog appears.

  4. Use the file dialog to choose the external program you want to execute, and then click OK.
  5. If the external program accepts command-line options, enter these in the Command Line Options field.
  6. If you want the external program to read the current Video Post image, select Write Image to Clipboard.
  7. If you want Video Post to use the result of the external program, select Read Image from Clipboard.
  8. Click OK.

    9. If you selected an event, the External event becomes its child. If no event was selected, the External event appears at the end of the queue.

    Warning: The image that the External event reads from the clipboard is placed in the Video Post queue. If the external program does not do what you want, this can erase or overwrite the result of all Video Post post-processing.


Add Loop Event

Loop events cause other events to repeat over time in the output video. They control sequencing, but perform no image processing.

A Loop event is always a parent event with a single child. The child itself can be a parent with children. Any type of event can be the child of a Loop event, including another Loop event.

The Loop event’s range bar displays the original duration of the child event’s playback in color and the range of looped events in gray. You can change the duration of the child event’s playback by dragging the child’s frame range or the child’s original range in the Loop event’s track, but you can adjust the full length of the loop (the gray part of the range bar) only by changing the Number of Times parameter in the Edit Loop Event dialog box.

Reference

Order

Loop: Repeats the child event by starting it over when the child event reaches the end of its range. This is the default.

Ping Pong: Repeats the child event by playing it first forwards, then backwards, then forwards, and so on. The last frame of the child event is not repeated.

Number of Times

Specifies the number of times to repeat the loop or ping pong, in addition to the first time that the child event is played.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

How To

To add a loop event

  1. Select the child event.
  2. Click Add Loop Event.

    3. An Add Loop Event dialog appears.

  3. Choose the loop settings, and then click OK.

    4. The Loop event appears as the parent of the selected event.

    The Loop event repeats the child event over the course of the Loop event's range.


Add Image Filter Event

Provides image processing for images and scenes. Several kinds of filters are provided. For example, the Negative filter inverts the colors of an image and the Fade filter fades an image in or out over time.

An Image Filter event is usually a parent event with a single child (which can itself be a parent with children), for example, a Secen event, an Image Input event, a Layer event that contains Scene or Image Input events, or a Filter event that contains Scene or Image Input events. You can also add an Image Filter without a child event, in which case the Image Filter processes the result of the previous events in the queue.

Reference

Filter Plug-In

Lists the filter plug-ins you have installed.

See the separate help topics for a description of the filters that come with 3D Studio MAX.

About: Provides version/source information specific to the plug-in.

Setup: Displays a setup dialog specific to the plug-in. Some plug-ins may not use this button.

Mask

Channels: If you are using a bitmap as the mask file, you can use the Alpha channel, the Red, Green, or Blue channel, or Luminance.

Files: Select a file to use as a mask. The name of the selected file appears above the Files button.

Options: Displays a dialog in which you can set alignment and size, relative to the frames of video output. For animated images, you can also synchronize the mask with the frame sequence of video output. This is the same dialog used for Image Input Event options.

Enabled: Enables the mask. If this box is clear, Video Post ignores any other mask settings.

Inverted: When selected, the mask is inverted.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

See also

Add Adobe Photoshop Plug-In Filter

Add Adobe Premier Video Filter

Add Contrast Filter

Add Fade Filter

Add Glow Filter

Add Image Alpha Filter

Add LenzFX Filter

Add Negative Filter

Add Pseudo Alpha Filter

Add Simple Wipe Filter

Add Starfield Filter

How To

To add an image filter event

  1. Either select a valid child event, or make sure no event is selected in the queue.
  2. Click Add Image Filter Event.

    3. An Add Image Filter Event dialog appears.

  3. Choose the kind of filter you want from the Filter Plug-In list.
  4. If the Setup button is enabled for this kind of filter, click Setup to set the filter options.
  5. Choose a mask if you want the filter to be masked or if the kind of filter you're using requires it.
  6. Adjust other Image Filter settings, and then click OK.

    7. If you selected a child event, the Image Filter event becomes its parent. If no event was selected, the Image Filter event appears at the end of the queue.

To choose the mask file

  1. Click Files.
  2. Use the file dialog to choose the mask file, and then click OK.
  3. Choose the channel to use from the dropdown list of channels.

To position or resize the mask

  • Click Options.

An Image Input Options dialog appears, identical to the dialog you use with Image Input events.

If the mask is animated, you also use this dialog to specify its time range and playback speed.


Add Adobe Photoshop Plug-In Filter

Since Photoshop filters are designed to process static images, each frame of a multiframe file receives the same filter effect.

Reference

Use Plugin Filters In

This area shows the current directory location of Photoshop filters, if one has been chosen.

Browse Filter: Displays a file selection dialog where you can specify the directory containing the plug-ins required for this filter.Input Image

Foreground Color: Specifies the foreground color for the image, used by some Photoshop filters. Click the color swatch to display the Color Selector window.

Use Alpha Plane: The alpha plane is 8 bits of data per pixel (0 - 255 colors) normally used to determine the degree of transparency in an image. In 3D Studio MAX, a pixel with an alpha value of 0 (black) is considered opaque, making it accessible for filtering. In Adobe products, the same value is considered transparent, protecting it from filtering.The effect of this setting depends on the filter version and the presence of a Video Post mask.

For Version 3.0 filters, when Use Alpha Plane is clear, alpha plane information is discarded, but any Video Post mask is used. When Use Alpha Plane is selected, the alpha plane is used as an opaque mask. Any video post mask is discarded.

For Version 4.0 filters, When Use Alpha Plane is clear, alpha plane information is discarded, but any Video Post mask is used. Modified pixels are set to opaque in the alpha plane (depending on filter). When Use Alpha Plane is selected, filtering takes place only on opaque pixels in the alpha plane that are permitted by the Video Post mask. Modified pixels are set to opaque in the alpha plane (depending on the filter).

Background Color: Specifies the background color for the image, used by some Photoshop filters. For example, the KPT Page Curl filter uses the background color when the corner of the image is lifted. Click the color swatch to display the Color Selector window.Current Filter

Category: Lists the category of Photoshop filter, typically the name of a filter series or supplier. Choose a category from the pull-down list.

Filter: Lists the names of particular filters. Choose a filter from the pull-down list.Plug-In Preview

Width: Specifies the width of the preview window, in pixels.

Height: Specifies the height of the preview window, in pixels.

Pixel Aspect Ratio: Set this value to match the pixel aspect ratio of the output device. The default is .89.

Note: Set the preview settings to the same values as the final render settings in Video Post to ensure predictable results. For example, if rendered output is small compared to the preview, you might not see the filter effect in the smaller rendered image.

General

Use Standin Image: Displays a default checkerboard pattern as the background for filter effects during setup. This option saves time if you don’t need to see the actual image, or you’re making a minor adjustment to a filter.

Browse Image: Displays a file Browse dialog from which you select an image file to use as the background for filter effects during setup. The selected file name replaces the "Browse Image" label on the button face.

Use this option to see a selected image while setting up a filter effect. Usually, you select the same image used as input to the filter, or a similar representative image if the current Video Post queue is used as input.

Save As Defaults: Saves the currently selected filter and its directory as defaults. Also saves the current settings for foreground and background colors and the Use Alpha Plane check box.

Get Filter Parameters: Launches the filter to set up the parameters. If you assign a Photoshop filter without setting its parameters, the filter interface is displayed before rendering begins. This halts the Video Post queue.


Add Adobe Premiere Video Filter

Provides access to animated image-processing filters from Adobe Premiere. A single filter event in the queue can be used to apply multiple Premiere Video filters.

Reference

If you choose the Adobe Premier video filter and click the Setup button, a third-party dialog box lets you set parameters specific to the filter.

How To

To add an Adobe Premiere Video filter

  1. Select the Scene or Image Input events that you want filtered.
  2. Click the Add Image Filter Event button.
  3. Choose Adobe Premiere Video Filter item from the list.
  4. Click OK.


Add Contrast [Filter]

Allows you to adjust the contrast and brightness of an image.

Reference

Contrast: Set the spinner between 0 and 1.0. This compresses or expands the latitude between maximum black and maximum white by creating a 16-bit look-up table for any given gray value in the image. The computation of the gray value depends on whether you select Absolute or Derived.

Brightness: Set the spinner between 0 and 1.0. This increases or decreases all color components (red, green, and blue).

Absolute/Derived: Determines the computation of the gray value for Contrast. Absolute uses the highest value of any of the color components. Derived uses an average of the three color components.


Add Fade Filter

Fades an image in or out over time.

The rate of the fade is determined by the length of the Fade filter’s time range.

Reference

You can set the following controls in the Setup Options:

In: Fade in.

Out: Fade out.


Add Glow Filter

Adds a glow to a material or object, making it appear self-illuminating and with a halo.

The glow effect is based on the g-buffer channel. The effect is applied to a particular set of materials or objects.

Reference

You can set the following controls in the Setup Options:

Source

Material Effects Channel: Associates the glow with a particular material or set of materials. You set the ID value to the Material Effects Channel value of that material.

Object Channel: Associates the glow with a particular object or set of objects. You set the ID value to that object’s Object Channel property.

Color

Material: Uses the material’s original color.

User: Allows you to select a different color by clicking the color swatch and using the Color Selector.

Size: Changes the size of the glow halo. Size is specified in the active units.

How To

To set an object's G-Buffer ID

  1. Select the object.
  2. Right-click the object and then choose Properties from the popup menu.
  3. In the Object Properties dialog, set G-Buffer Object Channel to a non-zero value, and then click OK.

    4. The G-Buffer ID can be any positive integer.

    If you give the same G-Buffer ID value to more than one object, all these objects will be post-processed.

To set a material's Effects Channel ID

  1. In the Material Editor, make the material you want to be post-processed the active material.
  2. Choose a non-zero ID from the Material Effects Channel flyout.

    3. The Effects Channel ID can range from 1 to 8.

    If you give the same Effects Channel ID value to more than one material, all these materials will be post-processed.

    Note: For Multi/Sub-Object materials, post-processing applies at the sub-object/sub-material level. The Effects Channel ID of the parent Multi/Sub-Object material is ignored.

To set up an RLA file so it saves Object and Material Effects channel data

  1. In the Image Output Event dialog, click Files.
  2. Choose the .rla file type and a file name, and then click Setup.
  3. In the RLA Image File Format dialog, select Object, Material Effects, or both, and then click OK.
  4. Click OK.

    5. When the RLA file has saved the Object and Material Effects channels, you can use the rendered scene file as an Image Input event or a Filter or Layer mask, and continue to use the Object or Material Effects Channel data.


Add Image Alpha Filter

Replaces the image’s alpha channel with the channel specified by the filter mask.

Reference

The filter takes whatever channel is selected in the channel options under Mask (including g-buffer channel data) and applies it to the queue's alpha channel, thereby replacing what’s there. This is the equivalent of the "Use Image Alpha" function in 3D Studio Release 4.

If you don’t choose a mask, this filter has no effect.

There are no Setup options for this filter.

How To

To set an object's G-Buffer ID

  1. Select the object.
  2. Right-click the object and then choose Properties from the popup menu.
  3. In the Object Properties dialog, set G-Buffer Object Channel to a non-zero value, and then click OK.

    4. The G-Buffer ID can be any positive integer.

    If you give the same G-Buffer ID value to more than one object, all these objects will be post-processed.


Add Negative Filter

Inverts the colors in the image, making it negative like a negative color photograph.

Reference

When you click the Setup button in the Edit Filter Event dialog for the Negative filter, the Video Post dialog box is replaced by a modeless Negative Filter dialog with a Blend spinner. You can turn on the Animate button, move the time slider, and change the Blend value to create keys. (You can also use other MAX functions. For example, you can create objects.) When you’ve set all the keys you want, click the OK button to return to Video Post.

After creating keys from the Video Post filter, you’ll find the track for the new keys as a child of the Video Post track in the Track View. Specifically, in the above example, you’ll find the following hierarchy in the Track View:

Video Post

Negative

Blend Value (containing the keys)


Add Simple Wipe Filter

Reveals or erases the foreground image with a wipe transition. Unlike the Wipe Layer event, Wipe Filter wipes across a fixed image.

Wipes from image to image (or image to black). The filtered image stays in place, but is revealed or erased with a wipe across the image. If you're using a Wipe as a Filter event, you'll usually want to use an Alpha Compositor as a Layer event as well.

A typical queue sequence would be: Alpha Compositor (layer)

-->Image #1

-->Simple Wipe (filter)

------>Image #2

The rate of the wipe is determined by the length of the Wipe filter’s time range. The area not covered by the image renders as black unless you use an Image Layer event to composite the Wipe filter with another image.

Reference

Direction

  • Right-pointing arrow: Wipes from left to right.
  • Left-pointing arrow: Wipes from right to left.

Mode

  • Push: Reveals the image.
  • Pop: Erases the image.


Add Starfield Filter

Generates a realistic starfield with optional motion blur. The Starfield filter requires a camera view. Any motion of the stars is a result of camera motion.

Reference

You can set the following controls in the Setup Options:

Source Camera: Lets you choose from a list of cameras in the scene. Choose the same camera as the one being used to render the scene.

General: Sets the brightness range and size of the stars.

Dimmest Star: Specifies the dimmest star. Choose any value from 0 to 255.

Brightest Star: Specifies the brightest star. Choose any value from 0 to 255.

Linear/Logarithmic: Specifies whether the range of brightness is calculated linearly or logarithmically.

Star Size (Pixels): Specifies the size of the stars, in pixels. Choose any value from 0.001 to 100.

Motion Blur

These settings control the streaking effect of the stars when the camera moves.

Use: Determines whether to use the motion blur. If clear, the stars appear as dots, no matter what the camera’s motion.

Amount: The percentage of the frame time that the camera “shutter” is open. By default, this is 75%.

Dimming: Determines how the streaked stars will dim as their trails lengthen. The default of 40 provides a good effect for video, dimming them a bit so they don’t appear to flash.

Star Database

These settings specify the number of stars in the starfield.

Random: Generates the number of stars indicated by the Count spinner, using the random number Seed to initialize the random number generator.

Custom: Reads the file specified. A provided star database, earth.stb, contains the brightest stars in Earth’s sky.

Seed: Initializes the random number generator. By using the same Seed value in different animations, you’re guaranteed identical starfields.

Count: Specifies the number of stars generated when Random is chosen.

Database: Lets you specify a custom database for generating the stars.

Compositing

Background: Composites the stars in the background. This is the default.

Foreground: Composites the stars in the foreground.

How To

To use the Starfield filter

  1. Create a camera and (optionally) animate the camera’s or target’s position, field of view, and roll.
  2. Select Rendering/Video Post and add a Scene Event, using the camera for the view.
  3. Select the Scene Event in the queue, click Add Image Filter, select the Starfield filter, and click the Setup button.
  4. In the Stars Control dialog, make sure that the selected camera matches the camera used in the Scene Event.

    5. If these don’t match, the stars will not match the camera’s motion. If there is only one camera in the scene, the field will default to that camera.

  5. Set the starfield parameters, then exit the Stars Control dialog and the Edit Filter Event dialog.
  6. Execute the Video Post sequence to see stars.


Add Image Layer Event

Adds a compositing plug-in to layer the selected images in the queue.

Provides compositing plug-ins that use the previous event in the queue as a source, and composite the next event, using the parameters of the plug-in compositor. The list might include plug-ins for special transformations, such as wipes, etc.

An Image layer event is always a parent event with two children. The children can themselves be parents with children. The children of an Image Layer event can be Scene events, Image Input events, Layer events that contain Scene or Image Input events, or Filter events that contain Scene or Image Input events.

Reference

The Add Layer Image Event dialog provides the following controls:

Layer Plug-In

Selects the compositor 3D Studio MAX uses for layering the rendered images in the queue. Alpha is the default compositor, but you can also choose from any others you have installed. See the separate help topics for descriptions of the compositors that come with 3D Studio MAX.

Adobe Premiere Transition: Lets you create a transition between Adobe Premiere video events.

Alpha Compositor: Composites the two images using the alpha channel from the foreground image. The background image appears wherever the foreground image;s alpha channel is transparent.

Cross Fade: Composites the two images over time, crossfading from the background image to the foreground image. The rate of the crossfade is determined by the length of the Cross Fade Transition filter’s time range.

Pseudo Alpha: Composites a foreground image against the background by creating an alpha channel for the foreground image based on the foreground image's upper-left-corner pixel. All pixels in the foreground image that use this color become transparent. Because only one pixel color becomes transparent, edges of the opaque areas in the foreground image are aliased. Use this method when the foreground image is a bitmap whose format does not have an alpha channel.

Simple Additive Compositor: Composites the two images using the foreground image’s intensity (HSV value) to determine transparency. Areas of full intensity (255) are opaque. Areas of zero intensity are transparent. Areas with intermediate transparency are translucent.

Simple Wipe: Reveals or erases the foreground image with a wipe transition. Unlike the Wipe Filter event, Wipe Layer moves the image, sliding it in or out. Under Setup, you can choose the direction of the wipe and whether to reveal the foreground image (Push) or erase it (Pop).

About: Provides version/source information specific to the plug-in.

Setup: Displays a setup dialog specific to the plug-in. Some plug-ins may not use this button.

Mask

Channels: If you are using a bitmap as the mask file, you can use the Alpha channel, the Red, Green, or Blue channel, or Luminance.

Files: Select a file to use as a mask. The name of the selected file appears above the Files button.

Options: Displays a dialog in which you can set alignment and size, relative to the frames of video output. For animated images, you can also synchronize the mask with the frame sequence of video output. This is the same dialog used for Image Input Event options.

Enabled: Enables the mask. If this box is clear, Video Post ignores any other mask settings.

Inverted: When selected, the mask is inverted.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

Add Adobe Premiere Transition filter

Add Alpha Compositor

Add Cross-Fade Compositor

Add Pseudo-Alpha Compositor

Add Simple Additive Compositor

Add Simple Wipe Compositor

How To

To add an image layer event

  1. Make sure the two child events are in the order you want the Image Layer event to use them.
  2. Select the two events.

    3. Click to select the first event, then hold CTRL and click to select the second.

  3. Click Add Image Layer Event.

    4. An Add Image Layer Event dialog appears.

  4. Choose the kind of layer event you want from the Layer Plug-In dropdown list.
  5. If the Setup button is enabled for this kind of layer event, click Setup to set the options.
  6. Choose a mask if you want the layer event to be masked.
  7. Adjust other Image Layer settings, and then click OK.

    8. The Image Layer event becomes the parent of the two child events you selected.

To choose the mask file

  1. Click Files.
  2. Use the file dialog to choose the mask file, and then click OK.
  3. Choose the channel to use from the dropdown list of channels.

To position or resize the mask

  • Click Options.

An Image Input Options dialog appears, identical to the dialog you use with Image Input events.

If the mask is animated, you also use this dialog to specify its time range and playback speed.


Add Adobe Premiere Transition Filter

Adobe Premiere transition filters are available as Image Layer events.

Reference

Filter Path

Provides controls that let you specify the path in which your Adobe Premiere filters are located.

Add Path: Lets you specify the directory containing your filters. The list lists the paths containing your filters. You can have more than one filter path, though only one path can be used at a time.

Filter Selection

The list displays all transition filters found in the current path. Click to select a filter.

A/B: These two windows provide a start and end preview of the transition effect. Use the sliders below the windows to preview the effect and to set the start and end points of the transition. For example, if the A window is set at 30% from Start, and the B at 20% from end, the transition will begin 30 percent into the effect, and end at 20 percent before the end of the effect.

The directional icon is available for some effects and disabled for others. It lets you choose the direction of the effect by clicking one of the arrows surrounding the square.

Swap Input: Click this to switch the image used in the transition. A transitions into B before the swap, and B transitions into A after the swap.

Filter Description

Displays the name of the currently selected filter, plus a brief description of its effect.

Custom Parameters: Displays a subdialog for the custom effects, for filters that have these effects.

How To

To use the Adobe Premier transition filters

  1. Add two Scene or Image Input events to the queue.
  2. Select both events and assign an Image Layer event consisting of the Adobe Premiere Transition Filter.
  3. Select the Image Layer event and click Edit Current Event.
  4. Click Setup to display the Adobe Premiere Transition Filter Setup dialog.


Add Alpha Compositor

Composites the two images using the alpha channel of the foreground image. The background image appears in areas where the foreground image’s alpha channel is transparent.

There are no Setup options for this compositor.


Add Cross-Fade Compositor

Add Cross Fade Compositor [Transition]

Composites the two images over time, crossfading from the background image to the foreground image. The rate of the crossfade is determined by the length of the Cross Fade Transition filter’s time range.

There are no Setup options for this compositor.


Add Pseudo-Alpha Compositor

Composites a foreground image against the background by creating an alpha channel for the foreground image based on the foreground image's upper-left-corner pixel. All pixels in the foreground image that use this color become transparent.

Because only one pixel color becomes transparent, edges of the opaque areas in the foreground image are aliased. Use this method when the foreground image is a bitmap whose format does not have an alpha channel.

There is also a Pseudo Alpha Filter Event.

There are no Setup options for this compositor.


Add Simple Additive Compositor

Composites the two images using the second image’s intensity (HSV value) to determine transparency. Areas of full intensity (255) are opaque; areas of zero intensity are transparent; and areas with intermediate transparency are translucent.

This layer event can be useful when the second image is a bitmap whose format does not have an alpha channel.


Add Simple Wipe Compositor

Add Simple Wipe Compositor [Transition]

Reveals or erases the foreground image with a wipe transition. Unlike the Wipe Layer event, Wipe Filter wipes across a fixed image.

Wipes from image to image (or image to black). The filtered image stays in place, but is revealed or erased with a wipe across the image. If you're using a Wipe as a Filter event, you'll usually want to use an Alpha Compositor as a Layer event as well.

A typical queue sequence would be: Alpha Compositor (layer)

-->Image #1

-->Simple Wipe (filter)

------>Image #2

The rate of the wipe is determined by the length of the Wipe filter’s time range. The area not covered by the image renders as black unless you use an Image Layer event to composite the Wipe filter with another image.

Reference

Direction

Right-pointing arrow: Wipes from left to right.

Left-pointing arrow: Wipes from right to left.

Mode

Push: Reveals the image.

Pop: Erases the image.


VRML 2.0 Export Plug-In

Vrmlexp.dle is a plug-in for creating and exporting MAX scenes in the VRML 2.0 format. VRMLEXP exports .wrl files, which can be viewed in any VRML 2.0 browser.

Make sure that you have the most current version of your VRML 2.0 browser and check its documentation to insure that it supports VRML 2.0.

This documentation covers:

VRML 2.0 Helpers

Exporting to VRML 2.0

VRML 2.0 Tips

Using the Polygon Counter Utility

VRML 2.0 Specification and dFORM Tutorials

Reference

The VRML 2.0 exporter supports the following:

Lights: All VRML 2.0 light types: direct, omni and spot

Cameras: Free and targeted cameras

Primitives: Sphere, cone, box and cylinder primitive objects. These objects export as VRML 2.0 primitive objects. This helps reduce the size of VRML 2.0 files.

Animation: All position, rotation and scale animation on objects, as well as animated hierarchies, inverse kinematics, and all controller types. Select CoordinateInterpolators in the Export dialog to export animated meshes, such as an animated "bend" modifier or Character Studio "physique" animations.

How To

To create VRML 2.0 files from 3D Studio MAX scenes

  1. Create the objects that make up the scene.
  2. In the Create panel, display Helpers.
  3. Use the tools in the VRML 2.0 helper rollouts to add actions and triggers and prepare the scene.
  4. Choose File/Export and export the scene in the VRML 2.0 format.
  5. Open the VRML 2.0 file in the browser and test it.


VRML 2.0 Helpers

The VRML 2.0 Helpers appear when you click Helpers in the 3D Studio MAX Create panel and choose one of the VRML 2.0 categories from the Object Category dropdown list.

All stand-in helper objects are made to be inserted into the scene from the Top Viewport in MAX. Some stand-in helper objects (for example, Billboard and Level Of Detail) are position-sensitive, so be careful how and where you insert them.

Anchor

TouchSensor

ProxSensor

TimeSensor

NavInfo

Background

Fog

AudioClip

Sound

Billboard

Inline

Level Of Detail


Anchor (VRML)

The Anchor rollout lets you specify a click-to-play trigger in the scene. This allows you to add links to other HTML pages, VRML 2.0 worlds, or alternate cameras in your VRML 2.0 world.

Reference

The Anchor rollout contains the following options:

Pick Trigger Object: Specifies the geometry that will be the trigger for this anchor. Click this button, then select the geometry.

Description: Lets you enter a text description or message that will appear in the browser's status bar when the mouse is over an object that has an Anchor action defined for it.

Hyperlink Jump: Creates an Anchor that jumps to a URL.

URL: Specifies the location for Hyperlink Jump. Use your Bookmarks list, or enter a location manually. If the URL points to another VRML 2.0 world (a .wrl file) you can append "#CameraName" to the end of the URL to have the browser use the viewpoint named "CameraName" as the initial view.

Bookmarks: Lets you select a URL location from a list of bookmarks. Click Import List to import the list of bookmarks defined in your browser, or manually enter new URLs into the list. Most browsers store bookmarks in a file called bookmarks.htm.

Parameter: Lets you specify additional browser parameters for the hyperlink jump. See the VRML 2.0 specification for the uses of this field.

Set Camera: Creates an Anchor that jumps to a given camera in the current VRML 2.0 world.

Camera: Specifies the name of the camera for Set Camera.

Icon Size: Determines the size of the helper in the scene.

How To

To use Anchor in conjunction with TouchSensor

  1. Add a TouchSensor stand-in helper object.
  2. Pick a Trigger Object in the scene that will be the object the viewer clicks on while browsing.
  3. Choose Action objects that will be controlled in the .wrl file.

    4. When the user clicks the Trigger Object geometry, the geometry, camera or light animations will begin or the will sound play.


TouchSensor (VRML)

The TouchSensor rollout lets you set up an object so that selecting it in a VRML 2.0 browser starts a set of objects animating.

Reference

The rollout contains the following options:

Pick Trigger Object: Specifies the geometry that will be the trigger for this TouchSensor. Click this button, then select the geometry.

Enable: Activates the Touch Sensor. When this box is clear, the sensor has no effect, even if objects have been selected.

Pick Action Objects: Specifies the objects in the scene to control with this helper. Click this button, then click the objects, which can be animated geometry, cameras, lights or AudioClips.

Delete: Deletes an object from the list of picked objects.

Icon Size: Determines the size of the Touch Sensor helper in the scene.

How To

To set up an object as a TouchSensor trigger

  1. Add a Touch Sensor object
  2. Select the geometry to control.

    3. When the user clicks the trigger geometry, the geometry, camera or light animates, or the sound plays.


ProxSensor (VRML)

The ProxSensor rollout lets you set up a rectangular region in space, so that entering the region in a VRML 2.0 browser starts a set of objects animating.

Reference

The ProxSensor rollout contains the following options:

Length/Width/Height: Specifies the dimensions of the bounding box that triggers the action.

Enable: Activates the Proximity Sensor. When this box is clear, the sensor has no effect, even if objects have been selected.

Pick Action Objects: Specifies the objects in the scene to control with this helper. The objects can be animated geometry, cameras, or AudioClips. Click this button then click the objects.

Delete: Deletes an object from the list of picked objects.

How To

To create a Proximity Sensor object

  1. Add a Proximity Sensor object.
  2. Select the geometry to control.

    3. When the user navigates inside the box, the geometry or camera animates or the sound plays.


TimeSensor (VRML)

The TimeSensor rollout lets you add time-based animation controls, such as the start and end frames for a particular object's animation, and looping. Use this helper to split up an object's animation keys over several triggers, to automatically start an animation upon loading the .wrl file, or to make animation endlessly loop.

Reference

The TimeSensor rollout contains the following options:

Loop: Repeats the animation from the start-time frame to the stop-time frame.

Start on World Load: Starts the animation when the file is loaded into the browser.

Start Time/Stop Time: Specifies the range of frames to play.

Pick Objects: Lets you select the objects to control with this TimeSensor. Click this button, then click the objects in the scene.

Delete: Deletes an object from the list of picked objects.

Icon Size: Adjusts the size of the helper object in the MAX viewports.


NavInfo (VRML)

The NavInfo rollout lets you tell the browser how to navigate around the VRML 2.0 world.

Reference

The NavInfo rollout contains the following options:

Type: Specifies the type of movement (Walk, Examine, Fly, and None) for navigating the world. Implementation of these movement types may vary from browser to browser.

Headlight: Places a directional light at the viewpoint. The light always points in the direction the user is looking. Don’t use this option if you have lights in the scene.

Visibility Limit: Sets the far clipping plane. Any geometry beyond this point is invisible. A value of 0 makes everything in the scene visible. Use this option to show just part of large scenes.

Speed: Determines the speed of navigation in 3D Studio MAX units per second. Use this option to allow the user to travel faster, if you’re building a large world (like a cityscape), and slower, if you’re building a small world (like a room).

Avatar Size: Specifies the user's physical dimensions in the world, to detect collision distance and follow terrain.

Collision: Specifies the allowable distance between the user's position and any collision geometry before a collision is detected. For example, you can set this so that a collision is detected one unit in front of a wall.

Terrain: Specifies the height above the surface to maintain when following terrain.

Step Height: Specifies the highest object that can be "stepped over." If an object like a staircase has steps that are lower than this value, the user can go up.

Icon Size: Adjusts the size of the helper object in the MAX viewports


Fog (VRML)

The Fog rollout lets you specify the color and range of fog in your VRML 2.0 world. You can simulate atmospheric effects by blending objects with a color based on the objects' distances from the viewer. For the best visual results, the background (which is unaffected by the fog) should be the same color as the fog.

Reference

The Fog rollout contains the following options:

Type: Specifies the fog type (linear or exponential). Linear means that the amount of blending is a linear function of the distance, resulting in a depth-cueing effect. Exponential uses an exponential increase in blending, resulting in a more natural fog appearance.

Color: Lets you select the fog color from the Color Selector dialog.

Visibility Range: Specifies the distance from the viewer at which objects are totally obscured by the fog. A value of 0 means that there is no fog effect.

Icon Size: Adjusts the size of the helper object in the viewports.


AudioClip (VRML)

The AudioClip rollout lets you specify the name and characteristics of an audio file that can be used by the Sound helper.

Reference

The rollout contains the following options:

URL: Specifies the location/file name of the sound to use. Either .wav or .mid files can be used, but midi sound files may not be spatialized.

Description: Lets you enter a text description of the sound, which is displayed by some browsers.

Pitch: Sets the relative pitch of the sound. 1.0 is normal pitch, 0.5 is one octave lower, and 2.0 is one octave higher than normal.

Loop: Repeats the sound.

Start on World Load: Starts playing the sound as soon as the world is loaded into the browser.

Icon Size: Determines the size of the AudioClip helper in the scene.


Sound (VRML)

The Sound rollout lets you place 3D (spatial) or ambient sounds in a scene. The sound may be located at a point and emit sound in a spherical or ellipsoid pattern. The ellipsoid is pointed in a particular direction and may be shaped to provide more or less directional focus from the location of the sound. The sound node may also be used to describe an ambient sound that tapers off at a specified distance from the sound node.

The red ellipsoid of the helper represents the outermost range of the sound's audibility. The blue ellipsoid represents the maximum volume of the sound. The helper's arrow points in the direction toward which the sound is emanating.

See the vsound.max and vsound.wrl files for a demonstration of the characteristics of spatial sound.

Reference

The rollout contains the following options:

Intensity: Sets the loudness of the sound. 1.0 is full volume.

Priority: Sets the relative importance of the sound, if you have more than one sound in the scene and the browser cannot play all of them. 0 is least important. 1 is most important.

Spatialize: Makes the sound 3D. A spatial sound has a particular source location in the scene. If this box is clear, the sound is ambient.

Min Back/Front, Max Back/Front: Displays red and blue ellipsoids that allow you to set the area of the sound effect. Inside the blue ellipsoid, the sound is at full volume. Outside the red ellipsoid, the sound is inaudible. Between the blue and red ellipsoids is a fall-off area in which the volume varies in intensity.

Pick Audio Clip: Lets you choose an audio clip. Click this button, then click an AudioClip helper object. The audio clip must already be in the scene and have a sound file associated with it.


Billboard (VRML)

The Billboard helper lets you create geometry that is camera-aligned in the VRML 2.0 browser. The objects always align to the viewpoint in the VRML 2.0 browser.

Any geometry linked to the Billboard helper will rotate about the local Z axis of the helper object to face the viewer. Since it rotates about the location of the Billboard, it is best to center the Billboard on the object that you will link to it.

The direction of the negative Y axis of the object, which will be its front, is aligned with the negative Y axis of the helper, and will be the Billboard surface that always faces the viewer. This is the side usually seen from the default 3D Studio MAX camera position.

Reference

The Billboard rollout contains the following option:

Screen Alignment: Keeps the geometry linked to the Billboard helper aligned, even when the viewer elevates, pitches, and rolls.


Inline (VRML)

The VRML 2.0 Inline rollout lets you reference another VRML 2.0 file that is included in your world when you load it into your VRML 2.0 browser. These inline objects are like 3D Studio MAX instance objects, but they function at the browser level.

Reference

The Inline rollout contains the following options:

Icon Size: Sets the size of the helper object. You can transform this object like any other object in 3D Studio MAX. The scene that replaces the helper object will be moved, rotated, or scaled in the same manner.

If you create the objects in the scene to be inserted off-center (away from the origin), they will appear in the browser off-center as well. Align the original scene and the scene to be inserted correctly, in relation to the origin.

Insert URL: Specifies the URL of the .wrl files to insert in place of the helper object. The URL must be another VRML 2.0 file

Bookmarks: Displays a dialog that lets you select a location from a list of bookmarks. Click Import List to import the list of bookmarks defined in your browser. Most browsers store bookmarks in a file called bookmarks.htm.

How To

To create a helper object

  1. Click the Inline button.
  2. Click and drag in the scene.

    3. You can modify the helper object with the tools in the VRML 2.0 Inline rollout.


Level Of Detail (VRML)

The Level of Detail (LOD) rollout lets you specify objects with varying face counts that are appropriate for different viewing distances. Browsers display the less detailed objects when the viewer is far away from them and substitute the more detailed objects at closer ranges.

Use LOD objects to speed up rendering of scenes in which highly detailed objects are often far away from the viewer.

Objects used for LOD do not have to be of the same type or size, so you can accomplish a crude form of morphing by using different objects as the LOD components. For example, a tree might seem to grow if taller trees with more limbs are substituted as the viewer gets closer.

Reference

The Level of Detail rollout contains the following options:

Icon Size: Sets the size of the LOD helper object.

Pick Objects: Selects objects of different face counts to substitute for the LOD helper object. Create all the objects and the LOD helper object at exactly the same coordinates.

Distance: Sets the distance from the camera at which the user sees the selected object. The distance specified for the object appears next to the object name. For example:

hiteapot 100 medteapot 300 hiteapot 500

Hiteapot is displayed when the distance between it and the camera is within 100 units. The next-furthest object (medteapot) is displayed when the camera is between 300 and 500 units. The furthest object (loteapot) is displayed when the camera is beyond 500 units.

Delete: Deletes the selected object from the list.

How To

To create all the objects and the LOD helper object at exactly the same coordinates

  1. Create the LOD helper object.

    2. You can use Snap and create the helper object at the origin (0,0,0 coordinates), or use the Keyboard Entry rollout for a Standard Primitive to specify an exact object origin.

  2. Create the object with the most detail at the same coordinates. Name it (for example, hiteapot).
  3. Choose Edit/Clone. In the Clone Options dialog box, choose Copy and name the new object (for example, medteapot).
  4. Repeat step 3 to create the other objects (for example, loteapot).
  5. For the medium and low resolution objects, apply an Optimize modifier to reduce the face count.

    6. For 3D Studio MAX primitives, you can reduce the face count by changing the creation parameters in the modifier stack.

To create a Level of Detail helper object

  1. Click the LOD button.
  2. Create the objects to which you want to add level of detail.
  3. Click and drag in the scene to create a helper object.
  4. Add the objects to the list with Pick Objects.

    5. Use the Hide and Unhide commands, or the H key, to help pick the objects and add them to the LOD list.

  5. Select the objects in the list and use the Distance spinner to set the distance.


Sky Colors Rollout

The Sky Colors rollout contains the following options:

Number of Colors: Specifies whether the sky is one solid color or a gradient of two or three colors.

Color One/Two/Three: Lets you select the colors from the Color Selector dialog. Color One is the base color.

Angle: Specifies the angle at which Color Two and Color Three merge with the base color, in degrees from the North pole of the sky (straight up from the viewer).

Icon Size: Adjusts the size of the helper object in the MAX viewports


Ground Colors Rollout

The Ground Colors rollout contains the following options:

Number of Colors: Specifies whether the ground is one solid color or a gradient of two or three colors.

Color One/Two/Three: Lets you select the colors from the Color Selector dialog. Color One is the base color.

Angle: Specifies the angle at which Color Two and Color Three merge with the base color, in degrees from the North pole of the sky (straight up from the viewer).


Images Rollout

The Images rollout contains the following option:

Image URLs: Specifies the location/file names of the images to use. The images can be JPEG files or GIF files with or without transparency.

See the VRML 2.0 specification for diagrams of the typical image configuration.


VRML 2.0 Tips

The following tips will help you make your work look as good as possible and display and move as fast as possible.

Geometry

Use small texture maps sparingly and keep the polygon count of your objects down to achieve good performance. A complete scene with a maximum of 5000 to 10,000 polygons is manageable for most computers. The Level of Detail helper lets you manage the polygon count of objects in the scene. You can also use the 3D Studio MAX Optimize modifier to simplify objects before exporting them to VRML 2.0.

Use primitives whenever possible. For example, a scene containing only a sphere exports to a VRML 2.0 file of about 400 bytes, but if you apply an edit mesh modifier and move one vertex on the sphere, the VRML 2.0 file is about 7,400 bytes.

Use the Polygon Counter to keep track of the number of faces in your scene.

Call your VRML 2.0 .wrl files from a standard HTML page and constrain the viewer to a limited window on the screen using the embed command. This decreases the number of pixels that must be rendered on every frame and makes the VRML 2.0 environment more responsive. Many users use high resolution (800x600 or more), so the number of pixels during rendering and navigation can be large and the video display may slow down. Frames may be dropped as the browser attempts to keep up its real-time rendering, and navigating the scene will become "chunky.” Use the embed command to avoid this, for example, <embed SRC=myworld.wrl WIDTH=300 HEIGHT=200>

Hide faces on an object in 3D Studio MAX, then export the object. The hidden faces appear as a hole in the object. While the VRML 2.0 plug-in can export hidden objects, it does not export hidden faces. Hide faces that you know will never be visible in the scene, such as the backs of objects or the bottom faces of objects resting on a surface.

Use instances to reduce file size for objects that have the same geometry.

Whenever you use a Mirror transform, use the Reset Transform utility immediately afterwards. You can also use a Normal modifier immediately followed by Unify Normals. VRML 2.0 does not allow mirror transforms (negative scales). The Reset Transform utility modifies the data in the actual mesh object to create the mirroring effect.

Don’t change 3D Studio MAX units when modeling for VRML 2.0. To model in meters, keep the units set to the default and use one MAX world unit as one meter.

Animation

Beware of large file sizes when you use transform animation and coordinate-interpolated animation. The VRML 2.0 plug-in exports transform animation (move, rotate, and scale), and coordinate-interpolated animation. For example, you can animate modifiers such as Taper and Bend and you can animate changing parameters, such as increasing or decreasing the radius of a sphere.

When scenes using the Inherit Links function are exported to VRML 2.0, child objects always inherit their parents’ transforms. Inverse Kinematics export correctly to VRML 2.0 with the exception of the Inherit Links function, which determines whether child objects inherit the transforms of parent objects.

Always use TCB controllers for VRBL animations. These controllers provide precise control and generate the smallest possible file size. Other kinds of controllers, such as the default Bezier controller, create larger VRML 2.0 files that do not perform as well.

Make sure your animations never change the face or vertex count over time. VRML 2.0 can not add or delete faces or vertices over time. CoordinateInterpolators support morphing a mesh only, not changing the number of vertices or faces.

To trigger an animation that is not on an object at the top-level of the MAX linking hierarchy, use a TimeSensor helper object. If you trigger an animation directly from a TouchSensor or ProximitySensor, without a TimeSensor, you can animate only top-level objects. Animating from TimeSensors does not have this limitation.

Turn off the Generate Primitives toggle in the Export dialog if you animate the parameters of primitives (like the radius of a sphere), and want the animation exported with CoordinateInterpolators. This applies to box, sphere, cylinder and cone primitives only.

Materials

You can export only standard and multi/sub-object materials, and only the following components of the material:

  • Diffuse, ambient, and specular color
  • One texture map, which must be in the Diffuse channel

Use JPEG or GIF format for your maps, because they are recognized by all browsers and generally create the smallest files. Multi/sub-object materials export colors and textures. If an object has a multi/sub-object material with textures, it exports as separate objects in VRML 2.0, since VRML 2.0 does not support more than one texture map per object. Texture maps slow down the browser and increase download time. Use them sparingly.

  • Shininess (but not shininess strength)
  • Opacity
  • Wire frame

Make sure that all large flat surfaces have enough vertices in them that a few vertices can be seen from all reasonable vantage points in your scene. Some browsers cannot display textures on an object where all of its vertices are outside the current viewport.

If you have several lights in you scene, lower the default multiplier value on all the lights in the scene. Lights can oversaturate the scene and make all your geometry wash out towards white. Always add at least one camera and one light to a scene exported to VRML 2.0.

Helper Objects

Insert VRML helper objects into your scene in the top viewport. You can insert VRML helper objects in any view, but if you insert them in the top viewport, they appear properly oriented in the front viewport.


Using the Polygon Counter Utility

When producing worlds with a small number of faces, use the Polygon Counter utility. The counter displays a dialog box that shows the number of polygons in the current scene, as well as the number of polygons in the current selection set. Use the spinners on this dialog to set a budget for both of these values. A bar graph changes from green to yellow to red as you approach and exceed the allocated budget.

How To

To display the Polygon Counter utility

  1. From the Utility panel, select Polygon Counter from the drop-down list.


VRML 2.0 Specification and dFORM Tutorials

VRML 2.0 Specification

You can find the complete VRML 2.0 specification at http://vag.vrml.org/VRML2.0/FINAL/spec/index.html.

This document describes the entire VRML 2.0 language and provides technical details on the behavior of exported VRML 2.0 worlds.

dFORM Tutorials

dFORM has developed tutorials for the VRML 2.0 exporter. The tutorials are available at http://www.dform.com/inquiry/tutorials/3dsmax/index.html.


Feature List for 3D Studio MAX R2

Here is a comprehensive list of the features supported in this release. You can use the Index and Search tabs in the Online Reference to go to topics that contain more information.

Interaction & Work Flow

Modeless operations: change actions in mid-command without delay.

Undo & Redo: definable in depth, history editing, separate scene and viewport actions streams.

Interactive Viewports: OpenGL and Direct3D hardware acceleration or fast software HEIDI for any display.

Custom Viewport Arrangements: of any orthographic, axonometric, perspective, camera, spotlight, parallel light, grid, and current spline views.

All Views Support: creation, editing, simultaneous update, textures, 32lights, backgrounds, animation playback, and ghosting of before/after frames.

Backgrounds: independent per viewport, with locked zoom and pan.

MAXScript: dynamic object-oriented scripting language of clear syntax producing seamless user interfaces for automating any series of operations, command line entry, and dynamic connections to external data.

Living Documentation – Online HTML-based reference supplements printed manuals to ensure accurate, up to the minute information and technique. Update content via the World Wide Web.

Creation

Geometry: includes polygonal mesh, NURBS point/cv surface & curve, Bezier patch & spline.

3D Parametric Primitives: box, capsule, c-ext, chamfer box, chamfer cylinder, cone, cylinder, door types, geodesics, gengon, l-ext, oil tank, polyhedra, prism, pyramid, sphere, spindle, teapot, torus, torus knot, tube, window types.

2D Parametric Primitives: arc, circle, donut, ellipse, helix, multi-line text, n-gon, rectangle, section, star. Resulting splines/curves are directly renderable.

Particle Systems: blizzard, p-array, p-cloud, snow, spray, super-spray are interactive with adjustable emitters.

Particle Generation: parametric, referenced objects, or MetaParticles with trails and spawning options.

Particle Dynamics & Constraints: bubble motion, deflectors, gravity, motor, object collision, path-follow, p-bomb, push, wind,

Space Warps: bend, bomb, conform, displace, noise, free-form-deformation (cylindrical & cubic), skew, ripple, stretch, surface fit, taper, twist, wave.

Compound Objects: Boolean’s, conform, connect, loft, morph, scatter, and shape-merge all reference other objects in procedural, nondestructive modeling operations.

Modeling

Relational NURBS Modeling: with extensive point, cv, curve, and surface manipulation tools that also allow direct animation.

Surface Approximation: parametric, spatial, curvature, or view dependent methods with analytical normals for perfectly smooth results. Interactive display in iso-curve and/or mesh approximation.

Bezier Patch Modeling: with vertex, edge, or patch-based tools, localized detail control and view dependent surface approximation options.

Spline Modeling: extensive vertex, segment, and spline-based tools that allow direct animation.

Spline Modifiers: bevel, bevel-profile, edit-spline, spline-select, delete-spline, trim/extend, fillet/chamfer, section, lathe, extrude, loft.

Mesh Modeling is either procedural or explicit with extensive vertex, edge, and face-based tools that allow direct animation, planarity control, and interactive face normal modification.

Mesh Modifiers: cap holes, conform, connect, delete-mesh, edit-mesh, face-extrude, lattice, material, mesh-select, mesh- smooth, normal, relax, shape-merge, smooth, tessellate.

Vertex Colors: interactively assigned per vertex selection or copied from the current scene lighting.

Polygon Optimization: with surface property preservation, separate levels of detail, and edge length control.

General Modifiers: affect-region, bend, camera-map, displace, free-form-deformation (cylindrical & cubic), linked-xform, mirror, noise, optimize, patch-deform, patch-deform, path-deform, preserve, ripple, skew, spherify, stl-check, stretch, surface-deform, taper, twist, xform, unwrap-uvw, uvw-map, uvw-xform, wave.

World Space Modifiers: camera-mapping, map-scalar, patch-deform, path-deform, surface-deform.

Modeling Interaction

Flexible Coordinate Systems -view, screen, world, local, parent, grid, and any chosen object for all creation, transform, and modeling operations

Transforms: translate, rotate, scale, nonuniform scale, and squash in any coordinate system for any selection about any point. Modeless keyboard entry of any transform supported.

3D Snaps: with interactive feedback supported in all creation and editing modes with over 20 snap types.

Align System: for object, subobject, normal, and view based alignment.

3D Array System: with translation, rotation, scale, and incrementation.

Selection Methods: pick, fence, rectangular and circle, object class filters, select-by-name, named selection sets, polygon boundary, mesh extents, smoothing, material, and normal.

Parametric Selection: with volume and explicit selection modifiers.

Organization Methods: named object & sub-object selections, groups, nested grouping, and hierarchy selection & navigation.

Animation

Animation Controllers: include: attachment, audio, Bezier, binary, expressions, Euler, float, IK, level of detail, linear, list, look-at, motion capture, noise, script, smooth/quaternian, sunlight, surface, TCB, waveform (over 60 provided).

Track View: channel and time management in a modeless manner with function curve and precise keyboard control for every animated parameter in the scene. Dynamic scene link instantly shows adjustments and allow s bi-directional interaction between scene and key management. Multiple, named Track Views supported.

Key Management: keyframe reduction, fucntion curves, ease & multiplier curves, out-of-range looping, sound coordination, constant velocity, text notes, time tags, object selection, list filtering, time based editing, key randomization.

Expressions: use equations to dynamically reference animation tracks as variables to build dynamic relationships between object parameters.

Inverse Kinematics: individual joint constraints include ease, precedence, and damping control for 6-degrees of freedom. Interactive, real-time IK solutions support branching hierarchies, pinned objects, follow objects, closed loop solutions, and constraints.

Rigid Body Dynamics: for colliding and sliding objects with gravity, wind, motor, and push forces and bounce, static & sliding friction properties.

Time: SMPTE, frames, absolute, or custom display. Internal calculation with 1/4,800 second intervals ensures accuracy and compatibility between NTSC, PAL, and Film.

Lights & Cameras

Lights Types: omni, target & free spot, target & free directional.

All Lights Support: volumetric light, shadows, projected images, decay, specular/diffuse isolation, individual exclusion/inclusion lists affecting object illumination and/or shadow-casting.

All Lights Animate: color, contrast, attenuation, edge softness, multiplier, near/far distance attenuation, shape, raytraced or shadow map shadow parameters.

Locate Lights: by solar date and world location or desired highlight from viewed angle.

Cameras Types: target and free with interactive zoom, roll, orbit, perspective, FOV, dolly, vertigo zoom, clipping planes, and horizon indicator.

Lens Sizes: correlate to output resolution film backs with horizontal, vertical, or diagonal field of view measure. Orthogonal projection supported.

Frames: video, title safe, and custom frames with scene masking and 12 field grid overlay for composition study.

Virtual View: magnification for precise adjustment with backgrounds.

Match Cameras: to existing views and background images, and align to face normals.

Rendering

Film Quality: scanline A-buffer renders at16-bit per channel, with full gamma control at up to 10,000 lines of resolution for frames or fields. Analytical antialiasing, and optional supersampling, for super crisp images.

Multithreading: distributes rendering equally among processors with near linear speed increases per additional CPU with no additional RAM.

Selective Raytracing: control for fast, accurate reflections and refractions with very high recursion levels. Animateable raytrace rendering settings for changing scenes.

Lens Effects: stunning animateable flares, glows, highlights, and camera focus with interactive previews, gradient control, and settings.

Volumetric Lighting: supported by all lights for animated smoke, glow, and haze effects with volumetric shadows and fractal noise.

Atmospherics: fully animateable, 3D fire, smoke, explosions, and fog with fractal, turbulent, and horizon noise, volumetric fog, full-screen fog and distance shading effects.

Environmental Shaders: have integral rotoscoping synchronization and can use map hierarchies for screen, spherical, cylindrical, or shrink-wrapped environment projections.

Motion Blur: is velocity based with object, screen and scene based methods.

Video Options: super black, luminance keying, field or frame rendering, NTSC/PAL, and video color correction options.

Free Network Rendering: through client/server architecture with TCP/IP network protocol allows LAN & WAN rendering.

Network Management: fault-tolerant and low bandwidth with full event logging. Queue manager, with net analysis capabilities, manages network rendering remotely. Render and manage as many simultaneous jobs as there are networked machines.

Background Rendering: to same machine via network rendering.

Materials

Materials Editor: interactive control for creating realistic material and environmental effects. Interactive scene renderer instantly displays materials and allows real-time adjustment of texture maps on geometry.

Interactive Samples: allow custom objects, backgrounds, and lighting in 32 scrolling windows that can be magnified.

Material/Map Browser: clear understanding of hierarchies with navigateable thumbnail tree. Drag & drop assignment to editor or scene.

Branching Material Hierarchies: allow unlimited material depth, layering, and instancing opportunities.

Shading Methods: Blinn, Phong, metal, and constant with wire, 2-sided, face map, and super sampling options.

Material Types: raytrace, standard, multi/sub-object, top/bottom, blend, double-sided, and matte/shadow.

Material Properties: ambient, diffuse, specular, self-illumination, bump, shininess, shininess strength, opacity, filter color, reflection, refraction, refractive color density, environment, translucency, luminosity, fluorescence.

Material Layering: maps of every type can be combined with individual percentage contributions for layered surface effects to any depth.

Procedural Maps: bitmap, cellular, checker, color tint, composite, cubic environment, dents, fall-off, flat-reflect, gradient, marble, marble-perlin, mask, mix, noise, planet, output, particle-age, particle-mblur, raytrace, reflect, refract, rgb-multiply, rgb-tint, smoke, speckle, splat, stucco, thin-wall-refraction, vertex color, water, wood, Adobe Photoshop & Premier plug-ins.

Bitmap Options: animatedble settings for texture-filtering, fractal noise, tiling, offset, 3D rotation, mirroring, cropping, jitter, output, gamma, alpha, and blur parameters.

UVW Mapping: procedural, lofted, face, planar, cylindrical, spherical, box, and shrink-wrap with 3D vertex locking and screen, spherical, cylindrical, and shrink-wrap environmental mapping.

Multiple Mapping: two seperate mapping projections per face and unlilimeted planar map layering.

UVW Editing: is interactive and animateable. Modifications can be local, global, and procedural.

Post Production

Video Post: manager for compositing an unlimited number of events and animation with precise layering control and scene integration. Transition, filter, mask, input, export, and device events are all extensible. Filer parameter animation controllable in TrackView.

Post Effects: cut, cross-fade, image alpha, psueda-alpha, additive, and wipe trasitions. Contrast, starfiled, fade, negative, flare, glow, hilite, and focus filters. Support for using 32-bit Adobe Photoshop and Premiere plug-ins.

RLA Channels: for using 3D scene data with 2D compositing include: RGB, alpha , Z-depth, Z-depth coverage, object ID, material ID, mapping, surface normal, background, and unclamped color per pixel

File Format Support

Image Support: AVI, BMP, EPS, FLC, GIF*, JPG, PNG, RLA, TGA, TIF, and Photoshop PSD*.

3D File Support: 3D Studio 3DS & PRJ, AutoCAD DWG & DXF (R14 or earlier), STL, and generic ASCII.

2D File Support: TTF & PFB fonts, Adobe Illustrator AI*, 3D Studio SHP.

*import only.

Architecture

True Windows NT Design: 32-bit, object-oriented and multithreaded throughout for a high level of scalability. Extensible dynamically linked libraries (DLL) used for all components.

Consistent Unified Environment: all modeling, animation, material, rendering, and compositing functions in one familiar Windows interface.

Object Orientation: makes 3DS MAX powerful and easy to learn with consistent methods and operations, selection-sensitive commands, intelligent cursors, and shared class references.

Everything is Animateable: just click on the always available ANIMATE button and adjust nearly any parameter in 3DS MAX to create a keyframe. Everything from creation parameters to volumetric lighting can be animated by this method, with every graphable operation having interactive function curve control.

Controller Based Animation for parametric control over the interpolation methods of nearly any value in the system that can be layered, blended, scripted, copied, referenced, and instanced for unlimited animation control.

Everything is Editable: a procedural modeling history is stored in an editable stack that stays with objects for as long as you wish. Each operation is independently animateable.

Everything is Extensible: Plug-In architecture seamlessly supports the addition of any new functionality that developers and users create. Plug-Ins know how to work with one another by design and behave like core features.

True Referencing Architecture: goes beyond simple object instancing and allows references, derived from master objects, to have their own modeling operations while still sharing the instanced history. All animation parameters can be instanced for sophisticated relationships.

Flexible Modeling: operations can be instanced, referenced, and copied within and between objects. Modifiers include gizmos for manipulating their effects as objects.

MAX SDK: Software Developers Kit supplied with each copy provides all the tools necessary to build any imaginable 3DS MAX application. Original source code for most core functions amounts to nearly 50% of total core source code.

Plug-ins: seamlessly integrate into the user interface, obeying already familiar methods and include: creators, object & world space modifiers, space warps, renderers, materials, maps, shaders, geometry & bitmaps import/export, animation controllers, motion capture, device input/output, Video Post filters, graphics pipeline, front end (user interface), Track View utilities, and general utilities.

System Requirements for 3D Studio MAX R2

Microsoft Windows NT 4.0 or Windows 95

Intel-compatible processor at150 MHz minimum (full support of multiple processor systems; dual Pentium Pro system recommended)

48 MB RAM & 200 MB swap space minimum (amount depends upon scene complexity; 128 MB RAM preferred)

Graphics card supporting 800x600x256 colors. (OpenGL and Direct3D hardware acceleration supported, 24-bit 3D graphics accelerator preferred)

Windows compliant pointing device
(specific optimization for Microsoft Intellimouse™)

CD-ROM drive

Optional: sound card and speakers, cabling for TCP/IP-compliant network, 3D hardware graphics acceleration, video input and output devices, joystick, midi-instruments, 3-button mouse.

Organic Modeling Modifiers

Include mesh-smooth, relax, and displacement for rounding edges, smoothing geometry, and displacing surfaces with bitmap intensities.

*Mod’s are parametric, animateable, affect object or subobject selections. Most modifiers have “gizmos” to define their influence that can also be manipulated as independent objects.

Geometric Object Classes

Include parametric, polygonal mesh, NURBS surface & curve, and Bezier patch & spline, while supporting any new class third-party developers may choose to introduce.

Models can be interchangeably edited between geometric classes for ultimate flexibility.

Object definitions can be cut and pasted into and one another even after their animation is complete.

Immediately animateable

Parametric objects collapse to a choice of base, geometric classes.

Selection: with tools for sharing, editing, combining, and subtracting named selections and groups.

Snaps: grid points, grid lines, vertices, end points, edges, faces, midpoints, face centers, perpendicular, tangent, pivot points, bounding box extents, and NURB curve & surface centers, tangents, and normals.

Creation- orthogonal or perspective modeling based upon viewport alignment or custom construction grids orientation.

Helpers ?

Dummy, grid, point, tape, protractor, compass, campoint, atmospheric locators, numerous VRML que

Floating-point accuracy maintained in all modeling operations. Industry standard and custom unit options coordinate with absolute unit storage to ensure international modeling compatibility.

Views have dynamic pan, arc-ball rotate, zoom, zoom all, zoom selected, transparent pan & zoom, and adaptive degradation for optimum performance.

Direct Animation

Supported within base NURBS surfaces & curves, Bezier splines, and meshes for one step animation of points, weights, control vertices, tangencies, and vertices,

Atmospherics: Variables such as density, size, uniformity, attenuation, wind strength, direction and procedural or bitmap fog blending can all be animated.

Camera: Animated control over field of view, environment ranges, near/far clipping planes, and target distance.

Creation: can occur anywhere in 3D space, with freely positionable object pivot point. Creation parameters retained for future adjustment, animation, and modeling.

Loft: objects model from multiple cross sectional splines of any number, size, or arrangement with optional deformation curves.

Space Warps: deform other objects as they change relation to one another over distance and include:

NURBS can participate with other procedural modifiers via parametric selection modifiers.

Compound Objects: reference objects in procedural, nondestructive modeling operations having independent animation opportunities for participating objects and include:

Object Space Modifiers: effect selections in local space

Hierarchies can selectively inherit transforms in any combination.

Multi-axis mirroring.

Rotoscoping: 24-bit viewport background display with animation synchronization.

Configurable video-safe frames correlate to output resolutions and include live area, action, title safe, and custom. Traditional 12 Field Grid overlay for studying compositions.

Rendering is plug-in based, supporting third party renderers and effects.


Glossary

J

This section of the Help system contains explanations of various concepts and terms used in 3DS MAX, arranged alphabetically.

These are the same explanations that pop-up in secondary windows when you click words highlighted in green in the help topics.

You can browse through the glossary terms by clicking on the links in the list below. You can scroll to another alphabetic group by using the buttons above.

#

2-Sided

A

Active Time Segment

Adaptive Degradation

Additive Opacity

Affine Transformation

Aliasing/Antialiasing

Alpha Channel

Ambient Color

Ambient Light

Animation

Animation Controllers/Transform Controllers

Aspect Ratio

Attenuation

AVI Files

Axis Tripod

Axonometric Views

B

B-Spline

Bézier Curve

Blend

Blinn Shading

Blur/Blur Offset

Boolean Operation

Bounding Box

C

Chamfer

Clipping Planes

Compound Materials

Constant Shading

Constrained Point

Containers

Continuity

Continuity Level

Control Lattice

Control Vertex (CV)

Convex Hull Property

Cool

CV (Glossary)

CV Curve

CV Surface

D

Degree

Dependent

Diffuse Color

Dithering

Dummy Object

DXF Files

E

Ease Curve

Encapsulated PostScript Files

End Effector

Environment Map

F

Field of View

Fields

Fillet

Filter Color/Filter Opacity

Filtering

First Vertex

Flat Mirror

FLC Files

Follow Object

Forward Kinematics

Frame Rate

Freeze/Unfreeze

Function Curve

Fusing

G

G-Buffer

Gamma Correction

GIF Files

Gizmo/Center

Grid Object

H

Hierarchical Linkage

Home Grid

Horizon

Hot

Hotspot/Falloff

I

IFL Files

IK Solution

Image Motion Blur

Independent

Instance

Inverse Kinematics

Iso Line

J

JPEG Files

K

Keyframes/Keys

Kinematic Chain

Knot

L

Launch Script

Listener Window

Local Coordinate System

Lofting

M

Map Bias

Mapping Coordinates

Maps

Material/Map Hierarchy

Materials

Matte Object

MAXScript

Metal Shading

Modal/Modeless

Modifier Stack

Modifiers

Morphing

Multiplicity

Multiplier

Multiplier Curve

N

Network Manager

Network Rendering

Network Rendering Server

Normals

NTSC

NURBS

NURBS Curve

NURBS Model

NURBS Surface

O

Object Motion Blur

Omni Light

Opacity Falloff

Origin

Orthographic Views

Out-of-Range Types

Overshoot

P

PAL

Parameter Space

Parametric

Particle System

Patch

Path

Perspective Views

Phong Shading

Pivot Point

Plug-ins

Point

Point Curve

Point Surface

Precedence

PRJ/3DS Files

Procedural Maps

Projector Light

Q

Queue Manager Client

R

Ray-Trace Bias

Ray-traced Shadows

Real Time

Red, Green, Blue/Hue, Saturation, Value

Reference

Refine

RLA Files

Rotoscoping

S

Sample Range

Scanline Renderer

Scene Motion Blur

Script

Script Editor Window

Scripted Utility Panel

Scripting

Segment

Self-Illumination

Shadow Maps

Shapes and Splines

Shininess/Shininess Strength Settings

SHP Files

Smoothing Groups

SMPTE

Space Warps

Spline

Startup Script

Subtractive Opacity

Super Black

T

Tangents

Targa Files

TCB (Tension, Continuity, Bias)

Ticks

TIFF Files

Tile/Mirror

Track View Hierarchy Icons

Tracks

Trajectory

Transforms

U

UVW Coordinates

V

Vectors/Vector Handles

Video Safe Frame

Viewport (Interactive) Renderer

Virtual Frame Buffer

VUE file

W

Wireframe Mode

World Coordinate System


2-Sided (Glossary)

GLOSSARY

2-Sided

2-sided on left, default one-sided on right

Faces in 3D Studio are one-sided. The front is the side with the surface normal. The back side of the face is invisible to the Renderer; the face appears to be missing when viewed from the back. Objects are usually created in 3D Studio with the surface normals facing outward, but it is possible to create objects with the faces flipped or to import complex geometry in which the face normals are not properly unified.

There are two ways to render both sides of a face. Either turn on the Force 2-Sided option in the Render dialog, or apply a two-sided material to the geometry.

Usually, you want 2-sided rendering turned off since it slows rendering time. However, if you want to render the inside as well as the outside of objects, or if you’ve imported complex geometry (for example, from AutoCAD) in which the face normals are not properly unified, you can use one of the methods above to render each face regardless of its normal’s orientation. You can also change normals explicitly by using the Normal modifier.

Sample Image

Shows two cubes with their top surface removed. The one on the right has a single-sided material assigned to it. The one on the left has a 2-sided material.


Active Time Segment (Glossary)

GLOSSARY

Active Time Segment

The active time segment is the total range of frames that you can access using the time slider.

As a default, the active time segment runs from frames 0 to 100, but you can set it to any range. In addition, the active time segment can include negative frame numbers, so you can create keys before frame 0 and work in negative time.

You can change the active time segment whenever you want without affecting the keys you’ve already created. You might think of it as a window in time, specifying only that portion of your animation in which you want to work. Thus, if you have keys scattered over a range of 1000 frames, you can narrow your active time segment to work on only frames 200-300 without affecting the keys outside of the segment.


Adaptive Degradation (Glossary)

GLOSSARY

Adaptive Degradation

Adaptive Degradation dynamically drops the rendering level while you work based on display performance. You set the parameters controlling the trade-off between display quality and display speed.

The selected levels determine which rendering levels 3DS MAX falls back to when it cannot maintain the desired display speed. You can choose as many levels as you want but you are advised to choose only one or two levels for each type of degradation.


Additive Opacity (Glossary)

GLOSSARY

Additive Opacity

Ball on right has additive opacity

Additive opacity brightens the colors behind the material by adding the material’s colors to the background colors.

Additive opacity is good for special effects, such as light beams or smoke.


Affine Transformation (Glossary)

GLOSSARY

Affine Transformation

A geometric transformationmove, rotation, or scalethat can alter distances between points or angles between lines, but preserves straight lines and the parallel relation between parallel lines. 3DS MAX Transform operations are affine transformations. NURBS are invariant under affine transformations.


Aliasing/Antialiasing (Glossary)

GLOSSARY

Aliasing/Antialiasing

Pyramid is aliased on left, antialiased on right

Aliasing is the staircase effect at the edge of a line or area of color when it’s displayed by an array of discrete pixels.

Antialiasing smoothes the staircase effect that occurs when diagonal or curved lines or borders are drawn on raster displays consisting of square or rectangular pixels. Antialiasing can be either on or off. Turn this off only when you’re rendering test images and want greater speed. Leave it on at all other times.

You can also turn antialiasing off for the Material Editor sample windows to speed up redraw of the sample objects.


Alpha Channel (Glossary)

GLOSSARY

Alpha Channel

Alpha channel shown in black, on the right

Alpha is a channel of data, found in 32-bit bitmap files, that assigns transparency to the pixels in the image. A 24-bit, truecolor file contains three channels of color information: red, green, and blue, or RGB. The intensity of these three channels determines the color of each pixel in the image. By adding a fourth, alpha channel, the file can specify the transparency, or opacity of each of the pixels. Transparency is important for compositing operations, such as those in Video Post, where several images are blended together in layers.

Each channel of a truecolor bitmap file is typically 8-bits, providing 256 levels of intensity. Thus, an RGB file is 24-bits with 256 levels each of red, green, and blue. An RGBA file (red, green, blue, alpha) is 32-bits, and the extra 8 bits of alpha provide 256 levels of transparency. An alpha value of 0 is transparent, an alpha value of 255 is opaque, and values in between are semi-transparent.


Ambient Color (Glossary)

GLOSSARY

Ambient Color

Ambient color is the color of the object where it is in shadow.

This color is what the object reflects when illuminated by ambient light rather than direct light. If you turn up the ambient light in your scene, the shadows will not appear any darker than the ambient light color, which is why you usually keep ambient light set to black (or a very dark color).

In 3DS MAX, you can lock a material’s ambient color to its diffuse color so that changing one automatically changes the other.


Ambient Light (Glossary)

GLOSSARY

Ambient Light

Rendering shows the effect of a pale pink ambient light

Ambient light is the general light that illuminates the entire scene. It has a uniform intensity and is uniformly diffuse. It has no discernible source and no discernible direction.

As a default, there’s a small amount of ambient light in every scene. If you examine the darkest shadows on your model with the default ambient light setting, you can still make out the surface because it’s lit by the ambient light.

Often, the best practice in lighting is to set your ambient lighting to black, set up all your lights, and then decide at the end if you need to apply general lighting.


Animation (Glossary)

GLOSSARY

Animation

Animation is based on a principle of human vision. If you view a series of related still images in quick succession, your brain perceives them as continuous motion. 3D Studio MAX refers to each image as a frame.

Historically, the major difficulty in creating animations has been that the animator must produce a large number of frames. Depending on the quality you want, one minute of animation might require between 720 and 1800 separate still images. Creating images by hand is a big job. That’s where keyframing comes in.

Most of the frames in an animation are routine, incremental changes from the previous frame directed toward some predefined goal. Early animation studios quickly realized they could increase the productivity of their master artists by having them draw only the important frames, called keyframes. Assistants could then figure out the frames that were required in between the keyframes. The frames were (and still are) called tweens.

3DS MAX is your animation assistant. As the master animator, you create the keyframes that record the beginning and end of each transformation. The values at these keyframes are called keys. 3DS MAX calculates the interpolated values between each key value, resulting in tweened animation.

3DS MAX is not limited to animating transformations (such as position, rotation, and scale). It can animate just about any parameter you can access. Thus, you can animate modifier parameters, such as a Bend or a Taper angle, material parameters, such as the color or transparency of an object, and much more.

Early animation studios also had to employ artists to add the ink and color to each frame. Even today, production of a cartoon usually requires hundreds of crafts people and artists to generate the thousands of images. With 3D Studio MAX, the renderer takes over the job of shading and rendering each frame and storing it as you direct. The end result is a high-quality finished animation.


Animation Controllers/Transform Controllers (Glossary)

GLOSSARY

Animation Controllers/Transform Controllers

All animation in 3DS MAX is performed through animation controllers. The most common animation controllers, those for move (position), rotate, and scale, are also referred to as transform controllers.

Each animation track has its own controller, and each controller can be different.

In the hierarchy list, the controller tracks are represented by the green-arrow icons. You can see which specific controllers are assigned to each track by turning on the controllers display in the Track View (right-click Filters in the Track View toolbar, and choose Controller Types from the list). The controller names appear beside the tracks to which they’re assigned.

You can assign different controllers to the tracks, affecting the way they respond. The Bezier Controller, assigned by default to all the Position tracks, lets you move objects using the Select and Move transform tool, and converts those movements into Bezier splines. You can adjust the splines in Function Curve editing mode.


Aspect Ratio (Glossary)

GLOSSARY

Aspect Ratio

Aspect ratio describes the proportions of a still image or the frames in a movie, expressed as the ratio of width to height. For example, pre-1950s movies and 35 mm slides have an aspect ratio of 4:3.

Aspect ratio is usually expressed either as a ratio of width over height (for example, 4:3) or as a real value relative to 1 (for example, 1.333).

When you make a spotlight a projector, set the spotlight’s aspect ratio to match the aspect ratio of the image it’s projecting (with the Bitmap Fit button). If you don’t, 3DS MAX stretches (and distorts) the bitmap to fill the projector cone.

3DS MAX also allows you to set the pixel aspect ratio, so that there is a different value for the distance covered by one pixel measured horizontally and one pixel measured vertically.


Attenuation (Glossary)

GLOSSARY

Attenuation

Image on right rendered with attenuation

In the real world, light diminishes over distance. Objects far from the light source appear darker; objects near the source appear brighter. This effect is known as attenuation.

In nature, light attenuates at an inverse square rate; that is, its intensity diminishes in proportion to the square of the distance from the light source. It is common for attenuation to be even greater when light is dispersed by the atmosphere, especially when there are dust particles in the atmosphere, or fog or clouds.

By default, attenuation is not used by the lights you create in 3DS MAX. Consequently, the distance of the light to the object is meaningless, only the angle of the light to the surface has any effect unless you turn on attenuation.

You can apply attenuation to omni lights and spotlights. You can also use attenuation with the Raytrace map. You should consider using attenuation for all of the lights in your scene, and when you generate reflections and refractions with Raytrace, for two reasons:

  • Attenuation provides greater subtlety and realism in your lighting.
  • You can reduce rendering time, since attenuated lights only light specific, needed geometry, and the Renderer doesn’t have to calculate all the faces that are beyond the attenuation range.

3DS MAX lets you explicitly set where attenuation begins and where it ends. This is partly so you don’t have to worry about setting up strictly realistic distances between light objects and the objects they illuminate. More importantly, this feature lets you fine-tune the effect of attenuation. In outdoor scenes, attenuation can enhance the effect of distance. In an indoor setting, attenuation is useful for low-intensity light sources such as candles.


AVI Files (Glossary)

GLOSSARY

AVI Files

AVI stands for Audio-Video Interleaved format. This format is the Windows standard for movie files. The .avi filename extension indicates a Windows AVI movie file.

3DS MAX creates an AVI file when you make a preview animation. You can also render your final output to an AVI file. Although 3DS MAX is designed to produce the highest quality output by rendering single frame TGA files or rendering directly to a digital disk recorder, you can still get good results rendering AVI files.

AVI files are used as input to 3DS MAX in several ways, for example:

  • As animated materials in the Material Editor
  • As viewport backgrounds for rotoscoping
  • As input images for compositing in Video Post

When you render to an AVI file from within 3DS MAX, you have the following file Setup options:

Compressor: Select the codec (compressor/decompressor) you want to use to compress the file. 3DS MAX supports Cinepak, Intel Indeo 3.2, Microsoft Video 1, and Autodesk RLE codecs from within the program. You can also render uncompressed frames (and then use an external application to compress the file). Video-file compression is an art in itself, with many aspects to consider. For more information, refer to a recent book on the subject or to one of the many articles in the PC magazines.

Compression Quality: Use the slider to select the quality you want. The higher the quality, the larger the file size.

Keyframe Every n Frames: Select the interval between the Delta keyframes used to compare one frame with another and generate in-between frames. Too large an interval will create loss of quality in the AVI file as a whole.

Configure: Click this button to see any additional options specific to the codec.


Axis Tripod (Glossary)

GLOSSARY

Axis Tripod

An axis tripod appears in the viewports whenever you select one or more objects, to assist you visually in your transforms.

The tripod consists of three lines, labeled X, Y, and Z, and shows you three things:

  • The orientation of the tripod reveals the orientation of your coordinate system.
  • The location of the junction of the three axis lines shows you where your transform center is.
  • The highlighted red axis lines show you the axis or axes to which the transform is constrained. For example, if only the X axis line is red, you can move objects only along the X axis.

You can toggle the display of the axis tripod in all viewports by choosing Views/Show Axis Icon.


Axonometric Views (Glossary)

GLOSSARY

Axonometric Views

A projected view of 3-dimensional space that displays from one to three sides of an object. The lines in an axonometric view do not converge to vanishing points as they do in a perspective view, so lines that are parallel in 3D space are parallel in the view. For this reason, diagonal and curved lines can appear to be distorted.

Isometric and orthographic views are special cases of axonometric views.


B-Spline (Glossary)

GLOSSARY

B-Spline

Short for basis spline. A kind of spline generated by so-called basis functions. The advantage of B-splines over Bézier curves (which are a special case of B-splines) is that the control vertices (CVs) of a B-spline affect only their local region of the curve or surface.


B�zier Curve (Glossary)

GLOSSARY

Bézier Curve

A curve modeled using a parametric polynomial technique. Bézier curves were developed by P. Bézier for computer modeling in automobile design. They are a special case of B-splines.


Blend Object (Glossary)

GLOSSARY

Blend Object

A dependent NURBS object that connects two curves or two surfaces. The curvature of the blend is controlled by the objects it connects, and by two tension parameters that control the “length” of effect of the tangent for each of the “parent” objects.


Blinn Shading (Glossary)

GLOSSARY

Blinn Shading

A shading method that is a subtle variation on Phong shading. The most noticeable difference is that highlights appear rounder. In general, you don’t need to use the Soften option as often as you do with Phong shading. With Blinn shading, you can obtain highlights produced by light glancing off the surface at low anglesthese highlights are lost when you turn on the Soften option using Phong shading.


Blur/Blur Offset (Glossary)

GLOSSARY

Blur/Blur Offset

On the left: Blur = 1, Blur Offset = 0

In the center: Blur = 2, Blur Offset = 0

On the right: Blur = 1, Blur Offset = 0.15

The Blur and Blur Offset controls determine how the map is blurred, or softened in the rendering. You can’t see their effect in the viewport renderer, only in the production renderer.

The Blur setting blurs the map based on its distance from the view. The farther away the map is, the greater the blurring. You should always use some blurring on your maps to avoid the type of scintillation, or aliasing that can occur when pixel details are reduced off in the distance. This effect typically occurs when you use detailed bitmaps viewed at a distance, and is particularly apparent during animations. The Blur default is 1.0, which is a good setting for most purposes.

Blur Offset blurs the map without regard to depth. That is, all the pixels in the map are blurred equally, regardless of how close or how far they are from the camera.

Whereas the Blur value is primarily used to avoid aliasing, Blur Offset is useful when you want to soften, or defocus the details in a map. It’s the equivalent of blurring the bitmap in an image-processing program before applying it as a material map.


Boolean Operation (Glossary)

GLOSSARY

Boolean Operation

A boolean object combines two other objects by performing a boolean operation on them. In 3D Studio MAX, a boolean object is made from two overlapping objects. The original two objects are the operands (A and B) and the boolean object itself is the result of the operation.

For geometry, the boolean operations are:

Union: The boolean object contains the volume of both original objects. The intersecting or overlapping portion of the geometry is removed.

Intersection: The boolean object contains only the volume that was common to both original objects (in other words, where they overlapped).

Subtraction (or difference): The boolean object contains the volume of one original object with the intersection volume subtracted from it.


Bounding Box (Glossary)

GLOSSARY

Bounding Box

The bounding box is the smallest box that encloses the maximum dimensions or extents of an object.

In 3DS MAX, you can display selected objects in the scene as bounding boxes to speed up screen redraw.

3DS MAX uses the maximum and minimum extents of the object's bounding box to align objects using the Align command.


Chamfer (Glossary)

GLOSSARY

Chamfer

A dependent NURBS object that is a line segment connecting two curves. It is controlled by the curves it connects, and by two length parameters that control the distance back from the point of apparent intersection of the “parent” curves.


Clipping Planes (Glossary)

GLOSSARY

Clipping Planes

Clipping planes let you exclude some of a scene’s geometry and view or render only certain portions of the scene. Each camera has a near and a far clipping plane. Objects closer than the near clipping plane or farther than the far clipping plane are invisible to the camera.

Clipping planes are useful for rendering selected portions of a scene that has a lot of complex geometry. They can also help you create cutaway views.

Clipping plane settings are part of the camera’s creation parameters. The location of each clipping plane is measured along the camera’s line of sight (its local Z axis) in the current units for the scene.


Compound Materials (Glossary)

GLOSSARY

Compound Materials

Compound (or complex) materials let you create a material consisting of two or more sub-materials.

The real power in using compound materials is that each sub-material can be as complex as any standard material.

The Multi/Sub-Object compound material lets you assign different materials to different sub-objects, at the sub-object level of your geometry.

You load or create compound materials using the Material/Map Browser.


Constant Shading (Glossary)

GLOSSARY

Constant Shading

Hemispheres with constant shading create the ant's eyes

This shading mode provides a constant shading across each facet, or co-planar surface of the object. The result has the appearance of so-called "flat" shading, except that it provides specular highlights.

Use this mode to provide a faceted look to your geometry without having to explicitly change the smoothing groups in the object with the Edit Mesh modifier.


Constrained Point (Glossary)

GLOSSARY

Constrained Point

A NURBS Point that is dependent on either another Point, Curve, or Surface, and whose position is either on the parent object or relative to it. The relative cases are XYZ-relative, along a normal, or along a tangent (or set of tangents for a surface-dependent constrained point).


Containers (Glossary)

GLOSSARY

Containers

Containers are Track View items with multiple branches that provide a complete definition of something in your scene.

Container items that appear in the Track View include:

  • Materials definitions with all parameters, maps, and sub-materials.
  • Maps containers with all map types and map parameters.
  • Single Map containers with a single map type and its associated parameters.
  • Object containers directly below a named object item defining the creation parameters of an unmodified object.
  • Modified Object containers holding all of the modifiers applied to an object as well as the creation parameters.


Continuity (Glossary)

GLOSSARY

Continuity

A property of curves, including NURBS curves. A curve is continuous if it is unbroken.


Continuity Level (Glossary)

GLOSSARY

Continuity Level

The level of continuity is a way to describe curvature. A curve with an angular cusp is C0 continuous. The curve is continuous but its derivative is not. A curve whose curvature changes has C1 continuity. The curve and its derivative are also continuous but its second derivative is not. A curve with uninterrupted, unchanging curvature has C2 continuity. NURBS curves must have at least C0 continuity; a continuity level greater than C2 is unnecessary for most 3D computer modeling.


Control Lattice (Glossary)

GLOSSARY

Control Lattice

In NURBS modeling, the lattice described by the CVs that specify a CV Curve or CV Surface. In 3DS MAX viewports, this appears as a dotted yellow framework when you edit the curve or surface at the CV sub-object level. You can also choose to display the control lattice in viewports at all times.


Control Vertex (CV) (Glossary)

GLOSSARY

Control Vertex (CV)

In NURBS modeling, a vertex that controls a CV Curve or CV Surface. The 3D location of each CV affects the shape of the curve or surface. CVs aren’t constrained to lie on the curve or surface. Each CV has a rational weight that can be used to adjust the influence of the CV on the curve’s or surface’s shape.


Convex Hull Property (Glossary)

GLOSSARY

Convex Hull Property

The property of NURBS curves and surfaces that the control lattice described by CVs forms a convex hull that surrounds the curve or surface.


Cool (Glossary)

GLOSSARY

Cool

It’s useful to be able to edit a material in the Material Editor and have it immediately updated in the scene. Sometimes you want to work on a material without affecting the scene. You want to adjust a material until you’re sure that it’s what you want, and then reassign it. In other words, you want to cool a hot material.

You cool a material by copying it in the Material Editor sample windows. You can copy a material in two ways:

  • Use the Copy Material button.
  • Drag and drop to copy the material.

When you drag to copy a sample, you end up with two materials with the same name, but one is cool while the other is hot. In the Material Editor, you can have up to six materials with the same name, but every material in your scene must have a unique name.

You can now adjust the cool material, comparing it with the hot material. If you like the changes you’ve made, you can update the scene.


CV (Glossary)

GLOSSARY

CV

Short for control vertex.

In NURBS modeling, a vertex that controls a CV Curve or CV Surface. The 3D location of each CV affects the shape of the curve or surface. CVs aren’t constrained to lie on the curve or surface. Each CV has a rational weight that can be used to adjust the influence of the CV on the curve’s or surface’s shape.


CV Curve (Glossary)

GLOSSARY

CV Curve

A NURBS curve defined by CVs. The CVs don’t necessarily lie on the curve. Instead, they form a control lattice that affects the curvature of the curve.


CV Surface (Glossary)

GLOSSARY

CV Surface

A NURBS surface defined by CVs. The CVs don’t necessarily lie on the surface. Instead, they form a control lattice that affects the curvature of the surface.


Degree (Glossary)

GLOSSARY

Degree

The degree of a curve is highest exponent in the equation used to represent it. A linear equation is degree 1, a quadratic equation degree 2. NURBS curves typically are represented by cubic equations and have a degree of 3.


Dependent (Glossary)

GLOSSARY

Dependent

Describes a NURBS sub-object whose definition depends on other NURBS sub-objects. For example, a Blend Curve depends on the two curves that you select when you create it.


Diffuse Color (Glossary)

GLOSSARY

Diffuse Color

The diffuse color is the color that the object reflects when illuminated by "good lighting," that is, by direct daylight or artificial light that makes the object easy to see.

When we describe an object’s color in conversation, we usually mean its diffuse color. The choice of an ambient color depends on the kind of lighting: for moderate indoor lighting it can be a darker shade of the diffuse color, but for bright indoor lighting and for daylight, it should be the complement of the primary (key) light source. The specular color should be either the same color as the key light source, or a high-value low-saturation version of the diffuse color.


Dithering (Glossary)

GLOSSARY

Dithering

When converting images with a palette of a greater number of colors to an image with a palette of fewer colors, dithering is a means of simulating colors not in the more limited palette by mixing different colored pixels together.

Dithering is also a method of smoothing the edges between two color regions by mixing their pixels so the edges appear to blend together.

In 3DS MAX, you have the option of setting dithering if you are rendering for the limited colors of an 8-bit display (256 colors). It can help prevent a banding effect in color gradients. Dithering does increase the size of 8-bit files and slows down the playback speed of animations. You may want to try applying maps to the flat areas in the scene to see if that eliminates banding before turning on dithering.

3DS MAX is designed to render 64-bit color output. Consequently, you also have the option of setting dithering for true color (24 or 32-bit color). The Dither True Color option ensures that you get the best quality on true-color displays.

You turn dithering on and off in the Rendering page of the Preferences dialog. You can also set dithering for scene motion blur in Video Post. Here, dithering provides a smoothing effect between the separate images making up the "blur." Video Post dither is set as a percentage of total dither.


Dummy Object (Glossary)

GLOSSARY

Dummy Object

A dummy object is a nonrendering object that you use as an animation helper. The primary use of the dummy helper object is to assist you in creating complex motions and building complex hierarchies. Because dummies are invisible in the rendered scene, they are an excellent choice for offset joints, connectors between objects, and handles for manipulating complex hierarchies.

Breaking complex motions into simple components often makes it easier to go back and edit your animations. For example, consider animating a bouncing ball moving around your scene. You could animate the ball by properly positioning it throughout the scene on many frames. The drawback is that it would be very difficult for you to go back and adjust the height of the bounce or the path the ball takes through the scene. You would have to edit the motion of the ball on many frames to make even a simple change.

Using a dummy object easily solves this problem by breaking the motion into two simple components. One component is the bounce of the ball. The other is the path through the scene.


DXF Files (Glossary)

GLOSSARY

DXF Files

DXF files are used to import and export objects to and from AutoCAD (and other programs that support this file format).

Keep the following in mind when you are creating your DXF geometry, and when you are deciding whether to convert by layer, color, or entity:

  • With AutoCAD Release 12, if you are using the AutoCAD Advanced Modeling Extension (AME), use the SOLMESH command on your AME models prior to saving the .dxf file.
  • With AutoCAD Release 13, you can use the 3DSOUT command to convert an AutoCAD drawing to mesh objects. This command creates a 3D Studio Release 4 file that you can import into 3DS MAX.
  • After importing a DXF file, you might want to divide the resulting 3DS MAX objects into smaller objects.

Entities that are frozen or turned off are ignored.

The successful unification of face normals depends on the welding of coincident vertices. Sometimes, depending upon the precision of the model as it was created in AutoCAD, the vertices may not be close enough to be considered "coincident." They will not be welded, and the faces will not be properly unified. In this case, increase the Weld Threshold value in the Import DXF File dialog.

Converting by layer can result in objects consisting of many elements. In certain cases, some of these elements may have all of their face normals flipped the wrong way. You can detect this in 3DS MAX by clearing Backface Cull in the Display panel, or by rendering the objects. Use the Normal modifier to correct this.

If you do not want to flip normals, you can either use 2-sided materials, or turn on the Force 2-Sided option in the Render Scene dialog.

If you are loading a large scene containing thousands of entities (such as 3D faces) and have chosen to load an object by entity, the conversion can take a long time. It also produces a huge number of objects to handle in 3DS MAX. To avoid this, organize your DXF file so that these kinds of entities are grouped by layer, then make the conversion by layer rather than by entity.


Ease Curve (Glossary)

GLOSSARY

Ease Curve

Ease curves vary the timing of a superior function curve. A normal function curve charts an animated parameter value over time. An Ease curve charts changes to the time of a function curve over time.

The horizontal scale of an Ease curve represents normal time, just as it does for all function curves. The vertical scale of an Ease curve represents the time scale of the superior function curve the Ease curve is applied to. Changing the shape of an Ease curve changes the way time is interpreted by the affected function curve.

An Ease Curve Example

Imagine you have animated a bird flying around the sky. After viewing the animation you decide that you want to change the position of the bird so it moves quickly at the beginning of the animation and then slows to a leisurely pace towards the end.

You could accomplish this change by editing position keys, ranges, and function curves but it would require more work than using an Ease curve. Applying an Ease curve to the Position track provides a quick and easy solution.

Dragging the Ease curve causes time to compress near the beginning of the animation and stretch out near the end. You can tell that the bird’s motion starts out fast and then slows down by looking at the effect the Ease curve has on the Position function curves.


Encapsulated PostScript Files (Glossary)

GLOSSARY

Encapsulated PostScript Files

3DS MAX can render images to Encapsulated PostScript format files, which have the .eps or .ps extension.

PostScript is an Adobe page-description language for encoding graphics images. It is supported by many printing devices and is widely used in desktop publishing and graphic design as a means of porting images from one platform to another.

When you render to an Encapsulated PostScript file in 3DS MAX, you have the following file Setup options:

Units: Select inches or millimeters.

Image Orientation: Select portrait (tall) or landscape (wide).

Data Format: Select binary or ASCII.

File Type: Select color or grayscale.

Preview: Check to generate a thumbnail image so that file browsers can preview the contents of the PostScript file.

Page Size: Set width and height measurements.

Resolution: Set width and height resolution in dots per inch (dpi).


End Effector (Glossary)

GLOSSARY

End Effector

A kinematic chain is a single branch of a hierarchy used for animation with inverse kinematics (IK). The chain starts with a selected child object and travels up through ancestors until it reaches the base of the chain. The selected child object at the start of a kinematic chain is called the end effector.

Another way of looking at it is to realize that for any IK solution you explicitly move one object. 3D Studio MAX uses IK calculations to move and rotate all other objects in the kinematic chain to react to the object you moved. The object that you move is the end effector.


Environment Map (Glossary)

GLOSSARY

Environment Map

Background created with a cylindrically mapped bitmap image

Texture coordinates lock a map to geometry. Environment coordinates, on the other hand, lock a map to the world. If you move the object, the map remains in place. If you move the view (or camera) the map changes. This type of mapping system is used with reflection, refraction, and environment maps.

There are four types of environment coordinates:

  • Spherical
  • Cylindrical
  • Shrink-Wrap
  • Screen

The first three are the same as those used by the UVW Map modifier. If you imagine a sphere, infinite in size, surrounding your scene and mapped with spherical mapping coordinates you can visualize the effect you get with spherical environment mapping. Shrink-wrap wraps the map around a giant sphere, leaving only one singularity. Cylindrical is like a giant cylinder.

The Screen system maps the image directly to the view, with no distortion. It’s similar to planar, in that it’s like a giant backdrop hung in the scene. Unlike the other environment mapping methods, Screen is locked to the view. When you move the camera, the map moves with it. As a result, you can only use it for still renderings, or animations in which the camera doesn’t move.

To use a bitmap with any environmental mapping system other than Screen, you need a high-resolution map because of the size of the virtual sphere, or cylinder.

An environment map is not assigned in the Material Editor, because it’s not applied to the geometry of an object, but rather to the scene itself. Environment maps appear in the background, as seen from the camera or perspective view.

When you assign a map to the environment, it’s the same as if you’d assigned a mapped material to an object in your scene. To edit or adjust the assigned map, you need to place it in one of the sample slots in the Material Editor. You can do that in one of two ways:

  • Click the Get Material button in the Material Editor, and then get the map from the scene.
  • Put the map from the Environment dialog to one of the six sample slots in the Material Editor.


Field of View (Glossary)

GLOSSARY

Field of View

Use Field of View (FOV) to change the amount of the scene visible and the amount of perspective flare applied to a Perspective or Camera view. The Field of View button appears in the viewport navigation control panel when a Perspective or Camera view is active.

Field of View defines the width of your view as an angle with its apex at your eyepoint and the ends at the sides of the view. The effect of changing FOV is similar to changing the lens on a camera. As the FOV gets larger you see more of your scene and the perspective becomes distorted, similar to using a wide-angle lens. As the FOV gets smaller you see less of your scene and the perspective flattens, similar to using a telephoto lens.

A Perspective view uses an imaginary camera with only one setting, FOV. The FOV angle for the active Perspective view is displayed in the Rendering Methods panel of the Viewport Configuration dialog. You can type a value in the FOV field of the dialog to precisely set FOV for the active Perspective view.


Fields (Glossary)

GLOSSARY

Fields

Fields

Your 3DS MAX animations might ultimately be viewed on television monitors. Standard video signal display animation by breaking it down within time segments (frames). The image for each frame is split into horizontal lines (scan lines). A special method for conveying frame information on a video signal has been developed. This method is called field interlacing. Television monitors display a video signal by separately scanning two portions of each frame called fields. One field contains the odd scan lines of a frame, the other field contains the even scan lines. Television monitors scan and display the fields of each frame separately. The fields are alternately cycled through every other horizontal line on the screen such that they "layer" together to form a single interlaced image.

Render to Fields

The Render to Fields checkbox sets whether 3DS MAX renders full frames at the specified frame or renders fields at twice the frame rate. When checked, 3DS MAX renders an extra sub-frame image between every two frames and composites each frame and the following sub-frame into a single image with two fields. The result is a 60 fields per second animation that appears smoother when viewed on a television monitor than standard 30 frames per second animation.

Field Order

When you render to fields using 3D Studio MAX, you also specify a field order, identifying which field is considered to come first. The Field Order configuration setting is found in Preferences, on the Rendering page. A frame’s scan lines are numbered and each field contains either the odd or even scan lines. The video source (e.g. broadcast transmitter, video tape recorder, or digital video recorder) determines which group of scan lines is in each field and which group is delivered to the display first. The fields are referred to as Field 1 (F1) and Field 2 (F2); either could contain the odd numbered (1st, 3rd, 5th, etc.) scan lines or the even numbered (2nd, 4th, 6th, etc.) scan lines in the frame.

Using the default setting of Odd as your Field Order preference, 3DS MAX will render the first field image (F1) to the odd scanlines. If the field order preference is set to Even, then the first field image is rendered to the even scan lines. For an image to display properly the 3DS MAX field order and the video device field order must match.

Some video systems require odd lines to be rendered first, and others require the even lines to be recorded first. The Field Order parameter is set to Odd by default. If you observe incorrect strobing in your video output, change the parameter to Even.


Fillet (Glossary)

GLOSSARY

Fillet

A dependent NURBS object that is an arc connecting two curves. It is controlled by the objects it connects, and by a radius parameter.


Filter Color/Filter Opacity (Glossary)

GLOSSARY

Filter Color/Filter Opacity

Sphere with a green filter color and low opacity

Filter opacity tints the colors behind the material using a specified transmission color.

Filter opacity is the default system, because it provides a more realistic transparency effect. When the Filter option is set in the Extended Parameters rollout, the color used by the Filter Color swatch tints the transparency of the material.

In life, a transparent material, such as colored glass, affects the colors behind it not by the diffuse or ambient colors (which are reflected colors), but by the transmission color.

The transmission color is that property of a substance that filters certain colors, and allows others to pass. For example, a sheet of red cellophane is a filter that blocks all light not in the red wavelength of the spectrum. By using filter opacity, you can specify a transmission color and achieve strong, saturated colors, no matter how transparent the material.


Filtering (Glossary)

GLOSSARY

Filtering

Filtering is a technique of antialiasing the bitmaps in mapped materials by averaging pixels. The Pyramidal and Summed Area options provide two methods of pixel averaging. Only one can be active at a time.

Both methods require approximately the same rendering time. Summed-area filtering generally yields superior results but requires much more memory. Pyramidal filtering requires the program to allocate memory equal to approximately 133% of the size of the bitmap. By comparison, summed-area filtering requires the program to allocate approximately 400% of the size of the bitmap.

Use summed-area filtering only for smaller bitmaps, and avoid using any more such bitmaps in a scene than necessary.

Pyramidal filtering is quite adequate for most purposes. However, because it applies filtering as a function of distance, irregular antialiasing may occur on detailed texture maps that are applied to a plane receding into the distance. The effect of pyramidal filtering on extreme perspectives such as this is even more noticeable in animations, where portions of the texture map appear to "swim." If this occurs, turn on summed-area filtering for the material.


First Vertex (Glossary)

GLOSSARY

First Vertex

When you create a spline object, 3DS MAX numbers the vertices from 1 to the total number of vertices in the spline, according to the order of creation. When the spline is displayed in viewports, the first vertex has a box around it.

The first vertex is commonly used as an alignment marker when you place two or more shapes on different path levels when lofting. If you place different shapes on different path levels and you don’t align their first vertices, the resulting mesh object is twisted.

To avoid twisting, you can align the first vertices by rotating the splines as necessary. Alternatively, you can change the position of a spline's first vertex by using the Make First button in the Edit Spline modifier (with Sub-Object set to Vertex).


Flat Mirror (Glossary)

GLOSSARY

Flat Mirror

Objects on a surface that has flat mirror material

If you want to create a flat, mirrored surface in a scene, such as a highly polished floor, you must use a flat mirror reflection map.

Flat mirror reflection maps must be assigned to your geometry in a specific way, and work only on flat surfaces.

When you use flat-mirror reflection maps, keep the following in mind:

The flat-mirror material must be assigned to connected, coplanar faces on a flat surface of the object. If your flat-mirror reflection doesn’t work, it’s probably because non-coplanar faces have been assigned the flat-mirror material. This can happen either during the selection process, if one or more non-coplanar faces are included in the selection set, or if you’ve already assigned the same material elsewhere on the object (coplanar faces are two or more adjacent faces that are on the same two-dimensional plane, such as the surface of a floor).

If you want to reflect in multiple planes of the same object, detach each plane into a separate object before you assign the material.

A flat-mirror surface will reflect a solid-color background, but it cannot reflect gradient or bitmap backgrounds. If you want to reflect a bitmap image or gradient as a background, apply it as a texture map onto a geometric plane that you place in your scene.

In 3D Studio Release 4, it is sometimes difficult to avoid rendering irregularities in the faces of objects that intersect the plane of a flat-mirror. 3DS MAX has perfect mirror clipping, which means that you can intersect any shape objects with the mirror, and they will render correctly.


FLC Files (Glossary)

GLOSSARY

FLC Files

The FLC (flic) file format is an Autodesk format for digital animations.

There are two slight variations of this format. Animations created by the earlier Autodesk Animator program have the .fli filename extension; the later Animator Pro and 3D Studio Release 4 products create animation files with a .flc filename extension. Flic files can also have a .cel filename extension.

Flic files are restricted to a maximum of 256 colors (8-bit).

When you render to flic files from within 3DS MAX, you have the following file Setup options:

Palette Method: Select the method to use to create the 256-color palette for the file. Low builds the palette based on the first frame. Medium builds a 256-color palette for every frame and then optimizes them into a single palette. Custom uses the palette of another file that you specify. Uniform uses a generic set of colors for cases in which you want to use a set of flic files to all have the same standard colors.

Number of Palette Colors: Set the number of colors up to 256. If you specify a number less than 256, the remaining slots in the palette are filled with black.


Follow Object (Glossary)

GLOSSARY

Follow Object

You can bind an object in your hierarchy to any other object (often an object not in the same hierarchy). This other object is called the follow object.

The bound object tries to match the position and orientation of its pivot point to the position and orientation of the follow object’s pivot point.

For example, you might want to animate a figure that always points to another object. Bind the hand of the figure to the other object. Turn IK on and as you move the object the hand and arm of the figure move to point at it.


Forward Kinematics (Glossary)

GLOSSARY

Forward Kinematics

The default method of manipulating a hierarchy in 3D Studio MAX uses a technique called forward kinematics. The basic principles employed by this technique are:

  • Hierarchical linking from parent to child
  • Placement of pivot points to define the connecting joint between linked objects
  • Inheritance of position, rotation, and scale transforms from parent to child

In forward kinematics, when a parent object moves, its children must follow. If the child wants to go off on its own, the parent remains behind. For example, in a hierarchical linkage of a human figure, when the torso (the parent) bends over, the head (the child) moves along with it, but you can turn the head without affecting the torso.


Frame Rate (Glossary)

GLOSSARY

Frame Rate

The frame rate of an animation is generally expressed in frames per second (fps). Specifically, this is the number of frames displayed for every second of real time.

Different recording devices output different frame rates, but the standard rates are as follows:

NTSC video: 30 frames per second

PAL video: 25 frames per second

Film: 24 frames per second

3D Studio MAX lets you change the frame rate for your output at any time, outputting the correct number of frames to maintain the correct playback speed for your animation.

For example, if you create a 90-frame animation for video, using an NTSC frame rate of 30 frames per second, the result will be three seconds of animation.

If you later discover you need to output to PAL video (at 25 frames per second), you can switch to the PAL frame rate, and the 90 frames are automatically converted to 75, producing the same total animation time with a different number of frames. You can later switch back to NTSC frame rate to restore the original 90 frames of animation.

You can switch back and forth between frame rates at any time without losing animation data.


Freeze/Unfreeze (Glossary)

GLOSSARY

Freeze/Unfreeze

You can freeze any selection of objects in your scene. Frozen objects, whether wireframe or rendered, turn a dark gray. They remain on screen, but can’t be selected, and therefore can’t be directly transformed or modified. Freezing lets you protect objects from accidental editing and speeds up redraws.

Frozen objects are similar to hidden objects. Linked, instanced, and referenced objects behave when frozen just as they would if unfrozen. Frozen lights and cameras and any associated viewports continue to work as they normally do.


Function Curve (Glossary)

GLOSSARY

Function Curve

Function curves are editable splines that represent animation values in a line-graph format. They provide a valuable way of both visualizing and editing your animation tracks.

Function curves appear in the Track View, and provide the best method of viewing and editing animation tracks. With the function curve display, you can actually see the characteristics of the animation as they change over time. The steepness of the curve indicates the velocity of an object in the scene. If the curve steepens, the object is accelerating. If the curve flattens out, the object is slowing down.

You can display key dots in function curves, as well as in the key editing displays. In function curves, the key dots appear as small, black squares. The two ways to turn on their display are to click the green icon beside the track label, or to click the function curve itself.

There are two basic ways to edit function curves. You can either change the position of the key dots, thereby altering the curve, or you can edit the tangents and the values of the keys themselves.


Fusing (Glossary)

GLOSSARY

Fusing

In NURBS curves and surfaces, fusing connects a point to a point or a CV to a CV. (You can’t fuse a CV to a point, or vice versa.) This is one way to connect two curves or surfaces. It is also a way to change the shape of curves and surface.

Fused points behave as a single point or CV until you unfuse them. Fusing points does not combine the two point or CV sub-objects. They are connected but remain distinct sub-objects that you can unfuse at a later time. However, if the first point or CV had an animation controller, that is lost when you fuse, and the second point's or CV's animation controller animates the fused points or CVs.

Fused CVs behave much like a single point, but the property of multiplicity for coincident CVs also applies. The fused CVs have proportionally more influence on the curve, which can become more sharply curved in the fused CVs’ vicinity, or even angular if more than two CVs are fused together.


G-Buffer (Glossary)

GLOSSARY

G-Buffer

Image Filter and Image Layer events in Video Post can use masks that are based on graphics buffer (G-Buffer) channels instead of the more widely used RGB and alpha channels. Also, some kinds of Filter and Layer events can post-process objects or materials designated by the G-Buffer.

You can set two kinds of these channels in the scene itself, to identify and group objects or materials for a particular post-processing effect.

  • You set an object’s G-Buffer Object Channel value to identify that object to receive a particular post-processing effect.
  • You set a material’s Material Effects Channel value to identify that material to receive a particular post-processing effect.

You create object-specific or material-specific post-processing by going through the following overall steps:

Assign a particular Object Channel ID or Material Effects Channel ID to the objects or the materials you want to be post-processed.

In the Image Filter or Image Layer event, choose the channel ID that associates the event with the ID value you assigned in the scene.

When you execute the Video Post queue, the Filter or Layer event singles out objects or materials that have the designated ID, and performs its post-processing only on those objects or materials.


Gamma (Glossary)

GLOSSARY

Gamma Correction

Gamma correction compensates for the differences in color display on different output devices so that images look the same when viewed on different monitors.

A gamma value of 1 corresponds to an "ideal" monitor; that is, one that has a perfectly linear progression from white through gray to black. However, the ideal display device doesn't exist. Computer monitors are "nonlinear" devices. The higher the gamma value, the greater the degree of nonlinearity. The standard gamma value for NTSC video is 2.2. For computer monitors, gamma values in the range of 1.5 to 2.0 are common.

When you create an image on your computer, you base your color values and intensities on what you see on your monitor. Thus, when you save an image that looks perfect on your own monitor, you're compensating for the variance caused by the monitor gamma. The same image displayed on another monitor (or recorded to another media affected by gamma) will look different, depending on that media's gamma values.

Two basic procedures are required to compensate for changes in gamma:

  1. Calibrate your output display devices so that the midtones generated by 3DS MAX are accurately duplicated on your display device. You do this in the Gamma panel of the Preferences dialog (Display Gamma).
  2. Determine the gamma value to be applied to files output by the 3DS MAX renderer and files input into 3DS MAX, such as texture maps. This control is also in the Gamma panel of the Preferences dialog (Files Gamma).

The most important rule about gamma correction is to do it only once. If you do it twice, the image quality is over bright and loses color resolution.

With regard to output file gamma, video devices such as video tape recorders have their own hardware gamma-correction circuitry. Therefore, you need to decide whether to let 3DS MAX do the output gamma correction or to let the output device handle it.

Gamma correction is not required for hardcopy print media.

Files coming into 3DS MAX from programs such as Adobe Photoshop will have been gamma-corrected already. If you've been viewing the files on the same monitor and they look good, you won't need to set input file gamma in 3DS MAX.


GIF Files (Glossary)

GLOSSARY

GIF Files

GIF is an 8-bit (256-color) format developed by Informix for the CompuServe information service. It was originally designed to minimize file transfer times over phone lines.

GIF is also the native file format for Autodesk's Animator Pro (an MS-DOS application).

There are no file Setup options for this file format in 3DS MAX.


Gizmo/Center (Glossary)

GLOSSARY

Gizmo/Center

Many modifiers display in viewports as a wireframe, called a gizmo, that initially surrounds the selected object. A gizmo acts like a kind of mechanical apparatus that transfers the modification to the object it’s attached to.

You can move, scale, and rotate a gizmo as you would any object, altering the effect of the modifier on the object.

A modifier has its own center, marked with a 3D pivot point like other objects in 3DS MAX. You can move a modifier’s center, altering the effect of the on the object.


Listener Window (Glossary)

GLOSSARY

Listener Window

In MAXScript, the listener window is an interactive command-line window that lets you type in and execute MAXScript commands interactively. In other words, you run the script as you go along, rather than running a pre-saved text file.

You open the listener window using the Open Listener button in the MAXScript rollout on the Utilities panel.


Grid Object (Glossary)

GLOSSARY

Grid Object

A grid object is a type of helper object you can create whenever you need a local reference grid or construction plane somewhere other than the home grid.

You can have any number of grid objects in your scene, but only one can be active at a time. When active, a grid object replaces the home grid in all viewports.

You can freely move and rotate grid objects, placing them at any angle in space, or attach them to objects and surfaces. You can also change viewports to display a plan or top view of any active grid object.

Grid objects can be named and saved like other objects, or used once and deleted.


Hierarchical Linkage (Glossary)

GLOSSARY

Hierarchical Linkage

3D Studio MAX uses a family tree analogy to describe the relationship between objects linked together in a hierarchy.

Parent: An object that controls one or more children. A parent object is often controlled by another superior parent object.

Child: An object controlled by its parent. A child object can also be a parent to other children. An object that doesn't have any parent is by default a child of the world. (The "world" is an imaginary object that acts as the root of all other objects in the scene.)

Ancestors: The parent and all of the parent’s parents of a child object.

Descendents: The children and all of the children’s children of a parent object.

Hierarchy: The collection of all parents and children linked together in a single structure.

Root: The single parent object that is superior to all other objects in the hierarchy. All other objects are descendents of the root object.

Subtree: All of the descendents of a selected parent.

Branch: A path through the hierarchy from a parent to a single descendent.

Leaf: A child object that has no children of its own. The lowest object in a branch.

Link: The invisible connection between a parent and its child. The link is a conduit for transmitting position, rotation, and scale information from parent to child.

Pivot: Defines the local center and coordinate system for each object. You can think of links as connecting the pivot of a child object to the pivot of its parent.


Home Grid (Glossary)

GLOSSARY

Home Grid

Grids are two-dimensional arrays of lines similar to graph paper, except that you can adjust the spacing and other features of the grid to the needs of your work.

In 3D Studio MAX, grids have these primary uses:

  • As an aid in visualizing space, scale, and distance.
  • As construction planes where you create and align objects in your scene.
  • As a reference system for using snap.

The home grid is the basic reference system, defined by three fixed planes on the world coordinate axes. The home grid is visible by default when you start 3DS MAX, but can be turned off with an option in the right-click viewport menu. You can use any view of the home grid as a construction plane or you can create a grid object and use that as a construction plane instead.


Horizon (Glossary)

GLOSSARY

Horizon

The horizon of a scene is the edge of vision at the height of the camera, parallel with the world coordinate plane. You can view the horizon in camera viewports.

A camera is level when it and its target are the same height from the world coordinate plane. In other words, the camera’s local Z axis is parallel to the world plane. When the camera is level, the horizon line is centered in the viewport. As the camera tilts up, the horizon line lowers; as it tilts down, the horizon line raises.

The horizon line can help you match the perspective of your scene to the perspective of a still image. In general, matching perspective involves the following steps:

  • Display the horizon line. Use it to help you adjust the camera and target so they are level.
  • Display the image in the camera viewport. Use Views/Background Image.
  • Orbit the camera until the perspective of the scene roughly matches that of the still image.
  • Adjust the camera’s perspective to fine-tune the perspective match.
  • Move the camera or target to position the scene against the background.

If you raise or lower the camera, raise or lower the target by an equal amount, in order to keep them level and maintain the horizon.


Hot (Glossary)

GLOSSARY

Hot

White triangles around the sample slots show that the materials in those slots are hot. A hot material is one that is instanced in both the sample slot and the scene. As a result, any changes you make to a hot material are changed in the scene at the same time.

When you change hot materials, you alter every place in the scene where that material is assigned. In the Material Editor, the only time you need to select an object is when you’re assigning a material to an object. When you’re adjusting a material, object selection doesn’t matter.


Hotspot/Falloff (Glossary)

GLOSSARY

Hotspot/Falloff

The mannequin’s hands extend into the falloff area of the spotlight cone

You’ve seen how a flashlight or a theater follow spot casts a circle of light. Depending on the quality of the flashlight, or the adjustment of the follow spot, the edge of the cast pool of light is either blurred or sharp.

In the case of a blurred pool of light, the bright circle in the center is the hotspot, and of even intensity. The outer extremity of the light, where it meets the darkness, is the falloff. The difference in circumference between the hotspot and the falloff determines the relative sharpness of the pool of light. For example, if the hotspot and falloff are nearly the same size, the pool of light has a sharp edge.

The hotspot angle of a spotlight must always be smaller than the falloff angle. Put another way, the hotspot must always be inside the falloff.

You can hold down the SHIFT key to have the hotspot and falloff values affect each other. If you inIf you increase the hotspot to be larger than the falloff, the falloff is increased as well. Likewise, if you reduce the falloff to be smaller than the hotspot, the hotspot is also reduced.


IFL Files (Glossary)

GLOSSARY

IFL Files

The Image File List (extension .ifl) is an ASCII file that lists other single-frame bitmap files to be used for each rendered frame.

There are four ways to animate bitmaps in 3D Studio. You can use FLC files, AVI files, IFL files, or you can use incrementally numbered static image files.

When you assign an animated bitmap for any purpose and render it, the bitmap steps through each frame of its animation as each frame of the scene is rendered, resulting in an animated map.

For example, if you assign a 10-frame flic of a blinking red "Danger" sign as a texture map, apply the material to a cube, and then render a 30-frame animation, the cube displays the blinking red Danger animation three times.

The .ifl file is an ASCII file containing a list of the bitmap files to be used with each frame. You can append an optional numeric argument to each filename to specify the number of frames of rendered animation on which it is used. For example:

; Anything after a semicolon is a comment, and is ignored.
sand.tga 20
pebble.tga 40
stone.tif 20
boulder.tif 20

The IFL file listed above specifies sand.tga to be used for the first 20 frames, pebble.tga to be used for the next 40 frames, stone.tif to be used for 20 frames, and boulder.tif to be used for 20 frames.

Specify only the filenames in your IFL files. The file paths are derived from the map paths established in your preferences.

When you’re in a bitmap-file-selector dialog, for example, when you are selecting a bitmap in the Material Editor or in Video Post, you can type in the unique prefix of a list of files and a wildcard to find its incrementally-numbered set.

You can use both asterisk and ? characters in the wildcard to find exactly the set you’re looking for. The file selector then becomes an IFL-file generator. It makes an IFL with the unique prefix and an .ifl extension and assigns it to that bitmap's slot. You can then open the IFL file with a text editor.

Additional notes:

If the IFL generator has a name conflict with an existing IFL file, it will increment its name to avoid overwriting the existing file.

If the IFL generator has any problems with write access while trying to create the IFL file, the process will fail and the IFL file won't be created. So it won’t work when reading bitmaps off of a CD-ROM. You’ll have to copy them to a directory on your hard disk first. Likewise, it won’t work on network drives to which you don’t have write access.


IK Solution (Glossary)

GLOSSARY

IK Solution

Inverse kinematics uses a goal-directed method where the animator positions a child object and the program calculates the position and orientation of the parent objects. The final position of the hierarchy after all of the calculations have been solved is referred to as the IK solution.

Applied IK requires that one or more parts of your IK structure are pinned to animated follow objects. Once pinned, you select any object in your kinematic chain and click the Apply IK button. 3D Studio MAX then calculates the IK solution for each frame of the animation and places transform keys for every object in the IK chain.


Image Motion Blur (Glossary)

GLOSSARY

Image Motion Blur

Image motion blur blurs the object by creating a smearing effect rather than multiple images. It takes camera movement into account. Image motion blur is applied after scanline rendering is complete.

For most purposes, image motion blur gives a better effect than scene motion blur.

Tip: When blurred objects overlap, blurring doesn't work correctly and there are gaps in the rendering. Because image motion blur is applied after rendering, it can't account for object overlap. To fix this problem, render each blurred object separately, to a different layer, and then composite the two layers using the Alpha Compositor in Video Post.

Note: Image motion blur doesn't work for NURBS objects that are animated so their tessellation (surface approximation) changes over time. This happens when sub-objects are animated independently of the top-level NURBS model.


Independent (Glossary)

GLOSSARY

Independent

Describes a NURBS object or sub-object that is not dependent on any other object. For example, a NURBS curve created using the Create command panel does not depend on other objects.


Instance (Glossary)

GLOSSARY

Instance

An instance is a completely interchangeable clone of the original. Modifying an instanced object is the same as modifying the original.

Instances are not only alike in geometry, but also share modifiers, materials and maps, and animation controllers. When you change one instance by applying a modifier, for example, all the other instances change with it.

Each instance has its own set of transforms, object properties and space warp bindings -- these are not shared among instances.

Within the program, instances derive from the same master object. What you’re doing is applying a single modifier to a single master object. In the viewport, what you see as multiple objects are multiple instances of the same definition.

If you wanted to create a school of swimming fish, you might begin by making many instanced copies of a single fish. You could then animate the swimming motion by applying a ripple modifier to any fish in the school. The whole school would swim with exactly the same motions.


Inverse Kinematics (Glossary)

GLOSSARY

Inverse Kinematics

Inverse Kinematics is a positioning and animation method that is built on top of the concepts of hierarchical linking. To understand how IK works you must first understand the principles of hierarchical linking and forward kinematics.

Inverse kinematics starts with linking and pivot placement as its foundation and then adds the following principles:

  • Joints are constrained with specific positional and rotational properties.
  • Position and orientation of parent objects is determined by the position and orientation of child objects.

Because of these added constraints, IK requires greater thought about how you link your objects and place pivots. Where many different solutions for linking objects may be suitable for forward kinematics, there are usually just a few good solutions for any given IK approach. The best solution depends on both the nature of the hierarchy and how that hierarchy will be animated.

Inverse kinematics is often easier to use than forward kinematics and you can quickly create complex motions. However, you give up some of your control to the automation of the IK functions.


Iso Line (Glossary)

GLOSSARY

Iso Line

(Iso is short for isoparametric.)

In NURBS modeling, a line of constant parameter value, similar to a contour line. You can use iso lines to display a NURBS surface. You can also create dependent NURBS curves based on a surface’s U-dimension or V-dimension iso lines.


JPEG Files (Glossary)

GLOSSARY

JPEG Files

JPEG files follow the standards set by the Joint Photography Experts Group. These files use a variable compression method that is called lossy compression because of the loss of image quality as you increase the compression. However the JPEG compression scheme is extremely good and you can sometimes compress the file up to 200:1 without severe loss of image quality. JPEG is consequently a popular format for posting image files on the Internet for minimum file size and minimum download time.

When you render to a JPEG file from within 3DS MAX, you have the following file Setup options:

Quality: Move the slider to the level of quality you want: the higher the quality, the larger the file size. In general, files compressed with the slider set to Best have compression ratios between 5:1 and 15:1.

File Size: Move the slider to the size of file you want: the larger the file, the higher the quality.

Smoothing: Move the slider to the level of smoothing you want: the higher the level of smoothing, the larger the file size.


Keyframes/Keys (Glossary)

GLOSSARY

Keyframes/Keys

Keyframes record the beginning and end of each transformation of an object or element in the scene. The values at these keyframes are called keys.

For example, if you have a box that has not been animated, no keyframes (or keys) exist for it. If you turn on the Animate button, move to frame 20, and rotate the box 90 degrees, Rotate keys are created at frames 0 and 20.

The key at frame 0 represents the orientation of the box before it was rotated, while the key at frame 20 represents the orientation of the box after it was rotated 90 degrees. When you play the animation, the box rotates from 0 to 90 degrees over 20 frames.


Kinematic Chain (Glossary)

GLOSSARY

Kinematic Chain

Inverse kinematics calculates the position and orientation of objects in a kinematic chain.

The kinematic chain is defined as a single branch of the hierarchy that starts with a selected child object and continues up through its ancestors until it reaches the base of the chain. The base of the chain is either the root of the entire hierarchy or an object that you specify as a terminator for the chain.

3D Studio MAX automatically determines the kinematic chain when you select and transform an object with the IK button turned on.


Knot (Glossary)

GLOSSARY

Knot

A value in an array or “knot vector” associated with a NURBS curve. Values in the knot vector are nondecreasing. The knots specify the region of influence of the CVs on the curve. You can’t see or directly alter knots.


Launch Script (Glossary)

GLOSSARY

Launch Script

A launch script is a MAXScript script that you run from the command line with the -U switch, instead of using the Utilities panel.

You use a launch script to run batch operations in 3DS MAX. For example, you might have a batch rendering in which the script opens a sequence of files, sets up shots in each, and renders them, all without making use of the 3DS MAX user interface.


Local Coordinate System (Glossary)

GLOSSARY

Local Coordinate System

The coordinate system that relates specifically to the selected object.

Each object has its own local center and coordinate system as defined by the location and orientation of the object’s pivot point. The local center and coordinate system of an object combine to define its object space.

The direction of the object's X, Y, and Z axes depend on the current transforms of the object. Contrast with the world coordinate system.

You can see the difference between the two coordinate systems when you unintentionally rotate an object, such as the wheel on a car model, around the world axis instead of the object's local axis. The wheel immediately flies off in a large arc because the center of the rotation is at the origin of the world coordinates.

To rotate the wheel correctly, first change the coordinate system to Local, using the pop-up list in the toolbar. The wheel then rotates around its own hub, which is the origin of its local coordinates.


Lofting (Glossary)

GLOSSARY

Lofting

Lofting is an important method for 3D object creation. You create shape objects to serve as a path and any number of cross-sectional shapes. The path becomes the framework that holds the cross-sections forming your object.

Once you create a loft object you can change and animate its parameters and sub-objects:

  • Add and replace cross-section shapes or replace the path.
  • Change or animate the parameters of the path and shapes.
  • Change or animate the surface parameters of the loft object.

The lofting process first requires that you create shape objects to serve as the path and cross-sections of your loft object.

The term lofting comes from early ship building. A large framework called a loft was built to hold the hull of a ship while it was assembled. The process of hoisting the ribs (cross-sections) of the hull into the loft became known as lofting.

A traditional method for building three-dimensional models of a modern vehicle design is to draw cross-sections at a number of key points. These cross-sections are cut-out to form two-dimensional templates that are then placed on a rail. The model builders fill in the space between the templates to generate the surface of the model.

You create loft objects in 3D Studio MAX using a similar process. You first create two or more spline objects. One of these splines will be the rail, which 3DS MAX calls the path. The rest of the splines are the cross-sections of your object, which are called shapes. As you arrange your shapes along the path, 3DS MAX generates a surface between the shapes.


Map Bias (Glossary)

GLOSSARY

Map Bias

Map bias moves the shadow toward or away from the shadow-casting object (or objects).

By default, this value is 1.0 world coordinate unit. Increasing the bias moves the shadow away from the object, decreasing the bias moves the shadow closer to the object. The Map Bias value can be any positive floating-point number.

For example, if a shadow-casting object intersects another object but its shadow doesn’t meet properly at the intersection, the bias is too high. This effect varies with the angle of the spotlight to the object. Extremely shallow spotlight angles usually require higher bias values.

Another purpose of bias is to avoid problems with objects that cast shadows onto themselves. If you see streaks or moiré patterns on the surface of the object, the bias value is too low. If you increase the bias so much that the shadow becomes disconnected from the object, reduce the bias and increase the shadow map Size value instead.


Mapping Coordinates (Glossary)

GLOSSARY

Mapping Coordinates

Decoration on the vase is a map positioned by rotating the UV Map Modifier gizmo.

Mapping coordinates specify the placement, orientation, and scale of a map on the geometry.

If you apply a mapped material to an object without mapping coordinates, the Renderer assigns default mapping coordinates. In 3D Studio MAX, there are three ways to apply mapping coordinates:

  • Set the Generate Mapping Coords. option in the creation parameters rollout of any standard primitive. This option provides mapping coordinates specifically designed for the primitive. Because mapping coordinates require additional memory, you only turn them on when you need them.
  • Apply a UVW Map modifier. You choose from several types of mapping coordinate systems and customize the placement of the mapping coordinates on the object by positioning a mapping icon. In addition, you can animate the transformations of the mapping coordinates.

The built-in mapping coordinates are designed for each object type. The box mapping coordinates place a duplicate map on each of its six sides. For the cylinder, the image is wrapped once around its sides, and duplicates of the image are distorted at the end caps.

A sphere has the image wrapped once around the sphere, and then gathered at the top and bottom. Shrink-wrap mapping is also spherical, but truncates the corners of the map and joins them all at a single pole, creating only one singularity.

  • Use special mapping coordinate controls for special objects. For example, Loft objects provide built-in mapping options that let you apply mapping coordinates along their length and around their perimeter.

Assuming you’ve applied a mapped material to an object, there are three cases where you don’t need mapping coordinates:

  • Reflection/refraction maps and environment maps don’t need mapping coordinates. They use an environmental mapping system, in which the placement of the map is based on the rendered view, and fixed to the world coordinates in the scene.
  • 3D procedural maps (such as Noise or Marble) don’t need mapping coordinates because they’re procedurally generated, based on the local axis of the object.
  • Face-mapped materials don’t need coordinates because the maps are placed based on the facets in the geometry.


Maps (Glossary)

GLOSSARY

Maps

Front left sphere: Marble bitmap
Front right sphere: Clouds bitmap
Back left sphere: Noise procedural map
Back right sphere: Marble procedural map

The images you assign to materials are called maps. There are several different types of maps you can use in 3DS MAX. They include standard bitmaps (such as .bmp, .jpg, or .tga files), procedural maps, such as Checker or Marble, and image-processing systems such as compositors and masking systems.

You can assign maps to most of the components that make up a material. Materials that contain one or more images are called mapped materials. By assigning the maps to different attributes of the materials, you can affect the color, the opacity, the smoothness of the surface, and much more.

Maps offer the level of realism you look for in materials. The different types of maps you can use range from the common bitmap, to the flexible procedural map.

For many map types, the Renderer needs instructions telling it where the map should appear on the geometry. These instructions are called mapping coordinates.


Material/Map Hierarchy (Glossary)

GLOSSARY

Material/Map Hierarchy

The Material Editor could be called the Material and Map Editor, because you can use it to design both materials and maps, and any combination of the two. In addition, you can create material or map hierarchies.

A material hierarchy is a material that consists of other materials (or maps). Similarly, a map hierarchy is a map consisting of other maps. Materials that consist of other materials are called compound materials. Maps consisting of maps are compound maps.


Materials (Glossary)

GLOSSARY

Materials

Spheres with variations of the standard material type (no maps used):
Green sphere: High Shininess and Shininess Strength settings
Red sphere: Constant shading
Blue sphere: 60% opacity
Yellow sphere: Wireframe mode, slight self-illumination

A material is data that you assign to the surface or faces of an object so that it appears a certain way when rendered. Materials affect the color of objects, their shininess, their opacity, and so on.

A standard material consists of ambient, diffuse, and specular components. You can assign maps to the various components of a standard material.

The standard material is the default material in the six sample slots of the Material Editor. However, you can change the type of material you’re working on by clicking the button labeled Type below the sample slots. This displays the Material/Map Browser, and lets you select from a list of alternative material types.


Matte Object (Glossary)

GLOSSARY

Matte Object

Matte objects are used to make the buildings in the foreground hide Kong’s legs

A matte object is invisible but blocks any geometry behind it. It does not, however, block the background.

For example, you might make a complex scene for the background of your animation, render it once, then assign the resulting bitmap as a background using only a few animated objects during the rendering of the animation. If you then needed one of your objects to appear from behind some portion of the background, such as a building, you would create a matte object that matches the building, then place the animated object behind it. The bitmap image of the building appears, but the animated object is blocked until it moves from behind the matte object.

Matte objects, though invisible, can cast shadows. However, they cannot receive shadows. In most cases, you should turn off the Casts Shadows property for a matte object.


MAXScript (Glossary)

GLOSSARY

MAXScript

The general-purpose scripting language for 3DS MAX. You can use it to automate many tasks, inlcuding modeling, animation, material construction, and rendering. You can also use MAXScript to add custom command-panel rollouts to the 3DS MAX user interface.

The interface to MAXScript is on the Utility panel.


Metal Shading (Glossary)

GLOSSARY

Metal Shading

Standard yellow material with metal shading
(Buddha model from Viewpoint Data Labs.)

Metal provides realistic looking metallic surfaces, as well as a variety of organic-looking materials.

Metal mode is different than the other shading modes in several respects. In addition to a specular highlight, metal surfaces have glancing highlights. In addition, metal materials calculate their own specular color, which can vary between the material’s diffuse color and the color of the light. In 3DS MAX, the Specular button is disabled for metal materials.

Because there’s no separate specular highlight, the two shininess spinners react differently. The Shin. Strength spinner still controls intensity, but the Shininess spinner affects both the intensity and size of the specular area.


Modal/Modeless (Glossary)

GLOSSARY

Modal/Modeless

Modal is a command state or dialog that affects all operations. You must change the mode or dismiss the dialog before doing any operations that don’t pertain to that mode.

Modeless means a nonexclusive command state or dialog. You can do other operations and commands without changing the mode or dismissing the dialog.

For example, the 3DS MAX Track View and Material Editor dialogs are modeless, while the Open File dialog is modal.


Modifier Stack (Glossary)

GLOSSARY

Modifier Stack

The modifier stack is the key to managing all aspects of modification in 3DS MAX. You use the stack to:

  • View and manipulate the sequence of modifiers.
  • Find a particular modifier.
  • Adjust a modifier’s parameters.
  • Select a modifier’s gizmo or center.
  • Activate or deactivate a modifier.
  • Delete or disable a modifier.

The effect of modifiers is directly related to their sequence, or order, in the stack.

Where you put a modifier in the stack is critical, because the program applies modifiers in their stack order, beginning at the bottom, and carries the cumulative change upward.

By clicking any entry in the stack, you go back to the point where you made that modification. You can then rework your decisions or discard the modification entirely by deleting it. You can also insert a new modifier in the stack at that point.


Modifiers (Glossary)

GLOSSARY

Modifiers

Modifiers, as the name implies, modify an object’s geometrical structure, deforming it in some way. When you apply a Taper modifier to the end of a cylinder, for example, the vertices near the end move closer together. Modifiers make changes in the geometry that stay in effect until you adjust or delete the modifier.

There are other general things to know about using modifiers:

  • You can apply an unlimited number of modifiers to an object or part of an object.
  • A modifier stays with the object it modifies, and can’t be copied or transferred to another object. When you delete a modifier, all its changes to the object disappear.
  • The order or sequence in which you make modifications is important. Each modification affects those that come after it. A bend applied before a taper can create a distinctly different finished object from the reverse order.


Morphing (Glossary)

GLOSSARY

Morphing

Morphing is a term derived from metamorphosis, which means to change physical shape or form.

The purpose of the morph object in 3DS MAX is to create an animated object that changes shape by morphing between two or more objects. Although it appears that a single object is changing form, in reality the morphing process translates the position of the vertices from their arrangement in one object to the arrangement in another, relative to their local coordinate system.

Consequently, all objects chosen to make up a morph object must have the same number of vertices. Typically, you achieve this by cloning an object, and then altering the geometry of the clones without changing their vertex count.


Multiplicity (Glossary)

GLOSSARY

Multiplicity

In NURBS modeling, the property that coincident or nearly coincident CVs reduce the continuity level of the curve or surface. Two coincident CVs locally increase curvature. Three coincident CVs (or more) create an angular cusp. Fusing CVs shows the effect of multiplicity.


Multiplier (Glossary)

GLOSSARY

Multiplier

The Multiplier value in every light lets you increase the intensity, or brightness of the light beyond its standard range.

Since increased Multiplier values tend to wash out, or "burn" portions of the image, you’re better off adding lights, or reducing the intensity of other lights when you need to adjust the brightness of areas in your scene. Remember that you can adjust the intensity of a light using its V(alue) spinner. In most cases, it’s better to adjust the V spinner than to alter the default Multiplier value.

An unusual characteristic of the Multiplier is that you can use negative values to create negative light. You can use negative lights to further control the lighting in your scene. For example, you might want a darker area in the corner of a room.

A negative Multiplier value reverses the color of the light, so a red light would become cyan (the complementary color). In addition, the map image in a projector light becomes a negative image.


Multiplier Curve (Glossary)

GLOSSARY

Multiplier Curve

Ease and multiplier curves are special function curves that you use to apply animated time and value displacements to other function curves.

Working with keys and function curves you apply localized changes to your animation at specific times. Using Ease and Multiplier curves, you apply global effects across the entire range of an animation.

The buttons for applying and working with Ease and Multiplier curves are visible at the right-end of the Track View toolbar when Function Curves mode is active.

The value of a multiplier curve is a scale factor applied to the value of its superior function curve.

  • The default value of a Multiplier curve is a horizontal line with a value of 1.0.
  • Values greater than 1.0 increase the value of the function curve.
  • Values below 1.0 decrease the value of the function curve.
  • Values less than 0.0 negatively scale the value of the function curve.


Network Manager (Glossary)

GLOSSARY

Network Manager

The Network Manager service (Network Manager) is a Windows NT service which must be installed on at least one computer in each group of computers which will participate in network rendering.

The Network Manager communicates with a specified group of Network Rendering Servers to assign jobs and monitor rendering progress. The Network Manager also handles the scheduling of jobs and the configuration of servers through the Queue Manager Client. The Network Manager has no user interface itself, but has various options which can be set from within the Queue Manager Client.

You can install and use the Network Manager on a computer that does not have 3DS MAX installed. It's often best to place the Network Manager on a computer that isn’t in use as a workstation and doesn’t get shut down regularly. The Manager Service can impact CPU and network performance when network rendering is taking place, and the Network Manager must be present at all times for network rendering to work.

The ideal place to install the Network Manager is on a file server. If you have a PC already set up as a texture-map file server, this would be an ideal place for it.

You specify which PC is to be the Network Manager in the Network Job Assignment dialog, which is a subdialog of the Render Scene and Video Post Execute Sequence dialogs.


Network Rendering (Glossary)

GLOSSARY

Network Rendering

Network Rendering is the rendering of 3DS MAX animations using more than one computer connected by a network.

Large and complex animations take many hours to render, even on the fastest PCs. Network rendering allows you to use the power of other 3DS MAX-enabled computers to speed up the process. Any network-connected PCs that have 3DS MAX installed can participate. You can even render using computers connected only by the Internet.

Setting up network rendering involves installing three kinds of programs:

  • The Network Manager, which should be installed on a central file-server PC.
  • The Network Rendering Server, which must be installed on all participating PCs.
  • The Queue Manager Client provides a user-interface to monitor and control network rendering. It can be installed on any of the participating PCs.


Network Rendering Server (Glossary)

GLOSSARY

Network Rendering Server

The Network Rendering Server (Server) is a Windows NT service that must be installed on any computer dedicated to rendering a job remotely.

The Server communicates with the Network Manager and launches 3DS MAX on that computer to render network processes. The Server has no user interface itself, but you can set various options for it from the Queue Manager Client. For example, you can specify the times of day that the Server is available to do network rendering.

You specify which PCs are to be servers in the Job Assignment dialog, which is a subdialog of Render Scene.


Normals (Glossary)

GLOSSARY

Normals

A face normal is a vector that defines which way a face is pointing. The direction of the normal indicates the front, or outer surface of the face.

You can manually flip or unify face normals to fix surface errors caused by modeling operations or by importing meshes from other programs.


NTSC (Glossary)

GLOSSARY

NTSC

NTSC stands for National Television Standards Committee. It is the name of the video standard used in the United States and Japan. The frame rate is 30 frames per second (fps) or 60 fields per second, with each field accounting for half the interleaved scan lines on a television screen.


NURBS (Glossary)

GLOSSARY

NURBS

Stands for Non-Uniform Rational B-Splines. NURBS are a technique for interactively modeling 3D curves and surfaces.


NURBS Curve (Glossary)

GLOSSARY

NURBS Curve

A curve object created by NURBS modeling. NURBS Curves can be either Point Curves or CV Curves. In 3DS MAX, you can use them as you do spline curves in Shape objects.


NURBS Model (Glossary)

GLOSSARY

NURBS Model

A NURBS surface object; often one that contains multiple sub-objects. The 3DS MAX documentation uses “NURBS model” to emphasize the final result of NURBS modeling using a variety of sub-objects and techniques.


NURBS Surface (Glossary)

GLOSSARY

NURBS Surface

A surface object created by NURBS modeling. NURBS Surfaces can be either Point surfaces or CV Surfaces.


Object Motion Blur (Glossary)

GLOSSARY

Object Motion Blur

Object motion blur applies blur at the object level and is not affected by camera movement. It works by rendering multiple copies of the object in between frames and then rendering them together. Don’t use object motion blur as a special effect. Its purpose is to add a form of temporal antialiasing to fast-moving objects, making them appear to move more smoothly.

This is one of three types of motion blur in 3DS MAX. Image motion blur is an alternative to object motion blur, and usually gives more effective results. Scene motion blur, is available in Video Post. Scene motion blur applies blur to the entire scene. Any movement within the frame, either by camera movement or object movement, causes motion blur.

If you want a motion blur as a visible, special effect, use scene motion blur (see the scene motion blur entry) with, perhaps, some object motion blur included. Object motion blur by itself renders much more quickly than scene motion blur.


Omni Light (Glossary)

GLOSSARY

Omni Light

Omni lights provide a point source of illumination that shoots out in all directions. They’re easy to set up, but they don’t cast shadows, and you can’t restrict the focus of their beam. You can, however restrict which objects are illuminated by an omni light.

When no lights exist in your scene, two invisible omni lights are turned on as a default to provide overall illumination in the scene. As soon as you create your own light in the scene, however, the two default lights are turned off.

You can apply attenuation to omni lights.


Opacity Falloff (Glossary)

GLOSSARY

Opacity Falloff

Typical settings for glass (the material is 2-sided):
Falloff = In
Opacity = 50

Real transparent surfaces vary their opacity, depending on the angle of the material to your point of view. For example, a bottle appears more transparent at its center than at its edge because you’re looking through more glass at its edge.

In the Extended Parameters rollout, you can specify the falloff of the transparency, based on the angle of the face normals to the view. If a face is perpendicular to the viewer, the angle of its normal is 0 degrees. If the face is edge-on to the viewer, its normal angle is 90 degrees.

Falloff is either inward or outward:

In: Transparency increases as the normal angle approaches 0 degrees and decreases as the angle approaches 90 degrees. This gives the appearance of a hollow object such as a glass ball or bottle.

Out: Transparency increases as the normal angle approaches 90 degrees and decreases as the angle approaches 0 degrees. This gives the appearance of a solid object such as a cloudy glass marble.

The falloff amount never makes the object less opaque than the value of the Opacity spinner. For example, if Opacity were set to 50, and Falloff set to In, the inner portions would remain at 50 percent opacity, and the Amt. spinner would change the outer edges, until they became opaque at 100.


Origin (Glossary)

GLOSSARY

Origin

A coordinate system assigns an arbitrary point in space as the origin, and sets each axis at that point to zero.

In the world coordinate system in 3DS MAX, numbers increase from the origin to the right along the X axis, upward along the Y axis, and away from you on the Z axis.

Numbers decrease (-1, -2, -3, etc.) to the left along the X axis, downward along the Y axis, and toward you along the Z axis. The distance between each number is called a unit of measurement.

You can combine the measurements of all three axes to mark specific locations in 3D space. The combined measurements are called coordinates. Thus, at the origin, the coordinates are X: 0, Y: 0, Z: 0.

From the origin, the coordinates at a location 100 units to the right, 150 units up, and 60 units away are X: 100, Y: 150, Z: 60.


Orthographic Views (Glossary)

GLOSSARY

Orthographic Views

Whether produced on computer or paper, most 3D design relies on 2D representations or "orthographic" views for accurate description of objects and their positioning. Maps, plans, cross-sections, and elevations are all orthographic views. In familiar terms, you might think of these views as "flat" or "straight-on", or as "looking at right angles."

Orthographic views are two-dimensional, each defined by two world coordinate axes. Combinations of these axes produce three pairs of orthographic views: top, bottom; front, back; left, right.

Orthographic views are a special case of axonometric views.


Out of Range Types (Glossary)

GLOSSARY

Out-of-Range Types

When you specify values and keys for a controller, you are defining animation over a range of time. You choose Out-of-Range Types to determine how the animation continues outside a specified range. Out-of-Range choices include holding a constant value, and various ways of repeating the animated range.

The easiest way to work with Out-of-Range Types is in the Track View Function Curve mode.

You use the Parameter Out-of-Range dialog to project the pattern of the key dots in the selected track. These patterns are applied to the animation outside the range of all keys in the track. This is why they’re called out-of-range types.

As a default, tracks use a constant out-of-range type. This means that the track values before and after the range of keys remain constant. For example, in a 100-frame animation with keys up to frame 20, the X, Y, and Z values after frame 20 remain the same for the rest of the animation, so the objects in the scene do not move from frame 20 to frame 100.

Applying the Cycle out-of-range type will make the key pattern in frames 0-20 repeat cyclically for the remaining 80 frames.


Overshoot (Glossary)

GLOSSARY

Overshoot

The Overshoot option causes a spotlight to flood beyond its falloff area, and cast light in all directions. With Overshoot turned on, the spotlight casts light in all directions but casts shadows only within its falloff cone.

The Overshoot control effectively turns the spotlight into a hybrid between an Omni light and a spotlight. With Overshoot set, the spotlight casts light in all directions as an Omni light does but still casts shadows or projections as other spotlights do. The shadows and projections are limited to the falloff region: outside the cone of the spotlight, Overshoot casts light but does not cast shadows or projections.

Overshoot is useful when you want to light a large area but need to cast shadows in only a small part of that area. Set the falloff to include the area where shadows must appear, and then turn on Overshoot to light the rest of the scene. This technique can reduce the size of shadow maps and thereby improve rendering speed.


PAL (Glossary)

GLOSSARY

PAL

PAL stands for Phase Alternate Line. PAL is the video standard used in most European countries. The frame rate is 25 frames per second (fps) or 50 fields per second, with each field accounting for half the interleaved scan lines on a television screen.


Parameter Space (Glossary)

GLOSSARY

Parameter Space

In addition to their existence in 3D space, NURBS objects have a parameter space that includes the array of knot values. NURBS curves have a single U dimension in parameter space. NURBS surfaces have two dimensions, UV, in parameter space.


Parametric (Glossary)

GLOSSARY

Parametric

Unlike physical building blocks, with fixed shape and size, the geometric primitives in 3DS MAX (box, sphere, torus, etc.) are parametric; that is, you can change their dimensions, segment settings, and other features after you create them. Parametric objects respond to changes in their parameters by dynamically updating their properties.

Changing parameters can dramatically alter the structure of an object. For example, you can turn a cylinder into a prism by reducing the number of sides and setting the Smooth option off. Or you can turn a cone into a four-sided pyramid using the same technique.

You can animate almost all creation parameters for geometric primitives, and interactively change their settings during animation playback.


Particle System (Glossary)

GLOSSARY

Particle System

Particle systems are objects that generate noneditable sub-objects called particles, for the purpose of simulating snow, rain, dust, and so on.

The particle system object generates the particles over time. You use particle systems primarily in animations.

3D Studio MAX provides several built-in particle systems. You may have installed other plug-in particle systems.

The Deflector, Gravity, and Wind space warps are specifically for use with particle systems.


Patch (Glossary)

GLOSSARY

Patch

A patch is a type of deformable object in 3DS MAX. A patch object is useful for creating gently curved surfaces, and provides very detailed control for manipulating complex geometry.

When you apply an Edit Patch modifier to an object, 3DS MAX converts the object’s geometry into a collection of separate Bezier patches. Each patch is made up of a lattice and a surface.

The lattice is the framework of control points and connecting tangents that surrounds the surface. Transforming components of this lattice is the primary modeling technique. The lattice does not render.

The surface is controlled by the lattice. The surface is the renderable geometry of the object.


Path (Glossary)

GLOSSARY

Path

A path is the line (or other shape) along which shapes are lofted to create 3D Loft objects.

In 3DS MAX, the term "path" is used generally in this sense. The 3D Studio Release 4 "motion path" is called a trajectory in 3DS MAX. The exception is the Path Controller, which picks a spline in the scene as a motion path for an object.

Get Path (Lofting)

You use Get Path as a loft creation method when you want the path to move to the location of the selected shape. For example, you use this method if you have created a shape at the exact location where you want the base of your loft object to be. You use Get Path to create a loft at that location.

Get Path causes the path shape to move and rotate to align itself with the first shape on the path:

  • The first vertex on the path is located at the first shape’s pivot point.
  • The tangent to the first vertex on the path is aligned with the positive Z axis of the first shape.
  • The local Z axis of the path is aligned with the local Y axis of the first shape.
  • The local coordinate system of the resulting loft object equals the local coordinate system of the path after it has been aligned with the first shape.

Sometimes, aligning the tangent of the path with the positive Z axis of the first shape does not produce the result you want. You can flip the orientation of the path by pressing CTRL while getting the path. Pressing CTRL aligns the path so that the tangent to the first vertex of the path is aligned with the negative Z axis of the shape.


Perspective Views (Glossary)

GLOSSARY

Perspective Views

Perspective views most closely resemble human vision. Objects appear to recede into the distance, creating a sense of depth and space. For most 3D computer graphics, this is the view used in the final output that the client sees onscreen or on the page.

3D Studio MAX provides three ways to create a perspective view in a viewport: perspective view, camera view, and spotlight view.

A perspective viewport, labeled Perspective, is one of the default viewports in 3DS MAX. You can change any active viewport to this eye-like point of view by pressing the keyboard shortcut P.

A camera view requires that you first create a camera object in your scene. The camera viewport tracks the view through the perspective of that camera. As you move the camera (or target) in another viewport, you see the scene swing accordingly. If you alter the camera’s field of view on the Modify command panel, you see the changes as they are applied.

The Spotlight view works much like a targeted camera view. You first create the spotlight and then set the viewport to that spotlight. What you see in the viewport is the view from the spotlight looking into the scene. This is very useful for adjusting the correct distances of hotspot and falloff for the light.


Phong Shading (Glossary)

GLOSSARY

Phong Shading

Phong shading smoothes the edges between faces and renders highlights realistically.

This type of shading is generated by interpolating intensities across a face based on the averaged face normals of adjacent faces. It calculates the normal for every pixel of the face.

Phong shading can accurately render bump, opacity, shininess, specular, and reflection maps.


Pivot Point (Glossary)

GLOSSARY

Pivot Point

The transform center, or pivot point, is the spot about which a rotation takes place, or to and from which a scale occurs.

All objects in 3D Studio MAX have a pivot point. You can think of the pivot point as representing an object’s local center and local coordinate system.

The pivot point of an object is used for a number of purposes:

  • As the center for rotation and scaling when the Pivot Point transform center is selected.
  • Sets the default location of a modifier center.
  • Defines the transform origin for linked children.
  • Defines the joint location for IK.

You can display and adjust the position and orientation of an object’s pivot point at any time using the Pivot functions in the Hierarchy command panel. Adjusting an object’s pivot has no effect on any children linked to that object.


Plug-Ins (Glossary)

GLOSSARY

Plug-Ins

A plug-in is a 3DS MAX feature supported by an independent program or component. Plug-ins are often supplied by a third-party vendor.

For example, several Video Post filter and layering plug-ins ship with 3DS MAX.

The 3DS MAX architecture is designed to make it easy for other companies to write plug-in components that extend the functionality of the core program.


Point (Glossary)

GLOSSARY

Point

A point in three-space, created when you use NURBS modeling to create a Point Curve or Point Surface, or when you create an individual point sub-object. Points that are part of a Point Curve or Point Surface are constrained to lie on the curve or surface.

Points behave somewhat like vertices for 3DS MAX spline objects, but their behavior is not identical and they are a distinct object type. Helper object points are also a distinct object type. You can’t use spline vertices or helper points as NURBS points.


Point Curve (Glossary)

GLOSSARY

Point Curve

A curve defined by points. The points are constrained to lie on the curve. (Or you can think of the curve as being dependent on its point locations.) More than one NURBS solution is possible for a Point Curve; occasionally this can cause unexpected results.


Point Surface (Glossary)

GLOSSARY

Point Surface

A surface defined by points. The points are constrained to lie on the surface. (Or you can think of the surface as being dependent on its point locations.) More than one NURBS solution is possible for a Point Surface; occasionally this can cause unexpected results.


Precedence (Glossary)

GLOSSARY

Precedence

You control the IK solution by setting joint precedence to determine which joints contribute the most to the IK solution and which joints contribute the least.

Joints with high precedence values are calculated first, and contribute more motion to the IK solution. Joints with low precedence values are calculated last and contribute the least motion to the IK solution.

Joints with equal precedence values are calculated by their order in the hierarchy. Joints deeper in the hierarchy (closer to the end effector) are calculated first and joints closer to the root are calculated last.


PRJ/3DS Files (Glossary)

GLOSSARY

PRJ/3DS Files

PRJ is the 3D Studio Release 4 project-file format and 3DS is the 3DStudio Release 4 mesh-file format. You can import both these types of files into 3DS MAX (as well as DXF and SHP files). You can export 3DS files (and DXF files) from 3DS MAX.

When you import a 3DS file, you get the following:

  • Backgrounds (solid, gradient, and bitmap).
  • Fog, Layered Fog, and Distance Cue.
  • Ambient light level.
  • Subtractive transparency is converted to 3DS MAX "Filter" transparency and the filter color is set equal to the diffuse color.
  • Transparency falloff settings.
  • All map channels that are enabled. Map channels that are turned off in the .3ds file do not import into 3D Studio MAX.
  • All map parameters, including UV transforms, Negative, Mirror, and Rotation. Some Map Parameters such as Blur, Luma, and RGB and Alpha work much differently in 3DS MAX. These values are converted to new values that produce a similar effect.
  • Mask bitmaps are imported as a 3DS MAX mask texture.
  • When materials with both Texture 1 and Texture 2 are imported, a composite texture is created and added to the Standard material’s Diffuse channel.
  • Reflection maps, auto-cubics and mirrors.
  • Automatic reflection map Nth frame and Map Size settings.
  • SXP translation for Marble and Noise materials.
  • 3DS/DOS IK joint parameters.
  • 3DSurfer patch data.

The following information is not imported from a 3DS file:

  • Morph keys
  • Keyframer instances
  • Map channels that are turned off
  • Custom .CUB-format cubic maps
  • Decal transparency using the RGB color of the upper-left pixel of the map

When you import a PRJ file, you get all of the above, plus the following:

  • Shapes

The following rules determine what is exported from 3DS MAX to the 3DS format:

  • Position, Rotation, and Scale animation. If the controller is a TCB controller, the TCB, Ease In, and Ease Out values are also saved. If the controller is any other type of key controller, the keys are saved but the tangent information is lost. If the controller is not a key controller, only the object's transformation at frame 0 is saved.
  • Basic material color/parameters from the Standard material.
  • Single maps with their amount, offsets, scales, etc.
  • Composite and procedural maps don't export.
  • Auto-cubics and Mirrors export.
  • UV mapping coordinates don’t export.
  • Grouped object transformations don’t export to the 3D Editor because there’s no concept of group hierarchy in the 3D Editor. Groups do export to the Keyframer because the Keyframer understands hierarchies.
  • Target cameras, target spotlights and omni lights.
  • Most "static" parameters for cameras and lights, and animation tracks for Roll, Falloff, Hotspot, and FOV are exported. Global shadow parameters are not exported.
  • All non-mesh geometry, such as procedural primitives and patches, are collapsed to meshes before export.
  • Objects are exported as they exist on the frame 3DS MAX displays at export time. If you want to output morph targets, go to each frame and export the target to a different filename.
  • Meshes are saved with edge display information and smoothing groups.
  • 3DS MAX instances are saved as Keyframer instances.

Modifier and morph animation is frozen at the current frame, collapsed, and exported as a simple mesh.


Procedural Maps (Glossary)

GLOSSARY

Procedural Maps

A bitmap is an image produced by a fixed matrix of colored pixels like a mosaic. Procedural maps, such as Checker, on the other hand, are generated by a mathematical algorithm. As a result, the types of controls you might find for a procedural map will vary depending on the capabilities of the procedure.

3D procedural maps are patterns generated procedurally in three dimensions. For example, Marble has a grain that goes through the assigned geometry. If you cut away part of an object with marble assigned as its texture, the grain in the cutaway portion matches the grain on the object’s exterior: it is all generated by the same program.


Projector Light (Glossary)

GLOSSARY

Projector Light

Shadows created by projecting image of palm trees

By adding a map to a light, you turn it into a projector. You can assign a single image, or you can assign an animation to create the effect of either a slide projector or a movie projector.

You can also use projector maps to project black and white bitmaps to simulate shadows seen through leaves or window frames, in the same way that gobos are used in theater lighting.

You’re not limited to circular projectors. Since you’re usually projecting a rectangular image, you can use a rectangular light to project it. You can use the Bitmap Fit option to adjust the aspect ratio of the light beam to match that of the projected image.

When you use projection lights, it’s often helpful to adjust their roll angle. You can do this with the navigation controls.


Queue Manager Client (Glossary)

GLOSSARY

Queue Manager Client

The Queue Manager Client (Client) is a stand-alone network-administration tool that provides a user-interface to monitor and control network rendering.

The Client can connect to any computer to which you have network access and the appropriate security permissions, and which has a Network Manager running on it. It can be installed separately from 3DS MAX, and will function correctly on any Intel-based computer running Windows NT or Windows 95 with appropriate TCP/IP networking services, including over the Internet. In other words, you can monitor and control network rendering services from any computer connected to the Internet, in addition to using the Internet as a wide-area backbone for a network rendering farm.

The Client has its own online Help system.


Ray-Trace Bias (Glossary)

GLOSSARY

Ray-Trace Bias

A single parameter, Ray-Trace Bias, affects the generation of ray-traced shadows. You set this parameter in the Shadow Parameters rollout.

The Ray-Traced bias control in the Shadow Parameters rollout moves the shadow toward or away from the shadow-casting object (or objects). By default, this value is 1 unit.

Increasing the bias moves the shadow away from the object, decreasing the bias moves the shadow closer to the object. The Ray-Trace Bias value can be any positive floating-point number.

For example, if a shadow-casting object intersects another object but its shadow doesn’t meet properly at the intersection, the bias is too high. This effect varies with the angle of the spotlight to the object. Extremely shallow spotlight angles usually require higher bias values.

Another purpose of bias is to avoid problems with objects that cast shadows onto themselves. If you see streaks or moiré patterns on the surface of the object, the bias value is too low.


Ray-traced Shadows (Glossary)

GLOSSARY

Ray-Traced Shadows

Ray-traced shadows are calculated and rendered in much the same way as images in an object-oriented drawing program. As a result, they’re resolution-independent.

They always produce a hard edge, which can be an advantage or a disadvantage, depending on the effect you want, and they can take longer to render, depending on the number of faces in the geometry they’re affecting.

The renderer generates ray-traced shadows by tracing the path of rays sampled from the light source. Ray-traced shadows are more accurate than shadow maps. For example, only ray-tracing can generate shadows for wireframe objects, and they cast accurate shadows from transparent and translucent objects.


Real Time (Glossary)

GLOSSARY

Real Time

As a default, 3D Studio MAX plays viewport animations in real time, skipping frames where necessary.

You can turn this off by clicking Time Configuration in the time controls, and then clearing Real Time in the Playback area of the Time Configuration dialog box.

When Real Time is turned off, all frames are displayed during playback. The playback may appear slow, but you’ll know that you’re seeing every frame.

You can also speed viewport animation by minimizing your viewports to quarter size.


Red, Green, Blue/Hue, Saturation, Value (Glossary)

GLOSSARY

Red, Green, Blue/Hue, Saturation, Value

There are two sets of color sliders in the Color Selector dialog: the red/green/blue set and the hue/saturation/value set. You can use either set or both to mix a particular color. As you adjust the color sliders, their RGB and HSV numeric values appear in the spinners.

3DS MAX also has separate RGB and HSV spinners as light parameters.

RGB Sliders

Each of the RGB sliders is a band of red, green, or blue (the primary light colors) shaded from black to the full intensity of the color. When you move any slider, it mixes with the values of the other two, and the result appears in the swatch beneath the sliders.

For example, if you move the Red slider all the way to the right (value 255) and leave the other two at the left (0), the active swatch turns red. If you then move the Green slider all the way to the right, the swatch turns yellow. If you move all three sliders to 0, the result is black; if all three are at 255, the result is white; and all three at any point of equal value produce shades of gray.

HSV Sliders

If you are more comfortable with the hue/saturation/value, you can use the HSV sliders to mix color. First move the Hue slider to the color band you want (if the Value and Saturation sliders are set to low values, you don’t see an immediate result in the swatch). Move the Value slider to set the brightness, or intensity of the color. Move the Saturation slider to determine the purity of the color. The higher the saturation, the less gray the color.


Reference (Glossary)

GLOSSARY

Reference

References are like "one-way" instances. Referenced objects are based on the original object, as are instances, and can also have their own unique modifiers. Any modification made to the original object is passed on to its references, but any modification made to a reference is not passed back to the original.

The one-way effect is useful, since you can maintain an original that will affect all its references, while the references themselves can take on individual characteristics.

If you are modeling heads, for example, you might want to keep a family resemblance in your characters. You could model basic features on the original, then model specifics on each reference.

In the modifier stack, a line of dashes separates the reference from its parent object, so you can see that the effect of modifiers on the reference will not affect the parent object or other references to it.


Refine (Glossary)

GLOSSARY

Refine

In NURBS modeling, refining means to increase the number of CVs on a curve or surface. In 3DS MAX, refining does not change the curvature of the curve or surface.


RLA Files (Glossary)

GLOSSARY

RLA Files

The RLA format is a popular SGI format that supports the ability to include arbitrary image channels. While setting up a file for output, if you select RLA Image File from the list and click the Setup button, you’ll go to the RLA setup dialog. Once there, you can specify what channels (and what format) you want to write out to the file.

These are standard channels for 32-bit files.

RGB: Displays red, green, and blue color channels.

Alpha: Displays the alpha channel.

For output RLA files, there are six additional channels that you can generate (and view in the virtual frame buffer):

Z-Buffer Depth: Displays Z-Buffer information in repeating gradients from white to black. The gradients indicate relative depth of the object in the scene.

Material Effects: Displays the Effects Channel used by materials assigned to objects in the scene. The Effects Channel is a material property set in the Material Editor and used during Video Post compositing. Each Effects Channel ID is displayed using a different random color.

Object ID: Displays the G-Buffer ID assigned to objects using the Object Properties dialog. The G-Buffer ID is used during Video Post compositing. Each G-Buffer ID is displayed using a different random color.

UV Coordinates: Displays the range of UV mapping coordinates as a color gradient. This channel shows where mapping seams might occur.

Normal Vector: Displays the orientation of normal vectors as a grayscale gradient. Light gray surfaces have normals pointing towards the view. Dark gray surfaces have normals pointing away from the view.

Non-Clamped Colors: Displays areas in the image where colors exceeded the valid color range and where corrected by 3DS MAX. The areas appear as bright saturated colors usually around specular highlights.


Rotoscoping (Glossary)

GLOSSARY

Rotoscoping

The boat is a 3DS MAX object composited over a video of a breaking wave

Rotoscoping is the process of bringing video frames into 3DS MAX to use as the background for matching objects in a scene.

The way to use rotoscoping in 3DS MAX is to specify a digital disk recorder or movie file and read the frames into the 3DS MAX viewport using the Animation Synchronization controls in the Viewport Background dialog.

Once you've specified your source device or file in the Viewport Background dialog, 3DS MAX displays one frame of the video for each scene frame by default. Remember to check the Animate background box as well as the Show Background box to have your video frames appear in sequence in the viewport.

To produce the composited, rendered image, use 3DS MAX Video Post to composite the background image and the rendered scene together.


Sample Range (Glossary)

GLOSSARY

Sample Range

Sample Range affects the softness of the edge of shadow-mapped shadows. The sample range determines how much area within the shadow is averaged.

Small values reduce the area that is averaged, effectively bringing the edge of the shadow inward, producing sharper-edged shadows. Sharper edges can cause aliasing.

Large values extend the area that is averaged, effectively bringing the edge of the shadow outward, producing softer-edged shadows. Soft-edged shadows have more antialiasing. The effect is somewhat like the falloff of a soft-edged spotlight.

The default Sample Range value is 4. The Sample Range value can be any floating-point number from 0 to 20. Values of 2 to 5 are recommended. Values below 3 can produce coarse-edged shadows. You can reduce this effect by increasing the map size.

Values greater than 5 can produce streaking and moiré patterns. You can reduce this effect by increasing the map size or the Bias value.

Rendering time increases exponentially as the Sample Range value increases.


Scanline Renderer (Glossary)

GLOSSARY

Scanline Renderer

3DS MAX's default renderer is called the scanline renderer. You use the scanline renderer when you render a scene either from the Render Scene dialog or from Video Post. The Material Editor also uses the scanline renderer to display materials and maps.

3DS MAX displays the image produced by the scanline renderer in the virtual frame buffer, which is a separate window with its own controls.

As the name implies, the scanline renderer renders the scene as a series of horizontal lines. 3DS MAX also has the interactive, viewport renderer to provide a quick and simple rendered view of your scene as you work on it. You may also have other plug-in or third-party renderers which you've installed to work with 3DS MAX.


Scene Motion Blur (Glossary)

GLOSSARY

Scene Motion Blur

The blur in the animation from which this still was taken was created with the following settings:
Duration: 2
Subdivisions: 10

Scene Motion Blur is a time-sensitive special effect in 3DS MAX Video Post. It creates trails behind all moving objects by rendering the entire scene at multiple time increments within each frame, and then creating the frame by compositing the multiple images together.

Use Scene Motion Blur whenever you want to strongly emphasize rapid motion. When this option is active, the Renderer is called n times between frames, where n is an integer value that you specify. The accumulated result is composited in each frame, resulting in a motion-blur/trails effect.

Scene motion blur is the option to use when you want an overall motion-blur effect. You can also combine it with object motion blur, which is set up in the Render Scene dialog.


Script (Glossary)

GLOSSARY

Script

A sequence of instructions used to automate a task. Scripts are typically text files containing coded instructions for a particular application.

In 3DS MAX, the MAXScript utility supports a scripting language.

MAXScript scripts have the filename extension .ms. By convention, they are saved in the Scripts folder.


Script Editor Window (Glossary)

GLOSSARY

Script Editor Window

A text editing window provided with the MAXScript scripting system. A script editor window can edit any kind of ASCII text file, but is particularly suited to building and modifying MAXScript script files.

You open a script editor using the MAXScript utility panel buttons Open Script or New Script.


Scripted Utility Panel (Glossary)

GLOSSARY

Scripted Utility Panel

A scripted utility panel is a custom command-panel rollout created using the MAXScript scripting language. The let you create a user interface to a .MAXScript script.

Scripted utility panels are available through the Utilities dropdown menu in the MAXScript rollout of the Utilities panel.


Scripting (Glossary)

GLOSSARY

Scripting

A scripting language is a programming language embedded in a host application, and used to automate tasks within the application. 3DS MAX provides MAXScript as its scripting language.

MAXScript controls are located on the 3DS MAX Utilities panel.


Segment (Glossary)

GLOSSARY

Segment

The portion of a NURBS curve between two of its controlling points or CVs.


Self-Illumination (Glossary)

GLOSSARY

Self-Illumination

Self-Illumination creates the illusion of incandescence by replacing any shadows on the surface with the diffuse color. At 100 percent, the shadows are completely replaced by the diffuse color, creating the illusion of self-illumination.

Unless you use environmental effects, lights only illuminate your scene; they don’t appear in the rendering. You can use self-illuminated materials on objects that represent lights to provide things like car headlights, and so on.

A self-illumination map lets you use a map to affect the intensity in different areas of the self-illuminated surface. Like many other map types, only the intensity of the map values affect self-illumination. White provides the most, while black blocks the illumination completely.

It’s often a good idea to design a self-illumination map to match your diffuse map. For example, the diffuse map might have small, yellow rectangles to represent windows, while the self-illumination map consists of matching white rectangles against black to illuminate the yellow windows.


Shadow Maps (Glossary)

GLOSSARY

Shadow Maps

A shadow map is a bitmap that the renderer generates during a pre-rendering pass of the scene. Shadow maps don’t show the color cast by transparent or translucent objects. On the other hand, shadow maps can have soft-edged shadows, which ray-traced shadows cannot.

A shadow-map is a bitmap that’s projected from the direction of the spotlight. This method provides a softer edge and can require less calculation time than ray-traced shadows, but it’s less accurate.

You can adjust the shadow map settings to achieve a sharper shadow. This involves changing the resolution and the pixel sampling of the shadow’s bitmap. Because shadow-map shadows are only bitmaps, you need to keep in mind their resolution in relation to your distance from the shadow, and the detail required by the shadow. If the resolution is too low, and the camera too close, the shadow might look more like sooty smudges.

If shadows appear too coarse when you render them, increase the map size. The size can range from 0 to 10,000. However, be aware that greater size requires more memory and can take longer to generate. A 4096-line shadow map occupies 64 MB of memory (4096 x 4096 x 4).

If you have enough RAM to hold the entire scene including shadow maps, shadows don’t affect performance, but if the renderer has to use a virtual memory swap file, rendering time can slow down considerably.

The default shadow map size is 256. In general, this is sufficient for an image in which the light source is not very far from the object and the rendering output resolution is 512 x 486.

The bitmap used by shadow maps must fill the area covered by the falloff of the spotlight. The wider the falloff, the coarser the shadow appears. Keep the falloff as tight as possible given the requirements of your scene.


Shapes and Splines (Glossary)

GLOSSARY

Shapes and Splines

A shape is an object made up of one or more splines. A spline is a collection of vertices and connecting segments that form a line. By adjusting values in the vertices, you can make portions of the line curved or straight.

Shapes don’t usually appear in the rendered scene. They’re used in 3D Studio MAX mainly for the following purposes:

  • As the foundation for extruded objects, by applying an Extrude modifier to the shape.
  • As the foundation for a spun object, by applying a Lathe modifier to a shape.
  • As the components that make up a Loft object, by combining a shape as a path, and one or more shapes as cross-sections along the path.
  • As an animation path for an object by assigning a path controller to the object, and then picking a shape as the path.
  • As one method of linkage for inverse kinematic chains.

You can also make shapes renderable to create tubular forms in the rendering. Renderable shapes don’t appear any different in viewports.

Get Shape (Lofting)

You use Get Shape as a loft creation method when you want the shape to move to the location of the selected path. For example, you use this method if you have created a path at the exact location where you want your loft object to be. You use Get Shape to create a loft at that location.

Get Shape causes the shape to move and rotate to align itself with the current level of the path. The exact orientation of the shape is controlled by two other loft settings named Contour and Banking.

The following describes the orientation of the first shape at level 0:

  • The pivot point of the shape is located on the path at the current path level.
  • The positive Z axis of the shape is aligned with the tangent to the path at the current path level.
  • The local Y axis of the shape is aligned with the local Z axis of the path.

Sometimes, aligning the positive Z axis of the shape with tangent of the path does not produce the result you want. You can flip the orientation of the shape by pressing CTRL while getting the shape. Pressing CTRL aligns the shape so that the negative Z axis of the shape is aligned with the tangent to the path.


Shininess/Shininess Strength Settings (Glossary)

GLOSSARY

Shininess/Shininess Strength Settings

The extremes of the Shininess and Shininess Strength settings:
Top sphere: Shininess = 100, Shininess Strength = 100
Left sphere: Shininess = 50, Shininess Strength = 50
Right sphere: Shininess = 0, Shininess Strength = 0

A material’s shininess (or dullness) depends on the size and intensity of its specular highlight. In the Material Editor, the Shininess spinner affects the size of the specular area, and the Shin. Strength spinner affects the intensity of the shininess.

When Shininess Strength is too high, and Shininess is too low, you can get harsh backlights on your surfaces. The Soften option mitigates this.


SHP Files (Glossary)

GLOSSARY

SHP Files

SHP is the 3D Studio Release 4 shape-file format. You can import these files into 3DS MAX.

The .shp file contains polygons created in 3D Studio's 2D Shaper.

When importing an SHP file that contains multiple shapes, 3DS MAX gives you the option to either merge them all into one object or make multiple incoming objects.

The shape importer looks at the vectors on incoming splines, and if they're collinear within a couple of percentage points, it changes the angle to a smoothed Bezier (otherwise, it's a Bezier corner).


Smoothing Groups (Glossary)

GLOSSARY

Smoothing Groups

Smoothing groups define whether a surface is rendered with sharp edges or smooth surfaces.

Smoothing groups are numbers assigned to the faces of an object. Each face can carry any number of smoothing groups up to the maximum of 32. If two faces share an edge and share the same smoothing group, they will render as a smooth surface. If they don’t share the same smoothing group, the edge between them will render as a corner.

You can manually change or animate smoothing group assignment.


SMPTE (Glossary)

GLOSSARY

SMPTE

SMPTE stands for Society of Motion Picture and Television Engineers, and is the standard time display format for most professional animation work.

From left to right, the SMPTE format displays minutes, seconds, and frames, delineated by colons. For example:

2:16:14

represents 2 minutes, 16 seconds, and 14 frames.

As you move through time in a SMPTE display, when the seconds field increments, the frames field recycles to 0 and starts over. For example, given an NTSC frame rate of 30 frames per second, as you move through time, the frames field counts from 0 to 29, at which point the seconds field increments by 1, and the frames field begins again at 0.

As with the Frames display format, the SMPTE format lets the time slider move at single-frame increments.


Space Warps (Glossary)

GLOSSARY

Space Warps

Space warps are objects that provide a variety of "force field" effects on other objects in the scene.

Space warps themselves are not renderable. You use them to affect the appearance of other objects, sometimes a large number of objects at the same time. Some space warps deform object geometry by generating ripples, waves, or explosions. Other space warps are meant specifically for use with particle systems, and simulate natural effects such as wind blowing snow or rain about, or a rock in the path of a waterfall.

Space warps behave somewhat like modifiers, except that a space warp influences world space, rather than object space as geometric modifiers do.

When you create a space warp object, viewports show a wireframe representation of it. You can transform the space warp as you do other 3DStudio MAX objects. The position, rotation, and scale of the space warp affect its operation.

To have an object or selection set be affected by a space warp, you bind the object to the space warp. A space warp has no effect on objects unless the objects are bound to it. When an object is bound to a space warp, the warp binding appears at the top of the object’s modifier stack. A space warp is always applied after any transforms or modifiers.

When you bind a space warp to multiple objects, the space warp’s set of parameters affects all the objects equally. However, each object’s distance from the space warp or spatial orientation to the warp can change the warp’s effect. Because of this spatial effect, simply moving an object through warped space can change the warp’s effect.

You can also use multiple space warps on a single object or objects. Multiple space warps appear in an object’s stack in the order you apply them.


Spline (Glossary)

GLOSSARY

Spline

A kind of curve that is interpolated between three or more control points. The term dates from 1756, and derives from a thin wood or metal strip used for drafting curves in architecture and ship design.


Startup Script (Glossary)

GLOSSARY

Startup Script

A special MAXScript script, named startup.ms, that MAXScript automatically runs when you start MAXScript. You can use this script to create common functions, utility panel rollouts, 3DS MAX environment settings, and so on.

MAXScript searches for this script in the Scripts folder. If not found, it searches the patehs in the Windows environment variable PATHS


Subtractive Opacity (Glossary)

GLOSSARY

Subtractive Opacity

Sphere rendered with subtractive opacity

Subtractive opacity darkens colors behind the material by subtracting the material’s colors from the background colors.

If you simply want to reduce the apparent opacity of a material, while maintaining the color values of its diffuse (or mapped) properties, use subtractive opacity.


Super Black (Glossary)

GLOSSARY

Super Black

Super Black limits the darkness of rendered geometry.

The scanline renderer uses the value of the Super Black preference as a threshold for the darkness of the rendered scene.

For example, if you’re rendering a heavily shadowed object against a black background, the background will be rendered as pure black, but even the deepest shadows on the object will be no darker than the intensity level specified by the Threshold spinner (default is 15).

This option is used for video compositing. When compositing, you need pure black for the background, but all the overlaying object needs to be less than pure black so that you can still see exactly where it is.

Also, some video systems have problems with black that has RGB values of 0,0,0 and consider it an "illegal" color.

Unless you’re sure you need it, leave Super Black off in the Render Scene dialog.


Tangents (Glossary)

GLOSSARY

Tangents

The tangent of a function curve affects the interpolated values between keys of an animation. Most animation controllers use fixed tangents to define the function curve at a key location.

As a default, 3DS MAX assigns smooth tangents to the keys in a Position function curve. This is the reason that an animated objects moves in smooth curves through the key frames.

3DS MAX assigns smooth tangents because they usually provide the most natural motion.

Of course, you also need a way to add some corners and abrupt turns when you need them. The linear controller uses a discontinuous tangent that points at the preceding and following keys, producing an abrupt change in motion at that key.

The two large flyout buttons at the bottom of the Key Info dialog provide five different types of predefined tangent types, plus a sixth type that lets you create your own custom tangents.

If you look at a single key dot and the line running through it, the line on the left side of the key dot is the incoming tangent, and the line on the right is the outgoing tangent. Using the tangent flyout buttons, you can assign a different tangent type to the incoming and the outgoing lines for each key dot.

The button on the left assigns the incoming tangent at the left side of the selected key dot, and the button on the right assigns the outgoing tangent on the right side of the selected key dot.


Targa Files (Glossary)

GLOSSARY

Targa Files

The Targa (TGA) format was developed by Truevision for their video boards. The format supports 32-bit truecolor; that is, 24-bit color plus an alpha channel and is almost always used as a truecolor format.

Targa files are widely used by 3D Studio Release 4 to render still images and to render sequences of still images to video tape.

Some Targa files created by other applications have different extensions. 3DS MAX can render the .vda, .icb, and .vst variants as well as .tga.

When you render to a Targa file from within 3DS MAX, you have the following file Setup options:

Bits Per Pixel: Select the color depth: 16-bit, 24-bit, or 32-bit.

Compress: Applies lossless compression to the file.

Alpha Split: Creates a separate file for the alpha channel. The filename created for the alpha-channel file starts with a_ and then appends the full file name. For example, if you check this box and render the file greek004.tga, 3DS MAX creates the file a_greek004.tga for the alpha channel. (Sometimes the name will be longer than 8 characters.)

Author Name/Job Name/Comments: These fields are available for you to add any information you wish about the file.


TCB (Tension, Continuity, Bias) (Glossary)

GLOSSARY

TCB (Tension, Continuity, Bias)

The TCB Position controller provides Tension, Continuity, and Bias controls of the splines of a function curve.

TCB Controllers also produce curve based animation much like Bezier controllers. However, TCB controllers do not use tangent types or adjustable tangent handles. They use fields to adjust the Tension, Continuity, and Bias of the animation.

Tension controls the amount of curvature in the animation curve.

High Tension produces a linear curve. It also has a slight Ease To and Ease From effect.

Low Tension produces a very wide rounded, curve. It also has a slight negative Ease To and Ease From effect.

The default value of 25 produces an even amount of curvature through the key.

Continuity controls the tangential property of the curve at the key. The default setting is the only value that produces a smooth animation curve through the key. All other values produce a discontinuity in the animation curve causing an abrupt change in the animation.

High Continuity values create curved overshoot on both sides of the key. Low Continuity values create a linear animation curve.

Low continuity creates a linear curve similar to high tension except without the Ease To and Ease From side effect.

The default value of 25 creates a smooth continuous curve at the key.

Bias controls where the animation curve occurs with respect to the key.

High Bias pushes the curve beyond the key. This produces a linear curve coming into the key and an exaggerated curve leaving the key.

Low Bias pulls the curve before the key. This produces an exaggerated curve coming into the key and a linear curve leaving the key.

The default value of 25 distributes the curve evenly to both sides of the key.


Ticks (Glossary)

GLOSSARY

Ticks

Internally, 3DS MAX views time in increments called ticks. There are 4800 ticks in a second, so you can actually access time down to 1/4800th of a second.

Given a standard, NTSC video frame rate, there are 30 frames in a second, and therefore 160 ticks in each frame.

When you use the FRAME:TICKS display format, time is shown in frames and ticks, delineated by a colon. This format lets you adjust the time slider in sub-frame increments of 1/160th of a frame. As you move through time, the ticks field counts from 0 to 159, at which point the frames field increments by one, and the ticks field returns to 0.

You can step forward or backward at single increments by clicking the single-frame buttons among the playback buttons.

When you use the MM:SS:TICKS Display format, you see minutes (MM), seconds (SS), and ticks, delineated by colons.

As you move through time in this display format, the ticks field counts from 0 to 4799, at which point the seconds field increments and the ticks field returns to 0.

You can step forward or backward at single increments by clicking on the single-frame buttons on either side of the playback button.


TIFF Files (Glossary)

GLOSSARY

TIFF Files

Tagged Image File Format is a multi-platform format especially popular on the Macintosh and in desktop-publishing applications. TIFF is a good choice if you plan to send your output to a print service bureau or import the image into a page-layout program.

There are several classes of TIFF files, which vary in the color depth and color palette that they support.

When you render to a TIFF file from within 3DS MAX, you have the following file Setup options:

Monochrome: Creates an 8-bit grayscale image.

Color: Creates a 24-bit color image (no alpha channel).


Tile/Mirror (Glossary)

GLOSSARY

Tile/Mirror

Tiled cloud pattern

Tiling and mirroring are useful for creating patterns based on a simple image. Use them when you need wallpaper and other repetitive designs.

The Tile option in the Material Editor is on by default, repeating the image along the U and V directions. You can use the Tiling values to scale the map image. Negative Tiling values increase the size of the image.

You can also set tiling values in the UVW Map modifier. These settings are in addition to the tiling values you set for the map in the Material Editor. If the map’s base tiling parameter has a value of 2.0 and the UVW Map modifier has a tiling value of 3.0 for the same axis, the net result is 2.0 x 3.0 = 6.0. To avoid confusion about where the tiling is coming from, you may want to set the map’s tiling in its base parameters or with the UVW Map modifier, but not in both locations.

The Mirror option is a variation on the Tile option. Tile repeats the image over and over, while Mirror flips the image repeatedly.


Track View Hierarchy Icons (Glossary)

GLOSSARY

Track View Hierarchy Icons

The Track View hierarchy follows the traditional example of organizational headings in an outline. The highest levels of the hierarchy represent the main groupings in 3D Studio MAX of Sound, Environment, Materials, and Objects. Lower levels of the hierarchy progress through the details of your scene, such as individual materials, material maps, and map parameters.

Each type of item in the Track View Hierarchy List is represented by an icon. You can use these icons to quickly identify what each item represents.

Sound: Green cones indicate sound parameters. 3DS MAX provides only one sound source in Track View.

Material: Blue spheres indicate material definitions. All branches below a material definition are part of that material. Because a material can be composed of multiple materials it is possible to have nested material definitions in Track View. Blue spheres also appear in an object’s modifier branch when a material is assigned to an object.

Map: Green parallelograms indicate map definitions. All branches below a map definition are part of that map. This includes values used by parametric maps and other map definition that are part of a map tree.

Object: Yellow cubes indicate objects in the scene. Branches below the square icon beside a yellow cube contain linked descendents of the object. Branches below the circle icon beside a yellow cube contain transforms and modifications applied to the object.

Container: Blue cylinders indicate a container of other items. Branches below a blue cylinder can contain any number of other items. Containers are how 3D Studio MAX organizes complex items in the Hierarchy List.

Modifier: Orange diamonds indicate modifiers and Space Warp bindings. Branches below a modifier contain the modifier’s sub-objects and parameters.

Controller: Green triangles indicate controllers. Controllers are the animation workhorses of Track View. They contain the animated values for all parameters and are the only item in the Hierarchy List that can have a track containing keys.

Certain types of controllers can contain other controllers. Examples of these are Transform Controllers and List Controllers.


Tracks (Glossary)

GLOSSARY

Tracks

Every item in the Track View hierarchy has a track that displays what happens to the item over time.

There are two types of tracks:

  • Range tracks indicate when items below the track are animated. A range bar in the track displays the range of time over which the animation occurs.
  • Animation tracks contain the actual animated values for an item. Only controller items have an animation track.

The values in an animation track are usually displayed as keys. Some controllers don’t use keys and instead display their values as a range bar or some other graphic symbol. For example, the Wave Form item displays a sound file as a two-channel sound wave.

Animation tracks are also the only track type that can be displayed as a function curve.

Tracks also appear in Video Post, where they are used to show the time values of the events that make up the Video Post queue.


Trajectory (Glossary)

GLOSSARY

Trajectory

Whenever an object moves through world space, you can view its trajectory. A trajectory is the visible path the object makes because of its movement. You can think of a trajectory as a three-dimensional function curve for the Position track of an object.

Object trajectories appear with the following properties:

  • The trajectory curve is drawn in blue.
  • Frame increments are displayed as yellow dots on the curve.
  • Position keys are displayed as white boxes surrounding the appropriate frame dot on the curve.
  • Selected keys are displayed in red.

In 3D Studio Release 4, trajectories were referred to as "motion paths." In 3DS MAX, there is a Path Controller, which picks a spline in the scene to use as a motion path for an object.


Transforms (Glossary)

GLOSSARY

Transforms

When you create any object, 3DS MAX records its position, rotation, and scale information in an internal table called a transformation matrix. Subsequent position, rotation, and scale adjustments are called transforms.

An object's actual position within the world coordinate system is always calculated in relation to its internal, or local coordinate system, which is based on the object's transformation matrix. The origin of the local coordinate system is the center of the object's bounding box.

An object can carry any number of modifiers, but only one set of transforms. Although you can change transform values from frame to frame, each object always has only one position, one rotation, and one scale transform.

You can animate your transforms by turning on the Animate button and then performing the transform at any frame other than frame 0. This creates a key for that transform at the current frame.


UVW Coordinates (Glossary)

GLOSSARY

UVW Coordinates

Most material maps are a 2D plane assigned to a 3D surface. As a result, the coordinate system used to describe the placement and transformation of maps is different than the X, Y, and Z axis coordinates used in 3D space. Specifically, mapping coordinates use the letters U, V, and W; the three letters preceding X, Y, and Z in the alphabet.

The U, V, and W coordinates parallel the relative directions of X, Y, and Z coordinates. If you look at a 2D map image, U is the equivalent of X, and represents the horizontal direction of the map; V is the equivalent of Y, and represents the vertical direction of the map; W is the equivalent of Z and represents a direction perpendicular to the UV plane of the map.

You might question why you need a depth coordinate like W for a 2D plane. One reason is because it’s sometimes useful to be able to flip the orientation of a map, relative to its geometry. To do this, you need the third coordinate. The W coordinate also has a meaning for 3-dimensional procedural materials.


Vectors/Vector Handles (Glossary)

GLOSSARY

Vectors/Vector Handles

Vectors are secondary control points connected to vertices on a spline or patch object. They are also referred to as handles or vector handles.

Vector handles are visible as small green squares when you select a vertex. However, if the Vectors filter is checked (for a patch object), handles can be selected and transformed without selecting a vertex first. A transform cursor appears when you move onto a vector.

Each vertex in a shape can be one of four types:

Smooth: forces the segments into a smooth curve tangent to the vertex.

Corner: allows the segments on either side of the vertex to be at any angle.

Bézier: provide handles, but forces the segments into a tangent through the vertex.

Bézier Corner: provides handles, and allows the segments on either side of the vertex to be any angle.


Video Safe Frame (Glossary)

GLOSSARY

Video Safe Frame

The safe frame provides a guide to help avoid rendering portions of your image that might be blocked in the final output.

For example, to ensure that no unintentional black areas are visible on a television screen, broadcasters intentionally "overscan" the video image. The result is that portions of an image around the edges are not visible on a typical set. Also, portions of images on 35mm slides can be partially covered by the slide mounts.

You can adjust the size of the safe frame as a percentage of the outer display rectangle with the Safe-Frame controls in the Viewport Configuration dialog. Depending upon its size, the safe frame can be used as the equivalent of a "title safe frame" (the area inside which it is safe to display titles), or an "action safe frame" (the area inside which action may occur without significant loss of information).

To view the frames, choose Show Safe Frame from the right-click viewport menu. Three rectangles, one yellow, one green, and one pale blue, appear in the camera viewport. The outer, yellow video rectangle is the area and aspect ratio of your current display. The middle, green rectangle is the action safe zone. The inner, pale blue rectangle is the title safe zone.

Choose Show Safe Frame again to turn off the display.


Viewport (Interactive) Renderer (Glossary)

GLOSSARY

Viewport (Interactive) Renderer

The interactive renderer, used for the viewports, is designed for speed so you can easily manipulate your objects in a shaded environment. It’s not the same as the 3DS MAX production renderer, which is used for your final images. As a result, a number of effects that are available to the production renderer will not show up in the viewports.

When you design your materials, for example, you have three levels of visual feedback. The lowest level is the shaded viewport. The next level is the sample slot, which uses the production renderer to display the sample sphere. The highest level is the rendered scene, which uses the production renderer to display the scene.

A single material can contain any number of maps.

Because viewing mapped materials slows the viewport display, it’s up to you to decide which map (if any) you want to display. To display a specific map, you go to that map’s level in the Material Editor, and then turn on its display. (If you later go to a different map in the same material, and turn its display on, the other map is automatically turned off.)


Virtual Frame Buffer (Glossary)

GLOSSARY

Virtual Frame Buffer

The virtual frame buffer is a separate window in which 3DS MAX displays rendered output. 3DS MAX also displays still images in the virtual frame buffer when you choose the View File command from the File menu.

The virtual frame buffer window has controls to:

  • Enable/disable display of the red, green, and blue color channels.
  • Display the alpha channel.
  • Display only monochrome (gray scale).
  • Clear the image from the window.
  • Save the image to a file.
  • Create a clone of the virtual frame buffer (displays a new frame buffer window).

The virtual frame buffer can display several other channels if you are rendering RLA files and have specified that you want them.

You can now read the color/alpha value and coordinate location of any pixel in the Virtual Frame Buffer image. Right-click over the image while the virtual frame buffer is displayed. While holding down the right mouse button, a dialog displays various information about the pixel under the mouse pointer.

In addition, a color swatch in the toolbar stores the color value of the last pixel you clicked on. You can drag and drop this color swatch to any other color swatch in 3DS MAX, or you can click the color swatch to display the Color Selector dialog for further detail. In addition, you can leave the Color Selector dialog displayed while right-clicking over the image in the virtual frame buffer.


VUE file (Glossary)

GLOSSARY

VUE File

A VUE (.vue) file is an editable ASCII file that acts as a script for the Renderer during command-line rendering. You create a VUE file using the VUE file renderer instead of the default scanline renderer.

A VUE file contains a sequence of frames to render. Each frame is described by a sequence of commands, beginning with a "frame" command, which specifies the frame number, and ending with a viewport command, which specifies the view to rendr (such as "top" or "camera"). Between these two commands there can be any number of "transform", "light", and "spotlight" commands.

Note: VUE files created with 3DS DOS could also contain "morph" commands. This is not supported in 3DS MAX, because the 3DS MAX exporter doesn’t export morph targets.

The VUE file commands are as follows:

frame <n>

transform <object name> <transform matrix>

light <light name> <x> <y> <z> <r> <g> <b>

spotlight <light name> <x> <y> <z> <tox> <toy> <toz> <r> <g> <b> <hot angle> <falloff angle> <shadow flag>

top <x> <y> <z> <width>

bottom <x> <y> <z> <width>

left <x> <y> <z> <width>

right <x> <y> <z> <width>

front <x> <y> <z> <width>

back <x> <y> <z> <width>

user <x> <y> <z> <horiz> <vert> <roll> <width>

camera <x> <y> <z> <tox> <toy> <toz> <roll> <focal>

Frame Command

Begins each frame description. Has a single parameter: the frame number.

Transform Command

Transforms the specified object.

The first parameter is the name of the object. This is the name as it appears when you use 3DS MAX, but enclosed in double quotes.

The second parameter is a transform matrix. This consists of 12 real numbers:

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12

The VUE file treats these as if they were arranged in a 4 x 4 matrix (M):

T1 T2 T3 0

T4 T5 T6 0

T7 T8 T9 0

T10 T11 T12 1

The first nine values, T1 - T9, describe rotation and scaling. The last three, T10 - T12, describe a move, in world coordinates.

The VUE file renderer transforms the points of the object by post-multiplication:

| X' Y' Z' 1| = | X Y Z 1 | * M

Omni Light Command

Controls the location and color of an Omni light.

The first parameter is the name of the light. This is the name as it appears when you use 3DS MAX, but enclosed in double quotes.

The next three parameters, <x>, <y>, <z>, are the light's location.

The next three parameters, <r>, <g>, <b>, are the light's color. The color values are normalized to range between 0.0 and 1.0.

The last parameter, <shadow flag>, parameter is 1 if the light casts shadows, 0 otherwise.

Spotlight Command

Controls the location, color, and other characteristics of a target spotlight.

The first parameter is the name of the light. This is the name as it appears when you use 3DS MAX, but enclosed in double quotes.

The next three parameters, <x>, <y>, <z>, are the light's location.

The next three parameters, <tox>, <toy>, <toz>, are the location of the light's target.

The next three parameters, <r>, <g>, <b>, are the light's color. The color values are normalized to range between 0.0 and 1.0.

The <hot angle> parameter is the angle of the light's hot spot, in degrees.

The <falloff angle> parameter is the falloff angle, in degrees

The <shadow flag> parameter is 1 if the light casts shadows, 0 otherwise.

Orthogonal Viewport Commands

These commands render a particular view -- top, bottom, left, right, front, or back.

The <x>, <y>, <z> parameters are the coordinates of the center of the view.

The <width> parameter is the width of the rendered image, in world units.

User Viewport Command

Renders the user view.

The <x>, <y>, <z> parameters are the coordinates of the center of the view.

The <horiz> parameter is the horizontal angle, in degrees.

The <vert> parameter is the vertical angle, in degrees.

The <roll> parameter is a placeholder for the roll angle -- but this is an "empty," unused parameter that must always be zero. To use roll in a VUE file, use a camera view instead of a user view.

The <width> parameter is the width of the rendered image, in world units.

Camera View Command

Renders a camera view.

The <x>, <y>, <z> parameters are the camera's location.

The <tox>, <toy>, <toz> parameters are the location of the camera's target

The <roll> parameter is the camera roll angle, in degrees.

The <focal> parameter is the camera's focal length, in millimeters.


Wireframe Mode (Glossary)

GLOSSARY

Wireframe Mode

Use the extended parameters for the wireframe effect to set the size of the wire and specify the measurement in pixels or units.

When you use pixels, the thickness of the wire is based on the screen pixels. As a result, it’s absolute, and remains the same, regardless of its distance from the camera. If you use units, the thickness is based on world units, and varies depending on the distance from the camera.

It’s easier to compare the effect of pixels and units if you first adjust the camera view to give a greater sense of distance. You can most easily do this with the Perspective viewport-navigation tool, which dollies the camera in one direction, while changing the field of view in the other.


World Coordinate System (Glossary)

GLOSSARY

World Coordinate System

The coordinate system for world space or the 3DS MAX model space as a whole.

World space is the universal coordinate system that 3DS MAX uses to track objects in the scene. When you look at the Home Grid in the 3DSMAX viewports, you see the World Space coordinate system. World space is constant and immovable.

In the world coordinate system seen from the front, the X axis runs in a positive direction to the right, the Z axis runs in a positive direction upward, and the Y axis runs in a positive direction away from you.

Contrast with the local coordinate system.


3D Studio MAX Online Reference
User Interface
Title Bar
Menu Bar
Menu Bar
File Menu
File Menu
New
Reset
Open
Merge
Replace
Insert Tracks
Save
Save As
Save Selected
Import
Importing PRJ Files
Importing 3DS Files
Importing DXF Files
Importing SHP Files
Importing STL Files
Importing Adobe Photoshop Files
Importing Adobe Illustrator 88 Files
Export
Exporting to VRML 1.0
Exporting to ASCII
Exporting to DXF
Exporting to STL
Archive
Summary Info
View File
Configure Paths
Bitmap Path Configuration
General Path Configuration
Plug Ins Path Configuration
Preferences
Viewports Preferences
3D Studio Max Driver Setup
Configure Driver
Strokes
Strokes Utility
Defining Strokes
Reviewing and Editing Strokes
Stroke Preferences
General Preferences
Inverse Kinematics Preferences
Keyboard Preferences
Gamma Preferences
Animation Preferences
MIDI Time Slider Control Setup
Rendering Preferences
Files Preferences
Colors Preferences
History
Exit
Edit Menu
Edit Menu
Undo/Redo
Hold
Fetch
Delete
Clone
Select All
Select None
Select Invert
Select By
Select By Color
Select By Name
Edit Named Selections
Region
Select Region Window
Select Region Crossing
Properties
Tools Menu
Tools Menu
Transform Type-In
Display Floater
Selection Floater
Mirror
Array
Snapshot
Align
Align Normals
Place Highlight
Material Editor
Material/Map Browser
Group Menu
Group Menu
Open
Group
Close
Ungroup
Explode
Detach
Attach
Views Menu
Views Menu
Undo/Redo
Save Active View
Restore Active View
Units Setup
Grid and Snap Settings
Home Grid Settings
Snaps
Snap Options
Snap Override
Grids
Show Home Grid
Activate Home Grid
Activate Grid Object
Align to View
Background Image
Update Background Image
Reset Background Transform
Show Axis Icon
Show Ghosting
Show Key Times
Shade Selected
Show Dependencies
Match Camera to View
Redraw All Views
Deactivate All Maps
Update During Spinner Drag
Expert Mode
Viewport Configuration
Rendering Method
Safe Frames
Adaptive Degradation
Layout
Regions
Rendering Menu
Rendering Menu
Render
Show Last Rendering
Environment
Make Preview
View Preview
Rename Preview
Track View Menu
Track View Menu
Open Track View
New Track View
Delete Track View
Bottom of the Track View menu
Help Menu
Help Menu
Help Contents
Help Topics
About 3D Studio Max
Using 3D Studio MAX Help
Plug-in Help
Toolbar
Toolbar
Get Help
Undo
Redo
Select and Link
Unlink Selection
Bind to Space Warp
Select Object
Selection Region Rectangle, Circle, Fence
Selection Filters Dropdown
Select By Name Button
Select and Move
Select and Rotate
Select and Uniform Scale, Non-uniform Scale, Squash
Transformation Axis Coordinate System Pop-Up
Use Pivot Point Center, Selection Center, Transform Coord. Center
Constrain to X
Constrain to Y
Constrain to Z
Constrain to XY, YZ, ZX
Inverse Kinematics
Mirror Button
Array Button
Snapshot Button
Align Button
Align Normals Button
Place Highlight Button
Align to Camera
Align to View Button
Named Selection Sets Pop-Up
Track View
Render Scene
Quick Render
Render Type
Render Last
Create Panel
Geometry
Geometry
Creating Primitives from the Keyboard
Standard Primitives
Standard Primitives
Box
Sphere
Cylinder
Torus
Teapot
Cone
GeoSphere
Tube
Pyramid
Prism
Extended Primitives
Extended Primitives
Hedra
Chamfer Box
Oil Tank
Spindle
Gengon
Torus Knot
Chamfer Cylinder
Capsule
L-Ext
C-Ext
Doors
Doors
Pivot Door
Sliding Door
Bifold Door
Windows
Windows
Casement
Sliding
Pivoted
Fixed
Projected
Awning
Compound Objects
Compound Objects
Morph
Creating Morphs
Pick Targets
Boolean
Scatter
Conform
Connect
Shape Merge
Loft Object
Loft Object
Constant Cross Section
Path Steps
Particle Systems
Particle Systems
Spray
Snow
Super Spray
Blizzard
PArray
PCloud
Patch Grids
Patch Grids
Quad Patch
Tri Patch
Shapes
Shapes
Splines
Splines
Line
Rectangle
Circle
Ellipse
Arc
Donut
NGon
Star
Text
Helix
Section
Nurbs Curves
NURBS Curves
Point Curve
CV Curve
Curve Approximation
Creating Dependent Curves
Using the NURBS Toolbox to Create Sub-Objects
Curve Fit
Transform Curve
Blend Curve
Offset Curve
Mirror Curve
U and V Iso
Creating and Editing Point Sub-Objects
Point Point
Curve Point
Curve-Curve
Surf Point
Common Sub-Object Controls
Editing Point and CV Sub-Objects
Editing Surface Sub-Objects
Creating Independent Surfaces from Curve Objects
Attaching and Importing 3D Studio MAX Objects
Display Controls for NURBS Models
NURBS Surfaces
NURBS Surfaces
Point Surface
CV Surface
Surface Approximation
Creating NURBS Surfaces from Geometric Primitives
Creating Dependent Curves
Curve Fit
U and V Iso
Creating Dependent Surfaces
Using the NURBS Toolbox to Create Sub-Objects
Transform Surface
Blend Surface
Offset Surface
Mirror Surface
Extrude Surface
Lathe Surface
Ruled Surface
U Loft Surface
Cap Surface
Creating and Editing Point Sub-Objects
Point Point
Curve Point
Curve-Curve
Surf Point
Common Sub-Object Controls
Editing Point and CV Sub-Objects
Editing Curve Sub-Objects
Editing Surface Sub-Objects
Attaching and Importing 3D Studio MAX Objects
Display Controls for NURBS Models
Lights
Lights
Target Spot
Free Spot
Target Direct
Free Direct
Omni
General Lighting Parameters
Shadow Parameters
Projection Parameters
Hotspot and Falloff Parameters
Exclude/Include Dialog
Cameras
Cameras
Free Camera
Target Camera
Helpers
Helpers
Dummy
Point
Grid Objects
Tape Object
Protractor Object
Compass Object
Space Warps
Space Warps
Wave
Ripple
Gravity
Wind
Deflector
Displace
FFD (Box)
FFD (Cyl)
Conform
Bomb
PBomb
SDeflector
UDeflector
Path Follow
Push
Motor
When Modifiers Become Space Warps
Systems
Systems
Bones
Sunlight
Ring Array
Modify Panel
Modify Panel
Affect Region Modifier
Bend Modifier
Camera Map Modifier
Cap Holes Modifier
Delete Mesh Modifier
Delete Spline Modifier
Face Extrude Modifier
Tesselate Modifier
Unwrap UVW's Modifier
Twist Modifier
Displace Modifier
Mirror Modifier
Lattice Modifier
Noise Modifier
Optimize Modifier
Volume Select
XForm Modifier
Skew Modifier
Taper Modifier
FFD (Free Form Deformation) Modifier
FFD Select Modifier
UVW XForm Modifier
UVW Map Modifier
Spherify Modifier
PathDeform Modifier
Patch Deform Modifier
SurfDeform Modifer
MeshSmooth Modifier
Smooth Modifier
Lathe Modifier
Preserve Modifier
Bevel Profile Modifier
Fillet/Chamfer Modifier
Extrude Modifier
Trim/Extend Modifier
Mesh Select Modifier
Editable Mesh Modifier
Editable Spline Modifier
Spline Select Modifier
Make Unique
When Space Warps Become Modifiers
Camera Map (World Space Modifier)
Path Deform (WSM)
Patch Deform (WSM)
SurfDeform (WSM)
Map Scaler (WSM)
Wave Modifier
Ripple Modifier
STL-Check Modifier
Editable Mesh Modifier (Vertex)
Editable Mesh Modifier (Face)
Editable Mesh Modifier ( Edge)
Editable Mesh Modifier (Object)
Edit Spline Modifier
NSurf Sel Modifier
NCurve Sel Modifier
FFD (Box/Cyl) Modifier
Hierarchy Panel
Hierarchy Panel
Pivot Panel
Adjust Pivot Rollout
Adjust Transform Rollout
I K Panel
Inverse Kinematics Rollout
Object Parameters Rollout
Position/Orientation/Bind to Follow Object Area
Precedence
Copying, Pasting and Mirroring Joint Parameters
Auto Termination Rollout
Sliding and Rotational Joints Rollouts
Link Info
Locks Rollout
Inherit Rollout
Motion Panel
Motion Panel
Trajectories
Assign Controller
PRS Parameters
Key Info (Basic)
Key Info (Advanced)
Display Panel
Display Panel
Display Color
Hide by Category
Hide
Freeze
Display Properties
Link Display
Utilities Panel
Utilities Panel
ASCII Object Output Utility
Asset Manager Utility
Directory Hierarchy Window
Thumbnail Window
Dragging and Dropping with the Asset Manager
Assign Vertex Colors Utility
Using the Assign Vertex Colors Utility
Camera Match Utility
CamPoint Info Rollout
Using Camera Match
Collapse Utility
Color Clipboard Utility
Dynamics Utility
Dynamics Properties Materials Editor Rollout
Time and Simulation Rollout
Using Linked Hierarchies
Reducing Keys
Bouncing a Ball
Follow/Bank Utility
IFL Manager Utility
Level of Detail Utility
Link Inheritance (Selection) Utility
Measure Utility
Motion Capture Utility
Binding and Adjusting Devices
Using the Motion Capture Utility
Record Controls Area
Tracks
Naming Tracks
Record Range
Samples
Properties of Specific Motion Capture Devices
Mouse Input Device
Keyboard Input Device
Joystick Input Device
MIDI Device
Rescale World Units Utility
Reset Transform Utility
Strokes Utility
Track View
Track View
Track View Edit Window
Time Ruler
Track View Toolbar
Filters
Copy Controller
Paste Controller
Assign Controller
Make Controller Unique
Parameter Out-of-Range Types
Add Note Track
Delete Note Track
Edit Keys
Edit Keys
Snap Frames
Lock Selection
Add Visibility Track
Delete Visibility Track
Align Keys
Delete Keys
Move Keys
Slide Keys
Scale Keys
Add Key
Properties
Track View Utilities
Track View Utilities
Randomize Keys Utility
Create Out of Range Keys Utility
Select Keys by Time
Sound Options dialog
Edit Time
Edit Time
Select Time
Delete Time
Cut Time
Copy Time
Paste Time
Reverse Time
Insert Time
Scale Time
Exclude Left End Point
Exclude Right End Point
Reduce Keys
Edit Ranges
Edit Ranges
Position Ranges
Recouple Ranges
Function Curves
Function Curves
Move Keys, Horizontal, Vertical
Scale Keys
Scale Values
Add Keys
Show Tangents
Lock Tangents
Apply Ease Curve or Multiplier Curve
Delete Ease/Multiplier Curve
Enable Ease/Multiplier Curve Toggle
Ease Out-of-Range Types
Multiplier Out-of-Range Types
Freeze Nonselected Curves
Status Bar/View Controls
Status Bar/View Controls
Zoom Selected Object
Select by Name
Prompt Line
Key Time Display
Value Display
Show Selected Key Statistics
Zoom Horizontal Extents
Zoom Value Extents
Pan
Zoom
Zoom Region
Track View Hierarchy
Track View Hierarchy
Hierarchy Pop-Up Menu
Properties
Modify Subtree
Status Bar/Viewport Controls
Status Bar/Viewport Controls
Status Bar Controls
Status Bar Controls
Prompt Line
Status Line
Time Slider
Plug-in Keyboard Shortcut Toggle
Lock Selection
Coordinate Display
Grid Setting Display
Window/Crossing Toggle
Degradation Override
2D Snap, 2.5D Snap, 3D Snap
Angle Snap
Percent Snap
Spinner Snap
Time Tag
Add Time Tag
Edit Time Tag
Viewport Controls
Viewport Controls
Zoom
Zoom All
Zoom Extents, Zoom Extents Selected
Zoom Extents All, Zoom Extents All Selected
Region Zoom
Pan
Arc Rotate/Arc Rotate on Selection
Full-Screen Toggle
Camera Viewport Controls
Camera Viewport Controls
Dolly Camera, Target, or Both
Perspective
Roll Camera
Truck Camera
Orbit/Pan Camera
Spotlight Viewport Controls
Spotlight Viewport Controls
Spotlight Hotspot
Spotlight Falloff
Dolly Spotlight
Orbit/Pan Spotlight
Roll Spotlight
Truck Spotlight
Animate Buttons
Animate
Go to Start
Previous Frame
Play/Stop
Next Frame
Go to End
Time Controls
Current Frame (and Goto Frame)
Key Mode
Time Configuration
Viewports
Viewports
Field of View
Right-Click Viewport Menu
Material Editor
Material Editor
Sample Windows
Material Editor Tool Buttons
Material Editor Tool Buttons
Sphere, Cube, Cylinder
Backlight
Pattern Background
Sample UV Tiling
Video Color Check
Make Preview, Play Preview, Save Preview
Material Editor Options
Select By Material
Get Material (Material/Map Browser)
Put Material to Scene
Assign Material to Selection
Clear Material Settings
Make Material Copy
Put to Library
Material Effects Channel
Show Map in Viewport
Show End Result
Go to Parent
Go Forward to Sibling
Material/Map Navigator
Pick Material From Object
Type (Material/Map Browser)
Type (Material/Map Browser)
Standard Material
Standard Material
Using the Color Selector Dialog
Maps
Maps
Ambient Map
Diffuse Map
Specular Map
Shininess Map
Shininess Strength Map
Opacity Map
Self-Illumination Map
Filter Color Map
Bump Map
Reflection Map
Refraction Map
Map Types
Map Types
Adobe Photoshop Plug-In Filter Map
Photoshop Filter Requirements
Photoshop Filter System Setup
Using Alpha Plane with Version 3.0/4.0 Photoshop Filters
Using Photoshop Filters in the Material Editor
Choosing a Filter
Using a Photoshop Filter
Photoshop Plug-In Parameters
Filter Selection Parameters
Input Image Parameters
Adobe Premiere Video Filter Map
Bitmap
Bitmap
Bitmap Coordinates
Bitmap Noise Parameters
Bitmap Parameters
Bitmap Output Parameters
Bitmap Time Parameters
Cellular Map
Cellular Map
Checker
Checker
Composite
Composite
Dent Procedural Map
Dent Procedural Map
Making a Dent Map
Dent Parameters
Setting Dent Iterations
Setting Dent Size
Setting and Swapping Dent Colors
Adjusting Parrameters for Colors
Replacing Dent Colors with Maps
Falloff Map
Falloff Map
Flat Mirror
Flat Mirror
Gradient
Gradient
Gradient Coordinates
Gradient Noise
Gradient Parameters
Gradient Output
Marble
Marble
Marble Coordinates
Marble Parameters
Mask
Mask
Mix
Mix
Noise Map Type
Noise Map Type
Noise Map Coordinates
Noise Map Output
Noise Map Parameters
Output Map
Output Map
Particle Age Map
Particle Age Map
Particle MBlur Map
Particle MBlur Map
Perlin Marble Map
Perlin Marble Map
Planet Map
Planet Map
Reflect/Refract
Reflect/Refract
RGB Multiply Map
RGB Multiply Map
RGB Tint
RGB Tint
Smoke Map
Smoke Map
Speckle Map
Speckle Map
Splat Map
Splat Map
Stucco Map
Stucco Map
Thin Wall Refraction Map
Thin Wall Refraction Map
Vertex Color Map
Vertex Color Map
Water Map
Water Map
Wood Procedural Map
Wood Procedural Map
Making a Wood Map
Wood Parameters
Setting Grain Thickness
Setting Grain Direction
Setting Grain Irregularity
Setting Grain Complexity
Setting and Swapping Wood Colors
Replacing Wood Colors with Maps
Kinds of Compound Materials
Kinds of Compound Materials
Blend Material
Double-Sided
Matte/Shadow
Multi/Sub-object
Top/Bottom
Animating Materials
Animating Materials
Creating and Playing Animated Material Previews
Synchronizing an Animated Bitmap with the Scene
Raytrace Material
Raytrace Material
Raytrace Map
Raytracer Options Dialog
Global Raytracer Settings Dialog
Global and Local Exclude/Include Dialog for Raytraced Maps and Materials
Rendering
Common Parameters (Render)
MAX Default Scanline A-Buffer
VUE File Renderer
Network Rendering
Network Rendering
Overview
How Network Rendering Works
Checking Requirements
Hardware and Network Requirements
Software Requirements
Setting Up for Network Rendering
Setting Up TCP/IP
Configuring TCP/IP
Setting Up Rendering Software
Running Setup
Setting Up Directories
Organizing Directories
Sharing a Directory
Mounting a Directory
Using Configure Paths
Initial Setup for Manager and Server Programs
Initializing the Manager Program
Initializing the Server Program
Starting Network Rendering
Starting Manager and Server
Starting a Network Rendering Job
Executing a Network Rendering Job
Using the Manager & Server Windows
Manager Properties Dialog
Server Properties Dialog
Log File Preferences
Using the Network Job Assignment Dialog
Including Maps with a Submitted Job
Monitoring the Rendering Queue
Connecting to a Manager
Viewing Jobs in the Queue
Understanding the Status Display
Managing Jobs in the Queue
Activating and Deactivating Jobs in the Queue
Activating and Deactivating Servers in the Queue
Reordering Jobs in the Queue
Deleting Jobs in the Queue
Setting Up Queue Manger User Preferences
Using the Queue Manger Report Generator
Scheduling Hours of Activity for the Servers
Installing Network Services under Windows NT
Creating a Special User Account
Assigning a User to a Service
Manager and Server INI Files
Hosts INI File
Troubleshooting Guide
Troubleshooting Guide
Animation Controllers
Animation Controllers
Look At Controller
Path Controller
IK Controller
Link Controller
Attachment Controller
Motion Capture Controller
List Controller
On/Off Controller
Bezier Controllers
TCB Controllers
Linear Controller
Smooth Rotation Controller
Euler XYZ Rotation Controller
Waveform Controller
Color RGB Controller
Barycentric Morphing Controller
Surface Controller
Noise Controllers
Audio Controller
Script Controller
PRS Controller
Position XYZ Controller
Expression Controllers
Environment
Environment
Combustion Atmospheric Effect
Creating Combustion Effects
Combustion Example
Creating a Combustion Apparatus
Adding Combustion Atmospheres
Picking a Source Apparatus
Setting Combustion Colors
Choosing Flame Shape
Setting Flame Characteristics
Animating Combustion
Phase Function Curve Sample
Creating Explosions
Fog
Volume Fog
Volume Light
MAXScript
MAXScript
MAXScript Overview
The MAXScript Utility
The MAXScript Utility
Using MAXScript
Using MAXScript
The MAXScript Listener Window
Running Script Files
The Startup Script File
Accessing Scripted Utilities
Controlling MAXScript's Memory Allocation
The Scripts Directory
Using the MAXScript Listener
Using the MAXScript Listener
Interrupting Execution with the ESC Key
Commands or Expressions?
Using the '?' Symbol
Turning On the Listener Log
Using the MAXScript Editor Windows
Using the MAXScript Editor Windows
Script Editor Features
The MAXScript Language
The MAXScript Language
Introduction to the MAXScript Language
Syntax Definitions in this Document
Language Tokens
Language Tokens
Language Reserved Words
Punctuation and Symbols
Names
Comments
Source Code Layout and Continuation Lines
Literals
Literals
Numbers
Strings
Arrays
2D and 3D Points
Time
Keyword Parameters
Pathnames
Variables, Assignment and Scoping
Variables, Assignment and Scoping
Assignment
Type-Free Variables
Operator Assignment
Reference Assignment
Memory Management
Memory Management
Expressions
Expressions
Simple Expressions
Simple Expressions
Comparison Expressions
Accessors
Accessors
Assignment to Accessors
Computed Property Access
Factors
Factors
Reserved MAXScript System Globals
Math Expressions
Math Expressions
Math Assignment
Precedence and Associativity
Polymorphism
Logical Expressions
Logical Expressions
Short-Circuiting Logical Expressions
Function Calls
Function Calls
Positional and Keyword Arguments
Precedence
Code Layout
Calling Built-In Functions
Block Expressions
Block Expressions
Local Variables and Scoping
Local Variables and Scoping
Scoping and Extent
Control Constructs
Control Constructs
If Expression
While and Do Loops
For Loop
Loop Exit
Function Definition
Function Definition
Function Variables
Parameters
The Return Expression
Pathnames
Pathnames
Spaces and Other Special Characters in Names
Indexing and Sequencing Pathnames
Built-In Object Sets
Working Levels
Making a Snapshot of Selections
Object Set and Pathname Properties
Syntax
Context Expressions
Context Expressions
coordsys
about
undo
Cascading Contexts
Nested Contexts
Sticky Contexts
Automatic Collection Operations
Automatic Collection Operations
Working with MAX Objects
Working with MAX Objects
Working with the MAX Rendering Environment
Working with Spacewarps
Working with Named Selection Sets
Script Controllers
Script Controllers
TrackView Nodes
TrackView Nodes
Running Scripts from DOS
Running Scripts from DOS
Utility Rollouts
Utility Rollouts
MAXScript Classes
MAXScript Classes
Inheritance and Polymorphism
MAX Classes
MAX Classes
Max Core Classes and Access to 3rd-Party Plug-Ins
Access to Animatable Sub-Objects
Modifier Sub-Object Transform Properties
Controller Access
Controller Creation and Assignment
Recursive Time and Key Functions
Accessing Controller Keys and Key Properties
Bezier Keys
TCB Keys
Key Array Functions
Controller Time and Keyframe Functions
Controller Time and Keyframe Functions
Time Operations
Key Operations
Out-Of-Range Parameters
Ease and Multiplier Curve Functions
Key Reducer
MAX Commands
MAX Commands
MAXScript Class Reference
MAXScript Class Reference
MAXScript Class Hierarchy
MAXScript Class Hierarchy
Value
Value
Number : Value
String : Value
Name : Value
Boolean : Value
Point3 : Value
Ray
Quat : Value
AngleAxis : Value
EulerAngles : Value
Matrix3Value : Value
Time : Value
Interval : Value
Undefined : Value
Ok : Value
Unsupplied : Value
FileStream : Value
Collection
Collection
Array : Collection :Mappable
ObjectSet : Collection :Mappable
PathName : Collection :Mappable
KeyArray : Collection :Mappable
MaterialLibrary : Collection :Mappable
MAXWrapper
MAXWrapper
Node : MAXWrapper
Node : MAXWrapper
General Node Properties
MAX Scene Node Properties
Transform Properties
Node Subclasses
Node Subclasses
Geometry : Node
Geometry : Node
Box : Geometry
Cone : Geometry
Cylinder : Geometry
Hedra : Geometry
Quadpatch : Geometry
Sphere : Geometry
Teapot : Geometry
Torus : Geometry
TriPatch : Geometry
Tube : Geometry
Particle Systems
Particle Systems
Spray : ParticleSystem
Snow : ParticleSystem
Shape : Node
Shape : Node
Arc : Shape
Circle : Shape
Donut : Shape
Ellipse : Shape
Helix : Shape
Ngon : Shape
Rectangle : Shape
Star : Shape
Text : Shape
SplineShape : Shape
Helper : Node
Helper : Node
Grid : Helper
Tape : Helper
Bone : Helper
Spacewarp : Node
Spacewarp : Node
Bomb : Spacewarp
Deflector : Spacewarp
Gravity : Spacewarp
Spaceripple : Spacewarp
Spacedisplace : Spacewarp
Spacewave : Spacewarp
Wind : Spacewarp
Light : Node
Light : Node
Omnilight : Light
Targetspot : Light
Directionallight
Camera : Node
Camera : Node
Targetcamera : Camera
Freecamera
Mesh : Node
Mesh : Node
Mesh Constructors
Mesh Operations
Mesh Boolean Operations
Modifier : MAXWrapper
Modifier : MAXWrapper
Bend : Modifier
Extrude : Modifier
Linked_xform : Modifier
NoiseModifier : Modifier
Optimize : Modifier
Ripple : Modifier
Skew : Modifier
Smooth : Modifier
NormalModifier : Modifier
Lathe : Modifier
Taper : Modifier
Twist : Modifier
UVWmap : Modifier
Volumeselect : Modifier
Wave : Modifier
Controller : MAXWrapper
Controller : MAXWrapper
Path : PositionController
Noise Controllers
Material : MAXWrapper
Material : MAXWrapper
StandardMaterial : Material
MultiMaterial : Material
TextureMap : MAXWrapper
TextureMap : MAXWrapper
BitmapTexture : TextureMap
Control : MAXWrapper
Control : MAXWrapper
Key : MAXWrapper
Key : MAXWrapper
Rollout : Value
Rollout : Value
RolloutControl : Value
RolloutControl : Value
ButtonControl : RolloutControl
CheckBoxControl : RolloutControl
EditTextControl : RolloutControl
GroupStartControl : RolloutControl
LabelControl : RolloutControl
PickerControl : RolloutControl
RadioControl : RolloutControl
SpinnerControl : RolloutControl
Miscellaneous Built-In Functions
Miscellaneous Built-In Functions
Controlling the Renderer
MAX File Loading and Saving
Text File Input and Output
Listener Log File Control
Standard Open and Save File Dialogs
Editor and Compiler Access
Progress Bar Display
Executing DOS Commands
System Globals
System Globals
MAX System Globals
MAX System Globals
MAXScript System Globals
MAXScript System Globals
OLE Automation
OLE Automation
Setting Up MAXScript OLE Automation
Exposing MAXScript Functions
MAX-Specific Errors
Running the OLE Demo
MAXScript Grammar
MAXScript Grammar
MAXScript Tutorial
MAXScript Tutorial
MAXScript SDK
MAXScript SDK
DLL Setup
Libraries
Build Configurations
MAXScript Value Constructors
Distinguished Values
Coercion to C++ Types
Protecting Newly Created Values from the Collector
Collector-Safe Value Local Macros
Value Local Arrays
Marking Values as Permanent or Collectable
Scripter-Callable Functions
Working with MAX Objects
Constructing Wrappers
Retrieving Wrapped Objects
Handling Deleted Objects
MAX ClassIDs and Superclass IDs
The MAXClass Constructor
classOf() and superClassOf() Methods for MAX Objects
Collection Mapping
Array Access and Construction
Stream I/O
Access to the Compiler and Interpreter
Calling Scripted Functions
MAXScript Header Files
Core Names
Video Post
Video Post (Video Post)
Video Post Queue
Video Post Status Bar/View Controls
Prompt Line (Video Post)
Status (Start, End, Frames, Width, Height)
Zoom Region (Video Post)
Pan (Video Post)
Zoom Time (Video Post)
Zoom Extents (Video Post)
Video Post Toolbar
New Sequence
Open Sequence
Save Sequence
Delete Current Event
Swap Events
Edit Range Bar
Align Selected Left
Align Selected Right
Make Selected Same Size
Abut Selected
Network Job Assignment
Execute Sequence
Execute Sequence
Configure Presets
Edit Event
Edit Current Event
Edit Scene Event
Edit Output Image Event
Edit External Event
Edit Loop Event
Edit Image Input Event
Image Input Options
Edit Filter Event
Edit Filter Event
Edit Adobe Photoshop Plug-In Filter
Edit Adobe Premiere Transition Filter
Edit Contrast Filter
Edit Fade Filter
Edit Glow Filter
Edit Image Alpha Filter
Edit Negative Filter
Add Pseudo Alpha Filter
Edit Simple Wipe Filter
Edit Starfield Filter
Edit LenzFX Filters
Edit LenzFX Filters
LenzFX Previews
Lens Flare Properties
Lens Flare Effects
Lens Flare Settings
LenzFX Gradients
LenzFX HighLights
LenzFX Zfocus
Animating Lens Flare Properties
LenzFX Preferences
Edit Layer Event
Edit Layer Event
Edit Adobe Premiere Transition Filter
Edit Alpha Compositor
Edit Cross Fade Compositor
Edit Pseudo-Alpha Compositor
Edit Simple Additive Compositor
Edit Simple Wipe Compositor
Add Events
Add Scene Event
Add Image Input Event
Add Image Output Event
Add External Event
Add Loop Event
Add Image Filter Event
Add Image Filter Event
Add Adobe Photoshop Plug-In Filter
Add Adobe Premiere Video Filter
Add Contrast [Filter]
Add Fade Filter
Add Glow Filter
Add Image Alpha Filter
Add Negative Filter
Add Pseudo Alpha Filter
Add Simple Wipe Filter
Add Starfield Filter
Add LenzFX Filters
Add LenzFX Filters
LenzFX Previews
Lens Flare Properties
Lens Flare Effects
Lens Flare Settings
LenzFX Gradients
LenzFX HighLights
LenzFX Zfocus
Animating Lens Flare Properties
LenzFX Preferences
Add Image Layer Event
Add Image Layer Event
Add Adobe Premiere Transition Filter
Add Alpha Compositor
Add Cross Fade Compositor
Add Pseudo-Alpha Compositor
Add Simple Additive Compositor
Add Simple Wipe Compositor
VRML 2.0 Export Plug-In
VRML 2.0 Export Plug-In
VRML 2.0 Helpers
VRML 2.0 Helpers
Anchor (VRML)
TouchSensor (VRML)
ProxSensor (VRML)
TimeSensor (VRML)
NavInfo (VRML)
Fog (VRML)
AudioClip (VRML)
Sound (VRML)
Billboard (VRML)
Inline (VRML)
Level Of Detail (VRML)
Background (VRML)
Sky Colors Rollout
Ground Colors Rollout
Images Rollout
Exporting to VRML 2.0
Exporting to VRML 2.0
VRML 2.0 Tips
VRML 2.0 Tips
Using the Polygon Counter Utility
Using the Polygon Counter Utility
VRML 2.0 Specification and dFORM Tutorials
VRML 2.0 Specification and dFORM Tutorials
Feature List for 3D Studio MAX R2
Feature List for 3D Studio MAX R2
Glossary
Glossary
Symbols, Numbers, A - D
2-Sided
Active Time Segment
Adaptive Degradation
Additive Opacity
Affine Transformation
Aliasing/Antialiasing
Alpha Channel
Ambient Color
Ambient Light
Animation
Animation Controllers/Transform Controllers
Aspect Ratio
Attenuation
AVI Files
Axis Tripod
Axonometric Views
B-Spline
B�zier Curve
Blend
Blinn Shading
Blur/Blur Offset
Boolean Operation
Bounding Box
Chamfer
Clipping Planes
Compound Materials
Constant Shading
Constrained Point
Containers
Continuity
Continuity Level
Control Lattice
Control Vertex (CV)
Convex Hull Property
Cool
CV
CV Curve
CV Surface
Degree
Dependent
Diffuse Color
Dithering
Dummy Object
DXF Files
E - K
Ease Curve
Encapsulated PostScript Files
End Effector
Environment Map
Field of View
Fields
Fillet
Filter Color/Filter Opacity
Filtering
First Vertex
Flat Mirror
FLC Files
Follow Object
Forward Kinematics
Frame Rate
Freeze/Unfreeze
Function Curve
Fusing
G-Buffer
Gamma
GIF Files
Gizmo/Center
Listener Window
Grid Object
Hierarchical Linkage
Home Grid
Horizon
Hot
Hotspot/Falloff
IFL Files
IK Solution
Image Motion Blur
Independent
Instance
Inverse Kinematics
Iso Line
JPEG Files
Keyframes/Keys
Kinematic Chain
Knot
L - O
Launch Script
Local Coordinate System
Lofting
Map Bias
Mapping Coordinates
Maps
Material/Map Hierarchy
Materials
Matte Object
MAXScript
Metal Shading
Modal/Modeless
Modifier Stack
Modifiers
Morphing
Multiplicity
Multiplier
Multiplier Curve
Network Manager
Network Rendering
Network Rendering Server
Normals
NTSC
NURBS
NURBS Curve
NURBS Model
NURBS Surface
Object Motion Blur
Omni Light
Opacity Falloff
Origin
Orthographic Views
Out of Range Types
Overshoot
P - R
PAL
Parameter Space
Parametric
Particle System
Patch
Path
Perspective Views
Phong Shading
Pivot Point
Plug-Ins
Point
Point Curve
Point Surface
Precedence
PRJ/3DS Files
Procedural Maps
Projector Light
Queue Manager Client
Ray-Trace Bias
Ray-traced Shadows
Real Time
Red, Green, Blue/Hue, Saturation, Value
Reference
Refine
RLA Files
Rotoscoping
S - W
Sample Range
Scanline Renderer
Scene Motion Blur
Script
Script Editor Window
Scripted Utility Panel
Scripting
Segment
Self-Illumination
Shadow Maps
Shapes and Splines
Shininess/Shininess Strength Settings
SHP Files
Smoothing Groups
SMPTE
Space Warps
Spline
Startup Script
Subtractive Opacity
Super Black
Tangents
Targa Files
TCB (Tension, Continuity, Bias)
Ticks
TIFF Files
Tile/Mirror
Track View Hierarchy Icons
Tracks
Trajectory
Transforms
UVW Coordinates
Vectors/Vector Handles
Video Safe Frame
Viewport (Interactive) Renderer
Virtual Frame Buffer
VUE file
Wireframe Mode
World Coordinate System


Achieving Particle Motion Blur

Particle motion blur is actually a combination of varying the opacity and the length of particles based on their speed. To accomplish this requires coordination between material assignment and the various settings in the particle systems. Specifically, the following items must be in place:

  • The Particle MBlur map must be in the material that’s assigned to the particles. For best results, it should be assigned as an opacity map.
  • The particle system must support the Particle MBlur map. Currently this includes PArray, PCloud, Super Spray, and Blizzard.
  • In the Particle Rotation rollout of the particle system, the Direction of Travel option under Spin Axis/MBlur Controls must be chosen.
  • In this same area, the Stretch spinner must be greater than 0 to stretch the particles as a percent of their length based on the particle Speed setting.
  • The correct type of particle must be used. MBlur works on all particle types, except Constant and Facing.


Adaptive Beveling

There’s a new flyout button in the toolbar of the Bevel Deformation dialog that provides three types of beveling: Normal, Adaptive Linear, and Adaptive Cubic.

Normal beveling is the 3DSMax 1.x form of beveling, in which the beveled shape remains parallel with the original, no matter what the crotch angle of the shape. Steep crotch angles combined with excessive bevel amounts results in overshoots at the crotch.

Adaptive beveling alters the length of the bevel shape based on the crotch angle. Linear adaptive alters the length-to-angle in a linear fashion while cubic alters it more on steep angles than on shallow angles, producing a subtly different effect. Both forms of adaptive beveling result in nonparallel beveled edges, and both forms are less likely to produce invalid bevels due to overshoots at the crotch.

To see the differences in the three types of beveling, loft a star shape along a straight path and apply a bevel. When you switch between the three types of beveling, you’ll see the difference in the bevel outline. Alter one of the radii of the star to examine the beveling with shallow and with sharp crotch angles.


Alternate ENTER Keys

If you have a number pad on your keyboard, you can use the Number-Pad ENTER key as an alternative to using SHIFT-ENTER in the MAXScript Listener and Script Editor windows to execute commands. You may find the Number-Pad ENTER key faster and easier to use than SHIFT-ENTER.


Atmospheric : MAXWrapper

The Atmospheric class lets you set up volumetric rendering effects with the scripter. You can create atmospherics like combustion and fog, access various properties on them and maintain their gizmo list of nodes such as lights and atmospheric helpers.

You can determine what atmospherics are available using the showclass function as follows:

showclass "*:atmospheric.*"

This displays all the atmospheric classes and the properties accessible on each.

Atmospherics have several common properties and methods:

properties

<atmos>.name : string, the name as it appears in the env. dialog list

<atmos>.numGizmos : integer, readonly

methods:

getGizmo <atmos> <index>

retrieves the indexed gizmo node from the atmospheric, a light or atmospheric helper, for example. Index is 1-based.

deleteGizmo <atmos> <index>

deletes the indexed gizmo from the atmospheric

appendGizmo <atmos> <node>

appends the node to the gizmo list on the atmospheric. It must be of the right kind for the atmospheric, lights for volumeLights, helper gizmos for combust, etc.

Example:

atmos = combust density:20 outer_color:red

appendGizmo atmos $SphereGizmo01


Automatic Secondary Flare Parameters

Secondary flares are the small circles you would normally see coming out from the source of the lens flare along an axis relative to the camera position. As the camera position changes relative to the source object, the secondary flares move. These secondary flares are automatically generated when this option is active in the Preferences section of the dialog box.

You can have groups of secondary flares, instead of just one set. Many of the controls in this dialog box are for a specific set of flares, not all sets.

Reference

Min: Controls the minimum size of secondary flares in the current set. This number is defined as a percentage of the overall image.

Max: Controls the maximum size of secondary flares in the current set. This number is defined as a percentage of the overall image.

Set 1: Specifies the set of secondary flares you are working with. You can have up to 15 sets of secondary flares, each with their own properties.

Axis: Defines the primary axis, in degrees, in relation to the camera view. Secondary flares for the current set will appear along this axis. You can set the axis from 0 to 5 degrees.

Quantity: Controls the number of secondary flares that appear in the current set of flares.

Sides: Controls the shape of the secondary flares for the current set. The default is circular, but you can choose from 3 to 8 sided secondary flares.

Arrow Buttons: Lets you move between settings for groups or sets of automatic secondary flares. The current set name appears to the right of the arrows.

On: Defines whether or a group or set of secondary flares is active or not.

Axial Fade: Determines whether or not axial fade is active for the current set of secondary flares.

Add Del: Lets you add or delete a set of secondary flares from your settings.

Gradients: Defines the gradient for the secondary flare.


Background (VRML)

The Background button displays the Sky Color, Ground Color, and Images rollouts. Use these rollouts to specify colors and images for the sky and ground in your VRML 2.0 world.

Reference

The Sky Colors rollout lets you provide a colored background to the world’s sky using a gradient of up to three colors. The sky is an infinite sphere that encloses the objects of the scene.

The Ground Colors rollout lets you provide a colored background to the world’s ground plane using a gradient of up to three colors. The ground appears inside the sky sphere and below the objects of the scene.

The Images rollout lets you specify a set of images that define a background panorama between the ground/sky backdrop and the objects in the scene. The panorama consists of six images, each of which is mapped onto a face of an infinitely large cube centered in the local coordinate system.


Batch Rendering

You can set up 3D Studio MAX to batch-render a series of scenes, even if you do not have a network or a network card installed on the computer you are using.

Reference

Using Microsoft’s Loopback Adapter you can setup the Network Renderer to function on a single non-networked computer. Although a Network Card is not required for Network Rendering, you still must set up the TCP/IP protocol to use the batch rendering capabilities of the Network Renderer. To do this, you must first install the MS Loopback Adapter, which allows packets of data to be sent out and returned ("looped back") to a single machine that does not have a network adapter card.

When the MS Loop Back Adapter and the TCP/IP protocol are correctly installed, set up the machine as you would any other machine for Network Rendering. Both the Manager and Server programs must be running and correctly communicating with one another before launching 3D Studio MAX. Then you can use the machine to submit multiple jobs to itself to execute batch renders.

How To

To add the MS Loopback Adapter

  1. In the Control Panel, double-click the Network icon.
  2. In the Network dialog, click the Adapters tab to display the Adapters panel.
  3. Click the Add button
  4. In the Network Adapter Card list, scroll down and choose MS Loopback Adapter.
  5. Click OK.

    6. The MS Loopback Adapter Card Setup prompts you for the frame type.

  6. Choose the frame type that corresponds to your network protocol. The default setting is 802.3, which should work for most systems. If you do not know what to enter, ask your network administrator, or use the default.
  7. Click OK.
  8. Insert the NT Setup disk and click Continue.

    9. The MS Loopback Adapter should be added to the Network Adapters list.

    For the MS Loop Back Adapter to function correctly, you must set up the TCP/IP protocol and reboot your machine. See Configuring TCP/IP.

Next Step:

Troubleshooting


Bend : Modifier

constructor

bend ...

properties

.angle angle default: 0.0

.direction float default: 0.0

.axis integer default: 2, // z

.limit boolean default: FALSE default:

.upperlimit float default: 0.0

.lowerlimit float default: 0.0


Bitmap : Value

The Bitmap class provides low-level access to MAX bitmaps.

constructors

bitmap width height [filename:"name"] [numframes:<number>]

create an empty bitmap

openBitMap "filename"

open an existing image file

selectBitMap [caption:"open_dialog_title"]

throw up a file open dialog

copy <bitmap>

copy an existing bitmap

properties

<bitmap>.filename

<bitmap>.palette

yields an array of 256 colors (a bug in current MAX SDK prevents working with paletted files of other than 256 entries). Take care accessing this array with colors indexes retrieved by the getIndexedPixels() function described below, because these indexes are 0-based and MAXScript array indexes are 1-based. Yields undefined if the bitmap is not paletted.

<bitmap>.frame

current frame number in a multi-frame file

<bitmap>.numframes

number of frames in a multi-frame file, yields 1 for a single image file

read-only properties

<bitmap>.height

<bitmap>.width

<bitmap>.gamma

<bitmap>.aspect

methods

display <bitmap>

open a virtual frame buffer (vfb) displaying the image

unDisplay <bitmap>

close any open vfb

save <bitmap>

save current state of bitmap make sure the filename has been set first

close <bitmap>

close any open-for-output bitmap file. A bitmap file is opened for output when you call save on it the first time

copy <bitmap> [dest_bitmap]

creates a copy of the 1st argument. If the optional destination bitmap is supplied will copy image into that bitmap, scaling as necessary to fit dest. If not supplied, will create a brand-new bitmap instance.

gotoFrame <bitmap>

position multi-frame file (avi, flc, etc.)

getPixels <bitmap> <coord_point2> <num_pixels>

retrieve a sequence of pixels from a row in the bitmap as an array of color values. The point2 arg specifies the starting pixel coordinate with 0,0 at the top-left-hand pixel. The sequence must come from one row only; you can't retrieve a sequence of pixels that spans multiple rows. Using any out of-bounds coordinates or retrieving over row boundaries will fail and yield an empty array.

setPixels <bitmap> <coord_point2> <color_value_array>

sets the sequence of pixels in a row in the bitmap starting at the point2 coordinate to the values in the given array. The number of pixels to set is taken from the size of the array. As with getPixels(), you cannot set pixel sequences across a row boundary.

getIndexedPixels <bitmap> <coord_point2> <num_pixels>

retrieve a row of pixels as an array of palette index numbers. The point2 arg specifies the starting pixel coordinate with 0,0 at the top-left-hand pixel. The index numbers are origin 0. Note that this is in keeping with indexed color conventions but not MAXScript's. Take care accessing any retrieved palette array using these numbers because the retrieved palette is returned as a MAXScript array and these arrays use 1-based indexes. You cannot get pixels sequences that cross row boundaries.

setIndexedPixels <bitmap> <coord_point2> <number_array>

sets the row of pixels starting at the point2 coordinate to the color indexes in the given array. The number of pixels to set is taken from the size of the array. The color indexes are zero-based. You cannot set pixels sequences that cross row boundaries.


Chamfer

Chamfer creates a curve that is a straight bevel between two parent curves.

Chamfer connecting two curves

When you turn on the Chamfer button, or while a chamfer curve sub-object is selected, a rollout with the Chamfer parameters appear.

The lengths are the distance from the intersection (or apparent intersection) at which the chamfer segment is drawn.

Length 1: The distance along the first curve you click.

Length 2: The distance along the second curve you click.

Some length values make it impossible to construct the chamfer. If you set the length to an invalid value, the chamfer returns to a default position and displays in the error color (orange by default).

Trim First Curve and Trim Second Curve

These two areas let you control how the parent curves are trimmed. The controls are the same in each. "First" and "second" refer to the order in which you picked the parent curves.

Flipping the direction of a trim

Trim Curve: When on (the default), trims the parent curve against the fillet curve. When off, the parent isn’t trimmed.

Flip Trim: When on, trims in the opposite direction.

To create a chamfer curve:

  1. In a NURBS object that contains at least two curves, turn on Chamfer.
  2. Click one curve near the end that you want to connect. The end that will be connected highlights. Without releasing the mouse, drag to the end of the other curve that you want to connect. When the end that will be connected is highlighted, release the mouse.

    3. 3DS MAX creates the chamfer curve. Changing the position or the curvature of either parent curve can change the chamfer as well.

    The parent curves must be coplanar. The chamfer is not necessarily connected at the endpoints of the parent curvesyou can adjust its position with the chamfer’s Length parameters.

  3. Adjust the chamfer parameters.


Collections

Array : Collection :Mappable

ObjectSet : Collection :Mappable

PathName : Collection :Mappable

KeyArray : Collection :Mappable

MaterialLibrary : Collection :Mappable


Color : Value

All the places that colors turn up in MAXScript (such as wireColor, light color, etc.) are now represented by instances of the new Color class rather than Point3's as in earlier releases. You can still use point3's as color specifiers for compatibility with old code.

constructors:

color r g b [a]

r,g,b and optional alpha in the range 0.0 to 255.0

<point3> as color

interprets x as r, y as g, z as b

properties:

<color>.red or .r

all floats in the range 0.0 to 255.0

<color>.green or .g

<color>.blue or .b

<color>.alpha or .a

<color>.hue or .h

<color>.saturation or .s

<color>.value or .v

operators

<color> + <color_or_number>

numbers operate on r,g,b channels equally

<color> - <color_or_number>

<color> * <color_or_number>

<color> / <color_or_number>

- <color>

<color> = <color>

<color> != <color>

methods

random <from_color> <to_color>

random color between to given colors

composite <color1> <color2>

composite color1 over color2 through color1's alpha


Connect to Support and Information

Launches your browser and connects to the Kinetix 3D Studio MAX Support page.

Reference

The URL for the support page for 3D Studio MAX is http://www.ktx.com/3dsmaxR2/html/support.html.

How To

To use the Internet to get support information for 3D Studio MAX

  • Choose Help/ Connect to Support and Information.


Deform Bevel

Almost every object that you encounter in the real world is beveled. Because it is difficult and expensive to manufacture a perfectly sharp edge, most objects are created with chamfered, filleted, or eased edges. Use Bevel deformation to simulate these effects.

Properties of Bevel deformation curves are:

  • One red curve for bevel amount.
  • Bevel values are specified in current units.
  • Default curve value is 0 units.
  • Positive values reduce the shape bringing it closer to the path.
  • Negative values add to the shape moving it away from the path.

When shapes are nested, the bevel direction is reversed for interior shapes.

How To

To use Bevel deformation:

  1. Select a loft object.
  2. Click Bevel in the Deformations rollout.
  3. Adjust the deformation curve.


Deform Fit

Fit is the final button in the Deformations rollout. This type of deformation uses two Fit curves that define the top and side profiles of your object.

Use Fit deformation when you want to generate loft objects by drawing their profiles.

How To

To use Fit deformation:

  1. Select a loft object.
  2. Click Fit in the Deformations rollout.
  3. Get shapes as Fit curves.


Deform Scale

Objects such as columns and bugles can be lofted from a single shape that only changes scale as it travels along a path. Use Scale deformation when you want to make these types of objects.

Properties of Scale deformation curves are:

  • Two curves, red for X-axis scaling and green for Y-axis scaling.
  • Default curve values at 100%.
  • Values greater than 100% make the shape larger.
  • Values between 100% and 0% make the shape smaller.
  • Negative values scale and mirror the shape.

How To

To use Scale deformation:

  1. Select a loft object.
  2. Choose Loft in the Modifier Stack.
  3. Click Scale in the Deformations rollout.
  4. Edit the deformation curves for the X axis and Y axis.


Deform Status Bar

Reading the Deformation Dialog

The Deformation dialogs for Scale, Twist, Teeter, and Bevel all use the same layout. You can use buttons in the window's toolbar and prompt area to perform the following functions:

  • Change deformation curve display.
  • Edit control points.
  • Navigate the Deformation dialog.

Reference

The following topics describe how to work with curves in the Deformation dialogs.

  • Deformation Grid: The view where the deformation curves are displayed is called the deformation grid. This grid charts the value of the deformation along the length of the path.

The main grid components are:

  • Active area: The light colored area of the grid defines the first and last vertex boundaries of the path. The ends of the deformation curve lie on each boundary and cannot be moved off of the boundary.
  • Horizontal lines: Mark deformation values on the vertical scale. The meaning of the deformation values varies for the type of deformation displayed. The following table lists each deformation curve type and the meaning of the deformation values.

Deformation Type Deformation Value

Scale Percentage

Twist Rotation Angle

Teeter Rotation Angle

Bevel Current Units

The thick horizontal line at 0 represents the deformation value at the loft path.

  • Vertical lines: Mark levels of the path. The levels displayed vary with the Adaptive Path Steps setting in the Skin Parameters rollout.
  • If Adaptive Path Steps is checked, levels are displayed at all path vertices, and shape locations.
  • If Adaptive Path Steps is unchecked, levels are only displayed at path vertices.
  • Path Ruler: Measures the length of the path. The values on the ruler measure percentage along the path. You can drag the path ruler vertically in the Deformation dialog.
  • Deformation Curves: You can see one or two curves in the Deformation dialog based on the deformation type and your curve display setting. The curves are color-coded by axis:
  • A red curve displays deformation along the shape's local X axis.
  • A green curve displays deformation along the shape's local Y axis.
  • Control Point Fields: At the bottom of the Deformation dialog are two edit fields. When a single control point is selected these fields display the path location and deformation amount of the control point.
  • Control Point Position: The left field displays the location of the control point on the loft path as a percentage of the total path length.
  • Control Point Amount: The right field displays the deformation value of the control point.

Navigating the Deformation Dialog

You will want to zoom and pan around the view of the deformation grid as you edit the curve values. The Deformation dialogs carry their own view navigation buttons in the lower-right corner.

  • Zooming the View: The Zoom buttons change the view magnification value.
  • Zoom Extents: Changes the view magnification so the entire deformation curve is visible.
  • Zoom Horizontal Extents: Changes the view magnification along the path length so the entire path area is visible in the dialog.
  • Zoom Vertical Extents: Changes the view magnification along the deformation values so the entire deformation curve is displayed in the dialog.
  • Zoom Horizontally: Drag horizontally to change magnification along the path length.

· Drag right to increase magnification.

· Drag left to decrease magnification.

  • Zoom Vertically: Drag vertically to change magnification along the deformation value.

· Drag up to increase magnification.

· Drag down to decrease magnification.

  • Zoom: Drag vertically to change magnification along both the path length and deformation value preserving the curve aspect ratio.

· Drag up to increase magnification.

· Drag down to decrease magnification.

  • Zoom Region: Drag a region on the deformation grid. The region is then magnified to fill the deformation dialog.
  • Panning the View: You can use two methods to pan the view without changing magnification:
  • Pan: Drag in the view to move in any direction.
  • Scroll bars: Drag the horizontal and vertical scroll bars to pan the view in a single direction.


Deform Tools

Displaying Deformation Curves

You can display one or both of the deformation curves by using the curve display buttons near the top left corner of the Deformation dialog.

Turn on the following buttons to display deformation curves:

  • Display X Axis: Displays only the X axis deformation curve in red.
  • Display Y Axis : Displays only the Y axis deformation curve in green.
  • Display XY Axes: Displays X axis and Y axis deformation curves together, each using its own color.

If a deformation uses only one curve, such as Twist, buttons for working with a second curve are disabled. The disabled buttons are: Make Symmetrical, Display X Axis, Display Y Axis, Display XY Axes, and Swap Deform Curves.

Setting Curve Symmetry

You can apply the same deformation to both axes of a shape using the Make Symmetrical button.

Make Symmetrical is both an action button and a curve editing mode. Turning Make Symmetrical on has the following effect:

  • When a single curve is displayed, it copies the displayed deformation curve to the curve for the hidden axis.
  • When both axes are displayed, the Apply Symmetry dialog appears. Click the button for the curve you want applied to both axes.
  • Any changes you make to the selected curve are duplicated on the other curve.

When Make Symmetrical is not selected, curve editing is applied only to the selected curve.

Swapping Deformation Curves

Use Swap Curves to copy curves between the X axis and Y axis. This button has no effect when the Make Symmetrical button is selected.

Click Swap Curves to copy the X axis curve to the Y axis, and the Y axis curve to the X axis. It doesn't matter which curve is currently displayed or selected.

Editing Deformation Curves

When you first apply a deformation, you start with a straight line using a constant value. To produce more elaborate curves, you insert control points and change their properties.

Use the buttons in the center of the Deformation dialog toolbar to insert and change deformation curve control points.

  • Control Point Types: Control points on a deformation curve can produce curves or sharp corners depending on the control point type. The three types are:
  • Corner: Non-adjustable linear control point producing a sharp corner.
  • Bezier Corner: Adjustable Bezier control point with discontinuous tangent handles set to produce a sharp corner. This type produces a curve that starts out looking like the corner type but it has control handles like the Bezier Smooth type.
  • Bezier Smooth: Adjustable Bezier control point with locked continuous tangent handles set to produce a smooth curve.
  • Selecting Control Points: Use the Move Control Point and Scale Control Point buttons with standard 3DS MAX selection techniques to select control points.

Inserting and Deleting Control Points

The most basic change you can make to a deformation curve is the insertion and deletion of control points.

  • Inserting Control Points: The Insert Control Point flyout contains two buttons for inserting two different control point types.
  • If you know which type of control point you need, you can save time by using the insert button for that type of point.
  • If you are not sure which type of control point you need, or change your mind later, you can convert the point to the other type.

Both Insert Control Point buttons put you in an insertion mode. Right-click or choose another button to exit the mode.

  • Insert Corner Point: Click anywhere on a deformation curve to insert a corner control point at that location.
  • Insert Bezier Point: Click anywhere on a deformation curve to insert a modified Bezier control point at that location. The tangent handles of the Bezier control point are set to maintain the shape of the original curve before the point was inserted.
  • Deleting Control Points: You can choose between two methods of deleting control points from your deformation curve.
  • Delete Control Point: Select one or more control points and click this button to delete them.

Shortcut: Delete Control Point=DELETES

  • Reset Curve: Deletes all but the end control points and sets the curves back to their default values.

Transforming Control Points

You use the Move and Scale buttons in the Deformation dialog toolbar to transform control points and Bezier tangent handles.

  • Moving Control Points: The Move Control Point flyout contains three buttons for moving control points and Bezier handles.

Control points are constrained horizontally to stay between the points to either side. The amount of horizontal constraint is determined by the control point type:

  • Corner control points can be moved very close together, until one is directly above the other.
  • Bezier control points are constrained to get no closer than the length of their tangent handles.
  • Move Control Point: Changes both the amount of deformation and the location where the deformation occurs.
  • Move Vertical: Changes the amount of deformation without changing the location where the deformation occurs.
  • Move Horizontal: Changes the location where the deformation occurs without changing the amount of deformation.

You can also move single control points by entering values in the control point Position and Amount fields at the bottom of the Deformation dialog.

  • Moving Bezier Tangent Handles: You can use the Move Control Point buttons to drag a tangent handle's angle and magnitude on Bezier Smooth and Bezier Corner vertices.

Dragging a tangent handle has the following constraints:

  • Tangent angles cannot move beyond vertical. This prevents deformation curves from doubling back on themselves.
  • Tangent magnitudes cannot move beyond the preceding or next control point on the path.
  • Pressing SHIFT while moving a Bezier Smooth tangent handle converts the control point to a Bezier Corner type.
  • Scaling Control Points: You can scale the value of one or more selected control points using the Scale Control Point button. Use this button when you want to change only the deformation amount of selected control points while maintaining their relative ratio of values.
  • Scale Control Point: Scales the value of selected control points with respect to 0.
  • Drag down to reduce values.
  • Drag up to increase values.

How To

To drag Bezier tangent handles:

  1. Select one or more Bezier Smooth or Bezier Corner control points to display their tangent handles.
  2. Click one of the Move Control Point buttons.
  3. Drag on any tangent handle.
    • Only the tangent handle you drag is affected. Tangent handles on other selected control points do not change.
    • If the tangent handle you drag is part of a Bezier Smooth control point, both handles move to maintain the Bezier Smooth type.
    • If the tangent handle you drag is part of a Bezier Corner control point, only that single handle moves.

To move a control point using the Position and Amount fields:

  1. Select a single control point.
  2. Do one of the following:
    • Move the control point horizontally by entering a value in the Position field.
    • Move the control point vertically by entering a value in the Amount field.

Changing Control Point Types:

You can change control point types at any time by Right-clicking on a selection of one or more control points.

To change the control point type:

  1. Select one or more control points.
  2. Right-click any selected control point.
  3. Choose a control point type from the pop-up menu.

    4. The following conditions apply to changing control point types:

    • The first and last control points must use the Corner or Bezier Corner type.
    • Converting a Bezier Smooth point to a Bezier Corner point unlocks the tangent handles but does not change their position. The curve appears smooth until you drag one of the tangent handles.
    • Converting a Bezier Corner point, or an inserted Bezier point, to Bezier Smooth locks the tangent handles and changes their position and magnitude. The handles are rotated to the average between their two angles. The handle magnitudes are averaged and set equal.


Deform Twist

  • Objects that spiral or twist along their length can be created using Twist deformation. Twist specifies the amount of rotation about the path.
  • Properties of Twist deformation curves are:
  • One red curve for shape rotation about the path.
  • Default curve value is 0 degrees of rotation.
  • Positive values produce counter-clockwise rotation, when viewed from the start of the path.
  • Negative values produce clockwise rotation.
  • Twist deformation and Banking both produce rotation about the path. Twist rotation is added to a shape after the banking angle is applied.

You can use Twist deformation as a way of exaggerating or reducing the amount of banking.

How To

To use Twist deformation:

  1. Select a loft object.
  2. Choose Loft in the Modifier Stack.
  3. Click Twist in the Deformations rollout.
  4. Edit the single deformation curve to specify rotation about the path.


Deformations

You can create very complex loft objects by placing shapes along a path, but this method has some limitations.

  • What if you wanted your shape to rotate as it traveled along the path to produce screw threads?
  • What if you wanted your shape to change scale along the path to produce an ornate column?

Manually creating and placing shapes along the path to produce these models would be a difficult task. 3D Studio MAX solves this problem through the use of loft deformation curves. The deformation curves define changes in scale, twisting, teetering, and beveling along the path.

You gain access to loft deformation curves through the buttons in the Deformations rollout in the Modify panel.

  • Each deformation button displays its own deformation dialog.
  • You can display any or all of the deformation dialogs simultaneously.
  • The button to the right of each deformation button is a toggle to enable and disable the deformation's effect.

Deform Scale

Deform Twist

Deform Teeter

Deform Bevel

Deform Status Bar

Deform Tools

Adaptive Beveling

Deform Fit

How To

To apply deformations to a loft:

  1. Select a loft object.
  2. Click the Modify panel and choose Loft from the Modifier Stack.
  3. Expand the Deformations rollout.
  4. Click the deformation that you want to use.

    5. The window for the selected deformation appears.

To toggle the deformation effect:

  • Click Enable/Disable, to the right of the deformation buttons.


Edit Adobe Premiere Video Filter

Provides access to animated image-processing filters from Adobe Premiere. A single filter event in the queue can be used to apply multiple Premiere Video filters.

Reference

If you choose the Adobe Premier video filter and click the Setup button, a third-party dialog box lets you set parameters specific to the filter.

How To

To edit filters within the Adobe Premier video filter event

  1. Select the Adobe Premiere Video Filter in the Queue.
  2. Click Edit Current Event.
  3. Click the Setup button in the resulting sub-dialog.

    4. The Adobe Premiere Plug-In Setup dialog appears.

  4. Use this dialog to add and adjust the filters you want to use.


Edit Input Image Event

Edit Image Input Event

Image Input events add a still or moving image to the scene. Image Input events place an image in the queue, but unlike Scene events, the image is a file that was saved beforehand or a device-generated image. The image can be in one of the following file formats:

  • avi
  • bmp
  • Autodesk animation format (flc, fli, cel)
  • gif
  • ifl
  • jpeg
  • rla
  • tga
  • tif
  • yuv

Reference

Image Input

Files: Lets you choose the bitmap or animation image file.

Devices: Lets you choose an installed hardware input device, for example, a digital disk recorder.

Options: Displays the Image Input Options dialog to allow you to set up alignment, size, and frame range for the Image Input.

Cache: Stores a bitmap in memory. If you are using a single-image bitmap, you can choose this option. Video Post won’t reload or scale the image for each frame.

Image Driver

These buttons are available only when you choose a device as the image source.

About: Provides information on the source of the image-handler software used to bring the image into 3D Studio MAX.

Setup: Displays a setup dialog specific to the plug-in. Some plug-ins may not use this button.

Video Post Parameters

VP Start Time/End Time: Sets the starting and ending frames for the selected event within the overall Video Post queue. Video Post renders the event over the number of frames specified here.

Enabled: Enables or disables the event. When this box is clear, the event is disabled and Video Post ignores it when rendering the queue. Each event must be disabled individually. For example, disabling a composite layer event does not disable the composited image events. The range bars of disabled events are grayed out in the event track area.

How To

To align the input image, do one of the following in the Image Input Options dialog

  • Choose Presets and then click one of the preset alignment buttons.
  • Choose Coordinates and then enter the X,Y coordinates for the image's location.

The upper-left corner is (0,0) for both the input image and the output frame. Increasing X moves the image to the right, and increasing Y moves the image down. Negative values move the image in the opposite direction. X and Y values specify pixels.

To set the input image size, do one of the following in the Image Input Options dialog

  • Choose Do Not Resize to maintain the image's original resolution.
  • Choose Resize to Fit to change the image size to match the output frame.

This can change the image resolution, causing it to be rescaled for every frame.

  • Choose Custom Size and then enter the width and height of the image in the output frame.

To control playback of an animated image

  1. In the Image Input Options dialog, set the input animation frame range and speed.
  2. Select Loop at the End if you want the animation to repeat. Clear Loop at the End if you want the animation to stop after playback.

    3. This option applies only when the input animation is shorter than the final video.


Edit Mesh Modifier

The Edit Mesh Modifier exists primarily for backward compatibility with 3DS Max 1.x.Edit Mesh is a modifier you add to the stack of an object. The functionality of Edit Mesh has been replaced by the new Editable Mesh modifier.

NOTE: It’s important to note that there are several new features that have been developed for the Editable Mesh Modifier that are not included in the Edit mesh modifier. So, whenever possible, we recommend using the Editable Mesh Modifier rather than the Edit Mesh modifier.

Edit Mesh allows you to:

  • Converting objects to a mesh, sometimes referred to as a rats-nest mesh. Once converted, the mesh can be edited at a whole-object or sub-object level.
  • Making a sub-object selection of geometry available to other modifiers in the stack.
  • Returning the selection set in the stack to the whole-object level.

Edit Mesh converts objects into a triangular mesh made of three components: vertices, faces, and edges. For spline objects, only vertices are available, since splines have no faces or edges when converted to meshes.

The Edit Mesh modifier can also be used to edit existing mesh objects. These might be imported from another program or previously converted from a parametric object with Edit Mesh.

Since Editable Mesh is a superset of Edit Mesh Refer to the Editable Mesh Topics Listed below for a complete parameter reference.

Editable Mesh Modifier (Object)

Editable Mesh Modifier (Face)

Editable Mesh Modifier (Vertex)

Editable Mesh Modifier (Edge)

How To

Applying Edit Mesh

As a general review, this is how you apply the Edit Mesh modifier:

  1. Select an object.
  2. Go to the Modify command panel.
  3. Click the Edit Mesh button to apply the modifier to the object. If the object cannot be edited with Edit Mesh, the button is grayed out.

    4. The Sub-Object button is turned on, with Vertex level as the default.

  4. To access Object level, turn off the Sub-Object button.

Using Edit Mesh

Once you make a selection with Edit Mesh, you have these options:

  1. Use the options supplied on the Edit rollout to modify the selection. Later topics discuss these options for each of the mesh components.
  2. Transform or Shift-Clone the selection. These are the same techniques you would use for any object.
  3. Pass the selection to a later modifier in the stack. You can apply one or more standard modifiers to the selection.
  4. 4 At the Face selection level, you can use the options on the Edit Surfaces rollout to alter the surface characteristics of selected faces.


Edit Pseudo Alpha Filter

Creates an alpha channel for the image based on the image’s first pixel (the upper-left corner pixel). All pixels that have the same color as this pixel become transparent.

Reference

Because only one pixel color becomes clear, edges of the opaque areas are aliased. The main use for this filter is when you want to composite a bitmap whose format does not have an alpha channel.

There is also a Pseudo Alpha Layer Event.

There are no Setup options for this filter.


Error Messages

All compile and runtime error messages reported in the listener window are preceded by a comment symbol. ‘—‘, so that you can reselect and evaluate code in the listener that might have embedded error messages and not have them cause syntax errors.

Call stack trace-back display: Helps locate the point in code where a runtime error has occurred. When a running script stops because of an error, a function call trace is now displayed along with the error message. This shows the current call nesting of MAXScript functions at the point of error, inner ones first to outermost ones last.

Runtime error reporting: Shows the error line in the source window if the running code was compiled from a source file (either via fileIn() or evaluating code in a script editor). If the source file is not currently open in a window, MAXScript opens the file in a new editor window. The line containing the code in which the error occurred is highlighted and scrolled into view. The error message is either displayed in a message box, or the listener window. In both cases, the message box or listener window is brought to the front and the editor window containing the code causing the error is immediately behind that.

Frame dump to function callback trace: The callback trace shows the nesting of MAXScript function calls that are in effect when an error occurs. The frame dump lists all the local variables and function parameters for each of the nested functions at the time the error occurred.

For-loop block frame dump: Theframes appear in the stack trace-back, labeled with the name of the loop variable for identification. The loop variable is displayed and any locals in the loop body are shown in this frame.


Exiting MAX

The quitMAX() primitive function lets you exit MAX under script control. This function is typically used in batch render scripts. The function has the form:

quitMAX [#noPrompt]

If the #noPrompt optional argument is not specified and there are unsaved changes in the scene, MAX will prompt with its standard save changes dialog.


Exporting to VRML 2.0

The VRML 2.0 Export dialog contains the following options:

Initial View

Sets the entry camera for the scene and controls what first appears in the browser. If there are no cameras in the scene, the scene appears with a default viewpoint (which may give only a partial view).

All scenes should have at least one camera, so you can control how the scene initially renders. Add more cameras to the scene than you might ordinarily use, so the viewer can switch between cameras if his VRML 2.0 browser allows it. This lets you set up your scene with pre-installed vantage points. Otherwise, if the world is very large, it can overpower the viewer’s system and make navigation difficult. Some browsers animate camera moves, so the extra cameras can make viewing the scene more pleasant.

Generate

Selecting any of these options increases the size of the VRML 2.0 file generated by the export process.

Export Hidden Objects: Exports hidden objects. By default, hidden objects are not exported.

Normals: Generates real normals for objects. Some browsers need normals to do smoothing properly. Select this box if you are exporting geometry that uses smoothing groups in 3D Studio MAX, to see the correct shading. By default, this option is clear.

Indentation: Indents the VRML 2.0 source code so it is easy to read. By default, this option is selected.

Flip-Book: Exports the scene to multiple files. The sample rate is set in the in the Flip-Book section of the Sample Rates dialog. The filename you specify becomes the base for the sequence of files. For example, if you specify the filename test.wrl, choose one file per animation frame, and have 5 frames, 3D Studio MAX exports the following:

Test.txt contains general info, start/stop times, and number of frames.

Test0.wrl though test4.wrl are snapshots of the animation in frames 0 through 4.

Color Per Vertex: Exports the vertex colors of geometry. If selected, the Color Per Vertex Source lets you choose the source of the vertex color.

Use Max’s: Exports the current vertex color of the object defined in the scene.

Calculate On Export: Calculates the defuse color at the vertices during export, based on the current lighting and the objects’ material.

Primitives: Exports VRML 2.0 primitives, which reduces the file size because these primitives are described very simply (for example, a sphere is described by its radius). To see how many polygons are in the scene, clear this box to export 3D Studio MAX primitives, which have an indexed face set for each object. By default, this option is selected.

Coordinate Interpolators: Exports animation effects that involve actual modifications of the mesh objects, and not just move, rotate, and scale. Examples include the Taper, Bend, and Twist modifiers, and space warps. This option can generate large files, because the exporter has to calculate the position of every vertex for this kind of animation.

If your animations aren't exporting correctly, try exporting with this option chosen. An example of animation motion requiring Coordinate Interpolators is a stick figure made up of simple rectangular boxes that have MAX bones Linked XFormed to the boxes as a skeleton. Even though these boxes move through space without any noticeable shape morphing, their motion will not be exported without the use of Coordinate Interpolators, because their motion isn't derived from simple transforms. Any animation achieved using the modifier stack or object parameters needs CoordinateInterpolators.

Certain types of animations are not possible with CoordinateInterpolators, for example, when the mesh being animated changes size between frames. An example of this is animating the number of segments in a sphere. 3D Studio MAX warns you if it detects this type of animation on export.

Options

Provides special controls for VRML 2.0 output.

Initial Navigation Info: Specifies the Navigation Info helper object to use when the world loads in the browser.

Initial Background: Specifies the Background helper object to use when the world loads in the browser.

Initial Fog: Specifies the Fog helper object to use when the world loads in the browser.

Sample Rates: Displays a dialog that lets you specify sample rates for controller-based and coordinate-interpolated animation, as well as the Flip-Book output rates. Setting sample rates lets you trade off between animation fidelity and file size. The default values give good results in most cases. For the greatest animation precision, use a lower number (a higher sampling rate).

World Info: Lets you enter information about the world. This has no effect on the visual appearance or behavior of the world. Some browsers can display what you enter in the Title field, for example, in the browser window’s title bar. You can use the Info field to provide author, version, and copyright information.

Digits of Precision

Sets the number of decimal points used for calculating dimensions. The default of 4 is usually sufficient. Set this number greater than 4 if parts of your world were created 100,00 units away from the center of the scene. Setting the value to 3 reduces the file size.

Bitmap URL Prefix

Lets you specify a URL prefix for bitmaps assigned to objects in the scene. You must keep all your texture bitmaps in either the same directory as the .wrl file or in one other location, which you specify here. If your maps are stored in other locations, you will have to manually search for the map in the .wrl and change its location. Not all browsers will display error messages if the maps aren’t found on the WWW server.

Use Prefix: Enables the prefix mechanism. If this box is clear, image maps must be in the same location as the .wrl file.

Prefix: Adds the prefix you enter here to the names of all assigned bitmaps. The name can be a full URL (beginning with HTTP), or it can be a relative path (a subdirectory of the location of the VRML 2.0 file). For example, if you enter "Maps" for the prefix, when the browser opens a VRML 2.0 file that has a texture map assigned to it, it will look for the subdirectory "Maps." “Maps” must be a directory that is directly under the directory where the VRML 2.0 file resides.

Use forward slashes (not backslashes) to enter longer paths. For example "3dsMAX/maps."

How To

  1. Choose File/Export.
  2. Select VRML 2.0 (.WRL) as the file format.
  3. Enter a file name and click Save.
  4. In the VRML 2.0 Export dialog, set options as described above.


Extrude : Modifier

constructor

extrude ...

properties

.amount float default: 25.0

.segs integer default: 1

.capstart boolean default: TRUE

.capend boolean default: TRUE

.captype integer default: 0

.output integer default: 0

.mapcoords boolean default: FALSE


Fillet

Fillet creates a curve that is a rounded corner between two parent curves.

Fillet connecting two curves

Reference

When you turn on the Fillet button, or while a fillet curve sub-object is selected, a rollout with the fillet parameters appear.

Radius: The radius of the fillet arc, in the current 3DS MAX units. Default = 10.0.

Tip: If the fillet you initially create is in an error stateit appears as a straight line in the error color (orange by default)often this is because the radius is not large enough to bridge the distance between the two curves. Increasing the Radius value gives you a correct fillet. The fillet becomes an arc displayed in the dependent object color (green by default).

Trim First Curve and Trim Second Curve

These two areas let you control how the parent curves are trimmed. The controls are the same in each. "First" and "second" refer to the order in which you picked the parent curves.

Trim Curve: When on (the default), trims the parent curve against the fillet curve. When off, the parent isn’t trimmed.

Flip Trim: When on, trims in the opposite direction.

How To

To create a fillet curve:

  1. In a NURBS object that contains at least two curves, turn on Fillet.
  2. Click one curve near the end that you want to connect. The end that will be connected highlights. Without releasing the mouse, drag to the end of the other curve that you want to connect. When the end that you want to connect is highlighted, release the mouse.

    3. 3DS MAX creates the fillet curve, trimming the ends of the parent curve to match the fillet. The fillet is not necessarily placed at the endpoints of the parent curvesthis depends on the value of the Radius parameter, described below.

    Changing the position or the curvature of either parent curve can change the fillet as well.

    The parent curves must be coplanar.

  3. Adjust the fillet parameters, described below.


Garbage Collection

The function gc() enables the garbage collector to be invoked. Normally, the collector runs automatically when available memory runs low, so you don't need to bother about it. In some situations, it is useful to be able to force a collect so that you can ensure that a pause due to garbage collection will be delayed as long as possible.

You can also invoke the collector to cause any dangling open files to be closed. In some situations, a file can be left open if a runtime error occurs while it is still open. If the file object was being held in a local variable at this point, there may be no way to get at it from the listener to force a close and any subsequent attempts to open it may result in an "already open" error from the operating system. Running the collector will cause the file object to be reclaimed and this forces any open file associated with it to be closed.

The function takes no arguments and is called as follows:

gc ()

It returns the number of bytes free in the MAXScript heap after collection. Note that the collector may take many seconds to run if the heap is full of many small reclaimable objects.


Generating Unique Scene Node Names

The uniqueName() primitive lets you generate unique scene node names from a prefix string by adding a series of digits. The form is:

uniqueName <prefix>

Example:

$foo.name = uniqueName "foo"

This name is only guaranteed to be unique until the next scene node creation.


Glow Parameters

The glow of a lens flare is centered around the source object of the flare. The glow parameters let you control each aspect of the glow.

The glow settings use radial, circular, transparency, and size gradients. Glow gradients are subtler than flare gradients, because they are glowing an area larger than a pixel.

Reference

Size: Specifies the diameter of the glow of the lens flare as a percentage of the overall size of the frame. This value is separate from the overall size value set in the Lens Flare Properties . To animate the glow size, click the A button next to the spinner. The animated values can be adjusted in TrackView.

Glow Radial Color: Determines the color of the glow from the center of the glow to the outer edge. The left side of the gradient (0%) represents the center of the glow and the right side of the gradient (100%) represents the outer edge of the glow.

Glow Radial Transparency: Determines the transparency of the glow from the center of the glow to the outer edge. Only the whiteness values of the color are used. Brighter colors represent more opaque areas of the glow, where darker colors represent more transparent areas.

Glow Circular Color: Controls the color of the glow in a circular method, instead of a radial method, producing a gradient with a wide variety of colors. The gradient starts at the north position and proceeds clockwise.

Glow Circular Transparency: Controls the transparency of the glow in a circular method, instead of a radial method. The gradient starts at the north position and proceeds clockwise.

As the gradient progresses towards the interior, the circumference gets smaller, produces less variation in the gradients, and creates a subtle curve effect. To produce a linear effect, add gradient flags before and after the key flags.

Glow Radial Size: Controls the size of the radius of the glow. A darker color is interpreted as a smaller radius and a white color is interpreted as a larger radius. The gradient uses only the whiteness values of the colors.

You can set one or all of the gradients. The glow is composited on top of other parts of the lens flare. When you set the compositing methods, the radial color and circular color are locked (they use the same method). Radial transparency and circular transparency use the same compositing method.


Glow Previews

Like the lens flare module, the glow module has an interactive preview window. Also, like the lens flare module, you can preview the scene in the video post through the VP Preview button. However, for glows, you use a check box to activate the preview window, instead of a button.

The glow preview is also multi-threaded to take advantage of multiprocessor and updates every time you make a change to any of the glow settings that might effect the scene.

Glow is broken down into tabbed sections for control over each aspect of the Glow effect. The four tabs are:

Properties

Preferences

Inferno


Gradient Colors

Colors in 3D Studio MAX are interpreted in 2 different ways: RGB and HSV. In RGB (red, green, blue), you can select one of 256 shades of red, green, and blue, giving you a palette of 16.7 million colors (24 Bit). In HSV (Hue, Saturation, Value), you can select one of 256 hues of color, then adjust the saturation or the value of the color. The saturation can also be considered the blackness of a color and value can be considered the whiteness of a color.

For transparent and size gradients, you adjust the vertical whiteness slider just to the left of the RGB and HSV sliders. The white triangle on the right side of the vertical bar is the slider. This controls the overall value of the color in terms of HSV. In RGB terms, it is the same as adjusting all three colors equally at the same time. Higher values on the whiteness scale represent more transparency, or smaller sizes.


Gradient Options

Each gradient in LenzFX has a set of common options. To change gradient options, right-click the gradient itself, not the flags.

Reference

Reset: Resets the gradient back to a default solid gray. This action cannot be undone.

Load Gradient: Displays a file open dialog box where you can load a particular gradient. Gradients are saved with a .DGR extension.

Save Gradient: Displays a file save as dialog box where you can specify the path and filename for the gradient.

Load UV Map: Lets you load a bitmap image and use the varying colors of the bitmap as an animated gradient. LenzFX divides the total number of frames in the animation segment by the number of horizontal lines in the image. The resulting number determines which horizontal lines of the bitmap are used as gradients in LenzFX. For example, if the number of horizontal lines divided by the total number of frames results in 2, every other line of the bitmap will be used as a gradient. As the animation progresses, the next frame uses the next available line of the bitmap image as its gradient.

Flag Mode: Indicates you are using flags to adjust the colors of gradients, instead of a bitmap.

Compositing Methods: There are five color compositing methods. Each method works on a pixel-by-pixel basis when there are two or more overlapping colors. The compositing methods define how the colors are combined into a single color. When combining the colors, the algorithms evaluate each color channel of the color to find the end result. The default method is Low Value.

High Value: Selects the higher color value of the two colors. For example, if you had a color with RGB values of 255,210,255 and another with 225,240,225, the resulting color would be 255,240,255. This option generally results in a slightly brighter lens flare than the default settings.

Average: Calculates an average value between the colors. In the example above, the resulting color would be 240, 225, 240. This option generally results in a lens flare that is brighter than the default, but not as bright as High Value.

Low Value: Selects the lower color values, resulting in less intense lens flare and a more subtle overall effect. In the example above, the resulting color would be 225,240,225.

Additive: Adds colors values together, producing the brightest and most brilliant colors in a lens flare.

Subtractive: Subtracts colors values from each other, resulting in slightly muted and less intense colors.

These compositing methods may be applied to all types of gradients, except size gradients. The type of compositing being used for a gradient is noted above the gradient bar.

Compositing methods are applied to every gradient. Some gradients are linked together, so if you assign a specific compositing method to one, the compositing method is automatically assigned to the other.


Help Contents

Learning 3D Studio MAX

Displays the online tutorials for 3D Studio MAX

How To

To use the online tutorials

  • Choose Help/Learning 3D Studio MAX.


Inferno Settings

Infernos let you use lens flare to create explosions, fire, and smoke effects and add a bit of noise to any part of the lens flare. This noise comes in three types: Gaseous, Electric, and Fiery. You set Inferno effects in the Preferences section for each part of the lens flare. The lens flare part, such as glow, must also be active for Inferno to work correctly.

Reference

Gaseous: A loose and soft pattern, often used for clouds and smoke.

Fiery: Fractal patterns with bright, well defined areas, often used for fires.

Electric: Long, well defined tendrils that can be used to produce arcing electricity, when animated. By adjusting the quality of the pattern to 0, you can create the effect of water reflection.

Gas Qlty: When this button is enabled and the type of inferno effect is gaseous, the quality setting of the gas is locked and cannot be changed.

Lock Effect: Locks the inferno effect to the lens flare. When the lens flare moves across the screen, the inferno effect moves with it.

Lock Noise: Locks the noise patterns into the lens flare. When the lens flare is animated and moving across the screen, the noise pattern follows the flare.

Motion: Animates the Inferno effect if it is not locked. Use this spinner to set the speed of the inferno animation.

Direction: Specifies the direction, in degrees, of the inferno effect motion.

Note: The Motion and Direction spinners control the motion of the fractal pattern in the X and Y directions. You can control the Z direction using the Speed option under Inferno Parameters.

Quality: Specifies the overall quality of the fractal noise patterns in the inferno effect. Higher values result in more iterations of the fractals, more detail in the effect, and slightly longer render times.

ReSeed: The number that the fractal routines use as a starting point. Set this spinner to any number to create different fractal effects. The Reseed button randomly selects a new number.

Inferno Parameters

Size: Specifies the overall size of the fractal patterns. Smaller numbers produce small, grainy fractals. Higher numbers produce larger patterns.

Speed: Sets the overall speed of the turbulence in the fractal patterns as they are animated. Higher numbers produce faster turbulence in the pattern.

Base: Specifies the brightness of the colors in the inferno effect. Higher values result in brighter color ranges and brighter infernos. Lower values result in dark, softer effects.

Amplitude: With the Base spinner, controls the maximum brightness for each portion of the fractal inferno patterns. Higher values result in fractal patterns with brighter colors. Lower values result in the same patterns, with muted colors.

Bias: Shifts the colors of the effect towards one end of the color range or the other. At a setting of 50, Bias has no effect. Above 50, the colors are brighter, and below 50, they are darker and softer.

Edge: Controls the contrast between the light and dark areas of the fractal patterns. High values produce a high contrast and more well defined fractal patterns. Low values result in less defined, subtler effects.

Inferno Radial Density: Controls the density of the inferno effect in a radial fashion from the center of the effect to the edge. If you set the right side of the gradient to black and the left side to white, the inferno effect will appear to die out as it moves towards the edges.


Keyword Arguments

Many functions in MAXScript take optional keyword arguments that can be specified in any order. This feature is particularly useful in cases where there are many optional arguments, such as the built-in functions for building MAX scene objects. The arguments for these object-building functions correspond to all the object parameters that you can define in the MAX user interface of which there are often very many, and most are optional. Keyword arguments are written with a keyword label:

<name>:

For example, you can create a sphere object in the MAX scene with just one argument:

sphere radius:23

Or, you can specify more optional arguments:

sphere segs:20 smooth:on radius:15 hemisphere:0.5 mapcoords:on

You can specify keyword arguments in any order, and often omit them entirely when they have defaults. For a list of object and scene functions, see the MAXScript Class Hierarchy topic.


Language Constructs

The struct object constructors in the language takes positional argument initializers as well as keyword initializers. The elements of the new struct are filled-in in order from any positional arguments and then by name from any keyword arguments.

For example, given the following struct definition,

struct foo (name, age, height, hair="brown")

you can create instances, in several ways:

f1 = foo "bill" 23 72 -- fills in name, age, height in order

f2 = foo age:45 name:"sam" -- random named initializers

f3 = foo "mary" hair:"red"      -- first name, then keywords

Structure type definitions

You can now create your own structured objects in MAXScript using the new 'struct' definition construct. This lets you define the layout of new 'classes' of compound objects that you can then create and work with. For example,

struct person (name, height, age, sex)

defines a new 'person' class. You create values of this class using the 'person' constructor:

bill = person name:"Bill" height:72 age:34 sex:#male

joe = person name:"Joseph" sex:#male

You access structured objects using the standard property accessing syntax in MAXScript:

bill.age -> 34

joe.age -> undefined

joe.age = bill.age - 4

...

The classOf() function returns the struct class when applied to these objects:

classOf bill -> person

MAXScript further provides simple exception-handling. This takes the form of some new syntax, similar to C++ exception-handling, that lets you bracket a piece of code and catch any runtime errors in it, as follows:

try <protected_expr> catch <on_err_expr>

The <protected_expr> is executed and any errors that occur are trapped and the <on_err_expr> is executed. If there are no errors, the catch expression is not executed. This is a very simple error-trapping scheme, limited heavily by the fact that you cannot get at any error codes.

Example:

try

(

f = openFile "foo.dat"

while not eof f do read_some_data f

close f

)

catch

(

messageBox "bad data in foo.dat"

results = undefined

close f

)

In this example, any errors in reading or processing the data in the read_some_data() function are trapped and a message box is displayed and a some cleanup done. This is a good example of a use for the simple error-trapping.

There is also a new associated function, throw(), which can be used to generate your own runtime error, pass on an error that you've caught when doing some interim clean-up, or to do a non-local jump. It has the form:

throw <error_message_string> [<value>]

throw ()

Calling throw with error message arguments will cause a runtime error to be signaled and, if you have no intervening catches in your scripts, will stop the currently running script. MAXScript will then report the error message using its standard error reporting. The optional second argument can be any value you want printed with the error message, perhaps the object involved in the error.

If you want to catch an error, perhaps to do some cleanup processing, and then pass the error on to outer handlers or MAXScript for error reporting, you can call throw() with no arguments. This throws the current error again and so must only be done inside a catch expression.

Added a case statement to the MAXScript language. It can be used to select an expression to be evaluated from a set a labeled expressions based on a test value that is compared against the labels.

The syntax is:

case [<expr>] of ( <cases> )

where <cases> is a sequence of labeled expressions:

<factor>: <expr>

For example:

new_obj = case copy_type.state of

(

1: copy $foo

2: instance $foo

3: reference $foo

)

The expression with the label that matches the test expression is evaluated. All labels must be comparable to the test expression. Labeled expressions can, of course, be block expressions, so you can use the case expression as a case statement, choosing between blocks of code to execute. A special label, default, can be optionally used to tag the expression that will be evaluated if none of the other labels match the test expression.

The labels are <factors>, elements such as number literals, name literals, string literals, or variables. You can use an arbitrary expression as a label by surrounding it in parentheses. When a case expression is evaluated, the test expression is evaluated once, then each label expression is evaluated in order until one is found that compares equal to the test expression value. The expression it labels is then evaluated and this becomes the result of the whole case expression. No further labels are evaluated or tested.

The test expression is optional. If it is not supplied, the labels are expected to all be boolean values or expressions, and the first label that is evaluated as true determines the chosen case. In this variant it is common to use expressions as labels, so be sure to parenthesize them, for example:

case of

(

(a > b): print "a is big"

(b < c): print "b is little"

(c <= d *3): ...

default: ...

)


Lathe : Modifier

constructor

lathe ...

properties

.degrees float default: 360.0

.segs integer default: 16

.capstart boolean default: FALSE

.capend boolean default: FALSE

.captype integer default: 0

.weldcore boolean default: FALSE

.output integer default: 1

.mapcoords boolean default: FALSE


LenzFX Glow

Glow adds a glowing aura around any assigned object. For example, for an exploding particle system, adding a glow to the particles makes them seem as though they are brighter and hotter.

LenzFX glow is multi-threaded and will take advantage of multi-processing machines.

Glow Previews

Glow Properties

Glow Parameters

Glow Preferences


LenzFX Glow Inferno Parameters

The Inferno page lets you create explosions, fire, and smoke effects by combining the lens flare glow with black and white fractal noise.

You turn on Inferno effects in the Preferences section of the Glow dialog box. You can enable the inferno effect for the Red, Green, and Blue color channels of the image.

The Glow inferno effect is like the Inferno effect in Lens Flare, but it is applied to the Glow through the R,G, and B color channels.


LenzFX Glow Preferences

Glow Preferences define the size of the glow, its occlusion, and whether or not it affects the Z Buffer or alpha channels, and where, if, and how the Inferno effect is applied to the glow.

Reference

Affect Alpha: Specifies whether or not the glow affects the alpha channel of the image, when rendered to a 32 bit file format.

Affect Z Buffer: Specifies whether or not the glow affects the Z Buffer of the image. When this option is enabled, the linear distance of the glow is recorded, and can be used in special effects that make use of the Z buffer. For example, the Z Focus module that ships with LenzFX blurs objects based on their Z Buffer information. To use Z Focus with a glow, you must enable this option.

Z-Hide: Hides the glow effect of one pixel underneath the glow effect of another when you have two overlapping glowed objects or pixels. This is similar to the occlusion option in the lens flare.

Dist Fade: Fades the glow effect, based on its distance from the camera. This is the same as the Dist Fade for the lens flare.

Size: Sets the size of the glow effect as a percentage of the overall frame size.

Occlusion: Sets the occlusion percentage for the glow effect. A value of 100 makes the whole object disappear. Values less than 100 make lens flare wrap around the occluding object and bleed out. For example, if you are looking at a cylinder with a bright light behind it, the light makes the cylinder appear thinner at the brightest areas.

Red: Applies the inferno effect to the red color channel of the glow only. Inferno is disabled unless one or more of the three color channels is activated.

Green: Applies the inferno effect to the green color channel of the glow only.

Blue: Applies the inferno effect to the blue color channel of the glow only.


LenzFX Glow Properties

The LenzFX Glow properties enable you to determine which pieces of geometry in your scene will have the glow applied to them, as well as how much of a glow is applied.

Reference

You can turn on more than one option at a time.

Source

Specifies the objects in the scene that will have a glow applied to them.

Whole: Applies a glow to the whole scene, not just a particular piece of geometry. This makes each pixel in the scene a potential glow source. The areas of the scene that have glow applied to them are determined by the settings in the Filter section of the dialog box.

G Buffer ID: Applies the glow to an object with a specific G Buffer (geometry buffer) ID, if the object matches the Filter settings. To apply a G Buffer ID glow for an object, right-click the object and select properties from the menu. Then, set the G Buffer ID. Set this field to match, and LenzFX glow will apply the glow to that object and any other objects with the same ID.

Material ID: Applies the glow to an object or part of an object with a specific Material ID, if the object or part of the object matches the Filter settings. You apply a Material ID in the Materials Editor by assigning the material to one of the available Material Effects channels.

The glow will be applied only to areas of the geometry where the ID is present.

Note: To apply different glow settings to different pieces of geometry or IDs, add glow entries to the video post queue. Set each glow entry to affect a different Material or G Buffer ID, and set the appropriate settings. This process will call the glow routine multiple times, increasing your rendering time. Try to keep the number of glow routines to a minimum per frame.

Unclamped: An unclamped color is brighter than pure white (255,255,255), which is possible for bright highlights or explosions. This spinner determines the lowest pixel value that will be glowed. Pure white has a pixel value of 1. When this spinner is set to 1, any pixels with a value above 1 will be glowed. To invert this value, click the button to the right of the spinner.

Surf Norm: Glows part of an object, based on the angle of the surface normal. A value of 0 is coplanar, or parallel to the screen. A value of 1.0 is normal, or perpendicular to the screen. If you set Surf Norm to .25, only surfaces with normal angles greater than .25 will be glowed. This value can be inverted.

Mask: Glows the mask channel of an image. The spinner ranges from 0 to 255, to represent the 255 levels of grayscale present in a Mask. When this is set, any part of the Mask images larger than the set value will be glowed in the final image. This option can be inverted.

Alpha: Glows the alpha channel of an image. The transparency of an alpha channel is interpreted opposite that of the Mask channel. The spinner ranges from 0 to 255. This option can be inverted.

Z Buffer Hi and Lo: Glows objects based on their distance (Z buffer distance) from the camera. The Hi value is the maximum distance and the Lo value is the minimum. Any objects between these two Z buffer distances will be glowed. The A button animates this option over time. Use TrackView to set the animation settings.

Filter

Filters the Source selections to let you control how the glow is applied.

All: Selects all source objects in the scene and applies a glow to them.

Edge: Selects all source objects in the scene and applies a glow to their edges.

Brightness: Filters the source objects by their brightness values. Only objects with a brightness above the spinner setting are selected and glowed. This option can be inverted.

Hue: Filters the source objects by their hue. Select the hue by clicking the color swatch next to the spinner. You can choose hue values from 0 to 255.

How To

To set a material's Effects Channel ID

  1. In the Material Editor, make the material you want to be post-processed the active material.
  2. Choose a non-zero ID from the Material Effects Channel flyout.

    3. The Effects Channel ID can range from 1 to 8.

    If you give the same Effects Channel ID value to more than one material, all these materials will be post-processed.

    Note: For Multi/Sub-Object materials, post-processing applies at the sub-object/sub-material level. The Effects Channel ID of the parent Multi/Sub-Object material is ignored.

To set up an RLA file so it saves Object and Material Effects channel data

  1. In the Image Output Event dialog, click Files.
  2. Choose the .rla file type and a file name, and then click Setup.
  3. In the RLA Image File Format dialog, select Object, Material Effects, or both, and then click OK.
  4. Click OK.

    5. When the RLA file has saved the Object and Material Effects channels, you can use the rendered scene file as an Image Input event or a Filter or Layer mask, and continue to use the Object or Material Effects Channel data.


Local Date and Time String

The system global variable localTime contains the current local date and time as a string. This variable is read-only.

Examples:

s = localTime

"4/14/97 10:24:57 AM"


Manual Secondary Flare Parameters

Manual secondaries are additional secondary flares that are individually added to the lens flare. Manual secondary flares can be used in addition to, or in place of automatic secondary flares.

You can have groups of secondary flares, instead of just one set. Many of the controls in this dialog box are for a specific set of flares, not all sets.

Reference

Size: Controls the size, as a percentage of the overall image, of the manual secondary lens flare. This parameter is animatable.

On: Turns manual secondary flares on or off. This option must be on, and the check mark in the Preferences tab must be selected, for the manual secondary flares to render.

Plane: The plane, in degrees, in which the manual secondary flares will appear. This parameter is animatable.

Number: The total number of flares that will appear in the secondary flare plane.

Shape: Controls the overall shape of the secondary flares.

Arrow Buttons: Lets you move between sets of secondary flares easily. The current set name appears to the right of the arrow buttons.

Add Del: Lets you add another set of manual secondary flares to the lens flare.

On: Turns the current set of manual secondary flares on or off.

Axial Fade: Specifies whether or not the current set of secondary flares has axial fade.

Gradients: Defines the gradient for the secondary flare.


Message and Query Dialog Boxes

Two new functions have been added to let you display a message box or a yes/no query box from within MAXScript. The functions are:

messageBox <message_string> [title:<window_title_string>]

[beep:<boolean>]

displays a modal message box containing the message string and an OK button. The message box window title an be set with the title: keyword param. You can control whether a beep is made with the beep: keyword param which defaults to true.

queryBox <message_string> [title:<window_title_string>]

[beep:<boolean>]

displays a modal message box similar to the one that the messageBox() function creates, except it contains a Yes and a No button. The queryBox() function returns true if the user clicks Yes and false if the user clicks No.

Examples:

messageBox "You shouldn't have done that"

if queryBox "Do you want to continue?" beep:no then ...


Modifier Stack

Lists the accumulated history of an object and its modifications.The order of the modifier stack, from bottom to top, represents the sequence in which 3DS MAX applies the modifiers you select to the object. A dropdown list lets you access any entry in the stack. This lets you go back to any modifier you've applied and alter the parameters to change its effect on the object.Besides the stack dropdown list, the Modifier Stack rollout contains the following controls:

You change or delete modifiers by using the modifier stack. The modifier stack (or stack for short) contains the accumulated history of an object and the modifiers you have applied to it.

  • At the bottom of the stack, the first entry always lists the object type. You click this entry to display the object's creation parameters so you can adjust them.
  • Object modifiers are in the next section of the stack. You click a modifier entry to display the modifiers parameters so you can adjust them.

This section lets you go back to any modifier you’ve applied and rework its effect on the finished object. You can also delete the modifier from the stack, canceling its effect.

  • If the object is bound to a space warp, a double line appears between the modifier and space warp sections. This double line is a placeholder for transforms, and is displayed as a reminder that 3DS MAX applies transforms after it applies modifiers but before it applies space warps.
  • The final, top section of the stack shows what space warps the object is bound to. For example, if the object were bound to a Ripple space warp, a line in the top section would read Ripple Binding.

The transform placeholder and the space warp sections are not shown if the object is not bound to any warps.

  • Sub-Object: Specifies the level of selection based on the current event in the modifier stack. When this option is On, the sub-object items in the list vary depending on the current selection and the current modifier. For example, if you are applying an Edit Mesh modifier to a primitive such as a sphere, the sub-object list displays vertex, face, and edge.
  • Pin Stack: Locks the stack to the currently selected object so that it remains with that object regardless of subsequent changes in selection. The entire Modify command panel is locked as well.
  • Active/Inactive Modifier: Turns off the current modifier without deleting it. Allows you to see the object without the effect of the modifier.
  • Show End Result: Shows the selected object as it will appear after all modifications in the stack have taken place, regardless of your current position in the stack. When this toggle is off, the object appears as modified up to the current modifier in the stack.
  • Make Unique: Converts an instanced modifier to a copy that’s unique to the current object. See Make Unique.
  • Remove Modifier: Deletes the current modifier or unbinds the current space warp.
  • Edit Stack: Click this to Display the Edit Modifier Stack Dialog, which contains the controls listed below.

Edit Modifier Stack Dialog

  • Name: Use this field to rename modifiers such as Bend to more specific names such as "First 45 degree bend."
  • Reference Object: Converts the object to a reference object. This adds an empty “derived object” line at the top of the Stack. All modifiers applied above the line affect only the object.
  • Copy Object: Click to replace the entire Stack with an independent copy of the Stack.

Note that these two functions (Reference Object and Copy Object) are the equivalent of performing a SHIFT-clone, choosing Reference or Copy, and then deleting the original object.

  • Cut/Copy/Paste: These let you manipulate (rearrange) the selected items in the list window.
  • Instance: Check this to instance pasted data.
  • Make Unique: Converts an instanced modifier to a copy that’s unique to the current object. See Make Unique.
  • Collapse All/To: Collapse all or part of the stack (collapsing removes modifiers from the object). Collapsing a stack converts an object into a mesh. The reasons you would want to collapse a stack are:

- To simplify the scene geometry.

- To discard animation tracks previously applied to an object’s creation parameters or its modifier parameters.

- To conserve memory.

After you collapse an object’s stack, you can no longer parametrically adjust either its creation parameters or its individual modifiers. Animation tracks that were assigned to such parameters also disappear.

How To

To move one or more modifiers:

  1. Select one or modifiers in the Edit Modifier Stack dialog.
  2. Click the Cut button.
  3. Select a modifier above which you want the cut modifiers pasted. (This can include the object itself, or the ------------ dividing line.)
  4. Click the Paste button.

    5. The modifiers are pasted above the current selection.

To copy one or more modifiers:

  1. Select one or more modifiers in the Edit Modifier Stack dialog.
  2. Click the Copy button.
  3. Select an item above which you want the copied modifiers pasted.
  4. Check the Instance checkbox if you want instances, or leave it unchecked.
  5. Click the Paste button.

    6. The copied modifiers are pasted above the current selection.

To copy modifiers from one object to another:

  1. Select one or more modifiers in the Edit Modifier Stack dialog for object ‘A.’
  2. Click the Copy button.
  3. Click OK to exit the Edit Modifier Stack dialog.
  4. Select object ‘B,’ and open its Edit Modifier Stack dialog.
  5. Select an item above which you want the copied modifiers pasted.
  6. Check the Instance checkbox if you want instances, or leave it unchecked.
  7. Click the Paste button.

    8. The modifiers from object ‘A’ are pasted above the current selection in object ‘B.’

As demonstrated, you can cut, copy, and past multiple modifiers at time. You can also cut and copy discontiguous selections of modifiers.

You can copy and paste space warps or object modifiers, but you can't mix them. Also, you can't paste object modifiers above the ========== line. If you attempt to paste space warps below the ========= line, it will let you but it will place the space warp above the ========== line.


Modify Panel (New Features)

What's New in Max 2.0

  • Configure Button Sets: You can now have up to 32 buttons in a set of modifiers. In the Configure Button Sets dialog, the Total Buttons spinner now goes up to 32 rather than 16. Also, a scroll bar has been added to the right side of the button cluster so you can scroll through the list.
  • More Modifiers Dialog: The Modifiers dialog that appears when you click the More button is now resizeable. In addition, it remembers where you left it last and reappears in that location and size.
  • Disabling Viewport Display with Stack Items: The Modifiers dialog that appears when you click the More button is now resizeable. In addition, it remembers where you left it last and reappears in that location and size.You can now disable the viewport display of the effect of any Stack item. This is implemented in two places:

· The Active/Inactive Modifier Toggle button below the Stack list is now a flyout containing the original function, that disables the current modifier for both the viewport and the Render, plus a new button (Active/Inactive in Viewport) that disables the effect of the modifier only in the viewport display. These buttons let you activate/deactivate the current Stack item for either the viewport only, or for both the viewport and the Renderer.

· The Edit Modifier Stack dialog has two new icon buttons in the lower-right corner. The left one is the original Active/Inactive Modifier function, and the right one is the new Active/Inactive in Viewport function. Using these in the dialog lets you select several modifiers and deactivate them all at once. Note that if you select two or more items that do not have the same state in common, one or both buttons become blank, but can still be used to affect the state of the selection.

  • Stack Display:

· When an item in the stack is inactive to both the Renderer and the viewport, it’s now displayed in gray in both the stack drop-down list, and in the Edit Stack dialog. Items that are inactive in only the viewports are displayed in blue.

· The line representing the derived object (the “modifier box” in Tutorial 8) is now a solid black line instead of a dashed line.

· The double-dashed lines between space warp bindings and the modifiers are now double-solid lines.

· If the drop-down Stack list can’t fit on the screen (because of too many modifiers), a scroll bar appears.

  • Converting Parametric Objects: The Edit Stack button now has double-duty. If you click it when one or more modifiers are on the Stack, it acts like it always has displaying the Edit Stack dialog. However, if you click it when there are no modifiers on the Stack and the selected object is both parametric and can be converted to a different type of object, a pop-up menu appears listing the type of objects to which the current selection can be converted. The items in the menu differ depending on the type of object currently selected. For primitives, however, the menu looks like the following:
  • ART DIRECTIVE (INSERT GRAPHIC)
  • Convert To::
  • Editable Mesh
  • NURBS Surface
  • --------------
  • Edit Stack
  • Select Editable Mesh or NURBS Surface to convert the object to that type, or select Edit Stack to display the Edit Stack dialog.
  • In the following cases, clicking the Edit Stack button displays the Edit Stack dialog instead of the pop-up menu:

· The object contains one or more modifiers.

· The object is already an editable object.

· The object can’t be converted to an editable object (cameras or lights, for example).

  • Converting Objects to Copies or References: Two new buttons in the Edit Modifier Stack dialog let you convert the selected object to a Copy or a Reference.

· Click the Reference Object button to convert the object to a reference object. This adds an empty “derived object” line at the top of the Stack. All modifiers applied above the line affect only the object.

· Click Copy Object to replace the entire Stack with an independent copy of the Stack.

  • · Note that these two functions are the equivalent of performing a SHIFT-clone, choosing Reference or Copy, and then deleting the original object.
  • Cutting,Copying, and Pasting Modifiers: You can now cut, copy, pasteand therefore rearrange modifiers in the Stack. All of it is done in the Edit Modifier Stack dialog. Changes in this dialog are as follows:

· The Remove button has been, uh, removed. Its function is replaced by the new Cut button.

· Three new buttons have been added: Cut, Copy, and Paste. These let you manipulate the selected items in the list window.

  • A new Instance checkbox has been added that lets you specify if you want the pasted data to be instanced.
  • Undoing Stack Changes: You can now undo the following changes in the Modifier Stack:

· Remove Modifier from Stack.

· Make Unique

· Adding modifiers

· Changes made in the Edit Modifier Stack (including collapsing the Stack)

  • Now that you can undo changes made in the Edit Modifier Stack dialog, a Cancel button has been added to this dialog so you can cancel any changes you’ve made, as well.
  • Space Warps as Modifiers: Space warps can now also be created as modifiers. See When Space Warps Become Modifiers.


Pausing Script Execution

The sleep function lets you pause script execution for a given amount of time.

The form is:

sleep <time_in_seconds>

The time argument is a floating point number of seconds to sleep.

Note that the time accuracy is poor. You can interrupt a sleep with the ESC key which halts all execution or with the SPACE bar which simply causes the sleep function to terminate and the script to continue executing. In both cases, you may need to hold the keys down for up to half a second for MAXScript to respond.


Point2 : Value

The 2D point class called Point2 is essentially a 2D version of point3 and is used in utility rollout positioning parameters and for accessing the new Bitmap class, among other things.

constructors

point2 x y -- x and y are numbers

[x, y]

<point3> as point2 -- created from the x and y components of the point3

properties

<point2>.x

<point2>.y

operators

<point2> + <point2_or_number>

<point2> - <point2_or_number>

<point2> * <point2_or_number>

<point2> / <point2_or_number>

<point2> = <point2>

<point2> != <point2>

number 2nd operands cause scalar operations

methods

random <point1> <point2>

length <point>

distance <point1> <point2>

normalize <point>

same as the point3 counterparts


Point (NURBS)

Point

Creates an independent, free-standing point. Click to turn on this button, and then click in a viewport to position the point.

Reference

Independent point sub-objects have no additional parameters.


Precedence (IK)

Precedence

Use the three joint precedence controls to alter how 3DS MAX calculates the IK Solution.

3D Studio MAX uses a default joint precedence of 0. This is suitable for many IK solutions. It assumes that joints closest to where a force is applied (the end effector) will move more than joints farther from the force.

Child>Parent values are calculated by assuming the root of the entire hierarchy has a precedence value of 0 and each child has a value equal to 10 times its depth from the root. In a 4 object hierarchy starting with the root, the values would be 0, 10, 20, 30.

Parent>Child values are calculated by assuming the root of the entire hierarchy has a precedence value of 0 and each child has a value equal to 10 times its depth from the root. In a 4 object hierarchy starting with the root, the values would be 0, -10, -20, -30.

  • Default joint precedence occurs whenever all joints in the kinematic chain have the same precedence value. Assigning a value of 100 to all objects in the kinematic chain is exactly the same as assigning a value of 0.
  • The precedence calculations only consider the relative IK values. This means that an IK chain of three objects with precedence values of 0, 30, and 200 would have the same solution if the precedence were changed to be 1, 2, and 3.

Reference

There are 3 controls to set precedence:

Precedence: Manually assigns precedence values to any object in the IK chain. High precedence values are calculated before low precedence values. Precedence values that are equal are calculated in Child>Parent order.

Child>Parent: Automatically sets joint precedence to decrease in value from child to parent. Causes joints closest to where a force is applied (the end effector) to move more than joints farther away from the force.

You almost always assign Child>Parent precedence to an entire kinematic chain.

Child>Parent behaves like the default precedence settings but is more flexible if you want to go back and manually change the settings.

Parent>Child: Automatically sets joint precedence to decrease in value from parent to child. Causes joints closest to where a force is applied (the end effector) to move less than joints farther away from the force.

You almost always assign Child>Parent precedence to an entire kinematic chain.

How To

To assign a precedence value to an object manually:

  1. Select an object.
  2. Open the Object Parameters rollout in the Hierarchy panel.
  3. Enter a value in the Precedence field.

To assign Child>Parent precedence to all objects in a kinematic chain:

  1. Select all objects in the kinematic chain.
  2. Open the Object Parameters rollout in the Hierarchy panel,
  3. Click Child>Parent.

To assign Parent>Child precedence to all objects in a kinematic chain:

  1. Select all objects in the kinematic chain.
  2. Open the Object Parameters rollout in the Hierarchy panel.
  3. Click Parent->Child.

To reset the default joint precedence:

  1. Select all objects in the kinematic chain.
  2. Open the Object Parameters rollout in the Hierarchy panel.
  3. Set the value in the Precedence field to 0.


Premultiplied Alpha (Glossary)

GLOSSARY

Premultiplied Alpha

There are two methods of storing alpha in a bitmap: premultiplied and non-premultiplied.

To composite an image that is in non-premultiplied format, the alpha must be multiplied by each of the R, G, and B channels before adding it to the color of the background image. This provides the correct transparency effect, but it must be done each time you composite. With pre-multiplied alpha, you store the R,G, and B components with the alpha already multiplied in, so compositing is more efficient.

This is not the only reason that 3DS MAX stores images in the premultiplied format. When you render an image, you typically want the edges of the objects to be antialiased. This effect is achieved by determining the fractional coverage of pixels on the edge of the object, and then adjusting the alpha of the pixel to reflect this. For example, a pixel that is 30% covered by the object will have an alpha of .30. To antialias the edges, the alpha must be pre-multiplied to darken these edge pixels. (This is basically equivalent to compositing the image over a black image). So it is natural, in a sense, for rendered images to have pre-multiplied alpha. If you didn’t pre-multiply in the alpha of a rendered image, then just looking at the RGB you would see jaggies on the edges of objects -- you’d have to composite it against black using the alpha channel whenever you wanted to display it.


Ray Parameters

Rays are bright lines that radiate out from the center of the source object, providing the illusion of extreme brightness for the object. You control the parameters for rays in the Rays tab of the LenzFX Dialog Box.

Reference

Size: Specifies the overall length of the rays as they radiate out from the center, as percentage of the frame size.

Group: Forces the grouping of rays into smaller groups that are the same size. Rays that are part of a group are evenly distributed within that group.

Number: Specifies the overall number of rays that appear in the lens flare. Rays are equally spaced around the radius.

Sharp: Specifies the overall sharpness of the rays. Higher numbers produce crisp, clean, and clear rays. Lower numbers produce more of a secondary glow look. Valid values are from 0 to 100.

Rotate: Rotates the rays effect around the center of the flare.

Gradients: See the Gradients topic.


Ring Parameters

The ring is a circular color band that surrounds the center of the source object. You set ring options on the Ring tab of the LenzFX dialog box.

Reference

Size: Specifies the overall size of the ring as a percentage of the overall frame and represents the diameter of the ring. The ring radius should be larger than the glow radius to make the lens flare look convincing. This parameter is separate from the overall size spinner in the Lens Flare Effects section of the dialog box.

Thick: Specifies the overall thickness of the ring, as a percentage of the overall size of the frame. When the ring is fairly thick, the size of the ring is measured to the inner radius. The thickness controls how thick the ring is from that point outward.

Gradients: See the Gradients topic.


Smooth : Modifier

constructor

smooth ...

properties

.autosmooth boolean default: FALSE

.threshold float default: 30.0

.smoothinggroups integer default: 0


Star Parameters

A Star is larger than a ray effect and is generally composed of 6 or more spokes, instead of hundreds like a ray. Stars are generally thicker and extend out farther from the center of the source object than rays. You control the settings for stars on the Star tab of the LenzFX dialog box.

Reference

Size: Specifies the overall size of the star effect, as a percentage of the overall frame. This option is animatable.

Random: Generates random star sizes, spokes, and so on.

Quantity: Specifies the number of spokes in the star effect. The default is 6.

Width: Specifies the width of the individual spokes, as a percentage of the overall frame.

Sharp: Specifies the overall sharpness of the star. Higher numbers produce crisp, clean, and clear stars. Lower numbers produce more of a secondary glow look. Valid values are from 0 to 100.

Taper: Controls the taper of the individual spokes of the star. Higher numbers create a larger taper from the center to the tips.

Rotate: Rotates the star effect when the overall flare is rotated.

Gradients: The gradients are the same for the Star effect as for others, except for two gradients: the section color and section size gradients. These are like circular gradients, except that each spoke of the star effect is treated individually, instead of as one large circle, so the gradients are valid over a much smaller interval.


Streak Parameters

A streak is a wide horizontal band that runs through the center of the source object. You set streak options on the Streak tab of the LenzFX dialog box.

Reference

Size: Specifies the overall size of the streak, as a percentage of the image size.

Angle: Specifies the angle for the streak from horizontal. The default is 0 (horizontal).

Quantity: Specifies the total number of streaks that appear in the lens flare.

Width: Specifies the width of the streak, as a percentage of the image. This parameter is animatable.

Sharp: Specifies the overall sharpness of the streak. Higher numbers produce crisp, clean, and clear streaks. Lower numbers produce more of a secondary glow look. Valid values are from 0 to 100.

Taper: Specifies the taper of the streak, in degrees. The default is no taper.

Axial Align: Forces the streak to align itself to the axis of the secondary flares and the lens flare itself.

Rotate: Specifies whether or not the streak can be rotated.

Gradients: The gradients are the same for the Streak effect as for others, except for two gradients: the section color and section size gradients. These are like circular gradients, except that each streak is treated individually, instead of as one large circle, so the gradients are valid over a much smaller interval.


Styles

=================Paragraph styles ===================

Body

BodyFirst

bold code

  • Bullet

Caption

CaptionInd

code

code_Comment

code3Tab

code3TabLast

codeFirst

codeLast

codeIndent

codeIndLast

codeInd2

codeInd2Last

codeInd3

codeInd3Last

gloss

Heading 1

Heading 2

Heading 3

Heading 4

Indent

  • IndentBullet

Indent2

  • IndentBullet2
  1. Number
numblockstyle

Parameter

ParameterIndent

=================Character styles ===================

>SPcharCode

>SP >SPcharCodeBold


The LenzFX Lens Flare Interface

The Lens Flare Interface

The LenzFX interface is broken down into 4 major areas:

The Preview Area: The large black window in the upper left is the main preview window. To the right of this window are smaller preview windows for each part of the flare. You can generate new previews by double-clicking the main viewport.

Lens Flare Properties: Specifies the source for the flare(s), the size, seed number, rotation, and so on.

Lens Flare Effects: Controls specific effects for the flare, such as fades, brightness, softening, and so on.

Lens Flare Settings Tabs: Let you create and control the lens flare. Each of the 9 tabs controls a specific aspect of the lens flare.


Time Stamping

The timeStamp() function gives time-of-day in milliseconds.

The form is:

timeStamp ()

The function returns the number of milliseconds since 00:00 hours that day. This is useful for timing operations (presuming you are not timing across midnight.)

Example:

start = timeStamp ()

process_mesh () -- do some big job

end = timeStamp ()

format "Processing took % seconds\n" ((end - start) / 1000.0)


Track View (Edit Menu)

This may be bogus but I am including it here because the alias file has a context string for this item (idh_edit_track_view).


Types of Gradients

There are five gradient types for LenzFX:

Radial: Changes colors in a straight line, from the left to the right as you look at the gradient bars. In LenzFX lens flares, gradient bars are interpreted from the center out to the edge of a lens flare feature, such as a glow or a ring.

Circular: Changes colors in a circular manner. If you mark North, East, South, and West on a circle, these points represent the 0%, 25%, 50%, and 75% marks of the gradient.

Color: Defines the colors used. Generally, this is based on the RGB color system, but can also be set using HSV.

Transparency: Varies the transparency of parts of the lens flare, either in a radial or circular method. The transparency gradient makes use of the Whiteness color values only (the intensity of the color). This is shown as a vertical bar in the Color dialog box and provides you with 256 levels of transparency for your lens flares.

Size: Varies the size of specific parts of the lens flare. Most size gradients are used to affect the radius of a lens flare part, such as a glow. Like transparency gradients, only the Whiteness color values are used to provide you with 256 different sizes. High intensities or lighter colors provide larger sizes than low intensities or darker colors. The colors represent a portion of the overall size of the lens flare part.


Using Mapped Materials

Mapped materials affect particles differently, depending on the source of the material.

When Icon is chosen, the mapping coordinates of the material are applied across the V (vertical) axis, from V=0 (the bottom edge of the map) to V=1 (the top edge of the map). The bottom edge of the map is applied at the birth of the particle, and the top edge at either the death of the particle (if Time is checked) or the distance of the particle at its death (if Distance is checked).

The Time spinner specifies the number of frames from birth that it takes to complete one mapping of a particle when Time is checked. Thus, if set to 15, the particle uses the bottom edge of the map at its birth, and moves through to the top edge of the map at frame 15.

The Distance spinner specifies the distance, in units, from birth that it takes to complete one mapping of a particle when Distance is checked. Thus, if set to 50, as the particle moves along the normal vector, it displays the bottom edge of the map at birth, and the top edge at 50 units along the normal vector.

The one exception to this is when you use the Tetra particle type. In this case, each particle is always constantly mapped with V=0 at the head and V=1 at the tail.

When Picked Emitter is chosen, the particles take on the color of the object at the point at which they’re created. If the mapped surface is yellow where the particle emerges, then the particle is yellow.

Again, Tetra particles are an exception and have the distribution-object material mapped from head to tail.

Fragment particles use the same technique, with additional options when the Thickness setting is greater than 0.

When Thickness is 0, all faces in the fragment are mapped the same as the portion of the object surface from which they’re derived.

When Thickness is greater than 0, the outer faces of the fragment copy the surface of the distribution object, and are assigned the material ID specified in the Outside ID spinner in the Fragment Materials area of the Particle Type rollout. The thickness edges use the Edge ID number, and the inner faces use Backside ID. Thus, by assigning a Multi/Subobject material to the object-based emitter, you can specify a different material for the outer fragment surfaces, the edges, and the inner surfaces. Note that the Outside ID spinner defaults to a value of 0, which means "use whatever material is currently assigned." Change this to a specific submaterial number to assign a submaterial to the outside edges of the fragments.


Using Materials with Particle Array

The material that appears on the particles can come from three places:

  • The material assigned to the emitterthe particle system itself
  • The material assigned to the distribution object
  • The material assigned to the instanced objects.

This choice is set in the Mt’l Mapping and Source area near the bottom of the Particle Type rollout. Choose Icon to use the material assigned to the particle system, choose Picked Emitter to use the material assigned to the distribution object, or choose Instanced Geometry to use the material assigned to the instanced objects. Note that this third option is only available when Instanced Geometry is the current particle type (selected in the Particle Types area at the top of the Particle Type rollout).

Note: Unlike PArray, SuperSpray, Blizzard, and Particle Cloud don’t have distribution objects, as such. In their case, there’s only a checkbox that lets you use the material from the instanced object rather than the emitter material.

Important: A particle-system object, like any other object, can only carry a single material at any time. Thus, if you choose either Picked Emitter or Instanced Material, an instance of the chosen material is actually copied to the particle system, overwriting the material that was assigned to the emitter. If you want to restore the emitter material, you must choose Icon, and then reassign the material from the Materials Editor or the Browser.

Regardless of the choice you make, if the material used is not mapped, then all particles take on the surface properties of the material, regardless of which object is used as the source of the material.


Using Multi/Sub-Object Materials

If the assigned material is a Multi/Sub-Object material, particles are affected in the following ways, depending on the source of the material:

  • Icon: In most cases, each particle, at its birth, is assigned a different submaterial, cycling through each available submaterial. For example, if there are only three submaterials, the first particle receives submaterial #1, the second #2, the third #3, the fourth #1, and so on. The exceptions to this are as follows:
  • MetaParticles all use only the first submaterial.
  • Object Fragments are all born at once, so all of them use only the first submaterial.
  • Picked Emitter: When used with Object Fragments as particles, each particle uses the three ID numbers in the Fragment Materials area. If this source is used with the other particle types, the particles are assigned submaterials in the same way as when Icon is chosen.
  • Instanced Geometry: When used with Instanced Geometry particles, each particle is assigned a submaterial in exactly the same was as the source objectso each particle looks just like the source object. When used with other particle types, the particles are assigned submaterials in the same way as when Icon is chosen.


Using Pathnames

All of the objects in a MAX scene are arranged in a hierarchy as presented in MAX's Track View. This is both an important organizing scheme in MAX, and it suggests a MAXScript naming scheme for objects based on the path to an object through the hierarchy. It is also very similar to path names in an operating system's directory structure.

MAXScript uses the '$' character to introduce an object pathname. For example,

$dummy/head/neck

names the scene object neck with the parent head, which itself has the top-level parent dummy. This pathname helps you identify an object in a MAX scene, even if there are several objects with the same name. If head is unique in the scene, MAXScript lets you use the shorthand, $head, to refer to it regardless of its position in the hierarchy. Even if the object is not named uniquely, you can use the shorthand form but it is indeterminate which of the same-named objects you will get.

Pathnames also provide a powerful way to refer to several objects at once, such as referring to all the children of a certain parent, or referring to all the objects with names containing the string foot. For this, you can use wild-card patterns, as you can with OS shell file naming schemes. For example,

$dummy/*

names all the immediate children of dummy. The '*' character is called a wild-card.

Or,

$neck*

finds all the objects, whose names start with the string neck, anywhere in the hierarchy.

You can use wild-cards anywhere in a pathname, for example,

$*foot*

gets all the objects with foot anywhere in their names. The '*' wild-card character effectively matches any number other characters.

Or, you can use a '?' wild-card character to match exactly one 'don't care' character:

$box0?

finds all the objects that begin with box0 and have exactly one character after the 0 in their names.

Or, use wild cards for parent levels in a hierarchy, for example,

$dummy/*/*

names all the children of all the children of $dummy.

Using a wild-card in an object pathname lets you further use MAXScript to manipulate all matching objects at once, for example,

hide $*foot*

hides all objects whose names contain foot.

You can also perform bulk property manipulations, for example,

$*box*.position += [10, 10, 0]

adds [10,10,0] to the positions of all scene objects whose names contain box. This is called implicit collection mapping.

If you want to find all the children of some object at any nested level, you use the special ellipsis level name '...', as in:

$dummy/.../box*

This refers to all the box* children at any level below $dummy. The '...' means to search the entire hierarchy below the level of the ellipsis. MAXScript lets you omit '/'s when using an ellipsis '...', because it is unambiguous:

$dummy...box*

or, in another common example,

$dummy...*

which names all the children of $dummy at any level.

See also:

Spaces and Other Special Characters in Names

Indexing and Sequencing Pathnames

Built-In Object Sets

Working Levels

Making a Snapshot of Selections

Object Set and Pathname Properties

Syntax


Using Spawned Particles

The following example starts you out with a very simple spawning using the Super Spray particle system.

  1. In the Perspective viewport, create a pyramid that’s 5 units in all dimensions.
  2. Create a cylinder with a radius and height of 3, and 6 sides.
  3. In the center of the Perspective viewport, create a Super Spray emitter.
  4. Set Speed in the Particle Motion area to 3.0.
  5. In Particle Type rollout, choose Instanced Geometry, then click the Pick Object button under Instancing Parameters, and select the pyramid.
  6. Under Viewport Display, choose Mesh, and set Percentage of Particles to 100.
  7. In the Particle Generation rollout, choose Use Rate, and set the spinner to 1.
  8. Set Emit Start and Emit Stop at 0, Display Until at 100, Life at 10, and leave Variation at 0.
  9. Under Particle Size, set Grow For and Fade For to 0.
  10. Drag the time slider between frames 0 and 15.

    11. A single pyramid particle emerges from the emitter, moves up, and then dies at frame 10 (disappears at frame 11).

Now, you’ll add spawning effects.

  1. In the Particle Spawn rollout, choose Spawn on Death.
  2. Leave Spawns spinner at 1, and set the Multiplier to 2.
  3. Set the Direction Chaos spinner to 50.
  4. Drag the time slider slowly over frames 8-25 (approximately).

    5. At frame 11, two pyramids appear at the death of the original particle (because of the Multiplier setting, and move off in different directions (because of the Direction Chaos setting). All of the particles die after frame 20 because only 1 generation of spawned particles is specified.

  5. Set Spawns to 4, and the Multiplier to 4.
  6. Drag the time slider over frames 8 to 50.

    7. With each spawned generation the particles increase exponentially.

Finally, try mutating the objects:

  1. In the Object Mutation Queue, click Pick Object, and then select the cylinder.
  2. The name of the cylinder appears in the list window.
  3. Click Pick Object, and select the pyramid, then click Pick Object again, and select the cylinder. Your list now reads: Cylinder01, Pyramid01, Cylinder01.
  4. Drag the time slider over frame 0-50.
  5. The pyramid appears over frames 0-10, then changes to four cylinders at frame 11, then 16 pyramids at the next spawning, and so on.


Using theRescale World Units Utility

Using the Rescale World Units Utility is not the same as using the Scale transform tool, which scales the geometry by transforming it. For example, if you have three spheres, each with a radius of 25, and you scale the world units of the second sphere, and then use the Scale transform tool to double the size of the third sphere, the first sphere will look half the size of the other two spheres, and its Radius spinner will read 25. The second sphere will look twice as big as the first, and its Radius spinner will read 50 (because its world units have been doubled), and the third sphere will be the same size as the second, twice as big as the first, but its Radius spinner will read 25, because you’ve scaled the transformation of the geometry in the Stack after the creation parameters that establish the original radius of the sphere.

Another difference between scaling the world units of an object and performing a Scale transform is that a Scale transform affects only the geometry, while scaling the world units affects the scale of everything that has to do with the object, including the scale of assigned materials that might have 3D maps. For example, if you use Scale transform to double the size of a sphere assigned a Marble mapped material with a marble size of 20, the mapped effect on the rendered sphere appears twice as large, but its Size parameter remains 20. If you double the world units of the sphere, however, the mapped effect in the rendering also appears twice as large, but the Size parameter is also doubled to 40.

Caution: If you scale only a selected portion of the scene, and both the selected and unselected items contain instanced components (such as 3D maps), you can run into some discrepancies. As a specific example, create two spheres, each assigned the same material using a Noise map. Render the two spheres, and clone the Virtual Display Buffer. Now, select and rescale the world units of one of the spheres to a Scale Factor of 2. Render the result and compare the two renderings. The altered sphere is twice the size of the other and its noise pattern has been doubled, so it covers the same relative surface. The noise pattern on the first sphere, however is different from that in the first rendering because the Size setting of the 3D Noise map was doubled by the rescaling, and the map is instanced in the scene and dependent on world units rather than local object coordinates. In this case, you could avoid the problem by making sure that the 3D maps assigned to the rescaled objects are all unique.

There’s a new option in the General page of the File/Preferences dialog that also affects world unit scale.


Video Post Status Bar/View Controls

Contains an area for prompt and status information and for buttons to control the display of tracks in the event tracks area.

Prompt Line

Status (Start, End, Frames, Width, Height)

Zoom Region (Video Post)

Pan (Video Post)

Zoom Time (Video Post)

Zoom Extents (Video Post)


Video Post Toolbar

Contains tools for handling Video Post files (.vpx files) and for managing the individual events displayed in the Video Post queue and event tracks area.

New Sequence

Open Sequence

Save Sequence

Edit Current Event

Delete Current Event

Swap Event

Execute Sequence

Edit Range Bar

Align Selected Left

Align Selected Right

Make Selected Same Size

Abut Selected

Add Scene Event

Add Image Input Event

Add Image Filter Event

Add Image Layer Event

Add Image Output Event

Add External Event

Add Loop Event


Working with MAX Objects in the SDK

All of the MAX-side objects accessible in MAXScript are represented by instances of the MAXWrapper family of classes. As the name suggests, these are wrappers for MAX object references that live in the garbage-collected MAXScript world. The wrapped reference is a standard MAX reference created with ReferenceMaker::MakeRefByID(); the MAXWrapper class inherits from both Value and ReferenceMaker. This reference allows MAXScript to be notified of MAX-side changes to the object, particularly deletion.

The wrapper class family is as follows:

Value, ReferenceMaker

MAXWrapper

MAXNode

MAXModifier

MAXControl

MAXKey

MAXMaterial

MAXMultiMaterial

MAXTexture

MAXMaterialLibrary

MAXObject

MAXSubAnim

There is also a Value subclass, MAXBitMap, which can be used to wrap MAX Bitmaps, but it is not a ReferenceMaker because Bitmaps in MAX are not referenceable in this way.

It should be clear which wrapper classes wrap which MAX-side entities, except perhaps for MAXSubAnim which is used to wrap objects you only know as Animatables that are accessible inside other Max objects via the Animatable::SubAnim() function. This is used in MAXScript to wrap things like modifier gizmo sub-objects, for example.