用于3ds Max的Verge3D：照明与渲染 - Soft8Soft
Description: 本页包含Verge3D支持的3ds Max灯光和渲染设置的信息。

# 照明与渲染 / 3ds Max

本页包含可以在Verge3D中使用的3ds Max照明与渲染的有关信息。

- 渲染器
- 环境照明
- 灯光
  - 光度学灯光
  - 标准灯光
- 立方体反射光照探头
- 反射平面光照探头
- 全局渲染设置
  - Common 标签页
  - Shadows 标签页
  - Animation 标签页
  - AO 标签页
  - Outlining 标签页
- 环境光遮蔽
- 轮廓渲染
- 曝光控制
- 每个对象的渲染设置
- 在高分屏/视网膜屏（HiDPI/Retina）上渲染
- 可见性断点
- 线渲染
- 剪切平面

#

## 渲染器

Verge3D支持3ds Max中提供的三个渲染器：Scanline、ART 和 Arnold（推荐）。Scanline渲染器用于标准灯光和材质，而ART/Arnold渲染器则通常用于光度学灯光和物理材质。

在开始处理图形之前，选择合适的渲染器是您首先应该考虑的事情。如果您不确定应该选择哪种渲染器，我们建议使用Arnold。请在3ds Max中使用 "渲染设置..." 窗口设置渲染器。

#

## 环境照明

环境照明是基于物理材质的Verge3D图形流水线中一个非常重要的组成部分。您可以只用环境贴图来照亮场景，而不使用任何灯光对象（例如 电动车配置器案例）。

默认的立方体模板为基于图像的照明提供了一个HDR纹理。您可以用自己的文件替换此纹理，或从头开始设置环境照明，参考此视频：

- YouTube： Verge3D for 3ds Max Basics - Part 2 - Creating Materials
- Bilibili： Verge3D for 3ds Max基础 - 02.创建材质

#

## 灯光

如果您的场景需要动态阴影，或者需要移动光源（如汽车灯光），可以使用 灯光对象。

Verge3D支持由3ds Max中提供的两种灯光类型：Standard 和 Photometric。

#

### 光度学灯光

光度学灯光通常与 物理材质 一起使用。Verge3D对此类灯光的表现以3ds Max的Arnold渲染器作为参考。此外，您可以使用物理摄影机 曝光控制 设置来调整渲染的亮度和色彩范围。

#

### 标准灯光

标准灯光通常与 标准材质 一起使用。Verge3D对此类灯光的表现以3ds Max的Scanline渲染器作为参考。

#

## 立方体反射光照探头

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

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

该对象可以在 Create 面板 → Helpers 类别 → Verge3D 子类别中找到：

一个立方盒反射对象定义了一个由长方体或球体代表的影响范围。所有包含在该体积内的对象将使用在运行时生成的本地立方盒反射，而不是场景的全局环境纹理或颜色。

使用局部反射贴图的好处是，它有周围物体的烘焙，而场景的全局贴图只包含Max的环境设置中指定的背景纹理或颜色。局部反射贴图也有视差效应，这取决于 影响体积 或 视差体积 的几何形状。

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

立方盒反射对象有以下属性参数：

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

#

## 反射平面光照探头

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

在 Load Unload 演示中使用反射平面来渲染地板反射。

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

Verge3D插件添加了一个名为 V3DReflectionPlane 的自定义光照探头。该对象可以在 Create 面板 → Helpers 类别 → Verge3D 子类别中找到：

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

Length
  反射平面长度。
Width
  反射平面宽度。
Influence Dist.
  探头的影响距离。
Falloff
  控制探头影响的下降速度。
Clip Offset
  在光照探头中渲染对象的近摄影机裁剪。
Visibility Selection Set
  光照探头可见对象的选择集。

### 性能考虑

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

#

## 全局渲染设置

全局渲染设置可通过 Verge3D Export Settings 对话框窗口访问（3ds Max菜单中 Verge3D → Export Settings...）。

#

### Common 标签页

Scene Copyright
  指定您希望所有导出文件中都存在版权信息。
Bake Text
  是否按原样导出Font对象或将其烘焙为几何网格。请参阅本手册的 文本渲染 部分以了解这两种模式的更多信息。
Enable LZMA Compression
  为导出的glTF文件启用LZMA压缩。请查看 资源压缩 部分以获取更多信息。
Compress Textures
  以 KTX2压缩格式 存储导出的纹理。
Anti-Aliasing
  选择场景使用何种抗锯齿算法：
  Auto
    使用系统默认方法。在大多数情况下，这将是MSAA 4x。
  MSAA 4x
    如果目标硬件支持，则首选使用4倍采样的多采样抗锯齿。提供不错的质量和性能。
  MSAA 8x
    如果目标硬件支持，则首选使用8倍采样的多采样抗锯齿。此算法以降低性能为代价提供更好的抗锯齿质量。
  MSAA 16x
    如果目标硬件支持，则首选使用16倍采样的多采样抗锯齿。与MSAA 4x/8x相比，此算法提供更好的抗锯齿质量，但性能最差。
  FXAA
    强制使用快速近似抗锯齿（FXAA）。如果您遇到程序纹理的锯齿问题，请启用此算法。
  None
    禁用抗锯齿。当质量不重要时，将此选项用作激进的性能优化。
Use HDR Rendering

  启用高动态范围渲染。

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

  此功能与通常用于生成基于图像照明的 .hdr 纹理无关，因此激活它不会改善此类纹理的渲染。

Order-Indep. Transparency

  启用顺序无关透明度（OIT）渲染技术，可解决大多数透明度问题。请参阅此处了解更多信息。

Environment Map Size
  用于环境照明的纹理尺寸：
  256
    最佳质量和较低的内存消耗（默认值）。
  512
    更好的质量，适中的内存消耗和相对降低的性能。可用在渲染高质量反射的场景，例如渲染珠宝。
  1024
    高内存消耗，低性能，最佳渲染质量（一般不推荐）。
IBL Environment Mode

  用于基于图像的环境照明的算法。

  PMREM (best)
    使用预过滤的、带mipmap的辐射环境贴图（PMREM）。此属性默认被选择，因为它同时提供最高质量和不错的性能。
  Light Probe (fast)
    完全禁用基于图像的镜面反射，但仍会应用漫反射分量。此模式速度快，但仅对非金属表面（例如使用 Standard 或 Lambert 着色器渲染的表面）提供不错的质量。
  None (fastest)
    禁用基于图像的镜面反射和漫反射照明。这是所有模式中最快的。如果您使用无阴影（自发光）表面或仅依靠光源来为场景着色，则非常适用。
Optimize Mesh Attrs
  从导出的网格中移除未使用的几何属性（如切线）。

#

### Shadows 标签页

全局阴影设置。请参阅相应章节了解更多信息。

#

### Animation 标签页

全局动画设置。请参阅此处的说明。

#

### AO 标签页

环境光遮蔽设置。请参阅下方。

#

### Outlining 标签页

轮廓效果设置。请参阅下方。

#

## 环境光遮蔽

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

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

Verge3D仅对 Physical Material 节点添加环境光遮蔽效果，并且仅当场景具有 环境光照（颜色或贴图）时才添加。

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

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

#

## 轮廓渲染

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

在 Industrial Robot 演示中使用轮廓效果来突出选择。

要在Verge3D应用中使用对象的轮廓（和可选的辉光），首先在 Verge3D Export Settings 对话框中启用该效果：

然后使用 outline 拼图应用于您的对象。

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

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

Enabled
  启用/禁用效果。
Edge Strength
  轮廓强度系数。
Edge Glow
  额外发光的强度（渲染在主轮廓边缘之外）。
Edge Thickness
  轮廓边缘厚度系数。
Pulse Period
  以秒为单位的脉冲周期。指定此值可使效果动画化。
Visible Edge Color
  可见边颜色。
Hidden Edge Color
  在任何其他场景对象后面的被渲染的轮廓边的颜色。
Render Hidden Edge
  启用/禁用渲染其他场景对象后面的轮廓边。

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

#

## 曝光控制

Verge3D for 3ds Max支持以下曝光控制算法：

- Physical Camera Exposure Control
- Logarithmic Exposure Control

请参见Autodesk的 官方文档，了解如何为场景配置曝光控制。

#

## 每个对象的渲染设置

Verge3D支持以下额外的对象渲染属性：

### Verge3D Rendering Params 面板

Rendering Order
  修改特定对象的渲染顺序。索引值越小，该对象就越早被渲染。在大多数情况下，当使用混合透明度时，您需要调整这个值以消除透明度伪影。
Frustum Culling
  启用/禁用对象的锥台剔除优化。如果您有一些可以移动到屏幕空间之外的蒙皮对象，请取消勾选此选项以防止其被剔除。

### Verge3D Adv. Rendering Params 面板

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

#

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

如今，大多数移动终端和桌面终端都使用了高像素密度技术（即所谓的"Retina"显示器）。这些显示器允许您大幅提高渲染质量。渲染大量像素的缺点是降低性能。

以下两种方法可以使您的内容看起来更好，同时不会使场景变得太慢：

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

后一种方法可以通过启用位于 Verge3D Adv. Rendering Params 面板上的 HiDPI Compositing 属性轻松实现：

在 E-learning 演示中使用HiDPI合成来显示UI控件和文本。

然而，在单独的通道中渲染HiDPI内容有一些限制：

- 您无法对在HiDPI通道中渲染的对象应用任何后处理效果。
- 对象不受在其之前渲染的对象深度的影响。这可能会产生伪影，如下面的截图所示（绿色 — 常规对象，蓝色 — HiDPI对象，但实际上绿色的更靠近观察者）：

这基本上意味着HiDPI合成应主要用于UI元素或摄影机父级对象。

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

#

## 可见性断点

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

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

您可以在 Verge3D Adv. Rendering Params 面板上配置断点：

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

#

## 线渲染

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

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

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

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

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

#

## 剪切平面

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

使用剪切平面显示绞肉机的内部结构。

要添加一个剪切平面，请在3ds Max中使用 Create → Helpers → Verge3D → ClippingPlane 按钮：

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

剪切平面具有以下参数：

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

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

## 遇到问题？

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