VertexPaint Modifier

The VertexPaint modifier lets you paint vertex colors onto an object. You're not restricted to only vertex-level painting. Using sub-object selection, you can also control which vertices get painted, face-by-face. All faces sharing a vertex have the adjacent corner shaded as well. The resulting painted object receives a coarse gradient across each face.

The amount of color that 3ds Max applies to a vertex depends on the distance of the vertex from the position of the paint cursor on the face. The more you select a face, the more it changes to the new color. The Opacity button also controls the strength of the color. 3ds Max shades the color, so if you have one green vertex and two white vertices for one face, for example, you'll see a gradient on that face.

VertexPaint modifier also lets you paint values for the vertex alpha and illumination channels. These channels affect the transparency and shading of vertex colors, respectively.

Notes and Tips

For best results with VertexPaint, keep the following in mind:

About Map Channels and Vertex Color, Vertex Alpha, and Vertex Illum

When using vertex paint, it is helpful to understand how 3ds Max manages vertex color, alpha, illumination, and map channels. 3ds Max stores and manages all of these different pieces of information using the same underlying system.

The map channels are defined as triple-value channels (tuples) with a unique integer ID number ranging from –2 to 99. The first five map channels have specific and familiar usages:

Every geometric vertex of a mesh or poly object can be assigned up to 102 channel values (99 + 3).

The reason for the negative numbering scheme for the vertex alpha and illumination channels is actually historic: It serves to preserve the meaning of existing map-channel data in older scene files before vertex alpha and illumination were added.

You can paint on any arbitrary channel, and to use one or more channels for any arbitrary meaning for a given vertex. It is useful in development of content for games to paint on arbitrary map channels numbered higher than those used for texture mapping (such as channels 3, 4, 5). These can be used to store logical information about a vertex: for example, whether it is “slippery” or “explosive.”

You can assign a single vertex a stack of map channels that carry different meanings. When you collapse the modifier stack, 3ds Max preserves these map channels.

The VertexPaint modifier takes this into consideration through its simple exposure of map channel IDs for display and painting.

About Painting in Layers

The layer system allows you to paint changes on a single layer, then make another layer on top of that, and paint additional changes. This can be used to store different versions or variations of your vertex color painting.

Every layer has a blending mode that it uses to determine how it combines with the other layers. You can assign vertex colors using the Assign Vertex Colors utility, then add another layer, change the layer mode operator to Lighten, and paint with a white paintbrush to lighten up areas. Fifteen different modes are available, and many tasks can be accomplished using paint layers.

One of the primary advantages of VertexPaint is its use of the modifier stack as a kind of image-composite stack. Each VertexPaint modifier serves as a single layer in the composite. You can move layers up and down the stack, enable and disable them, and flatten the stack using Condense to single layer.

Backward Compatibility

If you load an older file that uses a previous version of the VertexPaint modifier, then the legacy modifier will be loaded when the file is opened.

The legacy modifier has not been changed, and the two modifiers are not inherently compatible in terms of their data format during loading and saving.

If you have vertex color data in a legacy VertexPaint modifier, you can use the Condense to single layer tool of the new modifier to migrate the vertex colors into the new modifier.

Procedures

To add scene lighting into an object's vertex color:

  1. Select the objects in the scene that you want to color.
  2. On the Modify panel, choose VertexPaint from the modifier list.

    The floating Paintbox appears, docked to the left edge of the viewports.

  3. Open the Assign Vertex Colors rollout.
    Note: This rollout provides the same tools as found in the Assign Vertex Colors utility.
  4. In the Light Model group, choose Lighting + Diffuse.
  5. Click Assign.
  6. On the Vertex Paintbox, choose (Vertex Color Display Shaded) to see the vertex lighting in the vertex color map.

To paint vertex colors on an object:

  1. Select the scene objects to paint.
  2. On the Modify panel, choose VertexPaint from the Modifier List.

    The Vertex Paintbox appears.

  3. Choose the color you want to paint with by clicking the large color swatch below the Paintbrush button. This opens the Color Selector.
  4. Change the color using controls on the Color Selector.
  5. Adjust the strength of the color by entering a percentage value in the Opacity field.
  6. Choose (Vertex Color Display Unshaded) to see the vertex colors without shading.
  7. Click (Paint), and move the cursor over the selected object in the viewport.
  8. When the cursor displays over the object, press and hold down the left mouse button, then drag to paint the object.
    Tip: The cursor displays the size of the brush. Use the Size spinner to change to a larger or smaller brush.

To see vertex colors in a viewport:

  1. Right-click the object with painted vertices, and choose Properties from the quad menu.
  2. In the Display Properties group, turn on the toggle for Vertex Color.

    Vertex Color is one item on a drop-down list. The other items are Vertex Illumination, Vertex Alpha, Map Channel Color (which uses the spinner immediately below the list), and Soft Selection Color. Viewports can display only one of these vertex channels at a time.

  3. Click OK.

To render vertex colors:

  1. Open the Material Editor, and apply a Standard material to the object.
  2. Click the map button for the Diffuse component.
  3. In the Material/Map Browser, choose Vertex Color as the map, and then click OK.

    Now, when you render the scene, the rendering shows the painted vertices.

To animate the opacity of a vertex color layer

  1. Choose the layer you wish to animate, by highlighting the Vertex Paint modifier in the stack that corresponds to that layer.
  2. Turn on .
  3. On the floating vertex paintbox, in the Layer group move the Opacity slider.

    This sets a key for the opacity.

  4. Move the time slider to another frame and again change the value using the Opacity slider.
  5. Turn off .
  6. Click (Play Animation) to see the animated opacity in the viewport.

To animate vertex color using UVW XForm modifier:

    You can use the UVW XForm modifier in conjunction with a specific vertex paint layer to modulate vertex color effects in the viewport.

  1. Apply a UVW XForm modifier directly above the VertexPaint layer (modifier) you want to modulate.
  2. Set the Channel type on the UVW XForm modifier to Vertex color.
  3. Animate the U, V, and W spinners using identical values. For example, animate UVW from 1 to 0 over the length of the animation.

    This will attenuate the RGB values of the underlying vertex color results uniformly. It will effectively dim out the vertex color result directly below the UVW XForm modifier.

    Note: Any additional vertex paint layers applied above the UVW XForm modifier in the stack for the selected object(s) will be unaffected
    Tip: You can add multiple UVW XForm modifiers in your stack in this way, giving some progressive control over modulated vertex colors. The effect is always additive, however, and cannot be weight-blended.

To paint under an existing layer and view the result:

  1. Select an object that has several VertexPaint modifiers displayed in the stack.
  2. In the modifier stack, activate the VertexPaint modifier that is the layer you want to paint on.
  3. Turn on (Show End Result On/Off Toggle).

    Now, when you paint on the layer, you will see the painting taking place under the top layer.

Interface

Parameter rollout

Selection group

The controls in this group are identical to the selection controls found in the Selection group of the Paintbox rollout.

Channel group

These controls specify which channel type the vertex paint layer will affect, and which map channel number you'll paint on.

  • Vertex Color Choose this to paint on a vertex color layer.
  • Vertex Illum Choose this to paint on a vertex illumination layer.
  • Vertex Alpha Choose this to paint on a vertex transparency layer.
  • Map Channel Choose this to paint on a specifically named or numbered map channel.
    Map channel spinner

    Specifies the channel number. Available only when Map Channel is chosen.

Note: If you have painted on a layer and then change the channel setting, the painted information will be moved to the new channel. For example if you select Vertex Color and paint, then turn on Vertex Illum, the painted information will be removed from the Vertex Color channel and applied to the Vertex Illum channel instead.
Name

If a channel has a name defined it will appear here. Channels can be named using the Channel Info Utility.

Ignore underlying color

When turned on, VertexPaint ignores whatever vertex colors it receives from below it on the stack. As a result, you will see the layer's raw colors on an otherwise white object. The blend mode has no effect (it behaves like Normal mode) because the base color is considered transparent, so the layer is not blended with anything.

The purpose of this toggle is to isolate a layer from the colors below, to help the user visualize the layer's raw data. The layer is not completed isolated when this is on, because layers above it can still affect the result. The user needs to disable those layers or turn off Show End Result to see the current layer in complete isolation.

The Ignore Base Color toggle should only be needed when the object at the bottom of the stack already has some vertex colors baked in. In other cases, you can just disable the paint layers or whichever modifiers are adding vertex colors to the object. In that case, the active paint layer would not receive any vertex colors from below itself on the stack. As a result, it treats all base color as transparent and the layer colors are displayed in the raw (not blended with anything).

Note: Per-vertex layer opacity is not passed up the stack. A paint layer modifier makes a yes/no decision about whether an object below it has vertex colors or not, and will subsequently treat all base colors as transparent or all as opaque. So if you paint even a single vertex using Edit Mesh, for example, the object is considered to have vertex colors, and a paint layer will blend its colors with the (predominantly white) mesh instead of treating the mesh as transparent.
Preserve Layer

When on, the modifier will not be deleted by any Condense To Single Layer operation. Since Condense To Single Layer performs two independent actions (creating a new baked-color modifier and then deleting existing modifiers), this option allows access to only the first part of the functionality when necessary. That is, you can bake colors into a new paint layer, without being forced to have the old modifiers deleted.

Edit

Displays the Vertex Paintbox floater if it has been closed.

Assign Vertex Color rollout

This rollout gives you access to the same controls found in the Assign Vertex Colors utility. They let you take the scene lighting information and bake it into the vertex channel system.