Blender 3D:从新手到专业/迷雾 - 使物体不透明
如果您在 Blender 的迷雾中渲染物体,它们会与背景颜色混合。
因为 Blender 通过增加迷雾强度和离相机的距离来降低物体的 Alpha 值。
如果您的场景具有始终不变的背景颜色,这将是一个不错的选择,但是
如果是真实的背景或世界纹理,它看起来就不那么令人信服。
所有物体看起来都像是幽灵。
此页面将向您展示两种解决此问题的方法。
主要思想是用不透明的颜色与物体混合,而不是使它们透明。
透明度越高,添加的不透明颜色就越多。
因为 Blender 在启用迷雾的情况下提供了一个(动态)Alpha 值,
我们可以使用此值作为系数来增加或减少物体混合
与某种颜色(甚至增强或降低材料的对比度等)
第一个解决方案是使用外部合成程序
不会深入解释,因为我们想专注于如何解决
Blender 中的问题,因为它是开源的。
只需使用 Alpha 通道分别渲染您的背景和物体。
然后将这些文件导入到两个图层的合成程序中。
(一个用于物体,一个用于背景)。
在这些图层之间,您设置一个新的“颜色图层”,颜色为固体灰色蓝色
(因为这适合大气颜色)并创建一个剪切蒙版。
“剪切蒙版”意味着“颜色图层”仅在顶层物体存在的地方可见。
在没有物体的地方,您可以看到背景。
由于物体是部分透明的(因为 Blender 的迷雾),
您将看到灰色蓝色发光。
物体越远,透明度就越高,
颜色图层就越能透过物体发光。
由于解决方案 1 似乎不是什么大问题,因为我们负担不起昂贵的软件包,因此我们也可以
通过 Blender 内置的合成节点来实现这种“混合技术”。
要继续阅读,您最好对 Blender 的合成节点有所了解。
现在,本教程最有趣的部分是节点编辑器中的节点图
描述
在“渲染设置”选项卡中,您为不想透明的物体分配渲染层 1。
有关如何处理渲染层的说明,请参阅 http://wiki.blender.org/index.php/Doc:Manual/Render/Layers。
重要的是您要关闭“天空”,并打开“索引通道”。(“迷雾”选项与节点渲染层 1 中的 Alpha 输出提供相同的值)
“索引通道”将在步骤 5 中解释。
此图层仅渲染背景,即天空。在我的例子中,我还必须启用其他元素,因为否则地面平面不会渲染。
我不知道为什么,但这在我们的例子中无关紧要。
节点渲染层 1 的“图像输出”提供 RGB+A,这有点令人困惑,
因为您也可以看到 Alpha 输出。在节点编辑器窗口中选择“添加”->“颜色”->“分离 RGBA”。
现在,分离的 RGB 再次组合成 RGB,但这次使用步骤 5 中的新的 Alpha。
好消息是,Blender 的物体 ID Alpha 值会忽略迷雾。
因此,我们可以添加一个 ID 蒙版节点,将物体的 Alpha 导入到新图像中。
在这里,您必须将物体的 ID 设置为与 ID 蒙版节点中相同的数字。
选择物体并设置其 ID 通道索引!
旁边是设置物体 ID 的截图。
在此,您添加一个混合节点来将物体与“地平线颜色”混合。
颜色应设置为明亮的灰蓝色,因为这是大气层内部空气的颜色。
任何颜色都是可能的,您可以想象在火山口中是深红色,或者在外太空是黑色。
由于雾的存在,Blender 会为物体提供一个 Alpha 值。
如果一个物体离得很远,或者雾的强度很高,
物体的 Alpha 值会降低,这意味着 Alpha 值会更接近黑色。
而如果物体很近,它相应的 Alpha 值就会很高,这意味着它会接近白色。
黑色意味着 RGB 值为 0-0-0,白色意味着 RGB 值为 1-1-1。
由于我们要使用这些值作为将物体与“地平线颜色”混合的比例因子,
我们需要将该值反转。
(近距离物体 = 高 Alpha 值 = 接近 1 的比例因子 - 但我们需要将混合比例因子设为接近 0,因为我们希望在物体靠近时雾气较少)
所以让我们添加一个“反转颜色节点”。
获取该节点的节点图设置。
该节点将黑色反转为白色,深灰色反转为浅灰色,等等。
我们现在使用这个反转的 Alpha 值(或雾气值)
作为将地平线颜色与物体混合的比例因子。
现在您添加一个 Alpha Over 节点,该节点将我们的物体叠加到天空背景上。
请注意使用截图中显示的设置,以及 Alpha Over 节点的两个图像输入的顺序
非常重要。
第二个输入始终叠加在第一个输入之上。
最后,您需要一个输出节点,并在渲染设置中启用“执行合成”。
以下是我项目中如何实现的示例。
-
近距离 - 几乎没有雾气
-
远距离 - 低雾气或大气透明度
-
更远距离 - (!) 物体甚至被缩放了
-
最远距离 - 在原始尺寸下,物体太小而不可见 - 只是为了使逻辑清晰
确保您正确执行了每个步骤 - 然后一切都会正常工作。
更重要的是,您要理解其背后的逻辑,
这样您就可以了解 Blender 的合成节点和 01 逻辑;)
由于“Mist”(雾)在德语中类似于“Bullsh**”(胡说八道),所以我一直不相信它在 Blender 中真的是这样,
而且事实并非如此!Blender 是一个非常棒且强大的工具。
希望它永远是开源的。