阴影 / 3ds Max
这里介绍了在Verge3D中为3ds Max设置漂亮的实时阴影的设置方法和最佳实践。
内容
准备Max视口设置
建议按照本节所述设置 3ds Max 的视口,让配置阴影更加容易。
启用以下视窗选项。
- 照明和阴影 -> 用场景灯光照亮。
- 照明和阴影 -> 阴影
阴影过滤类型
使用不同的阴影图过滤算法,会在Verge3D场景生成明显差异的阴影。位于Verge3D导出设置面板上的阴影过滤(Shadow filtering)属性是用来指定该算法的。
Basic - 基本
禁用过滤,按原样渲染阴影贴图。这是渲染阴影的最快的方法。
Bilinear - 双线性
使用双线性滤波平滑相邻阴影贴图像素。
PCF
Percentage Closer Filtering,代表 "百分比近距离过滤"。使用多个阴影贴图查询以实现平滑的阴影渲染。质量和性能一般。
PCF (Bilinear) - 双线性PCF
与PCF类似,但对每个阴影贴图查询使用双线性插值。在牺牲更多计算能力的情况下提供平滑的阴影。
PCF (Poisson Disk) - 泊松碟采样PCF
使用伪随机 泊松碟 采样来消除PCF阴影的像素化。这被作为默认设置,因为它最符合您在3D编辑器视口中看到的效果。其性能与双线性PCF算法相当或更好。
ESM
Exponential Shadow Maps,代表指数阴影贴图。 阴影是最平滑的,但有可能出现漏光。在灯光上使用 ESM偏移 设置来消除漏光伪影。 其性能与双线性PCF算法相当。 ESM阴影的设置可能特别棘手,因此请参见 故障排除 章节中的ESM相关问题。
选择哪种过滤类型?
建议首先尝试默认的 泊松碟PCF 阴影,因为它们具有良好的质量和性能。如果您需要质量较低但速度更快的阴影,请尝试 基础 或 双线性 。如果您需要更好的质量、更柔和的阴影, 可以尝试 ESM ,但缺点是它们对于特定场景的设置(伪影方面)可能很棘手。
全局设置
阴影的全局设置位于Verge3D Export Settings菜单中。
- 阴影过滤
- 阴影贴图过滤算法。见 上文。
- ESM距离比例(ESM Distance Scale)
- ESM阴影的缩放系数。 由于ESM过滤算法使用的是绝对距离值, 如果您正在处理的场景比默认的立方体大得多, 那么就减少这个比例值,如果您的场景小得多, 就增加这个比例。默认为0.3。 只对 ESM 阴影作用。
每个灯光的设置
可以使用3ds Max的原生面板为每个单独的灯光启用或禁用阴影。支持的阴影设置以绿色突出显示。
- 目标距离
- 可以影响阴影停止渲染的距离。 只适用于聚光灯和平行光。只有在处理 故障排除 部分中的阴影剪切问题时才需调整它。
- 开启
- 启用/禁用阴影。
- 阴影贴图
- 必须在下拉菜单中选择阴影,才能在Verge3D中出现。
- 衰减区/区域
- 定义阴影量(越少越好)。 只适用于聚光灯和平行光。
- 偏移(Bias)
- 可以调节以消除自阴影伪影及 "peter-panning" 效果。 注:Peter Panning这个词的名字来源于童话人物彼得潘(他的影子与身体分离并且可以飞翔),此伪影使对象看起来像是悬浮在地表。
- 尺寸
- 控制阴影纹理的大小 (在速度和质量之间进行平衡)。
- 采样范围
- 控制阴影的模糊度比例。
- 阴影偏移(Shadow Bias)
- 类似于 偏移 的额外偏移设置。用于消除自阴影伪影及 "peter-panning" 效果。
- ESM偏移(ESM Bias)
- 偏离一定数值以减少ESM的 漏光 伪影。只对 ESM 阴影作用。
每个对象的设置
您也可以在每个对象的基础上启用和禁用接收和投射阴影。
- 接收阴影(Rceive Shadows)
- 启用/禁用此对象的阴影接收。
- 投影
- 启用/禁用此对象的阴影投射。
您可以查看以下视频了解如何在3ds Max中设置阴影。
- YouTube: Verge3D for 3ds Max Basics - Part 3 - Light and Shadows
- Bilibili: Verge3D for 3ds Max基础 - 03.光源与阴影
另请看Autodesk的官方文档,了解更多信息和最佳实践方法。
故障排除
Verge3D中的阴影和Max视口中的阴影看起来不同
- Verge3D不使用与3D软件相同的阴影渲染技术,主要是出于性能的考虑。 这可能包括光线分层, 各种后期处理效果和非实时渲染方法。 这是为什么会有差异, 以及为何阴影看起来和视口中的不完全一样。
- Verge3D的目标是类似于Max视口。 为了使配置阴影更容易,请遵循这里的说明: Max视口准备工作
阴影看起来太像素化了
- 使用较高的尺寸值。
- 如果使用定向光源,只要适合您的场景,尽量减少 衰减区/区域 参数。
- 尽量用柔和的半影来掩盖低分辨率。 使用 PCF(泊松) 和 ESM 这样的阴影过滤技术以及适当调整的 采样范围 可以使像素化不那么突出。
阴影在Max视口中是可见的,但在Verge3D中却看不到。
阴影有伪影
阴影没有半影区或半影区很小
来自聚光灯和平行光的阴影被剪掉了
- 增加 目标距离 值。
ESM阴影看起来变淡了
ESM的阴影看起来太尖锐或没有半影
- 增加 采样范围。
- 减少 ESM偏移 值。
- 减少 ESM距离比例 值。
- 这种伪影会出现在接收对象的边缘。 这是ESM的缺点之一。解决方案时是尽量避免这种情况。
- 如果一个接受阴影的物体本身不投射阴影(例如,在 投射阴影 中被禁用),那么无论模糊半径有多大, 阴影都 没有半影 。解决方案是在接收对象上启用阴影投射, 或者使用一个额外的阴影投射对象作为底层来修复半影区。
ESM阴影有伪影
遇到问题?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。