为优化大型场景的高性能场景视图选择“Viewport 2.0”。使用 Viewport 2.0 可以与包含许多对象的复杂场景进行交互,以及与包含大型几何体的大型对象进行交互。
打开“硬件渲染器 2.0 设置”(Hardware Renderer 2.0 Settings)窗口,其中含有以下选项。
该选项会尝试为使用常用材质的形状组合几何缓存。在许多场景中,可以通过额外增加内存来获得性能的大幅提升。
在合并几何体时,“合并世界”(Consolidate world)会将多个对象的顶点移到一个新的共享对象空间中。因此,如果插件着色器做了有关对象的对象空间坐标的假设,“合并世界”(Consolidate world)将打破这些假设,着色器可能无法正确渲染。
若要使用此功能,必须重新将顶点法线规格化为单位长度。因此,不使用单位长度法线的材质将与“合并世界”(Consolidate world)不兼容。
当对象发生更改时,它还未进行合并。之后如果持续几个帧保持不变,它会重新进行合并。因此,如果您发现在编辑或取消选择后,对象在视口中绘制了很短时间内有所不同,这可能是“合并世界”(Consolidate world)导致的。如果不希望出现此情况,则禁用此选项。
默认情况下禁用。启用时,Maya 将缓存每帧动画的结果网格数据,从而在执行各种任务(包括拖动动画、翻滚摄影机、移动变换节点以及使用 Viewport 2.0 中的实时预览调整照明)期间获得更好的性能。
提高效率的另一种方法是将“时间滑块”(Time Slider)首选项对“播放速度”(Playback Speed)设置为“播放每一帧”(Play every frame),并且将“最大播放速度”(Max Playback Speed)设置为所需的帧速率(“窗口 > 设置/首选项 > 首选项”(Window > Settings/Preferences > Preferences))。
启用此选项后,如果一个 Maya 形状(如多边形对象)有多个实例(特别是大量实例),且所有实例都使用相同材质,则它们可以使用硬件实例化进行渲染。这消除了图形驱动程序状态更改开销以及渲染流程开销,可更快地生成渲染结果。
在某些情况下,您可能想要禁用“GPU 实例化”(GPU Instancing),例如以下情况:
有时,当实例具有负比例并且您启用了其他功能(如背面消隐),照明可能显示不正确。通常,如果具有负比例且实例显示不正确,那么请禁用“GPU 实例化”(GPU Instancing)。
如果您拥有大量非常小的实例,启用此选项可能会降低场景的速度。例如,如果您拥有一个包含 1000 个非实例化对象的大型场景,并将其全部选中,然后一次性进行实例复制,那么您将拥有 1000 个实例对。在类似情况下,如果实例批次非常小且具有大量批次,那么“GPU 实例化”(GPU Instancing)的开销可能导致场景速度稍慢。没有实例的对象则不会有实例化开销。
使用 MPxGeometryOverride 的插件可能不支持“GPU 实例化”(GPU Instancing)。
如果启用该选项,Maya 会尝试对单独的线程中的单独的角色(DG 的子图表)进行求值。
使用该选项可设定渲染中使用的最大灯光数。不包括隐藏的灯光。默认为 8 个灯光,最大为 16 个灯光。
请从下列透明度排序算法中选择。
不进行透明度排序。
对象将按深度进行排序。会将离摄影机远的对象绘制在离摄影机近的对象前面。
这是一个与顺序无关的透明度算法,且不涉及任何对象或多边形排序。会将最终颜色计算为一个像素内所有透明对象的加权平均。该算法的优点是,它与顺序无关,因此即使对于大量透明对象、头发、粒子系统等等,它也会很快。该算法非常适合远处对象,此时您需要使用快速算法渲染透明度,但不需要高质量。它对于单级别透明度是准确的,并且是稳定的,没有因排序产生的跳转瑕疵。
为了使插件着色器使用“深度剥离”(Depth Peeling)或“加权平均”(Weighted Average)透明度算法,必须使用以下过程语义实施支持:kTransparentPeelSemantic、kTransparentPeelAndAvgSemantic 或 kTransparentWeightedAvgSemantic。详细信息请参见 Maya 开发人员帮助。否则,插件着色器会恢复为使用“对象排序”(Object Sorting) 透明度算法。
dx11Shader 和 ShaderFX 支持所有透明度算法。
深度剥离透明度通过多个过程渲染每个像素的透明度。在每个过程中,剥每个像素的下一个透明层并在上一层的后面进行合成。在处理完所设置的已剥层的数目之后,将在单个过程中使用加权平均算法处理其余的所有层。这有助于平衡透明度质量和性能,因为深度剥提供高质量的透明度,但会大大降低性能。
“深度剥离”(Depth Peeling)不支持“多采样抗锯齿”(Multisample Anti-aliasing)。它仅影响不透明对象,而不影响透明对象。
启用时,任何分辨率高于“最大纹理分辨率”(Max Texture Resolution)的纹理都将缩小,以便您可以仍在纹理模式下操作,同时节约内存。
如果您的场景中包含多个高分辨率纹理,以致您的显卡没有足够的内存来处理,则不会加载这些纹理并以非纹理模式显示该场景。此时将显示一条错误信息,指明已超出纹理 RAM 限制并建议您减小“最大纹理分辨率”(Max Texture Resolution)钳制。
只要显卡没有足够的内存来处理纹理,就会显示该错误消息,如果未启用“钳制纹理分辨率”(Clamp Texture Resolution),或“最大纹理分辨率”(Max Texture Resolution)设置得太高且无法充分缩小纹理分辨率以满足可用的 GPU 内存,则会出现这种情况。
设置一个在 32 和 8192 之间的值。
在更改“最大纹理分辨率”(Max Texture Resolution)后,单击以将更新的限制应用于已加载到场景中的纹理。否则,更新的限制将仅应用于新加载的纹理。请参见“超出 GPU 纹理 RAM,纹理加载失败”错误消息的疑难解答。
与“UV 平铺模式”(UV Tiling Mode)结合使用。(请参见通过单个纹理节点加载多平铺 UV 纹理。)
默认情况下,Maya 不会自动预览“Viewport 2.0”中的 UV 平铺纹理。如果在场景中有多个 UV 平铺集,可以通过单击“重新生成所有 UV 平铺预览纹理”(Regenerate All UV Tile Preview Textures)生成所有 UV 平铺集的预览。此选项将遵循为每个文件节点保存的“预览质量”(Preview Quality)设置。
支持用作烘焙纹理的 Maya 着色节点将列在 Viewport 2.0 的内部纹理烘焙中。可以使用这些属性为烘焙的纹理设定分辨率。
选择该选项可启用屏幕空间环境光遮挡。
启用后期效果(如屏幕空间环境光遮挡、运动模糊和景深)时,线框和组件的绘图不受这些效果影响。曲面的填充显示会受到影响。但是,如果曲面是半透明的,那么曲面的线框和组件不会与填充的绘图混合到一起。例如,如果创建了一个对象,然后将其着色器透明度设定为半透明并选择该对象或其组件,那么将看到启用和禁用“屏幕空间环境光遮挡”(Screen-space Ambient Occlusion)之间的差别。
此外,与其他透明度选项不同,使用“加权平均”(Weighted Average) 的“透明度算法”(Transparency Algorithm)时,不会将线框绘图与透明曲面绘图混合到一起。
选择该选项可启用多采样抗锯齿。
当“多采样抗锯齿”(Multisample Anti-aliasing)或“屏幕空间环境光遮挡”(Screen-space Ambient Occlusion)处于启用状态时,可能会在半透明对象顶部绘制 UI 项目(如定位器或线框网格)。
在“Gamma 校正”(Gamma Correction)部分中启用“启用”(Enable)以输入“Gamma 校正”(Gamma Correction)值。在启用后,Gamma 校正在渲染结束时完成,为显示的非线性性质进行调整。默认值为 2.2。
启用时,可以渲染到浮点缓冲区,而不是整数缓冲区。
从以下选项中选择:
选择此选项可遮罩渲染中的所有几何体,只保留粒子、nParticle、粒子实例化器、流体和 nHair。此选项主要用于渲染硬件粒子以进行合成。
在可用照明模式中选择。从“全部”(All)、“默认”(Default)、“活动”(Active)、“无”(None)和“完整环境光”(Full Ambient)中进行选择。如果场景中没有灯光,但选择了“全部”(All)选项,那么使用的照明将取决于“启用默认灯光”(Enable Default Light)选项(在“渲染设置”(Render Settings)的“公用”(Common)选项卡下的“渲染选项”(Render Options)部分)的设置。请参见照明,了解有关各种灯光模式的详细信息。
从对象列表中选择以从“渲染视图”(Render View)渲染或批渲染中过滤出它们。
使用“组件”(Components)、“装饰”(Ornaments)和“其他 UI”(Misc. UI)控件过滤出下列元素:
组件,例如:
装饰,例如:
其他 UI,例如:
可以使用 UI 选项过滤线框。可以使用“运动轨迹”(Motion Trails)选项过滤运动路径(NURBS 曲线和帧编号)。可以使用“灯光”(Lights)选项过滤 mental Ray 自定义区域灯光。
在此窗口中关闭的任何元素均不会在“渲染视图”(Render View)或批渲染中渲染。另一方面,“显示”(Show)面板菜单下的设置会过滤出场景视图中的对象。
默认情况下,“对象类型过滤器”(Object Type Filter)的“UI”设置处于禁用状态。由于线框和边界框被视作 UI,因此,如果您在“批渲染选项”(Batch Render Options)下选择以下“渲染模式”(Render Modes):“线”(Wire)、“线框着色”(Wire on Shaded)、“线框着色且带纹理”(Wire on Shaded And Textured)和“边界框”(Bounding Box),必须启用 UI 切换以及要渲染对象的 UI 列表中的相关子项。
默认情况下,“图像平面”(Image Planes)过滤器处于启用状态,而“UI”过滤器处于禁用状态。因此,不渲染摄影机 UI,而渲染图像平面。