以下是使用“Paint Effects”时可能遇到的问题的解决方法。这些问题包括:
如果笔刷非常厚重,且在笔刷笔划中分段或多边形面的数量超过 1000000,则会显示一条消息,并且不会绘制笔刷笔划。这样可避免显示被锁定,并可防止笔划质量受到影响。
若要解决该问题,请简化笔刷。或者,如果内存不是问题,请增大隐藏的 maxDrawSegments 属性的值(其默认值为 1000000)。
若要将 maxDrawSegments 更改为更大的值(例如,5000000),请发出以下 MEL 命令:
setAttr strokeShape1.maxDrawSegments 5000000
其中 strokeShape1 是笔划、pfxHair 或 pfxToon 节点的名称。
setAttr strokeShape1.maxDrawSegments 0
若要减少三角形计数,请降低“管分段”(Tube Sections)值(“Paint Effects > 网格质量属性”(Paint Effects > Mesh Quality Attributes))。
“全局比例”(Global Scale)笔刷设置看起来会被忽略
检查“Paint Effects 全局参数”(Paint Effects Globals)。会将所选择的下一个笔刷预设的“全局比例”(Global Scale)与“画布比例”(Canvas Scale)或“场景比例”(Scene Scale)值相乘,具体取决于绘制所在的位置。
选择“Paint Effects > 共享一个笔刷”(Paint Effects > Share One Brush)时,选定的笔划会共享最后选择的笔划(称为主要选择对象,默认情况下该对象会亮显为绿色)的笔刷。
将纹理映射到笔刷颜色,但是当绘制笔划时,这些纹理颜色与为纹理设定的颜色不匹配。
如果将纹理映射到笔刷颜色,则会将纹理颜色值(“Tex Color1”和“Tex Color2”)与笔刷颜色值(“Color1”)相乘。若要确保绘制的纹理颜色与为笔刷设定的纹理颜色匹配,请将笔刷颜色设定为白色(值 1)。
在 Linux 上的“Paint Effects”中绘制笔划时,Wacom 光笔和绘图板没有压力敏感度。
选择“Artisan”工具(例如,“绘制选择工具”(Paint Selection Tool)),然后打开“工具设置”(Tool Settings)编辑器。展开“光笔压力”(Stylus Pressure)区域。如果已灰显“光笔压力”(Stylus Pressure)选项,那么 Maya 将找不到 Wacom 绘图板。绘图板可能会安装在通用名称“tablet”下面。
若要在 Linux 上解决该问题,请转到 Wacom 网站 (www.wacom.com) 并阅读适用于 Linux 的产品支持信息。
安装了新的绘图板,但现在压力敏感度在“Paint Effects”中不起作用。
若要解决该问题,请重置笔刷(“Paint Effects > 重置模板笔刷”(Paint Effects > Reset Template Brush))。
选择了一个笔刷预设,然后绘制一个笔划,但产生的笔划没有使用为笔刷预设定义的值。
可能会打开“笔刷预设混合”(Brush Preset Blend)窗口。当该窗口打开时,每次选择一个笔刷预设,就会根据混合设置将选定笔刷预设的着色和形状值与模板笔刷中的值相混合。
若要避免再次发生这种情况,请为混合(“BrushPresetBlend”、“BrushPresetBlendShape”、“BrushPresetBlendShading”)设定热键。
若要混合,请在“笔刷预设混合”(Brush Preset Blend)窗口中设置着色和形状比例,然后关闭该窗口。选择第一个笔刷,按住混合热键,然后选择要混合的笔刷预设。按下热键时,每次单击某个预设,就会将这些值与模板笔刷值混合。释放热键可停止混合。
同时设置管状体生长和纹理流的动画(例如,带纹理的树的生长),而纹理的流动速度看起来比树的生长速度要快。
若要解决该问题,请选择笔划,然后在“Paint Effects 笔刷设置”(Paint Effects Brush Settings)窗口的“流动画”(Flow Animation)区域中启用“纹理流”(Texture Flow)。
为流动画设定了“开始时间”(Start Time),但不显示管状体
开始时间和结束时间是以秒为单位进行度量的,因此,举例来说,如果将“开始时间(秒)”(Start time (seconds))框设定为 60,并且“时间”(Time)单位为 24 fps(选择“窗口 > 设置/首选项> 首选项”(Window > Settings/Preferences > Preferences),然后单击“设置”(Settings)类别),那么直到第 1440 帧动画才会开始。
如果知道需要管状体显示在哪一帧上,请将该帧的编号除以由“时间”(Time)单位定义的每秒帧数,以确定要在“开始时间(秒)”(Start time (seconds))框中输入哪个值。例如,如果需要管状体显示在第 60 帧上,且“时间”(Time)单位设定为“NTSC(30fps)”(NTSC (30 fps)),请将 60 帧除以每秒 30 帧,得到开始时间为 2 秒。
可以通过在字段中创建表达式来执行该计算。键入等号 (=),后面跟着计算。在上一个示例中,可键入:
=60.0/30
在画布上,确保启用了“自动保存”(Auto Save)。如果使用的是 Windows,可能还必须将“硬件纹理分辨率”(Hardware Texture resolution)(在着色器“属性编辑器”(Attribute Editor)中)更改为除“默认”(Default)值”之外的其他值。
场景绘制视图的 Alpha 平面完全是白色的。若要查看场景绘制视图的 Alpha,请渲染场景(“渲染 > 渲染当前帧”(Render > Render Current Frame)),然后在“渲染视图”(Render View)中,选择“显示 > Alpha 通道”(Display > Alpha Channel)。
禁用“在深度模式下绘制”(Paint At Depth)(“Paint Effects > Paint Effects 工具”(Paint Effects > Paint Effects Tool) > )。
有一个场景,其中包含使用相同笔刷创建的许多笔划(例如,一片玉米田),并且需要花费很长时间进行渲染。
请尝试通过减少“分段”(Segments)、“叶分段”(Leaf Segments)和“花瓣分段”(Petal Segments)的数量来简化笔刷。
也可以尝试在笔刷上使用纹理,以提供细节,而不是管状体。例如,如果要绘制一片玉米田,请渲染只适配单个管状体的单个玉米秸秆的长细条状图像(包含以黑色为背景的 Alpha),并将该图像用作包含单个管状体的笔刷上的纹理。(有关该技术的示例,请查看 pineTextured 笔刷。)可以将该方法用于不在特写镜头中的秸秆。使管状体的摆动随机化,以使秸秆看起来不相同。为了变化,也可以使用具有不同纹理的不同笔刷。
Paint Effects 笔划相对于场景中的其他对象以错误的顺序渲染
“Paint Effects”使用由扫描线渲染器生成的深度缓冲区来确定遮挡。对于多个曲面在单个像素内可见的渲染效果(如透明度、抗锯齿边缘、运动模糊、灯光雾和体积密度),这样做会产生问题,因为存在一个深度值和一个每像素颜色用于将绘制效果合成进去。
可以影响渲染器决定以下事项的方式:如何使用摄影机“深度类型”(Depth Type)将一个像素内可见的多个深度值减少到单个输出深度值(在“属性编辑器”(Attribute Editor)的“输出设置”(Output Settings)区域中)。
借助“最远可见深度”(Furthest Visible Depth),位于这些元素后面的“Paint Effects”笔划将穿通,就好像它们完全在前面一样。
“最近可见深度”(Closest Visible Depth)拾取像素内离摄影机最近的曲面。这样,透明曲面或运动模糊条纹将完全遮挡它们后面的所有“Paint Effects”笔划。“阈值”(Threshold)值确定透明度,在该透明度下,曲面将不会显示在深度缓冲区中。
网格笔刷将具有阶梯状(锯齿)边,除非启用了“Paint Effects”“过采样”(Oversample)(“渲染设置”(Render Settings)窗口的“Maya 软件”(Maya Software)选项卡的“Paint Effects 渲染选项”(Paint Effects Rendering Options)区域)。
Maya 将在场景视图中绘制的分段或多边形面的最大数量默认为 1000000。该值由一个称为 maxDrawSegments 的隐藏属性控制。使用 maxDrawSegments 属性,在达到最大值时,笔划就会停止绘制;笔划不会改变形状,它只是不完整(但是,批渲染将完成)。在笔划上将 maxDrawSegments 设定为零会使笔划变成无限大,也就是说,Maya 将一直绘制,直到完成笔划或内存不足为止。
设定该值可防止非常厚重的笔刷锁定交互式显示。如果超出该限制,将显示一条警告消息:
仅部分绘制了 <strokeName>。有关详细信息,请参见 Maya 帮助中的“maxDrawSegments”。
如果希望显示完整的笔划,且有可用内存,那么请在笔划的 maxDrawSegments 属性上执行 setAttr。例如:
setAttr strokeShape1.maxDrawSegments 10000000
setAttr strokeShape1.maxDrawSegments 0
其中 strokeShape1 是笔划、pfxHair 或 pfxToon 节点的名称。
执行该 setAttr 的唯一意义在于,如果需要以交互方式在单个笔划上显示多于默认的 1000000 个多边形。
若要减少三角形计数,请降低“管分段”(Tube Sections)值。(“Paint Effects > 网格质量属性”(Paint Effects > Mesh Quality Attributes))