用于Maya的Verge3D：照明与渲染 - Soft8Soft
Description: 了解如何在Verge3D for Maya中配置环境照明、灯光和渲染设置。

# 照明与渲染 / Maya

本页包含可与Verge3D for Maya一起使用的照明、渲染和背景设置的信息。

- 渲染器
- 环境照明
- Lights
- Reflection Cubemap Light Probes
- Reflection Plane Light Probes
- Background
- 全局渲染设置
- Ambient Occlusion
- 轮廓渲染
- 每个对象的渲染设置
- 在高分屏/视网膜屏（HiDPI/Retina）上渲染
- Fit to Camera Edge
- Visibility Breakpoints
- 线框渲染
- 剪切平面

#

## 渲染器

Verge3D被设计为尽可能地趋近Maya的Viewport 2.0硬件渲染器效果。它支持基于物理的着色、灯光、阴影和基于图像的照明(IBL)。

#

## 环境照明

环境照明是Verge3D图形流水线的一个非常重要的组成部分。您可以只用环境贴图来照亮整个场景，而不使用任何灯光对象。请参阅 电动车定制器演示 作为示例：

默认的立方体模板为基于图像的照明提供了一个HDR纹理。您可以用自己的文件替换这个纹理，或者从头开始设置环境照明。为此只需将Arnold渲染器的的aiSkyDomeLight对象添加到场景中，并为Color指定纹理即可。

此外，您可以使用Intensity属性来调整环境照明的强度，使用Texture Resolution来设置其质量：

- Low (64x64)和Medium (128x128)- 不支持这些值，Verge3D将使用High (256x256)设置来代替它们。
- High (256x256) — 最合适的质量和较低的内存消耗（默认值）。
- Higher (512x512) — 更好的质量，适中的内存消耗和相对降低的性能。可用在渲染高质量的反射的场景，例如渲染珠宝。
- Ultra (1024x1024) — 高内存消耗，低性能，最佳渲染质量（一般不推荐）。

当为Skydome使用HDR纹理时，确保将 Color Space 设置为 Raw。

您也可以不为 aiSkyDomeLight 指定纹理，直接模拟来自各个方向的均匀光线。但使用 Ambient Lights 会比此方法更有效。

#

## Lights

在某些情况下，仅仅使用基于图像的照明不足以照亮场景。如果您想模拟一些额外的光源，需要动态阴影，或者您需要移动您的灯光（如汽车灯光），可以使用 直接光源

Verge3D支持以下灯光类型：

- Ambient Lights — Verge3D中支持 Color 和 Intensity 属性。
- Directional Lights — Verge3D中支持 Color 和 Intensity 属性。
- Point Lights — Verge3D支持 Color、Intensity 和 Decay Rate 属性。
- Spot Lights — Verge3D中支持 Color、Intensity、Decay Rate、Cone Angle 和 Penumbra Angle 属性。
- Area Lights — Verge3D中支持 Color 和 Intensity 属性。光线变换的比例控制着发光的区域。

此外，您可以为平行灯、点光源和聚光灯指定深度贴图阴影属性。参见 这里 的更多信息。

#

## Reflection Cubemap Light Probes

Verge3D插件增加了一个名为 v3dReflectionCubemap 的自定义光照探头对象，可用于通过局部反射立方体贴图对对象施加间接照明。

有关使用示例，请查看 Light Probe 演示（也可在资源商店中找到）。

新的光照探头对象可以在自定义 Verge3D 工具架里找到。

此对象定义了一个由长方体或球体代表的影响体积。 所有包含在该体积内的对象， 将使用在运行时生成的本地立方盒反射， 而不是场景的全局环境纹理或颜色。
使用局部反射贴图的好处是，它有周围物体的烘焙， 而场景的全局贴图只包含Arnold的 aiSkyDomeLight 对象中指定的背景纹理或颜色。局部反射贴图也有视差效应，这取决于 influence volume 或 parallax volume 的几何形状。

左图 - Maya视口中的立方盒反射对象， 右图 - 其在Verge3D中为反射材质添加的效果。

v3dReflectionCubemap对象有以下属性参数：

General Settings
  常规光照探头设置：
  Influence Type
    影响体积的类型： Sphere 或 Box。 只有位于此体积内的对象才会受到光照探头照明的影响。默认为 Sphere。
  Influence Distance
    影响体积的大小。 您也可以改变对象的比例，使影响体积的形状不均匀。 默认为1.0。
  Intensity
    间接照明的强度。 任何不等于1.0的数值在物理学上都是不正确的。默认为1.0。
  Clipping Start
    裁剪起始距离。位于比此值更近的对象将不会被渲染到立方盒反射中。 默认为0.1。
  Clipping End
    裁剪结束距离。位于比此值更远的对象将不会被渲染到立方盒反射中。 默认为100.0。
Visibility Set
  对象可见性设置：
  Selection Set
    将出现在立方盒反射上的对象限制为属于此选择集的物体。 在此处留空选择， 将不指定任何对象集—— 这样所有的场景对象都将被用于生成立方盒反射。 默认留空。
  Invert Visibility
    如果指定了 Selection Set ， 则反转对此光照探头可见对象的选择。默认禁用。
Custom Parallax
  视差设置：
  Use Custom Parallax
    启用视差校正的自定义设置。这一组设置定义了一个视差体积， 用来投射探头捕捉到的照明。如果 Custom Parallax 未启用， 时差效果将基于 Influence Type 和 Influence Distance 计算。默认禁用。
  Parallax Type
    视差体积的类型：Sphere 或 Box。默认为 Sphere。
  Parallax Distance
    视差体积的大小。默认为1.0。
Custom Influence
  自定义影响设置：
  Use Custom Influence
    启用自定义影响设置。 这组设置允许定义将受此光照探针影响的一组对象。 将使用 Selection Set（如果指定）代替 Influence Type 和 Influence Distance 常规探头设置。
  Selection Set
    将应受此光照探针影响的对象限制为此选择集。 如果指定，则使用它代替 Influence Type 和 Influence Distance 常规探头设置。
  Invert Influence
    如果指定了 Selection Set ， 则反转受此探头影响的对象的选择。

#

## Reflection Plane Light Probes

反射平面光照探头，用于将实时反射（间接照明）应用于平面对象，如镜子、地板、墙壁等。

有关使用示例，请查看 Light Probe 演示（也可在资源商店中找到）。

这个新的光照探头对象可以在自定义的 Verge3D 工具栏中找到：

反射平面对象具有以下参数：

Influence Distance
  探头的影响距离。
Falloff
  控制探头影响的下降速度。
Clipping Offset
  在靠近摄影机处对光照探头中渲染的对象进行剪切。
Visibility Set
  光照探头可见对象的对象集。指定空值可使所有场景对象对探头可见。
Invert Visibility
  如果指定了 Visibility Set，则反转对此光照探头可见对象的选择。默认禁用。

反射平面光探头只能作用于粗糙度为零且金属度最大的表面：

平面反射探头会大大降低场景的性能，因为它们会将绘制调用(draw calls)次数乘以 N+1 的系数。若要加快渲染速度，请在 Visibility Selection Set 属性中指定一组有限的反射对象。

#

## Background

默认情况下，Verge3D渲染的背景与您在Maya的视图中看到的一样（大多数情况下是灰色）。当使用基于图像的照明（由aiSkyDomeLight对象提供）时，您会看到环境纹理。

要将背景改为其他颜色，不要在Maya中编辑视图设置，只需更改主摄影机属性中环境 Background Color 并启用 Verge3D 属性中的 Render Background 属性即可。

您可以使用Maya的 Render View 窗口或Verge3D的 Sneak Peek 功能来预览具有自定义背景的场景。

#

## 全局渲染设置

在Maya的主菜单点击Verge3D -> Export Settings... 来访问全局渲染设置。

Anti-Aliasing
  选择场景使用何种反锯齿算法：
  Auto
    使用系统默认方法。在大多数情况下，这将是 MSAA 4x。
  MSAA 4x
    如果目标硬件支持的话，则首选使用4倍采样的多采样抗锯齿。
  MSAA 8x
    如果目标硬件支持的话，则首选使用使用8倍采样的多采样抗锯齿。
  MSAA 16x
    如果目标硬件支持的话，则首选使用使用16倍采样的多采样抗锯齿。
  FXAA
    强制使用快速近似抗锯齿(FXAA)。如果您遇到程序纹理的锯齿问题，请启用此算法。
  None
    禁用抗锯齿。
Use HDR Rendering

  启用高动态范围渲染。

  如果激活，Verge3D 将使用 16 位浮点纹理作为渲染缓冲区。此功能可以显著改善 Bloom 后处理的渲染以及基于节点的渐变纹理的平滑度。这样做的缺点是增加了 GPU 内存消耗并降低了性能。

  此功能与通常用于产生基于图像照明的HDR纹理无关，因此启用它不会改善此类纹理的渲染。

IBL Environment Mode
  PMREM (best)
    使用预过滤的、带mipmap的辐射环境贴图（PMREM）。此属性默认选中，因为它同时提供最高质量和不错的性能。
  Light Probe (fast)
    完全禁用基于图像的镜面反射，但仍会应用漫反射分量。此模式速度快，但仅对非金属表面（例如使用 Lambert 着色器渲染）提供不错的质量。
  None (fastest)
    对镜面反射和漫反射都禁用基于图像的照明。这是所有模式中最快的。如果您使用无着色（自发光）表面或仅依靠光源来着色场景，则此模式非常合适。
Order-Independent Transparency
  启用 Order-Independent Transparency (OIT) 渲染技术，可解决大多数透明度问题。更多信息请参见 此处。

#

## Ambient Occlusion

环境光遮蔽是一种渲染技术， 它根据点暴露在光源中的程度， 从间接（环境）照明中添加柔和的阴影，从而提高场景的真实感。

Verge3D实现了地面实况环境光遮蔽（GTAO）， 您可以在 Verge3D Export Settings 的 AO 部分找到这些设置（Maya菜单 Verge3D->Export Settings... ）：

Verge3D 仅对 Standard Sufrace 和 aiStandardSufrace 材质添加环境光遮蔽效果，并且仅当场景具有环境光照（通过Arnold的 aiSkyDomeLight 对象添加）时才添加环境光遮蔽效果。

Enabled
  在场景中启用环境光遮蔽。
Distance
  距离：用于计算环境光遮蔽的半径（以系统为单位）。 较高的值通过过度变暗和扩大其区域使效果更加明显， 但也会降低性能。 较低的值会使遮蔽不太明显。
Factor
  因子：遮蔽效果的强度。
Trace Precision
  跟踪精度：更高的精度意味着更准确的遮挡， 同时提高性能成本。 精度越低，意味着性能越好，但效果似乎不那么突出。
Bent Normals
  使用修改的（或"弯曲"）法线对环境进行采样替代原有采样。 修改后的法线表示遮蔽最少的方向， 并使环境光照更加逼真。

#

## 轮廓渲染

轮廓渲染（又名剪影边缘渲染）是一种常见的非真实感渲染(NPR)技术，可以显著增强场景视觉感知。这种效果可用于各种应用，如电子学习、游戏、建筑可视化和技术绘图。

要在Verge3D应用中使用物体的轮廓（和可选的辉光），首先在 Verge3D Exports Settings 的渲染属性面板上启用该效果：

然后将 outline(轮廓) 拼图应用于对象物体。

轮廓渲染在AR/VR进程中不起作用。可使用其他方法来突出对象物体，如动画或改变材质的颜色。

可以使用以下属性来调整轮廓：

Enabled — 启用/禁用效果。

Edge Strength — 轮廓强度系数。

Edge Glow — 额外发光的强度（渲染在在主轮廓边缘之外）。

Edge Thickness — 轮廓边缘厚度系数。

Pulse Period — 以秒为单位的脉冲周期。指定以下参数，使效果动画化。

Visible Edge Color - 可见边颜色。

Hidden Edge Color - 在任何其他场景对象后面的被渲染的轮廓边的颜色。

Render Hidden Edge - 启用/禁用渲染其他场景对象后面的轮廓边。

尽管有可能渲染发光的物体，但在大多数情况下可以用轮廓渲染来提高场景的视觉清晰度。如果您需要从灯或其他明亮的物体上发光，可以考虑使用 辉光后期处理 来代替。

#

## 每个对象的渲染设置

Verge3D为您的几何对象支持以下额外的渲染设置：

Rendering Order - 修改特定对象的渲染顺序。索引值越小，该对象就越早被渲染。在大多数情况下，当使用混合透明度时，您需要调整这个值，以消除透明度的伪影。

Frustum Culling - 启用/禁用对象的锥台剔除优化。如果您有一些可以移动到屏幕空间之外的蒙皮对象，请取消勾选这个选项，以防止它被剔除。

此外，还有一组对象变换设置位于 Verge3D -> Advanced Rendering 面板上：

HiDPI Compositing
  使用 HiDPI 合成通道渲染对象。有关详细信息，请参阅 下文 。
Fix Ortho Zoom
  应用反向正交摄影机变焦作为此对象的比例因子。为父级为正射摄影机的对象启用此属性，以便在用户缩放摄影机时它们不会移动/缩放。
Fit to Camera Edge
  请参阅 此处 了解详情。
Visibility Breakpoints
  启用对象可见性断点。请参阅 此处 。

#

## 在高分屏/视网膜屏（HiDPI/Retina）上渲染

如今，大多数移动终端和桌面终端都使用了高像素密度技术（即所谓的"Retina"显示器）。在这些显示器上，画面质量有了极大的提升，但其所带来的缺点是降低实时画面计算性能。

以下两种方法是可以在质量和效率之间取得平衡——既提升渲染画质，又不会让场景变得太慢：

- 使用相对更好的分辨率，例如通过将屏幕缩放因子设置为1.5左右。请参阅 此处 了解详情。
- 仅对重要内容（如文本、屏幕空间 UI 元素等）使用 HiDPI 呈现。

后一种方法可以通过启用位于 Advanced Rendering 面板上的 HiDPI Compositing 属性实现：

有关使用示例，请查看 Ring 演示（也可在资源商店中找到）。

#

## Fit to Camera Edge

Fit to Camera Edge 是一种基于Maya模型绘制屏幕空间UI元素的技术。与使用HTML/CSS相比，这种UI设计方法对3D艺术家来说更"原生"，并且不需要外部工具。但其中还有更多内容：因为UI元素是真正的3D对象，所以您可以应用着色器、照明、动画、变形（您可以自己命名），使它们真正交互式并无缝集成到场景中。

将某个对象设置为摄影机的父对象时， Advanced Rendering 面板上将显示以下设置：

Horizontal
  贴合对象的水平画布边缘。None - 无水平贴合，Left - 贴合左边缘，Right - 贴合右边缘，Stretch - 水平缩放对象以贴合屏幕。
Vertical
  垂直画布边缘适合对象。None - 无垂直贴合，Top - 贴合上边缘，Bottom - 贴合下边缘，Stretch - 垂直缩放对象以贴合屏幕。
Shape
  画布贴合形状。Box — 使用对象的边界框，Sphere — 使用物体的边界球来适应屏幕上的对象。
Fit Offset
  用于在屏幕上调整贴合对象的额外偏移量。实际上，该值按指定的绝对值扩展对象边界（长方体或球体）。

#

## Visibility Breakpoints

Visibility Breakpoints 允许您根据 3D 视口宽度/高度或方向设置显示/隐藏内容。此功能最重要的用例 — 使场景适应不同的屏幕大小和方向。例如，您可能有两种不同的纵向和横向屏幕方向模型。

如果指定给当前摄影机，则尝试切换到场景中的备用摄影机（必须具有可用的Visibility Breakpoints），如果未找到备用摄影机，则不执行任何操作。

您可以在 Advanced Rendering 面板上配置断点：

Min Width
  对象保持可见的最小画布宽度。
Max Width
  对象保持可见的最大画布宽度。
Min Height
  对象保持可见的最小画布高度。
Max Height
  对象保持可见的最大画布高度。
Orientation
  对象保持可见的屏幕方向。

#

## 线框渲染

通过此功能，您可以使用线条来渲染Maya对象。线框渲染最常见的用途是绘制曲线对象，它们本身没有任何几何体。但是，您也可以将此技术应用于常规网格和曲面：

使用线框渲染功能显示的对象线框。

线框渲染在 Object Data Properties 面板上的 Verge3D Settings 中激活：

您还可以在此处指定渲染线条的颜色和宽度。在Verge3D中，线条使用 Emission 着色器渲染。

有关使用示例，请查看 Lines 演示（也可在资源商店中找到）。

#

## 剪切平面

剪切平面（又称剖面图、横截面图、网格截面）是一种用于显示复杂对象（如建筑物、汽车、电器、小玩意、机器等）内部结构的技术。

使用剪切平面的场景示例。

要添加一个新的剪切平面，使用位于Maya工具架上的 Verge3D → Clipping Plane 按钮：

场景中的对象将在剪切平面对象的负 Y 方向被剪切。

有关使用示例，请查看 Clipping Planes 演示（也可在资源商店中找到）。

剪切平面具有以下参数：

Affected Objects
  受平面剪切的对象集。如果为空，所有场景对象都将被剪切。
Negated
  交换被剪切和未剪切的两边。
Clip Shadows
  剪切从被剪切对象投出的阴影。
Union Planes
  从所有影响对象的剪切平面构造并集，而非交集。
Cross-Section
  填充剪切平面和受影响对象之间的横截面。
Color
  横截面漫反射颜色和不透明度。
Render Side
  横截面渲染面。指定 Double-sided 以渲染带有切口和孔洞的复杂几何体。
Size
  横截面平面尺寸。如果使用较大的场景大小，请增加该值。

## 遇到问题？

欢迎您随时在 论坛上提问！您还可以加入中文用户社区QQ群(171678760)，在线寻求帮助。