阴影 / Maya
这里描述了在 Verge3D 中为 Maya 设置漂亮实时阴影的设置和最佳实践。
Verge3D支持平行光、点光源,聚光灯和区域光的阴影。
准备Maya视图设置
建议按照本节所述设置Maya的视图,让配置阴影更加容易。
启用以下视窗选项。
- 照明 -> 使用全部灯光
- 照明 -> 阴影
请确保场景中至少有一个灯光。
阴影过滤类型
使用不同的阴影图过滤算法,会在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过滤算法使用的是绝对距离值, 如果您正在处理的场景比默认的立方体大得多, 那么就减少这个比例值,如果您的场景小得多,就增加这个比例。 默认为2.5。 只对 ESM 阴影作用。
每个灯光的设置
可以使用Maya原生面板为每个单独的灯光启用或禁用阴影。支持的阴影设置以绿色突出显示。
- 使用深度贴图阴影
- 必须启用,阴影才会出现在Verge3D中。
- 分辨率
- 控制阴影纹理的大小(在速度和质量之间 进行平衡)。
- 过滤器大小
- 控制阴影的模糊度比例。
- 偏移(Bias)
- 可以调节以消除自阴影伪影及"peter-panning"效果。 注:Peter Panning这个词的名字来源于童话人物彼得潘(他的影子与身体分离并且可以飞翔),此伪影使对象看起来像是悬浮在地表。
- ESM偏移(ESM Bias)
- 调整此偏移以减少ESM的 漏光 伪影。 只对 ESM 阴影作用。
每个对象的设置
您也可以在每个对象的基础上启用和禁用接收和投射阴影。
- 投射阴影
- 启用/禁用此对象的阴影投射。
- 接收阴影(Rceive Shadows)
- 启用/禁用此对象的阴影接收。
另请看Autodesk的官方文档,了解在Maya中使用阴影的更多信息和最佳实践方法。
故障排除
Verge3D中的阴影和Maya视口中的阴影看起来不同
- Verge3D不使用与3D软件相同的阴影渲染技术, 主要是出于性能的考虑。 这可能包括光线分层, 各种后期处理效果和非实时渲染方法。 这是为什么会有差异,以及为何阴影看起来和视口中的不完全一样。
- Verge3D的目标是类似于Maya视口。 为了使配置阴影更容易, 请遵循这里的说明: 准备Maya视图设置。
阴影看起来太像素化了
阴影在Maya视口中是可见的,但在Verge3D中却看不到。
阴影有伪影
- 这种伪影被称为“阴影失真(shadow acne)”或“自影伪影(self-shadow artifacts)”。可通过增加 偏移 值来消除。
阴影没有半影区或半影区很小
ESM阴影看起来变淡了
ESM的阴影看起来太尖锐或没有半影
- 增加 过滤器大小。
- 减少 ESM偏移 值。
- 减少 ESM距离比例 值。
- 这种伪影会出现在接收对象的边缘。 这是ESM的缺点之一。解决方案时是尽量避免这种情况。
- 如果一个接受阴影的物体本身不投射阴影(例如,在 投射阴影 中被禁用),那么无论 过滤器大小 是多少,阴影都没有半影。 解决方案是在接收对象上启用阴影投射, 或者使用一个额外的阴影投射对象作为底层来修复半影区。
ESM阴影有伪影
遇到问题?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。