跳转至内容

Blender 3D:从新手到专业/迷雾 - 使物体不透明

来自 Wikibooks,开放世界中的开放书籍

Blender 的迷雾工作原理

[编辑 | 编辑源代码]

如果您在 Blender 的迷雾中渲染物体,它们会与背景颜色混合。
因为 Blender 通过增加迷雾强度和离相机的距离来降低物体的 Alpha 值。

如果您的场景具有始终不变的背景颜色,这将是一个不错的选择,但是
如果是真实的背景或世界纹理,它看起来就不那么令人信服。
所有物体看起来都像是幽灵。

解决方案简述

[编辑 | 编辑源代码]

此页面将向您展示两种解决此问题的方法。
主要思想是用不透明的颜色与物体混合,而不是使它们透明。
透明度越高,添加的不透明颜色就越多。


因为 Blender 在启用迷雾的情况下提供了一个(动态)Alpha 值,
我们可以使用此值作为系数来增加或减少物体混合
与某种颜色(甚至增强或降低材料的对比度等)


以下是用迷雾和“混合技术”渲染的结果。您会看到,您不会看到背景发光。

第一个解决方案是使用外部合成程序
不会深入解释,因为我们想专注于如何解决
Blender 中的问题,因为它是开源的。

解决方案 1:使用外部合成软件。

[编辑 | 编辑源代码]

只需使用 Alpha 通道分别渲染您的背景和物体。
然后将这些文件导入到两个图层的合成程序中。
(一个用于物体,一个用于背景)。
在这些图层之间,您设置一个新的“颜色图层”,颜色为固体灰色蓝色
(因为这适合大气颜色)并创建一个剪切蒙版。
“剪切蒙版”意味着“颜色图层”仅在顶层物体存在的地方可见。
在没有物体的地方,您可以看到背景。
由于物体是部分透明的(因为 Blender 的迷雾),
您将看到灰色蓝色发光。
物体越远,透明度就越高,
颜色图层就越能透过物体发光。

解决方案 2:使用 Blender 的合成节点。

[编辑 | 编辑源代码]

由于解决方案 1 似乎不是什么大问题,因为我们负担不起昂贵的软件包,因此我们也可以
通过 Blender 内置的合成节点来实现这种“混合技术”。

要继续阅读,您最好对 Blender 的合成节点有所了解。

现在,本教程最有趣的部分是节点编辑器中的节点图


描述

步骤 1 渲染层 1
[编辑 | 编辑源代码]

在“渲染设置”选项卡中,您为不想透明的物体分配渲染层 1。

有关如何处理渲染层的说明,请参阅 http://wiki.blender.org/index.php/Doc:Manual/Render/Layers

重要的是您要关闭“天空”,并打开“索引通道”。(“迷雾”选项与节点渲染层 1 中的 Alpha 输出提供相同的值)
“索引通道”将在步骤 5 中解释。

步骤 2 渲染层 2
[编辑 | 编辑源代码]

此图层仅渲染背景,即天空。在我的例子中,我还必须启用其他元素,因为否则地面平面不会渲染。
我不知道为什么,但这在我们的例子中无关紧要。

步骤 3 分离 RGB+Alpha
[编辑 | 编辑源代码]

节点渲染层 1 的“图像输出”提供 RGB+A,这有点令人困惑,
因为您也可以看到 Alpha 输出。在节点编辑器窗口中选择“添加”->“颜色”->“分离 RGBA”。

步骤 4 结合 RGBA
[编辑 | 编辑源代码]

现在,分离的 RGB 再次组合成 RGB,但这次使用步骤 5 中的新的 Alpha。

步骤 5 使透明物体不透明
[编辑 | 编辑源代码]

好消息是,Blender 的物体 ID Alpha 值会忽略迷雾。
因此,我们可以添加一个 ID 蒙版节点,将物体的 Alpha 导入到新图像中。
在这里,您必须将物体的 ID 设置为与 ID 蒙版节点中相同的数字。
选择物体并设置其 ID 通道索引!
旁边是设置物体 ID 的截图。

在按钮窗口的红色标记区域中,您可以设置物体的 ID


步骤 6 将物体与颜色混合
[编辑 | 编辑源代码]

在此,您添加一个混合节点来将物体与“地平线颜色”混合。
颜色应设置为明亮的灰蓝色,因为这是大气层内部空气的颜色。
任何颜色都是可能的,您可以想象在火山口中是深红色,或者在外太空是黑色。

步骤 7 设置颜色添加比例的因子
[编辑 | 编辑源代码]

由于雾的存在,Blender 会为物体提供一个 Alpha 值。
如果一个物体离得很远,或者雾的强度很高,
物体的 Alpha 值会降低,这意味着 Alpha 值会更接近黑色。
而如果物体很近,它相应的 Alpha 值就会很高,这意味着它会接近白色。
黑色意味着 RGB 值为 0-0-0,白色意味着 RGB 值为 1-1-1。

由于我们要使用这些值作为将物体与“地平线颜色”混合的比例因子,
我们需要将该值反转。

(近距离物体 = 高 Alpha 值 = 接近 1 的比例因子 - 但我们需要将混合比例因子设为接近 0,因为我们希望在物体靠近时雾气较少)

所以让我们添加一个“反转颜色节点”。
获取该节点的节点图设置。
该节点将黑色反转为白色,深灰色反转为浅灰色,等等。
我们现在使用这个反转的 Alpha 值(或雾气值)
作为将地平线颜色与物体混合的比例因子。

步骤 8 将着色的物体叠加到天空背景上
[编辑 | 编辑源代码]

现在您添加一个 Alpha Over 节点,该节点将我们的物体叠加到天空背景上。
请注意使用截图中显示的设置,以及 Alpha Over 节点的两个图像输入的顺序
非常重要。
第二个输入始终叠加在第一个输入之上。

步骤 9 添加一个输出节点
[编辑 | 编辑源代码]

最后,您需要一个输出节点,并在渲染设置中启用“执行合成”。

步骤 10 示例
[编辑 | 编辑源代码]

以下是我项目中如何实现的示例。

确保您正确执行了每个步骤 - 然后一切都会正常工作。
更重要的是,您要理解其背后的逻辑,
这样您就可以了解 Blender 的合成节点和 01 逻辑;)

由于“Mist”(雾)在德语中类似于“Bullsh**”(胡说八道),所以我一直不相信它在 Blender 中真的是这样,
而且事实并非如此!Blender 是一个非常棒且强大的工具。
希望它永远是开源的。


华夏公益教科书