Share
 
 

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.

  • Select an object. > Modify panel > Modifier List > VertexPaint
  • Select an object. > Utilities panel > More > Assign Vertex Colors > Click OK. > Modify panel
  • Default menu: Select an object. > Modifiers menu > Mesh Editing > Vertex Paint
  • Alt menu: Select an object. > Modifiers menu > Geometry (Convert to Mesh) > Vertex Paint

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:

  • VertexPaint is automatically applied to the selected object when you click Assign Vertex Colors Assign To Selected. It is not available directly from the Modify panel or Modifiers menu.
  • To render vertex colors, assign a Vertex Color map, as described in To render vertex colors.
  • If you select faces using the selection tools of the VertexPaint modifier, you restrict your painting to the selected faces, as opposed to all faces. This allows you to sharply define the edges of your painted selection.
  • You can streamline the painting process by using the Brush Presets tools.
  • Each VertexPaint modifier works internally to itself, and cannot modify existing vertex coloring. To paint over existing coloring, use the Condense to single layer function.

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:

  • Channel (2): UVW “second pass” texture mapping coordinates
  • Channel (1): UVW standard texture mapping coordinates
  • Channel (0): RGB vertex color
  • Channel (–1): RGB vertex illumination
  • Channel (–2): FLOAT vertex alpha (really only one value needed)

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.

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.

Poly Tools group
Only available when a poly object is selected.
Note: With Shink and Grow, you can add or remove neighboring elements from the edges of your current selection. This works at any sub-object level.
Important: The Ring and Loop spinners in the PaintVertex modifier work differently than they do in other areas of 3ds Max, as they are not defined only on edges. For example, to slide a selected ring of faces vertically by one face, click the Loop spinner once.
Shrink
Reduces the sub-object selection area by deselecting the outermost sub-objects. If the selection size can no longer be reduced, the remaining sub-objects are deselected.
Grow
Expands the selection area outward in all available directions. For this function, a border is considered to be an edge selection.
Ring
Expands an edge selection by selecting all edges parallel to the selected edges.
Loop
Selects a loop or loops based on the current sub-object selection.
Tip: You can select a loop quickly by selecting a sub-object and the Shift+clicking another object at the same level in the same loop.
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.
Capture

VertexPaint copies the existing vertex colors it receives from layers below it on the stack and places it into the current layer for editing.
Tip: When vertex colours have been placed into the current layer, enabling Ignore Underlying Color has no effect.
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.

Was this information helpful?