着色器节点参考/Blender
在某种程度上,Verge3D支持Blender材质编辑器提供的几乎所有节点。但对于大多数基于 Web 的实时图形任务,只使用其中的一组就足够了。下面我们只列出了Verge3D官方演示中所使用到的节点。
Verge3D 支持的输入和输出标有绿色复选标记,而不支持的则标有红色复选标记。
内容
- 着色器节点
- 输出节点(Output Nodes)
- 输入节点(Input Nodes)
- 纹理节点(Texture Nodes)
- 颜色节点(Color Nodes)
- 矢量节点(Vector Nodes)
- 转换器节点(Converter Nodes)
- 世界专属节点(World-Specific Nodes)
- 性能考虑因素
着色器节点
这些节点是对物体表面进行着色计算的所有材质的核心。其中,以下节点在 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 Shader或Add Shader节点在
Material Output之前使用(见下面的例子),
或者直接插入Material Output的Surface接口中
在下面的简化示例中,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)
该节点将输入值约束在指定范围内。< /p>
注意:只支持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手册》中关于Combine和Separate节点的更多信息: 链接。
世界专属节点(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提供更多的计算能力,并减慢应用程序的加载速度。如果您的场景中有很多这样的材质,这会尤其明显。
有几种方法可以优化基于原理化的材质。
- 对于非镜面或非金属表面,用漫反射BSDF代替原理化BSDF。
- 对于纯金属材质,用光泽BSDF代替原理化BSDF。
- 如果您渲染的是纯色材质,用Emission代替原理化BSDF。
- 调整 Cubemap大小 或 IBL环境模式 属性以改善环境照明性能。
- 切换到 glTF 2.0模式。
请记住,后两种方法会使您的材质看起来与Blender视窗中不同。
性能较慢的程序纹理
有一些程序纹理会降低性能。
- 噪波纹理,特别是在高细节属性情况下(数值16时是性能杀手)。
- 泰森多边形纹理,使用F1作为特征参数,因为它比其他参数好用得多。
您可以把这些纹理烘焙成位图,并使用图像纹理节点来达到更好的效果。
遇到问题?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。