这是您的所有其他节点最终将链接到的节点。它拥有为不同目的服务的多个输入。 以下动画图像显示所有输入及其随时间变化的行为。大部分输入会在 0 和 1(黑色和白色)之间来回绘制动画。 ![]()
Diffuse (漫反射)
这是着色器的主要颜色。漫反射颜色将根据出光的法线角度接收光线或衰减光线,以及被阴影遮罩。
![]()
Diffuse Power (漫反射力道)
这是光法线角度衰减的指数。可在使用大于 1 的值时获得额外的金属外观。请注意,无论何时启用,它都相当消耗效能。
![]()
Specular (镜面反射)
这是着色器镜面高光的颜色。值越高就越明亮,黑色完全不受着色器影响。
![]()
Gloss (光泽)
这是镜面高光的指数。值越高光泽度越高,值趋近于 0 时将变得没有光泽。请注意,如果您取消选中光泽重映射,则应避免使用低于 1 的光泽值。
![]()
Normal (法线)
这是切线空间法线方向,您可在此连接法线贴图或自定义法线向量。
![]()
Emission (自发光)
这是无论光照条件如何始终都会添加到着色器的光线。
![]()
Transmission (透射)
此选项在光源位于当前渲染的表面背后时控制有多少光线可以通过。这对于薄型材料十分有用,例如布料或植被。
![]()
Light Wrapping (环绕光)
这是控制出光法线角度衰减偏移的一种方法,可用于获得与次表面散射相似的效果。对于平滑对象最有用。输入偏红色的值将让红色通道比其他通道更多地“环绕”对象,这样看起来就像是光线传递到网格中并携带红色波长出来,与遮罩皮肤的方法类似。
![]()
Diffuse Ambient Light (漫反射环境光)
此选项将光线添加到着色器,受漫反射影响。可以与立方体贴图(使用基于图像的光照 (IBL) 的法线方向)或环境光等一起使用
![]()
Specular Ambient Light (镜面反射环境光)
此选项将光线添加到着色器,受镜面反射影响。可以与立方体贴图(使用基于图像的光照 (IBL) 的视图反射方向)等一起使用
![]()
Diffuse Ambient Occlusion (漫反射环境光遮蔽)
此选项抑制间接漫反射光线,例如光探头、间接光线和漫反射环境光
![]()
Specular Ambient Occlusion (镜面反射环境光遮蔽)
此选项可抑制间接镜面反射光线,例如反射探头和镜面反射环境光
![]()
Custom Lighting (自定义照明)
此输入在着色器设置为不打光时处于活动状态,可让您定义自定义照明行为。您在此处根据光线放置节点。
![]()
Opacity (不透明度)
Opacity(不透明度)控制最终像素的透明度。请注意,部分透明度通常很难设置正确,特别是在使用延迟渲染时。
![]()
Opacity Clip (不透明度剪切)
Opacity Clip(不透明度剪切)是控制是否应该绘制当前像素/片段的一种方法。始终对需要透明度的对象使用硬剪切,但不要对部分透明度使用硬剪切,因为 Opacity Clip(不透明度剪切)可以轻松排序,但是 Opacity(不透明度)不可以。
![]()
Refraction (反射)
Refraction(反射)是用于折射背景像素的屏幕空间 UV 偏移。请确保在使用前将 Opacity(不透明度)设置为低于 1 的值,以便折射效果可见。
![]()
Outline Width (描边宽度)
此选项将向着色器添加描边,渲染为具有反面法线的偏移网格。请注意,硬边将损坏描边。
![]()
Outline Color (描边颜色)
此选项控制描边的颜色。
![]()
Vertex Offset (顶点偏移)
此选项可用于随时间变化对着色器进行动画,或在不同条件下更改对象的形状。您只需插入每个顶点所需偏移量的 XYZ 坐标即可。
![]()
DX11 Displacement (DX11 位移)
此选项和 Vertex Offset(顶点偏移)的作用非常类似,但是与 DX11 曲面细分一起使用。(请注意,DirectX 仅适用于 Windows,需要 DX11 GPU 且必须在 Unity 设置中启用)
![]()
DX11 Tessellation (DX11 曲面细分)
此选项控制您要将三角形分割为多少个细分。(请注意,DirectX 仅适用于 Windows,需要 DX11 GPU 且必须在 Unity 设置中启用)
|
![]() |
输出 [A] + [B] 之和
|
![]() |
输出 [A] - [B] 之差
|
![]() |
输出 [A] * [B] 之积
|
![]() |
输出 [A] / [B] 之商
|
![]() |
输出 [Val] ^ [Exp] 之幂
|
输出其输入的平方根
|
输出其输入的对数。您可以在下拉菜单中切换对数底
|
![]() |
输出 [A] 和 [B] 的最小值
|
![]() |
输出 [A] 和 [B] 的最大值
|
![]() |
输出其输入的绝对值。它实质上让负值变为正值
|
![]() |
输出其输入的符号。 值大于 0 时输出 1 值等于 0 时输出 0 值小于 0 时输出 -1 |
![]() |
输出时将其输入向上舍入为最近整数
|
![]() |
输出时将其输入四舍五入为最近整数
|
![]() |
输出时将其输入向下舍入为最近整数
|
![]() |
输出时将其输入向零四舍五入到最近整数。它实质上去掉小数,留下整数
|
![]() |
如果 [A] 小于或等于 [B],则输出 1,否则输出 0
|
[A] 大于 [B] 时,输出 [A>B] 输入 [A] 等于 [B] 时,输出 [A=B] 输入 [A] 小于 [B] 时,输出 [A |
![]() |
输出其输入的小数部分。它实质上移除整数部分,仅保留小数部分。如果输入为 4.32,则会输出 0.32。此节点在与 Time(时间)节点一起使用时非常有用,会随时间变化带来锯齿波
|
输出 [A] 除以 [B] 的余数
|
输出其主输入的值,不小于 [Min] 且不大于 [Max]
|
跟 Clamp(范围)一样,但为最小值和最大值使用数字输入,而不使用节点接口
|
![]() |
输出其输入值,不小于 0 且不大于 1
|
![]() |
Lerp(线性插值)用于混合两个值或颜色。 如果 [T] 为 0,则将输出 A 如果 [T] 为 0.5,则将输入 [A] 和 [B] 的分半混合 如果 [T] 为1,则将输出 B 如果 [T] 为两者间的任一值,则将输入两者的线性混合。 |
与 Lerp(线性插值)一样,但为 [A] 和 [B] 使用数字输入,而不使用节点接口
|
![]() |
基于经过 [Steps] 的值对值进行四舍五入取整。[Steps] 值为 5 时将在 0 到 1 的范围内创建 5 段
|
![]() |
使用指定方法混合 [A] 和 [B]
|
![]() |
将值从一个范围重映射到另一个范围。与 Remap (Simple)(重映射(简单))一样,但使用输入而不是数值常数
|
![]() |
将值从一个范围重映射到另一个范围。例如,如果节点期望 -1 到 1 的值,但您想要它输出 2 到 5 的值,那么您可以在第一行键入-1 和 1,在第二行键入 2 和 5
|
![]() |
根据两分量输入(例如 UV 坐标)生成伪随机点
|
![]() |
输出 1 减去其输入。与颜色输入一起使用时,将反转颜色
|
![]() |
输出其主输入乘以 -1。实质上让正值变负,让负值变正
|
选定 Exp(指数)时:输出 e 到其输入的幂 选定 Exp 2(指数 2)时:输出 2 到其输入的幂 |
数字值,也可称为“Vector 1”(向量 1)。还提供属性版本。值可以与 Append(附加)节点一起用于创建拥有多个分量的向量。值还可以与向量/颜色相乘。例如,向量 (3,1,0) 乘以 0.5 会输出向量 (1.5,0.5,0)
|
具有两个分量/值的向量。通常与 UV 坐标一起使用。将 Vector 2(向量 2) 添加到 UV 坐标会转换 UV 坐标。将 UV 坐标与 Vector 2(向量 2)相乘会缩放 UV
|
具有三个分量/值的向量。通常用作颜色、位置或方向
|
具有四个分量/值的向量。通常用作具有 Alpha 通道的颜色,或用作在第四个通道中有一些额外数据的位置。检视器中有两个参数可供曝光。Color(颜色)和 Vector 4(向量 4)参数
|
![]() |
包含对纹理的引用,并将使用特定 MIP 级别在特定 UV 坐标上对纹理进行采样(如果已连接)。如果 [Tex] 输入由 Texture Asset(纹理资源)节点连接,则它将不再是检视器中的参数。输出 [RGB] 以及单独的通道
|
![]() |
包含对纹理的引用。用于对单个纹理进行多次采样 – 仅可连接到 Texture 2D(2D 纹理)节点的 [Tex] 输入。这也将在材质的检视器中反映出来,因此用户只需要分配一个纹理
|
数字值;与 Value(值)一样,但在材质检视器中曝光
|
具有四个分量/值的向量,与 Vector 4(向量 4)一样,但在材质检视器中作为 4 个单独的 X、Y、Z 和 W 值曝光
|
具有四个分量/值的向量,与 Vector 4(向量 4)一样,但在材质检视器中作为取色器曝光
|
包含对立方体的引用,并将使用特定 MIP 级别在特定方向对其进行采样(如果已连接)。输出 [RGB] 以及单独的通道
|
让您能够轻松地在最小值和最大值之间调整某个值。也向检视器曝光
|
输出 [A] 和 [B] 之间的点积。对于两个归一化的向量而言,它实质上输出两个向量指向之间的距离。如果它们指向相同方向,则输出 1;如果它们互相垂直,则输出 0;如果它们指向相反方向,则输出 -1。 下拉选择: 标准 – 常规点积 正数 – 让所有负值为 0 负数 – 让所有正值为 0 绝对值 – 让所有负值为正 归一化 – 在 0 到 1(而不是 -1 到 1)的范围内输出 下图显示使用两个归一化向量时不同模式的行为。 在 X 轴上可以得到其夹角,在 Y 轴上可以得到输出值: ![]() |
输出 [A] 和 [B] 的叉积。它实质上输出垂直于两个输入向量的向量
|
输出入射向量 [I] 的反射向量,就像在具有法线 [N] 的表面上反射/反弹一样
|
输出输入向量的归一化版本。实质上将向量长度设置为 1,并保持相同方向
|
![]() |
从多个输入值/向量输出单个向量。例如,如果 [A] 是向量 2,[B] 是 Value (Vector 1)(值(向量 1)),则节点将输出 Vector 3(向量 3),其中 [A] 在红色和绿色通道中,而 [B] 在蓝色通道中
|
![]() |
分量遮罩可用于重新排序或提取向量的通道
|
![]() |
输出输入 [Col] 的去色版本。[Des] 确定去色程度。值为 1 表示完全去色,值为 0.5 表示半去色,值为 0 表示不去色
|
![]() |
输出遮罩的每个分量乘以对应颜色输入后的和。对于三平面混合十分有用
|
合并两个法线方向,其中基础法线被细节法线扰乱
|
![]() |
输出两个输入点 [A] 和 [B] 之间的距离
|
![]() |
输出其输入向量的长度/幅度
|
将向量从一个空间转换到另一个空间。您可以在世界/本地/切线/视图之间切换。内置向量在世界空间中。法线输入的方向在切线空间中。
|
输出向量 [A] 到向量 [B] 的投影
|
输出从向量 [B] 拒识的向量 [A]
|
输出输入 [UV] 坐标,按 [Dist] 距离,以 U 参数和 V 参数指定的方向/速度进行平移/偏移
|
![]() |
输出输入 [UV] 坐标,绕轴心点 [Piv] 按 [Ang] 弧度旋转。如果 [Ang] 未连接或连接到时间节点,[Spd] 将控制旋转速度
|
输出输入 [UV] 坐标,具有从 [Hei] 输入派生的视差偏移,深度为 [Dep],引用高度为 [Ref]。 [Ref] 高度为 0 表示其视差效果为高度贴图看似从网格中突出 [Ref] 高度为 1 表示其视差效果为高度贴图看似向下进入网格中 |
输出几何图形该部分的指定 UV 坐标。下拉选择可让您选择 UV 通道 0 或 UV 通道 1。请注意,光照贴图网格为其光照贴图 UV 使用 UV1
|
![]() |
输出对象轴心点的世界位置
|
![]() |
输出网格当前部分的屏幕位置,可在屏幕空间贴图时用作 UV 坐标。在下拉框中,“Normalized”(归一化)会将 {0,0} 放在屏幕中心,将 {1,1} 放在右上方。“Tiled”(平铺)也会将 {0,0} 放在中心,但将根据纵横比在 X 轴上缩放
|
![]() |
在世界空间中输出网格当前部分的位置
|
![]() |
输出顶点颜色。如果您在顶点颜色中烘焙了环境光遮蔽,或要使用喷涂颜色为网格染色,或要将顶点颜色用于其他对象,那么这就是您需要的节点
|
![]() |
输出表面法线和视图方向之间的点积。如果想要使用自定义法线,则会使用 [Nrm]。默认使用扰乱法线。[Exp] 更改输出的指数。值越高,菲涅尔越薄。
|
![]() |
在世界空间中输出网格法线的方向。Perturbed(扰乱)复选框使其在应用 Main(主要)节点的“Normal”(法线)输入后使用法线,例如法线贴图。
|
![]() |
在世界空间中输出网格双切线的方向
|
![]() |
在世界空间中输出网格切线的方向
|
![]() |
在世界空间中输出从几何图形当前部分到摄像机的方向
|
![]() |
输出视图的方向,就像根据表面法线反弹那样。这可用作完美反射的立方体贴图的输入
|
![]() |
输入当前要渲染的光线的颜色
|
![]() |
输出光线衰减。此节点同时包含光线衰减和阴影
|
![]() |
输出要在其中渲染着色器的场景的环境光
|
![]() |
输出当前要渲染的光线的方向
|
![]() |
输出折半方向。这是指向视图和光线向量中间的方向,通常在 blinn-phong 镜面反射模型中使用
|
![]() |
输出当前要渲染的光线的位置。 [Pnt] 如果当前要渲染的光线是点光线,则输出 1,否则输出 0 |
![]() |
以不同速率输出时间。 [t/20] 以 1/20 倍速率输出时间 [t] 输出当前时间 [t*2] 以 2 倍速率输出时间 [t*3] 以 3 倍速率输出时间 |
![]() |
输出视图/摄像机的当前位置(请注意,使用透视摄像机时,视图位置在屏幕“背后”)
|
![]() |
输出四个投影参数。 [Sign] 为 -1,如果当前使用倒装投影矩阵渲染,否则为 1 [Near] 是当前摄像机的近平面距离 [Far] 是当前摄像机的远平面距离 [1/Far] 是远平面距离的倒数 |
![]() |
输出四个屏幕参数。 [pxW] 是以像素为单位的屏幕宽度 [pxH] 是以像素为单位的屏幕高度 [1+1/W] 是 1 加像素宽度的倒数 [1+1/H] 是 1 加像素高度的倒数 |
包含渲染此对象前的场景渲染的纹理。默认其 UV 位于屏幕空间中,从而让每个像素都代表对象背后的颜色。这可用于更加高级的混合/透明度效果,或作为 UV 改变时形成折射的其中一种手动方法
|
摄像机到当前像素背后的场景的深度。您需要在混合设置中关闭深度缓冲编写,
并且需要使用渲染深度纹理的摄像机
|
它根据距离输入输出 0 和 1 之间的值,具体取决于此像素距背景几何图形多近。对于水边缘的淡出或光轴相交几何图形的软化很有用。注意:您需要在混合设置中关闭深度缓冲编写,
并且需要使用渲染深度纹理的摄像机
|
这是摄像头近平面到对象的距离
|
![]() |
输出 π 的值,圆的周长与直径的比值(约为 3.141593)
|
![]() |
输出 τ 的值,圆的周长与半径的比值(约为 6.283185)
|
![]() |
输出 φ 的值,黄金比例(约为 1.618034)
|
![]() |
输出 2 的算术平方根(约为 1.414214)
|
![]() |
输出欧拉常数e(约为 2.718282)
|
输出其输入的正弦
|
输出其输入的余弦
|
输出其输入的正切
|
以弧度输出其输入的反正弦
|
以弧度输出其输入的反余弦
|
以弧度输出其输入的反正切
|
![]() |
以弧度输出其两个输入的反正切。ArcTan2 输出介于 –π 和 π 之间的特定角度
|
![]() |
用于在着色器内部执行自定义代码的节点。在左侧的示例中,节点与线性插值的工作方式类似,在到达 [end] 之前向 [mid] 弯曲
|
![]() |
输
|
白鹭引擎在WebAssembly中的实践
讲师:
Apache Weex:移动研发的进阶之路
讲师:董岩