【视频文字摘要】原理化 BSDF 着色器的概念和基本使用 您所在的位置:网站首页 玻璃材质的作用是什么原理 【视频文字摘要】原理化 BSDF 着色器的概念和基本使用

【视频文字摘要】原理化 BSDF 着色器的概念和基本使用

2023-12-11 22:15| 来源: 网络整理| 查看: 265

如果您已经有过一些学习使用 Blender 的经验,那么您可能会发现,每次新建材质的时候,创建出来的材质总是会带着一个叫「原理化 BSDF」的节点。这个东西可能会有些令人困惑:首先,它的名字本身读起来就让人觉得很奇怪:「原理化,为什么叫这个名字?」。其次,这个节点有很多的参数可供设置。我该把哪些参数调成什么样,才能让材质看着是对的?本期视频目的即是意在向大家解释这些问题。

原理化着色器是什么?

一句话来概括:原理化着色器是一个可以表现现实世界中绝大多数材质的万能着色器。

原理化着色器是由迪士尼动画工作室创造的,并于 2012 年公开发布了实现方法。实现方法 发表于文章 Physically-Based Shading at Disney. Blender 在 2017 年的 2.79 版本加入了这个着色器,基本上完全参照了迪士尼工作室的实现。如果翻看 Blender 的源代码,在早期一开始它就叫 Disney BSDF。

迪士尼工作室创造这个东西的目的是,在保证大体上渲染符合物理规律的同时,也为使用者留出调整余地。毕竟我们大多数人是搞艺术的,而不是搞物理的。我们一般不需要精确的物理仿真去计算光线在场景中是怎样反射的。我们的目标是渲染一张好看的图片。因此在需要时,一个好的着色器应允许用户打破物理规律,来去实现更好的视觉效果。

原理化着色器可以模拟现实世界的大部分材质。举一个 Blender 官方文档使用的例子

原理化着色器的可能性

从这张图可以看出,通过不同的参数设置,原理化着色器可以模拟金属、非金属、玻璃、布料、清漆等材质。可以说,如果去渲染表现现实世界的材质,绝大多数情况下用这一个着色器就够了。

更难得可贵的是,迪士尼工作室做出了很大努力,让这个万能着色器尽可能易于使用。原理化着色器虽然参数多,但常用的参数其实很少。并且它的参数设置比较直观,比如像金属度、粗糙度这样的参数很容易理解。且设置容易,只需一个着色器即可表现大部分材质,作为对比,可以看一下这个例子:

在这个场景中有两个球,外观完全一致,但事实上它们使用了不同的材质。其中一个球使用了 Blender 的原理化材质;对于另一个球,我自己创建了一个材质,目标是使得在输入参数和 Blender 原理化材质完全一致的情况下,材质产生的外观也完全一致。

那么,为了让自定材质外观和 Blender 内置的原理化材质完全一致,需要做出多大的努力呢?看一下这个自定材质的节点设置:

这个材质节点图设置……确实有些复杂。那么再看看如果使用 Blender 原理化材质的话,会是什么样的:

可以看到,如果使用原理化着色器,在输入和输出之间只用一个节点就行了!由此可见,原理化着色器让我们节省了大量时间去设置材质,让节点图更简洁,同时也防止了节点图过度复杂带来的人工错误。

由于开源、使用简单方便,且材质表现效果好,迪士尼工作室的原理化材质器也被很多其他软件使用,比如 Unreal Engine 或者 Unity。因此使用原理化着色器后,导出 Blender 模型到其他软件,也能在这些软件里比较容易使材质看上去与在 Blender 里类似,大大方便了我们的工作。此外,近年来诞生的一些新 3D 格式文件,如 glTF,也支持类似原理化着色器的材质设置方式,并且 Blender 支持导入导出 glTF 格式。因此,如果其他软件支持导入 glTF 格式,将 Blender 文件导出为 glTF 到这些软件中,会节省大量用来保证软件间材质外观一致性的时间。

名称

再解释一下这个可能令人比较困惑的名称。「原理化」这个词由英语 “Principled” 翻译而来。说实话,我觉得这个翻译不算好。如果去看迪士尼工作室发表的论文原文,“Principle” 这个词原意应更接近「设计原则」,与此相对的是严格的物理模拟。因此我觉得更好的翻译应该为「原则化」、「基于原则的」,虽然读起来还是不太顺口吧。

既然谈到了「原则」,那么原则到底是什么?论文原文提到了这么几条:

直观的参数设置(而不是用物理量)

尽可能少的参数

参数取值范围应在 0 - 1 之间

如果有意义,参数也可以设置在 0 - 1 取值范围之外

所有参数组合都可以处理

论文中提到的原理

从最终成果来看,我认为迪士尼工作室实现了这些原则:只用一个着色器节点、有限的几个参数,即可呈现现实世界的绝大多数材料外观;并且,仍为艺术家留出了发挥空间。

如何使用原理化着色器

简单了解了原理化着色器是什么后,接下来看看在 Blender 里怎么使用它吧。总的来讲,如果有现成的 PBR (基于物理着色)贴图的话,使用原理化着色器来实现材质,其实真的……挺简单粗暴的。

下载贴图

首先是要下载贴图。这里推荐两个网站:texturehaven.com 和 cc0textures.com 。这两个网站都是我自己最常用的。两个网站的贴图质量都比较不错。绝大多数贴图是 PBR 金属度工作流贴图,即正是 Blender 原理化着色器需要的输入贴图类型。并且提供了不同分辨率可下载,最高甚至到 8K。贴图大部分是无缝可密铺的。最好的一点是……贴图均是免费且可商业使用的。

下载贴图包解压后,会看到类似如下的文件:

这些即是一个典型的 PBR 贴图包所拥有的不同类型的贴图,包括基础色、粗糙度、置换、环境光遮蔽、光泽度、法线、金属度、透明度等。这些不同参数的意义我们将在下期视频讨论。

2. 使用贴图

进入 Blender,首先确保在偏好设置中,启用 Node Wrangler 插件。如果你是从官方渠道下载的官方版本,那么这个插件在 Blender 安装时就自带了,不需要再额外下载任何东西。但它默认是没有启用的,需要在偏好设置 -> 插件面板中首先启用一下。 Blender 自带了很多插件,因此最好直接在插件面板的搜索框输入插件名称 “Node Wrangler” 来查找,而不是一个一个去翻:

Node Wrangler 是一个会让节点编辑变得轻松方便很多的插件。在此非常建议每个人都保持它在启用状态,并抽空花出一些时间去学习一下如何使用。顺便说一下,这个插件开发者之一,Greg Zaal 就是上面推荐的 texturehaven.com 网站的运营者。

接下来,选中要上材质的物体(这里假设你的物体已经展开 UV 了),进入材质编辑器,新建一个材质。可以看到,新材质节点图的默认设置是一个原理化 BSDF 着色器连接到材质输出上:

这里有一点要注意,新建材质后,默认情况下这两个节点都在选中状态。为了进行下一步操作,首先鼠标点击一下编辑器空白部分,取消选择;然后再点击原理化 BSDF 节点,确保它在选中状态,并且只有它一个节点在选中状态。

然后,按下 Ctrl + Shift + T 组合键,这是 Node Wrangle 插件用来设置原理化材质贴图的快捷键。按下组合键后,会弹出一个文件选择面板。进入贴图包文件夹,选中文件夹内的所有贴图:

最后,点击右下角的 “Principled Texture Setup”,BAM!完成了:

可以看看 Node Wrangler 为我们做了什么:先添加了 UV 映射,然后把 UV 连到不同的贴图上,作为原理化着色器的输入。并且把不同类型的节点放在不同的框里。

不过,如果细心的话,会发现一个小问题:环境光遮蔽(AO)贴图没有用上。如果要是想使用环境光遮蔽贴图的话,需要再做一些额外的手动配置:新建一个图像纹理节点,把贴图设置为环境光遮蔽贴图。注意,要把色彩空间设置为 non-color (非色彩数据)。然后,将其输出与基本色的输出使用「混合 RGB」做个相乘运算。最后将相乘运算的结果连接到原理化着色器的基础色输入上:

这即是在已有 PBR 贴图的情况下,使用原理化着色器创建材质的办法。总结一下,十分简单粗暴:

下载贴图,解压;

在 Blender 里选中要上材质的物体,新建材质;

使用 Node Wrangler 的组合键 Ctrl + Shift + T,选择贴图并应用

(可选)手工加上环境光遮蔽贴图。

完成!

以上就是本期视频的内容。本期视频介绍了什么是原理化 BSDF 着色器,还有它的基本用法。在下一期视频里,我们将去深入了解原理化材质的工作原理,以及各项参数的意义。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有