阴影 / Blender

这里描述了在 Verge3D for Blender 中设置漂亮实时阴影的设置和最佳实践。

内容

准备Blender视口

建议按照本节所述设置 Blender 的视口,让配置阴影更加容易。

Verge3D 的目标是类似于 Blender 的 Eevee 渲染器。按照以下说明启用:

另请注意,Verge3D 不以与 Blender 相同的方式支持阴影。为了在 Verge3D 中实现柔和阴影,可以尝试不同的 阴影过滤方法,并调整 阴影模糊半径 设置。

阴影过滤类型

在 Verge3D 中,阴影的外观因所使用的阴影贴图过滤算法不同而有很大差异。Shadow Filtering 属性位于 Render Properties 选项卡中,用于指定算法。

在Blender中选择阴影过滤类型

有关使用示例,请查看 Tea Ceremony 演示(也可在资源商店中找到)。

Basic - 基本

禁用过滤,按原样渲染阴影贴图。这是渲染阴影最快的方法。

基本阴影示例

Bilinear - 双线性

使用双线性滤波平滑相邻阴影贴图像素。

双线性阴影示例

PCF

代表 Percentage Closer Filtering - 百分比近距离过滤。使用多个阴影贴图查询实现平滑的阴影渲染。平均质量和性能。使用伪随机 Poisson Disk Sampling - 泊松碟采样 来消除 PCF 阴影的像素化。这是默认设置,因为它最符合 3D 编辑器视口中看到的效果。

PCF泊松阴影示例

ESM

代表 Exponential Shadow Maps - 指数阴影贴图。阴影最平滑,但可能出现漏光。在灯光上使用 ESM Bias 设置来消除漏光伪影。性能与 PCF 算法相当。

ESM 阴影的设置可能特别棘手,因此请参见 故障排除 章节中的 ESM 相关问题。

ESM阴影示例

选择哪种过滤类型?

建议首先尝试默认的 PCF 阴影,因为它们具有良好的质量和性能。如果您需要更快但质量较低的阴影,请尝试 BasicBilinear。如果您想要更高质量、更柔和的阴影,可以尝试 ESM,但缺点是对于特定场景的设置(伪影方面)可能比较棘手。

全局设置

阴影的渲染通过 Blender 的 Render 选项卡中的 ShadowsVerge3D Settings 面板来调整。

Blender中的阴影设置
Shadows
为场景启用/禁用阴影。
Light Threshold
用于计算阴影体积距离的光照强度阈值。
Shadow Filtering
阴影贴图过滤算法。见 上文
Map Side
表示在阴影通道中对多边形的哪一面进行渲染。调整此值以消除自阴影伪影,或当渲染平面模型时(如树叶或纸张)。
ESM Distance Scale
ESM 阴影的缩放系数。由于 ESM 过滤算法使用绝对距离值,如果您正在处理的场景比默认立方体大得多,则减小该比例值;如果场景小得多,则增大该比例。默认值为 1。仅对 ESM 阴影有效。
Cube Size
Point - 点光源Spot - 聚光灯Area - 面光源 投射的阴影贴图大小。较高的值提供更好的渲染质量,但会降低性能。
Cascade Size
Sun - 日光 投射的阴影贴图大小。较高的值提供更好的渲染质量,但会降低性能。

每个灯光的设置

可以使用 ShadowVerge3D Settings 面板为每个单独的灯光启用/禁用/调整阴影。

Blender中每个灯光的阴影设置
Shadows
启用/禁用该灯光投射的阴影。
Blur Radius
指定大于 1 的值使阴影更平滑(增加阴影模糊度)。此参数仅对 PCFESM 阴影有效。
Clip Start
近剪切距离,较高的值可能会略微改善阴影质量。
Bias
应重点调整的参数,以消除自阴影伪影及"阴影悬浮(peter-panning)"效果。
ESM Bias
偏移以减少 ESM 漏光(light leaking) 伪影。仅对 ESM 阴影有效。

对于日光(Sun light),还有额外的参数来配置阴影级联:

Blender中级联阴影设置
Count
用于渲染阴影级联的贴图数量。
Fade
级联之间过渡的平滑因子。
Max Distance
最后一个级联的结束距离(从摄影机测量)。
Distribution
较高的值会增加朝向视点的分布。
Cascade Margin
如果高大或大型物体的阴影出现截断,请增大此默认值。

配置日光的级联阴影

级联阴影贴图从 Verge3D 4.6 开始完全支持。推荐的配置方法如下:

  1. 使用 ViewCamerasActive Camera 菜单或 Numpad 0 键转到活动摄影机视图。
  2. 调整 Cascaded Shadow Map 参数。
  3. 在 Verge3D 中检查阴影效果。
  4. 如果高大或大型物体的阴影出现截断,请增大 Cascade Margin 参数。

为了获得更好的渲染性能,请尽量保持级联数量(及其分辨率)较低。

每个对象的设置

可以通过 VisibilityVerge3D Settings 面板为每个单独的对象启用/禁用阴影。

Blender中对象的阴影设置
Ray Visibility → Shadow
启用/禁用对象的阴影投射。
Receive Shadows
在给定对象上接收(渲染)阴影。

故障排除

Verge3D 中的阴影和 Blender 视口中的阴影看起来不同

阴影看起来太像素化了

在 Blender 视口中可见阴影,但在 Verge3D 中没有

阴影有伪影

自阴影伪影

阴影没有半影区或半影区很小

ESM 阴影看起来变淡了

漏光阴影伪影

ESM 阴影看起来太尖锐或没有半影

ESM阴影过于尖锐

ESM 阴影有伪影

ESM阴影自阴影伪影

级联阴影贴图,阴影在某个角度被截断

级联阴影贴图与 ESM 阴影,阴影在级联交汇处看起来变淡

遇到问题?

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