透明度 / Maya
在这里,我们展示了如何在Maya中为 Standard Surface、OpenPBR 及 glTF兼容性PBR材质启用透明特性。
有关使用示例,请查看 Transparency 演示(也可在资源商店中找到)。
- 混合与蒙版
- Additive Compositing(加法合成)
- Order-Independent Transparency (OIT)
- Standard Surface 材质的透明度
- glTF兼容的的PBR材质的透明度
混合与蒙版
作为一个实时渲染3D引擎,Verge3D提供了两种主要的方法来处理透明物体:alpha混合和alpha剪切(通常需要一个图像蒙版)。混合法(blending)可以将一个半透明的前景色与背景色结合起来,使用前景色的alpha作为混合系数。相对而言,剪切法(clipping)只是简单地丢弃所有alpha值小于某个预定义阈值的像素(在Verge3D for Maya中总是等于0.5)。
混合可以实现平滑过渡,通常看起来更漂亮,但计算成本比剪切高。当多边形以错误的顺序被渲染时,它也可能产生Z向排序的伪影。剪切法更适合用于可视化大量小物体的场景(如草和树叶)。但它会产生没有任何过渡的硬边缘,可能会出现锯齿。
使用材质设置中的 Alpha Mode 下拉菜单,在混合和遮蔽之间进行选择:
此外,还有 Mask 模式的一个变体叫做 Coverage。它使用 MSAA 渲染来改善 alpha 剪切的质量。
Additive Compositing(加法合成)
Verge3D还提供了一种特殊的模式,用于在渲染时禁止向深度缓冲区写入数据。这会导致多边形被排除在像素深度比较之外。这样多边形将以加法方式合成,有时会有助于消除混合的伪影。
在 Alpha Mode 下拉菜单中选择 Add ,并取消勾选材质设置中的 Depth Write 选项以启用该模式。此外,如果您希望透明对象的渲染在所有其他对象之上,请增大 对象设置 中的 Render Order 值。
Order-Independent Transparency (OIT)
Verge3D允许使用近似的顺序无关透明度技术,该技术不需要按排序顺序渲染几何体,因此可以在不考虑上述任何注意事项的情况下解决大多数透明度问题。
OIT 可以在 Verge3D Export Settings 对话框中启用。
已知限制:
- OIT 仅兼容 WebGL 2,否则无效。
- OIT 被 Reflection Cubemap Light Probes 和 Reflection Plane Light Probes 忽略。
- 可能对高不透明度对象效果不佳。
- 不应与具有2个或更多不透明对象的场景中的 MSAA(多采样抗锯齿)一起使用。取而代之,您可以使用 FXAA(快速近似抗锯齿),它与 OIT 完全兼容。
Standard Surface 材质的透明度
Standard Surface、aiStandardSurface 以及 OpenPBR Surface 材质的透明度可以通过以下材质设置进行调整:
参数:
- Transmission Weight
- 薄壁和折射材质的透射系数。
- Transmission Color
- 折射材质的颜色(Thin Walled 选项关闭时)
- Thin Walled
- 使用通用的薄壁或基于折射的透明度。
- Opacity
- 薄壁材质的不透明度系数。
- Alpha Mode
-
材质透明度模式。
- Auto
- 查看材质以确定可能的透明度方式:Opaque 或 Blend。
- Opaque
- 渲染材质不带透明度。
- Blend
- 混合透明度(参见 上文)。
- Mask
- 蒙版透明度(参见 上文)。
- Coverage
- 哈希透明度,又称 alpha to coverage。此方法介于蒙版和混合透明度之间。它使用 MSAA 渲染来改善 alpha 剪切的质量。
- Add
- 加法透明度合成(参见 上文)。
- Transparency Hack
-
启用以下两种非标准渲染方法之一来消除透明度伪影:
- Nearest Layer
- 通过使用单独的深度缓冲区进行剔除(又称"深度预处理"),仅渲染最接近摄影机的透明层。
- Two-Pass
- 先渲染背面,再渲染正面。此方法仅适用于双面材质,即应设置 Two Sided 属性。
- Depth Write
- 禁用加法透明度合成(见 上文)。
在Maya,默认情况下 Thin Walled 参数是关闭的,这会使得在网页应用中的渲染与您的预期不同,最典型的透明度渲染会失效。当您处理透明的 Standard Surface 材质时,一定要开启这个设置。
glTF兼容的的PBR材质的透明度
为了使这些材质具有透明度,应该将透明度贴图作为基础颜色纹理的4(alpha)分量进行烘焙,并将该纹理的 Alpha 输出连接到 Standard Surface 材质的 Opacity 输入。
当没有基础颜色纹理可用时,直接未连接的 Opacity 参数。
使用 Alpha Mode 下拉菜单来选择透明模式。
遇到问题?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。