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

# 照明与渲染/Blender

本页包含可与Verge3D for Blender一起使用的照明和渲染功能的信息。

- 渲染器
- 环境照明
- 灯光
  - 点光源
  - 太阳光
  - 聚光灯
  - 面光
- 球形光照探头
- 平面光照探头
- 背景
- 全局渲染属性
  - 色彩管理面板
  - Verge3D Settings面板
- 环境光遮蔽
- 轮廓渲染
- 世界渲染属性
- 每个对象的渲染属性
- 在HiDPI（视网膜）屏幕上渲染
- 可见性断点
- 材质渲染属性
  - 设置面板
  - Verge3D Settings面板
- 线条渲染
- 剪切平面

#

## 渲染器

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

#

## 环境照明

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

默认的立方体模板为基于图像的照明提供了一个HDR纹理。您可以用自己的文件替换这个纹理，或者从头开始设置环境照明。这里是基本的 世界节点 设置，它在环境照明和背景上都使用了相同的纹理：

当使用HDR纹理时，确保将色彩空间属性设置为Linear Rec.709。

此外，为了防止Blender Eevee隐式创建的假太阳光产生过强的照明，您应该将太阳→阈值设置设为 `0`：

#

## 灯光

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

Verge3D支持以下灯光类型：

#

### 点光源

Verge3D支持颜色、功率、阴影（仅开/关）和自定义距离属性。点光源的功率属性可以设置动画。

#

### 太阳光

Verge3D支持颜色、强度、阴影（仅开/关）属性。太阳光的强度属性可以设置动画。

#

### 聚光灯

Verge3D支持颜色、功率、光束形状：尺寸和混合、阴影（仅开/关）、自定义距离属性。聚光灯的功率属性可以设置动画。

#

### 面光

Verge3D支持颜色、功率、阴影（仅开/关）、自定义距离，以及方形的尺寸和矩形的X尺寸/Y尺寸。不支持圆盘和椭圆形状。面光的功率属性可以设置动画。

在Verge3D中，面光投射的阴影与点光源看起来相同。

### 阴影属性

由于Blender原生的阴影属性（开/关复选框除外）在Verge3D中不受支持，您应该在Verge3D Settings面板上分配阴影属性。详见相应章节。

#

## 球形光照探头

球形反射光照探头是一种用于通过生成局部反射立方盒来增加局部间接照明的对象。这种类型的光照探头对象在场景中增加了镜面间接照明。

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

除衰减外的所有属性在Verge3D中均受支持。

探头
  常规探头设置：
  类型
    影响体积的类型：球形或长方体。只有位于此体积内的对象才会受到光照探头照明的影响。
  半径/尺寸
    控制影响体积的大小。您也可以改变对象的比例，使影响体积的形状不均匀。
捕获
  捕获探头设置：
  裁剪起点
    近裁剪距离。位于比此值更近的对象将不会被渲染到反射立方盒中。
  裁剪终点
    远裁剪距离。位于比此值更远的对象将不会被渲染到反射立方盒中。
自定义视差
  启用视差校正的自定义设置。这一组设置定义了一个视差体积，用来投射探头捕捉到的照明。如果自定义视差未启用，视差效果将根据影响体积的类型和半径/尺寸计算。
  类型
    视差体积的类型：球形或长方体。
  半径/尺寸
    视差体积的大小。
Verge3D设置
  Verge3D专用设置：
  强度
    间接照明的强度。任何不等于 `1.0` 的数值在物理学上都是不正确的。
  可见性集合
    将应该出现在光照探头立方盒上的对象限制在这个集合中。如果未指定，则使用所有场景对象。
  反转可见性集合
    如果指定了可见性集合，则反转对此探头可见对象的选择。
  自定义影响
    启用自定义影响设置。这一组设置允许定义一个将受到此光照探头影响的对象集合。影响集合（如果指定）将代替类型和半径/距离等常规探头设置。
    影响集合
      将光照探头将会影响的对象限制为此集合内的对象。如果指定此项，则它将代替类型和半径/距离等常规设置。
    反选影响集合
      如果指定了影响集合，通过此选项可反选将受到光照探头影响的对象。

与全局环境照明类似，环境贴图尺寸属性控制球形光照探头使用的立方盒纹理的大小。

IBL环境模式设置也会影响由反射立方盒对象生成的立方盒。

由于实现细节的差异性，在Blender和Verge3D中，球形光照探头的行为是不同的：

- Blender支持每个对象有多个光照探头，而Verge3D只支持一个。这就是为什么Verge3D中的对象使用单一的立方盒，要么来自反射立方盒对象，要么来自世界环境。衰减不受支持。
- Blender默认不对网格使用背面剔除，而Verge3D使用。因此，在Blender中，如果裁剪起点/裁剪终点设置调整不当，放置在探头影响范围内的物体会在反射立方盒上显示为黑点，这是由于背面也被渲染了。默认情况下，Verge3D中不会出现这种情况。
- 在将对象渲染（烘焙）到光照探头的立方盒中时，Blender只考虑对象材质的漫反射成分，而Verge3D对它们的渲染与在主场景中的渲染方式没有区别。这就是为什么全金属物体在Blender中被渲染成黑色，但在Verge3D中它们仍然反射了世界环境。
- 为了让可见性集合属性在Blender中发挥作用，要求指定的集合也被链接到场景中。在Verge3D中不需要，只需将一个对象分配给一个集合即可。

#

## 平面光照探头

平面反射光照探头是一种将实时反射（间接照明）应用于平面对象的有效方法，例如镜子、地板、墙壁等。

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

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

支持以下属性：

距离
  光照探头的影响距离。
裁剪偏移
  在光照探头中渲染的对象的近摄影机剪切。
衰减
  控制光照探头影响减小的速度。
可见性集合
  光照探头中可见的对象集合。

反射平面光照探头会大幅降低场景的性能，因为它会将绘制调用的数量乘以 N+1。为了加快渲染速度，请在可见性集合属性中指定有限的对象集合。

#

## 背景

在默认情况下，Blender和Verge3D中背景和环境照明会渲染相同的图像。如果需要将它们分开渲染，请使用基于光程节点的Is Camera Ray输出的高级世界节点设置。例如，要将背景颜色设置为纯灰色，并继续使用HDR贴图进行环境照明：

#

## 全局渲染属性

Verge3D支持以下可在Blender的渲染属性面板上设置的属性。

#

### 色彩管理面板

View Transform
  应用于Verge3D效果图的额外颜色校正（色调映射）：
  Standard
    不应用额外的颜色校正。如果您不需要颜色校正，请切换到此方法，因为它比AgX或Filmic运行更快。
  Khronos PBR Neutral
    使用在性能方面相当高效的算法。
  AgX
    Blender 4.0及以上版本的默认方法。
  Filmic
    Blender 4.0之前版本的默认方法。
  ACES, Filmic Log, Raw, False Color
    不支持，如果指定Verge3D将回退到Standard方法。
Look
  Verge3D仅支持None和Punchy（用于AgX视图转换）值。
Exposure
  在显示转换之前应用的曝光。它允许您方便地调整整个场景的渲染亮度。

#

### Verge3D Settings面板

此外，还有一个包含Verge3D专用渲染/导出属性的面板：

Copyright
  如果您希望版权信息出现在所有导出的文件中，请指定此项。
Export Constraints
  导出分配在Blender对象上的约束。阅读更多关于Verge3D支持的约束此处。
Export Custom Props
  导出分配在Blender对象上的自定义属性。查看此页面了解如何在Verge3D中检索这些属性。
Bake Modifiers
  Verge3D在运行时不支持Blender修改器，但您可以通过启用此属性在导出前自动烘焙它们。
Bake Text
  是否将字体对象原样导出或将其烘焙为几何网格。阅读本手册文本渲染章节了解更多这两种模式的信息。
LZMA Compression
  为导出的glTF文件启用LZMA压缩。查看资产压缩章节了解更多信息。
Compress Textures
  以KTX2压缩格式存储导出的纹理。
Optimize Mesh Attrs
  从导出的网格中移除未使用的几何属性（如切线）。
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）渲染技术，可解决大多数透明度问题。阅读更多此处。
Env. Map Size
  用于环境照明的纹理尺寸：
  64, 128
    请勿使用，256是Verge3D中可支持的最小值。
  256
    最合适的质量和较低的内存消耗（推荐）。
  512
    更好的质量，适中的内存消耗和相对降低的性能。可用在渲染高质量反射的场景，例如渲染珠宝。
  1024
    高内存消耗，低性能，最佳渲染质量（一般不推荐）。
  2048, 4096
    请勿使用，1024是Verge3D中可支持的最大值。
IBL Env. Mode

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

  PMREM（最佳）
    使用预过滤的、Mipmap辐射环境贴图（PMREM）。此属性默认选择，因为它同时提供最高质量和不错的性能。
  Light Probe (fast)
    完全禁用基于图像的镜面反射，但仍会应用漫反射成分。此模式速度快但仅对非金属表面提供不错的质量（例如使用 BSDF漫反射 着色器渲染的表面）。
  None (fastest)
    禁用镜面和漫反射的基于图像的照明。这是所有模式中最快的。如果您使用无光照（自发光）表面或仅依靠光源来着色场景，此模式非常完美。
Animation
  全局动画属性。阅读更多此处。
Shadows
  阴影属性。阅读更多此处。
Ambient Occlusion
  环境光遮蔽属性。参见下文。
Outline Effect
  轮廓效果属性。参见下文。
Export Collections
  选择您希望在导出的glTF文件中看到的对象集合。

#

## 环境光遮蔽

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

Blender使用地面真实环境光遮蔽(GTAO)，Verge3D已经在引擎中部署了相同的技术。

Verge3D支持以下AO设置，可在Verge3D Settings面板的环境光遮蔽部分找到：

Ambient Occlusion
  在场景中启用环境光遮蔽。
Distance
  计算环境光遮蔽的半径（使用系统单位）。值更高时会加深暗部和扩大暗部区域，效果更明显，但性能也会更低。值越低遮蔽越不明显。
Factor
  遮蔽效果的强度。
Trace Precision
  更高精度意味着更精确的遮蔽，同时增加性能消耗。较低的精度意味着更好的性能，但效果不太明显。
Bent Normals
  使用修改后的（或"弯曲的"）法线来采样环境以取代原始法线。修改后的法线表示遮蔽最少的方向，使环境照明更加逼真。

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

#

## 轮廓渲染

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

在工业机器人演示中使用轮廓效果来突出选择。

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

然后使用轮廓拼图将其应用于对象。

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

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

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

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

#

## 世界渲染属性

Dithering
  启用抖动以减少使用较暗着色或渐变时的色带伪影。

#

## 每个对象的渲染属性

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

Render Order
  修改特定对象的渲染顺序。索引越小，对象就越早被渲染。在大多数情况下，当使用混合透明度时，您需要调整这个值，以消除透明度伪影。
Frustum Culling
  启用/禁用对象的锥台剔除优化。如果您有一些可以移动到屏幕空间之外的蒙皮对象，请取消勾选这个选项，以防止它被剔除。
Receive Shadows
  渲染或不渲染给定对象的阴影。参见此处了解更多信息。
HiDPI Compositing
  使用HiDPI通道渲染对象。参见下文了解更多信息。
Fix Ortho Zoom
  将正交摄影机的反向缩放作为此对象的缩放因子。当为正交摄影机的父级对象启用此属性时，用户缩放摄影机不会导致对象缩放/移动。

  如果您的对象依然出现了缩放，请清除它的父级反校正（逆矩阵）：

#

## 在HiDPI（视网膜）屏幕上渲染

时至今日，大多数移动端设备和桌面设备的屏幕都使用了高像素密度技术（即"Retina"显示器）。这些显示器可以显著提高渲染质量。但渲染过多像素的缺点是降低了性能。

以下两种方法，可以提高内容渲染质量，但又不会使得场景变得过慢：

- 使用更好的分辨率，例如将屏幕缩放比例因子设置为1.5左右。参见此处了解更多信息。
- 仅对重要的内容启用HiDPI渲染，例如文本、屏幕空间UI元素等。

第二种方法可以通过启用位于Verge3D Settings面板（对象属性选项卡）上的HiDPI合成属性来轻松实现：

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

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

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

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

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

#

## 可见性断点

可见性断点允许您根据3D视口宽度/高度或方向设置显示/隐藏内容。此功能最重要的用例——使您的场景适应不同的屏幕尺寸和方向。例如，您可以为纵向和横向屏幕方向准备两种不同的模型。

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

推荐使用Blender的关联复制功能在两个对象间共用几何体。一个对象将以纵向模式呈现，而另一个对象则以横向模式显示。通过这种方式，您可以节省大量GPU内存并减少应用的加载时间。

您可以在对象属性面板上配置断点：

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

#

## 材质渲染属性

以下所有Blender材质共有的属性在Verge3D中受支持。关于着色器节点和相应设置，参见着色器节点参考。

#

### 设置面板

Pass Index
  材质通道索引。在Verge3D中，此值专门用于向对象信息节点提供数据。

#

### Verge3D Settings面板

Blend Mode
  透明度模式。参见本手册透明度章节了解更多。
Clip Threshold
  Alpha Clip材质的剪切阈值。
Transparency Hack
  用于移除/减少透明度伪影的技巧。参见此处了解更多。
Render Side
  作为实时渲染引擎，Verge3D使用背面剔除技术来优化性能。默认情况下，仅渲染多边形的正面。如果您需要不同的行为，请更改Render Side属性。
Depth Write
  禁用深度写入以实现加法混合模式。
Depth Test
  禁用深度测试并提高平面对象（如精灵或贴花）的Render Order属性，如果您希望它们渲染在所有对象之上。
Dithering
  启用抖动以减少使用较暗着色或渐变时的色带伪影。抖动也可以在世界着色器上启用。
glTF 2.0 compatible
  使材质兼容glTF。参见本手册的相应章节了解更多信息。

#

## 线条渲染

使用此功能，您可以为Blender对象启用线条渲染风格。线条渲染的典型用例是绘制曲线对象，这些对象本身没有任何几何形状。此外您也可为常规的网格和曲面启用线条渲染风格：

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

线条渲染在位于对象数据属性面板的Verge3D Settings中激活：

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

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

#

## 剪切平面

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

使用剪切平面显示厨房电器的内部结构。

若要添加新的剪切平面，请使用Blender的添加对象菜单中的剪切平面菜单项：

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

剪切平面具有以下属性：

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

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

## 遇到问题？

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