透明度/Blender

在这里,我们展示了如何在Blender为Eevee/Cycles和glTF兼容的材质启用透明特性。

在Blender中的设置

可以通过Transparent BSDFMix Shader节点组合来启用Eevee材质的透明度。Mix Shader节点中的因子可以用来定义alpha值——您可以直接指定数值,或者创建其他节点(如Fresnel)作为依赖,以创作更真实的外观。

Transparent BSDF节点设置

或者,您也可以使用原理化BSDF节点的Alpha输入。

原理化BSDF节点的Alpha输入

使用Blend Mode下拉菜单来选择透明度模式:

Auto
检查材质以确定可能的透明度方法:OpaqueAlpha Blend
Opaque
渲染材质时不使用透明度。
Alpha Clip
蒙版透明度(参见下文)。
Alpha Hashed
哈希透明度,又称alpha to coverage。此方法位于蒙版和混合透明度之间。它使用MSAA渲染来改善alpha剪切的质量。
Alpha Blend
混合透明度(参见下文)。

要调整材质的透明度,在Verge3D Settings面板上还有其他选项:

Blender透明度设置
Clip Threshold
Alpha剪切(蒙版)材质的阈值。对于alpha值低于剪切阈值的像素,表面将被剔除且不会被渲染。
Transparency Hack
启用两种非标准渲染方法之一来消除透明度伪影:
Nearest Layer
通过使用单独的深度缓冲区进行剔除(又称"深度预传递"),仅渲染最接近摄影机的透明层。
Two-Pass
先渲染背面,然后渲染正面。此方法仅适用于双面材质,即Render Side属性应设置为Double-sided
两种透明度技巧都会降低性能,因此仅在实际需要时使用。

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

混合与蒙版

作为一个实时渲染3D引擎,Verge3D提供了两种主要的方法来处理透明物体:alpha混合和alpha剪切(通常需要一个图像蒙版)。混合法可以将一个半透明的前景色与背景色结合起来,使用前景色的alpha作为混合系数。相对而言,剪切法只是简单地丢弃所有alpha值小于某个预定义阈值的像素(默认为0,但可以在材质设置中改变)。

Alpha混合与Alpha剪切对比

混合可以实现平滑过渡,通常看起来更漂亮,但计算成本比剪切高。当多边形以错误的顺序被渲染时,它也可能产生Z向排序的伪影。剪切法更适合用于可视化大量小物体的场景(如草和树叶)。但它会产生没有任何过渡的硬边缘,可能会出现锯齿。

加法合成(又称加法混合)

Verge3D还提供了一种特殊的透明表面渲染方法,称为加法合成。通过以加法方式混合并将多边形排除在像素深度比较之外,您可以消除透明度伪影。

Alpha混合与加法合成对比

要启用此模式,请使用以下材质设置。将Glossy BSDF替换为您材质所需的实际节点。

Blender中的加法混合材质设置

同时禁用位于Verge3D Settings面板上的Depth Write选项:

Blender中的深度写入设置

渲染顺序(又称为Z-index)

Verge3D不排序对象内部的多边形,而是在对象 之间 进行排序。这在大多数情况下生成正确的混合,但有时可能需要强行设置对象渲染顺序。

可以在Verge3D设置面板中用数值排序来修改对象渲染顺序。索引值越小,该对象就越早被渲染。

渲染顺序设置

因此,如果您的场景中后景有一个透明的、连续的对象,并希望前景中的其他透明物体能够正确地渲染,请将后景对象的渲染顺序设置为负值。

渲染顺序示例

顺序无关透明度(OIT)

Verge3D允许使用近似顺序无关透明度技术,该技术不需要按排序顺序渲染几何体,因此无需上述任何考虑即可解决大多数透明度问题。

顺序无关透明度示例

OIT可以通过Verge3D Settings面板启用。

Blender中的顺序无关透明度设置

已知限制:

符合glTF标准的材质的透明度

为了使这些材质具有透明度,请在基色纹理的alpha通道中添加alpha蒙版信息。您也可以用原理性BSDF节点的 Alpha 输入来调整alpha通道。

透明glTF材质

使用 Blend Mode 下拉菜单来选择支持的透明度模式:AutoOpaqueAlpha ClipAlpha Blend

遇到问题?

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