着色器节点参考/Blender

在某种程度上,Verge3D支持Blender材质编辑器提供的几乎所有节点。但对于大多数基于 Web 的实时图形任务,只使用其中的一组就足够了。下面我们只列出了Verge3D官方演示中所使用到的节点。

Verge3D 支持的输入和输出标有绿色复选标记,而不支持的则标有红色复选标记。

内容

着色器节点

这些节点是对物体表面进行着色计算的所有材质的核心。其中,以下节点在 Verge3D 工作流中使用最多:

原理化BSDF(Principled BSDF)

这个通用节点实现了基于物理的渲染模型(又名 PBR)。适合为Verge3D创建大多数材质。

通过调整Principled BSDF节点中的几个选项,您可以快速设置各种好看的材质。为获得最佳效果,您看以使用提供反射和基于图像照明的 环境纹理 ,或者仅使用为已经设置好环境的默认立方体模板。

请参阅Blender手册中关于Principled BSDF节点的更多信息: 链接

漫反射BSDF(Diffuse BSDF)

该节点实现了 PBR 的漫反射组件。它用于为材质添加烘焙的环境遮蔽,或有时与光泽BSDF节点结合,以获得比原理化BSDF节点更大的灵活性。

在下面的示例中,扩散BSDF用于向Chrome材质添加已烘培的环境光遮蔽:

请参阅《Blender手册》中关于扩散BSDF节点的更多信息: 链接

光泽BSDF(Glossy BSDF)

该节点实现了PBR的镜面组件。用于纯金属度曲面,或有时与漫反射BSDF节点组合以获得更大的灵活性。

请参阅《Blender手册》中关于Glossy BSDF节点的更多信息: 链接

发射(Emission)

此节点用于表现未被照亮的(无阴影)的对象。当与Verge3D中的bloom后期效果结合在一起时,它也被用来表现辉光效果。

在下面的简化示例中,Emission用做无阴影的UI图标的材质:

请参阅《Blender手册》中关于emission节点的更多信息: 链接

透明BSDF(Transparent BSDF)

该节点通过与其他着色器节点(如Glossy BSDF)混合实现透明材质。

此节点被部分支持。如果您遵循这些限制,输出将与Blender视口内效果更接近。
- 颜色的输入应该是严格的白色(R = 1, G = 1, B= 1)
- 该节点应该用在节点树的最末端,也就是通过Mix ShaderAdd Shader节点在Material Output之前使用(见下面的例子),或者直接插入Material OutputSurface接口中

在下面的简化示例中,Transparent BSDF被用来作为前风挡玻璃的材质。

请参阅《Blender手册》中关于 Transparent BSDF节点的更多信息: 链接

折射BSDF(Refraction BSDF)

此节点通过使用环境贴图来实现折射材质。

下面是一个简单的示例。

请参阅《Blender手册》中关于Refraction BSDF节点的更多信息: 链接

玻璃BSDF(Glass BSDF)

此节点实现了PBR的镜面和折射组件。

请参阅《Blender手册》中关于Glass BSDF节点的更多信息: 链接

半透明BSDF(Translucent BSDF)

此节点实现了半透明的效果。

请参阅《Blender手册》中关于 Translucent BSDF节点的更多信息: 链接

相加着色器(Add Shader)

该节点将两个着色器相加。

请参阅《Blender手册》中关于Add Shader 节点的更多信息: 链接

混合着色器(Mix Shader)

该节点将两个着色器混合在一起。

请参阅《Blender手册》中关于Mix Shader节点的更多信息: 链接

输出节点(Output Nodes)

这些节点是一个着色器的终点。对于对象材质,只有以下节点可用(对于世界材质也有一个特殊的输出节点)。

材质输出(Material Output)

此节点提供表面点的着色结果。

请参阅《Blender手册》中关于Material Output节点的更多信息: 链接

输入节点(Input Nodes)

这些节点为着色器提供各种输入信息。其中,以下节点在 Verge3D 工作流中使用最多:

几何数据(Geometry)

该节点(在世界空间)为着色点提供几何信息。目前,Verge3D只支持位置法向切向引入背面的接口。

请参阅《Blender手册》中关于Geometry节点的更多信息: 链接

属性(Attribute)

此节点检索网格属性。目前Verge3D只支持顶点色。

请参阅《Blender手册》中关于Attribute节点的更多信息: 链接

纹理坐标(Texture Coordinate)

此节点为纹理提供了从UV映射的或程序分配的坐标。Verge3D会从网格上可用的UV层列表中选取第一个UV层。

请参阅《Blender手册》中关于Texture Coordinate节点的更多信息: 链接

UV贴图(UV Map)

此节点从网格中获取指定的UV层。与纹理坐标节点不同的是,此节点适用于网格上任何可用的UV层。

请参阅《Blender手册》中关于UV Map节点的更多信息: 链接

菲涅耳

此节点计算光的反射与折射的比例。

请参阅《Blender手册》中关于Fresnel节点的更多信息: 链接

层权重(Layer Weight)

此节点提供一个取决于观察物体表面方向的混合系数。

请参阅《Blender手册》中关于Texture Coordinate节点的更多信息: 链接

RGB

此节点为着色器提供一个颜色值。

请参阅《Blender手册》中关于RGB节点的更多信息: 链接

数值(Value)

该节点为着色器提供一个数值。

请参阅《Blender手册》中关于Value节点的更多信息: 链接

摄影机数据(Camera Data)

此节点提供了对象相对于摄影机的位置信息。

请参阅《Blender手册》中关于Camera Data节点的更多信息: 链接

切线(Tangent)

此节点提供了切线方向。如果Direction Type设置为 "UV Map",那么切线将从网格的活动UV层计算,而不是从节点本身指定的UV层(不支持此参数)。

请参阅《Blender手册》中关于Tangent节点的更多信息: 链接

顶点颜色(Vertex Color)

此节点提供顶点颜色值。

请参阅《Blender手册》中关于Vertex Color节点的更多信息: 链接

纹理节点(Texture Nodes)

此节点向着色器提供位图。其中,以下节点在 Verge3D 工作流中使用最多:

棋盘格纹理(Checker Texture)

此节点提供了一个带有棋盘格图案的位图。

请参阅《Blender手册》中有关Checker Texture节点的更多信息: 链接

图像纹理(Image Texture)

此节点提供了一个图像文件,作为着色器中的纹理。

注意:有些选项是部分支持的
- 插值模式:线性, *最接近*
- 图像源:Single Image, Generated
- color space: 线性sRGB

请参阅《Blender手册》中关于Image Texture节点的更多信息: 链接

渐变纹理(Gradient Texture)

此节点提供一个平滑变化的颜色和强度的范围。

请参阅《Blender手册》中关于Gradient Texture节点的更多信息: 链接

泰森多边形纹理(Voronoi Texture)

此节点提供具有泰森多边形图案的位图。

注意:只支持3D维度,这也意味着不支持W的输入。

请参阅《Blender手册》中关于Voronoi Texture节点的更多信息: 链接

噪波纹理(Noise Texture)

此节点提供了一个带有噪波图案的位图。

注意:只支持3D维度,这也意味着不支持W的输入。

请参阅《Blender手册》中关于Noise Texture节点的更多信息: 链接

波浪纹理(Wave Texture)

此节点提供了一个带有波浪图案的位图。

请参阅《Blender手册》中关于Wave Texture节点的更多信息: 链接

颜色节点(Color Nodes)

这些节点提供了对颜色的各种操作。其中,以下节点在 Verge3D 工作流中使用最多:

亮度/对比度(Bright/Contrast)

该节点用于改变颜色输入的亮度和对比度。

请参阅《Blender手册》中关于“Bright/Contrast*”节点的更多信息: 链接

色调饱和度值(Hue Saturation Value)

该节点用于变换HSV空间中的颜色输入。

请参阅《Blender手册》中关于Hue Saturation Value节点的更多信息: 链接

混合(Mix)

此节点使用各种混合模式将两个颜色输入混合在一起。

请参阅《Blender手册》中关于Mix节点的更多信息: 链接

RGB曲线(RGB Curves)

此节点用于颜色校正和水平调整。

请参阅《Blender手册》中关于RGB Curves节点的更多信息: 链接

反转(Invert)

此节点将颜色输入反转,产生一个负数。

请参阅《Blender手册》中有关Invert节点的更多信息: 链接

伽马(Gamma)

该节点对颜色输入进行伽玛校正。

请参阅《Blender手册》中关于GAMMA节点的更多信息: 链接

矢量节点(Vector Nodes)

这些节点提供对矢量的各种操作。其中,以下节点在 Verge3D 工作流中使用最多:

凹凸(Bump)

此节点用于生成一个凹凸贴图。

参见《Blender手册》中关于Bump节点的更多信息: 链接

映射(Mapping)

该节点用于转换位图,包括移动、旋转和缩放。

请参阅《Blender手册》中关于Mapping节点的更多信息: 链接

法向(Normal)

此节点用于定义法线矢量和生成点积。

请参阅《Blender手册》中关于Normal节点的更多信息: 链接

法线贴图(Normal Map)

此节点提供来自用作法线贴图的位图的法向向量。

注意:只支持切向空间

参见Blender手册中关于Normal Map节点的更多信息: 链接

矢量曲线(Vector Curves)

此节点用于将输入的向量映射到曲线上。

参见Blender手册中的Vector Curves节点的更多信息: 链接

矢量旋转(Vector Rotate)

此节点用于将输入的矢量围绕一个支点进行旋转。

请参阅Blender手册中的Vector Rotate节点的更多信息: 链接

矢量转换(Vector Transform)

该节点用于在世界、摄影机或物体坐标空间之间转换输入矢量。

请参阅《Blender手册》中关于Vector Transform节点的更多信息: 链接。

转换器节点(Converter Nodes)

这些节点提供了在各种类型的数据之间进行转换的方法。其中,以下节点在 Verge3D 工作流中使用最多:

钳制(Clamp)

该节点将输入值约束在指定范围内。

注意:只支持Min Max钳制类型。

参见Blender手册中关于Clamp节点的更多信息: 链接

颜色渐变(Color Ramp)

此节点将数值转换为颜色后用作渐变。

注意:有些选项是部分支持的
- 颜色模式:只支持RGB
- 插值: 线性常值

请看Blender手册中关于Color Ramp节点的更多信息: 链接

映射范围(Map Range)

该节点用于将一个值从一个范围转换到另一个范围。

注意:只支持线性插值。

参见Blender手册中关于Map Range节点的更多信息: 链接

着色器到RGB(Shader to RGB)

该节点将着色计算结果替换为纯色。通常用于非写实的渲染。

参见Blender手册中关于Shader to RGB节点的更多信息: 链接

RGB转黑白(RGB to BW)

该节点通过使用亮度将彩色图像转换为黑白图像。

参见《Blender手册》中关于RGB to BW节点的更多信息: 链接

数学(Math)

此节点对数字值进行数学运算。

参见Blender手册中关于Math节点的更多信息: 链接

矢量运算(Vector Math)

此节点执行对矢量的操作。

参见Blender手册中关于Vector Math节点的更多信息: 链接

组合/分离节点(Combine/Separate Nodes)

这些节点由一个颜色或矢量组成,或将其分割到单独的通道。

请参阅《Blender手册》中关于CombineSeparate节点的更多信息: 链接

世界专属节点(World-Specific Nodes)

这些节点要么只适用于世界材质(Background, World Output),要么通常用于世界材质(Environment Texture, Light Path, Sky Texture)。

背景(Background)

此节点用于设置背景颜色,以及基于图像的照明和反射。它很少单独使用,因为它只生成一种纯色。您可以将其与 环境纹理 结合起来使用以得到最佳效果。

请看Blender手册中关于Background节点的更多信息: 链接

世界输出(World Output)

此节点是世界材质的终点。它表示环境的着色结果。

请参阅《Blender手册》中关于World Output节点的更多信息: 链接

环境纹理(Environment Texture)

此节点提供了一个图像文件,作为着色器中的环境纹理。这些图像必须是等距长方投影,而且通常应该是HDR格式,尽管也可以使用JPEG或PNG格式。

默认的立方体模板包括一个HDR图像,可用于您自己的项目。

注意:有些选项仅部分支持
- 插值模式:线性, 最接近
- 图像源:Single Image, Generated
- color space: 线性sRGB

在下面的例子中,一张JPEG图像被同时用来提供基于图像的照明、反射和背景。

请看Blender手册中关于Environment Texture节点的更多信息: 链接

光程(Light Path)

此节点向着色器提供各种布尔类型的信息。Verge3D支持Is Camera Ray输出,目的是控制 环境纹理 在背景中是否可见。

下面是一个典型的设置,用于为场景提供环境光照和反射,但在背景中只渲染白色纯色。

参见Blender手册中关于Light Path节点的更多信息: 链接

天空纹理(Sky Texture)

此节点提供了一个程序性生成的天空纹理。

注意:此节点只适用于Cycles,不适用Eevee渲染器。

更多关于Sky Texture节点的信息,请参见Blender手册: 链接

性能考虑因素

原理化BSDF的性能

作为最经常使用的节点,Principled BSDF需要您的GPU提供更多的计算能力,并减慢应用程序的加载速度。如果您的场景中有很多这样的材质,这会尤其明显。

有几种方法可以优化基于原理化的材质。

请记住,后两种方法会使您的材质看起来与Blender视窗中不同。

性能较慢的程序纹理

有一些程序纹理会降低性能。

您可以把这些纹理烘焙成位图,并使用图像纹理节点来达到更好的效果。

遇到问题?

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