Troubleshoot Paint Effects

Here are solutions to problems you may encounter when using Paint Effects. These problems include:

Stroke not drawn, with error message

If a brush is very heavy and the number of segments or poly faces exceeds 1000000 in a brushstroke, a message is shown and the brushstroke is not drawn. This prevents the display from locking up, and prevents the stroke quality from being compromised.

To work around this problem, simplify the brush. Or, if memory is not an issue, increase the value of the hidden maxDrawSegments attribute (its default value is 1000000).

To change maxDrawSegments to a larger value (for example, 5000000), issue the following MEL command:

setAttr strokeShape1.maxDrawSegments 5000000

where strokeShape1 is the name of your stroke, pfxHair or pfxToon node.

To set it so that there is no limit:

setAttr strokeShape1.maxDrawSegments 0
Tip: Lowering the stroke’s Display Quality will simplify the stroke display and avoid hitting this warning, although the shape of the stroke may also change. Turning off Draw As Mesh will also allow more of the stroke to display, although it will be in a simple wireframe.

To reduce the triangle count, lower the Tube Sections value (Generate > Mesh Quality Attributes).

Painted strokes appear too dark

Do one of the following:

Tubes appear too small in the scene

Increase the Global Scale for the brush or increase the Scene Scale.

Rendered strokes are made up of circles

Increase the Stamp Density for the brush in small increments to avoid setting the value excessively high.

Tubes appear jagged or segmented across curved sections

Increase the number of tube segments (Tubes > Creation) for the brush.

Feedback does not reflect rendered image

Increase the Display Quality or ensure that you are in the scene painting view.

Canvas clears to black even though you changed the canvas color

You could be viewing the alpha plane. Select Display > All Channels and clear again.

Brush stroke appears to “leak” through joined edges of surface

You paint across the joined edges of a single surface (for example, the center line on a face created by duplicating half the face and attaching it to the first half) and your brush stroke appears to “leak” through the join and jump to the back of the head.

Make sure the surface is periodic in U and V.

The Global Scale brush setting appears to be ignored

Check the Paint Effects Globals. The Global Scale for the next brush preset you select is multiplied by the Canvas Scale or Scene Scale value, depending on where you are painting.

You attempt to share a brush, but the wrong brush is shared

When you select Generate > Share One Brush, the selected strokes share the brush of the stroke that was selected last (called the primary selection object, which highlights green by default).

Stroke texture colors do not match colors set for the texture

You map a texture to the brush color, but when you paint the stroke, the texture colors do not match the colors you set for the texture.

When you map a texture to the brush color, the texture color values (Tex Color1 and Tex Color2) are multiplied by the brush color value (Color1). To ensure that the painted texture colors match the texture colors set for the brush, set the brush color to white (value 1).

Your Wacom stylus and tablet have no pressure sensitivity

When you paint strokes in Paint Effects on Linux, your Wacom stylus and tablet have no pressure sensitivity.

Select an Artisan tool (for example, the Paint Selection Tool) and open the Tool Settings editor. Expand the Stylus Pressure section. If the Stylus Pressure options are grayed, Maya cannot find your Wacom tablet. Your tablet may be installed under the generic name “tablet.”

To fix this on Linux, go to the Wacom web site (http://www.wacom.com) and read product support information for Linux.

You install a new tablet but Paint Effects does not recognize it

You installed a new tablet, but now pressure sensitivity does not work in Paint Effects.

To remedy this, reset the brush (Generate > Reset Template Brush).

Painted strokes look nothing like the selected brush preset

You select a brush preset then paint a stroke, but the resulting strokes do not use the values defined for the brush preset.

The Brush Preset Blend window may be open. When this window is open, each time you select a brush preset, the shading and shape values for the selected brush preset are blended with the values in the template brush according to the blend settings.

To avoid this happening again, set hotkeys for blending (BrushPresetBlend, BrushPresetBlendShape, BrushPresetBlendShading).

To blend, set the shading and shape proportions in the Brush Preset Blend window, then close the window. Select the first brush, press and hold the blend hotkey, then select the brush preset you want to blend. While the hotkey is pressed, each time you click a preset, the values are blended with the template brush values. Release the hotkey to stop blending.

Tube growth and texture flow appear out of sync

You simultaneously animate tube growth and texture flow (for example, the growth of a textured tree), and the texture appears to flow faster than the tree grows.

To remedy this, select the strokes and turn on Texture Flow in the Flow Animation section of the Paint Effects Brush Settings window.

You set a Start Time for your flow animation but tubes do not appear

Start time and end time are measured in seconds, so if you set the Start time (seconds) box to 60, for example, and your Time units are 24 fps (Windows > Settings/Preferences > Preferences, then click the Settings category), then the animation will not start until frame 1440.

If you know what frame you want tubes to appear on, divide this frame number by the frames per second defined by your Time unit to determine what value to enter in the Start time (seconds) box. For example, if you want your tubes to appear on frame 60 and your Time unit is set to NTSC (30 fps), divide 60 frames by 30 frames per second, for a start time of 2 seconds.

You can perform this calculation by creating an expression in the field. Type an equals sign (=) followed by the calculation. In the previous example, you would type:

=60.0/30 

Notice that the time must have a floating point decimal.

Aliasing appears around geometry where it overlaps with a stroke

See the Paint Effects strokes render in the wrong order relative to other objects in the scene section.

You modify a texture applied to a surface, but the surface does not update

In the canvas, make sure Auto Save is turned on. If you are using Windows, you may also have to change the Hardware Texture resolution (in the shader Attribute Editor) to something other than Default.

The alpha plane for the scene painting view appears white

Alpha planes for the scene painting view are completely white. To see the alpha of the scene painting view, render the scene (Render > Render Current Frame) and in the Render View, select Display > Alpha Channel.

You attempt to paint on a surface but the stroke paints on the view plane

Turn off Paint At Depth (Paint Effects > Paint Effects Tool > ).

Strokes take a very long time to render

You have a scene with dozens of strokes created with the same brush (for example, a corn field) and it takes a very long time to render.

Try simplifying the brush by lowering the number of Segments, Leaf Segments, and Petal Segments.

You could also try using a texture on the brush to provide the detail instead of tubes. For example, if you are painting a corn field, render a tall skinny image of a single corn stalk (with alpha against black) that just fits a single tube and use this as a texture on a brush with single tubes. (Look at the pineTextured brush for an example of this technique.) You could use this method for stalks that are not in close-up shots. Randomize the wiggle of the tubes to make the stalks look different. For variety, you could also use different brushes with different textures.

Paint Effects strokes render in the wrong order relative to other objects in the scene

Paint Effects uses the depth buffer generated by the scanline renderer to determine occlusion. For rendered effects where multiple surfaces are visible within a single pixel (such as transparency, antialiased edges, motion blur, light fog, and volume densities) this creates problems, as there is one depth value and one color per pixel to composite paint effects into.

You can affect how the renderer decides how to reduce multiple depth values visible within a pixel to the single output depth value using the camera Depth Type (in the Output Settings section of the Attribute Editor).

With Furthest Visible Depth, Paint Effects strokes lying behind these elements will punch through as if they were totally in front.

Closest Visible Depth picks the surface nearest the camera within the pixel. Thus a transparent surface or motion blurred streak will totally obscure any Paint Effects strokes behind them. The Threshold value determines the transparency at which surfaces will not appear in the depth buffer.

Transparency, transparency maps

In the Output Settings of your render camera, set the Depth Type attribute to Closest Visible Depth and adjust the Threshold.

Antialiased edges

  • In the Output Settings of your render camera, turn on Depth, then set the Depth Type to Furthest Visible Depth.
  • Turn off anti-aliasing for your objects, render your objects and Paint Effects strokes at a large size, and then use a third-party software product to reduce the size of your render and resample it.

Transparency, transparency maps, and antialiased edges

  • Render your Paint Effects strokes separately and composite.
  • Convert your Paint Effects strokes to polygons.

Staircased mesh brushes

Mesh brushes will have staircased (aliased) edges unless Paint EffectsOversample is turned on. (Paint Effects Rendering Options section in the Maya Software tab of the Render Settings window)

My strokes look unfinished, for example, my tree does not finish drawing

The maximum number of segments or poly faces that Maya will draw in the scene view defaults to 1000000. This value is controlled by a hidden attribute called maxDrawSegments. With the maxDrawSegments attribute, the stroke stops drawing when the maximum value is reached; the stroke does not change shape, it is just incomplete. (However the batch render will complete.) Setting maxDrawSegments on a stroke to zero makes it infinite, in other words, Maya will keep drawing until the stroke is completed or it runs out of memory.

Setting this value prevents very heavy brushes from locking up the interactive display. Should you exceed this limit, a warning message appears:

<strokeName> was only partially drawn. For more information see “maxDrawSegments” in the Maya Help.

If you would like to display the full stroke, and you have the available memory, then do a setAttr on that stroke's maxDrawSegments attribute. For example:

setAttr strokeShape1.maxDrawSegments 10000000

To set it so that there is no limit:

setAttr strokeShape1.maxDrawSegments 0

where strokeShape1 is the name of your stroke, pfxHair or pfxToon node.

The only point of doing this setAttr is if you want to interactively display more than the default of 1000000 polygons on a single stroke.

Tip: Lowering the strokes Display Quality will simplify the stroke display and avoid hitting this warning, although the shape of the stroke may also change. Turning off Draw As Mesh will also allow more of the stroke to display, although it will be in a simple wireframe.

To reduce the triangle count, lower the Tube Sections value. (Generate > Mesh Quality Attributes)