# 【ShaderForge节点】
# Arithmetic(计算)
# Abs
输出其输入的绝对值,本质上让负值变为正值。
# Add
(加法) 输出 [A] + [B] 之和。
# Blend
使用指定方法混合 [A] 和 [B]。
# Blend Over
# Ceil
(向上取整)输出时将其输入向上舍入为最近整数。
# Clamp
(限制值的范围)输出其主输入的值,不小于 [Min] 且不大于 [Max]。
# Clamp 0-1
输出其输入值,不小于 0 且不大于 1。
# Clamp (Simple)
(限制值的范围)跟 Clamp(范围)一样,但为最小值和最大值使用数字输入,而不使用节点接口。
# Divide
(除法) 输出[A] / [B] 之商。
# Exp
选定 Exp(指数)时:输出 e 到其输入的幂。 选定 Exp 2(指数 2)时:输出 2 到其输入的幂。
# Floor
(向下取整)输出时将其输入向下舍入为最近整数。
# Fmod
(取模)输出 [A] 除以 [B] 的余数。
# Frac
(取小数)输出其输入的小数部分。它实质上移除整数部分,仅保留小数部分。如果输入为 4.32,则会输出 0.32。此节点在与 Time(时间)节点一起使用时非常有用,会随时间变化带来锯齿波。
# HSV to RGB
# Hue
# if
[A] 大于 [B] 时,输出 [A>B] 输入。 [A] 等于 [B] 时,输出 [A=B] 输入。 [A] 小于 [B] 时,输出 [A<B] 输入。
# Inverse Lerp
# Inverse Lerp (Simple)
# Lerp
(线性插值)用于混合两个值或颜色。 如果 [T] 为 0,则将输出 A。 如果 [T] 为 0.5,则将输入 [A] 和 [B] 的分半混合。 如果 [T] 为1,则将输出 B。 如果 [T] 为两者间的任一值,则将输入两者的线性混合。
# Lerp(Simple)
与 Lerp(线性插值)一样,但为 [A] 和 [B] 使用数字输入,而不使用节点接口。
# Log
(对数)输出其输入的对数。您可以在下拉菜单中切换对数底。
# Max
(最大值)输出 [A] 和 [B] 的最大值。
# Min
(最小值)输出 [A] 和 [B] 的最小值。
# Multiply
(乘法)输出 [A] * [B] 之积,PS里的正片叠底。
# Multiply Matrix
# Negate
(取反)输出其主输入乘以 -1。实质上让正值变负,让负值变正。
# Noise
(噪波)根据两分量输入(例如 UV 坐标)生成伪随机点。
# One Minus
(1减)输出 1 减去其输入。与颜色输入一起使用时,将反转颜色。
# Posterize
(色调分离)基于经过 [Steps] 的值对值进行四舍五入取整。[Steps] 值为 5 时将在 0 到 1 的范围内创建 5 段。
# Power
(乘方)输出 [Val] ^ [Exp] 之幂。
# Reciprocal
# Remap
将值从一个范围重映射到另一个范围。 与 Remap (Simple)(重映射(简单))一样,但使用输入而不是数值常数。
# Remap (Simple)
将值从一个范围重映射到另一个范围。 例如,如果节点期望 -1 到 1 的值,但您想要它输出 2 到 5 的值,那么您可以在第一行键入-1 和 1,在第二行键入 2 和 5。
# RGB to HSV
# Round
输出时将其输入四舍五入为最近整数。
# Sign
输出其输入的符号。 值大于 0 时输出 1。 值等于 0 时输出 0。 值小于 0 时输出 -1。
# Smoothstep
# Sqrt
输出其输入的平方根。
# Step (A<=B)
(比较A<=B) 如果 [A] 小于或等于 [B],则输出 1,否则输出 0。
# Subtract
(减法)输出 [A] - [B] 之差。
# Trunc
(取整)输出时将其输入向零四舍五入到最近整数。它实质上去掉小数,留下整数。
# Constant Vectors(标量或者矢量)
# Value
数字值,也可称为“Vector 1”(向量 1)。 还提供属性版本。值可以与 Append(附加)节点一起用于创建拥有多个分量的向量。 值还可以与向量/颜色相乘。 例如:向量 (3,1,0) 乘以 0.5 会输出向量 (1.5,0.5,0)。
# Vector 2
具有两个分量/值的向量。 通常与 UV 坐标一起使用。将 Vector 2(向量 2) 添加到 UV 坐标会转换 UV 坐标。 将 UV 坐标与 Vector 2(向量 2)相乘会缩放 UV。
# Vector 3
具有三个分量/值的向量。通常用作颜色、位置或方向。
# Vector 4
具有四个分量/值的向量。 通常用作具有 Alpha 通道的颜色,或用作在第四个通道中有一些额外数据的位置。 检视器中有两个参数可供曝光。 Color(颜色)和 Vector 4(向量 4)参数
# Matrix 4x4
# Properties
# Color
具有四个分量/值的向量,与 Vector 4(向量 4)一样,但在材质检视器中作为取色器曝光。
# Cubemap
包含对立方体的引用,并将使用特定 MIP 级别在特定方向对其进行采样(如果已连接)。输出 [RGB] 以及单独的通道。 常用于天空盒,以及环境反射。
# Matrix 4x4(P)
# Slider
让您能够轻松地在最小值和最大值之间调整某个值。也向检视器曝光。
# Switch
布尔值开关
# Texture 2D
包含对纹理的引用,并将使用特定 MIP 级别在特定 UV 坐标上对纹理进行采样(如果已连接)。 如果 [Tex] 输入由 Texture Asset(纹理资源)节点连接,则它将不再是检视器中的参数。 输出 [RGB] 以及单独的通道
# Texture Asset
包含对纹理的引用。 用于对单个纹理进行多次采样 – 仅可连接到 Texture 2D(2D 纹理)节点的 [Tex] 输入。 这也将在材质的检视器中反映出来,因此用户只需要分配一个纹理。
# Toggle
# Value(P)
数字值。与 Value(值)一样,但在材质检视器中曝光。
# Vector 4(P)
具有四个分量/值的向量,与 Vector 4(向量 4)一样,但在材质检视器中作为 4 个单独的 X、Y、Z 和 W 值曝光。
# Vector Operations(矢量的操作)
# Append
从多个输入值/向量输出单个向量。 例如,如果 [A] 是向量 2,[B] 是 Value (Vector 1)(值(向量 1)),则节点将输出 Vector 3(向量 3),其中 [A] 在红色和绿色通道中,而 [B] 在蓝色通道中。
# Channel Blend
(通道混合)输出遮罩的每个分量乘以对应颜色输入后的和。 对于三平面混合十分有用。
# Component Mask
分量遮罩可用于重新排序或提取向量的通道。
# Cross Product
(叉积)输出 [A] 和 [B] 的叉积。它实质上输出垂直于两个输入向量的向量。
# Desaturate
(去色) 输出输入 [Col] 的去色版本。 [Des] 确定去色程度。 值为 1 表示完全去色,值为 0.5 表示半去色,值为 0 表示不去色。
# DDX
# DDXY
# DDY
# Distance
输出两个输入点 [A] 和 [B] 之间的距离。
# Dot Product
输出 [A] 和 [B] 之间的点积。 对于两个归一化的向量而言,它实质上输出两个向量指向之间的投影长度。 如果它们指向相同方向,则输出 1。 如果它们互相垂直,则输出 0。 如果它们指向相反方向,则输出 -1。
下拉选择:
- 标准:常规点积。
- 正数:让所有负值为 0。
- 负数:让所有正值为 0。
- 绝对值:让所有负值为正。
- 归一化:在 0 到 1(而不是 -1 到 1)的范围内输出。
下图显示使用两个归一化向量时不同模式的行为。 在 X 轴上可以得到其夹角,在 Y 轴上可以得到输出值:
# Length
(长度)输出其输入向量的长度/幅度。
# Normalize
(归一化)输出输入向量的归一化版本。实质上将向量长度设置为 1,并保持相同方向。
# Normal Blend
(法线混合)合并两个法线方向,其中基础法线被细节法线扰乱。
# Reflect
(反射)输出入射向量 [I] 的反射向量,就像在具有法线 [N] 的表面上反射/反弹一样。
# Transform
将向量从一个空间转换到另一个空间。 您可以在世界/本地/切线/视图之间切换。 内置向量在世界空间中。 法线输入的方向在切线空间中。
# Transpose
# Projection & Rejection
(Vector Projection 向量投影)输出向量 [A] 到向量 [B] 的投影。
(Vector Rejection 向量拒识)输出从向量 [B] 拒识的向量 [A]。
# UV Operations
# Panner
(平移器)输出输入 [UV] 坐标,按 [Dist] 距离,以 U 参数和 V 参数指定的方向/速度进行平移/偏移。
# Parallax
(视差)输出输入 [UV] 坐标,具有从 [Hei] 输入派生的视差偏移, 深度为 [Dep],引用高度为 [Ref]。 [Ref] 高度为 0 表示其视差效果为高度贴图看似从网格中突出。 [Ref] 高度为 1 表示其视差效果为高度贴图看似向下进入网格中。
# Rotator
(旋转器) 输出输入 [UV] 坐标,绕轴心点 [Piv] 按 [Ang] 弧度旋转。 如果 [Ang] 未连接或连接到时间节点,[Spd] 将控制旋转速度。
# UV Tile
# Geometry Data
# Bitangent Dir
(双切线方向)在世界空间中输出网格双切线的方向。
# Depth
(深度)这是摄像头近平面到对象的距离。
# Face Sign
# Fresnel
(菲涅尔) 输出表面法线和视图方向之间的点积。 如果想要使用自定义法线,则会使用 [Nrm]。 默认使用扰乱法线。 [Exp] 更改输出的指数。 值越高,菲涅尔越薄
# Normal Dir
在世界空间中输出网格法线的方向。 Perturbed(扰乱)复选框使其在应用 Main(主要)节点的“Normal”(法线)输入后使用法线,例如法线贴图。
# Object Position
(对象位置)输出对象轴心点的世界位置。
# Object Scale
# Screen Position
输出网格当前部分的屏幕位置,可在屏幕空间贴图时用作 UV 坐标。 在下拉框中,“Normalized”(归一化)会将 {0,0} 放在屏幕中心,将 {1,1} 放在右上方。 “Tiled”(平铺)也会将 {0,0} 放在中心,但将根据纵横比在 X 轴上缩放。
# Tangent Dir
(切线方向)在世界空间中输出网格切线的方向。
# UV Coordinates
(UV 坐标) 输出几何图形该部分的指定 UV 坐标。 下拉选择可让您选择 UV 通道 0 或 UV 通道 1。 请注意,光照贴图网格为其光照贴图 UV 使用 UV1。
# Vertex Color
(顶点颜色)输出顶点颜色。 如果您在顶点颜色中烘焙了环境光遮蔽,或要使用喷涂颜色为网格染色,或要将顶点颜色用于其他对象,那么这就是您需要的节点。
# View Dir
(视图方向)在世界空间中输出从几何图形当前部分到摄像机的方向。
# View Refl Dir
(视图反射)输出视图的方向,就像根据表面法线反弹那样。 这可用作完美反射的立方体贴图的输入。
# World Position
(世界位置)在世界空间中输出网格当前部分的位置。
# Lighting
# Ambient Light
(环境光)输出要在其中渲染着色器的场景的环境光。
# Half Direction
输出折半方向。 这是指向视图和光线向量中间的方向。 通常在 blinn-phong 镜面反射模型中使用。
# Light Attenuation
(光线衰减)输出光线衰减。此节点同时包含光线衰减和阴影。
# Light Color
输入当前要渲染的光线的颜色。
# Light Direction
(光线方向)输出当前要渲染的光线的方向。
# Light Position
(光线位置)输出当前要渲染的光线的位置。 [Pnt] 如果当前要渲染的光线是点光线,则输出 1,否则输出 0。
# External Data
# Pixel Size
# Projection Parameters
输出四个投影参数:
- [Sign] 为 -1,如果当前使用倒装投影矩阵渲染,否则为 1。
- [Near] 是当前摄像机的近平面距离。
- [Far] 是当前摄像机的远平面距离。
- [1/Far] 是远平面距离的倒数。
# Screen Parameters
输出四个屏幕参数:
- [pxW] 是以像素为单位的屏幕宽度。
- [pxH] 是以像素为单位的屏幕高度。
- [1+1/W] 是 1 加像素宽度的倒数。
- [1+1/H] 是 1 加像素高度的倒数。
# Time
以不同速率输出时间:
- [t/20] 以 1/20 倍速率输出时间。
- [t] 输出当前时间。
- [t*2] 以 2 倍速率输出时间。
- [t*3] 以 3 倍速率输出时间。
# View Position
(视图位置)输出视图/摄像机的当前位置。 注意:使用透视摄像机时,视图位置在屏幕“背后”。
# Scene Data
# Depth Blend
它根据距离输入输出 0 和 1 之间的值,具体取决于此像素距背景几何图形多近。 对于水边缘的淡出或光轴相交几何图形的软化很有用。 注意:您需要在混合设置中关闭深度缓冲编写,并且需要使用渲染深度纹理的摄像机。
# Fog Color
# Scene Color
包含渲染此对象前的场景渲染的纹理。 默认其 UV 位于屏幕空间中,从而让每个像素都代表对象背后的颜色。 这可用于更加高级的混合/透明度效果,或作为 UV 改变时形成折射的其中一种手动方法。
# Scene Depth
摄像机到当前像素背后的场景的深度。 您需要在混合设置中关闭深度缓冲编写, 并且需要使用渲染深度纹理的摄像机。
以下代码设置摄像机渲染深度纹理。
[ExecuteInEditMode()]
public class CameraScript : MonoBehaviour
{
void Start()
{
Camera.main.depthTextureMode = DepthTextureMode.Depth;
}
}
# Math Constants
# e
(欧拉常数)输出欧拉常数e(约为 2.718282)。
# Phi
(黄金比例)输出 φ 的值,黄金比例(约为 1.618034)。
# Pi
输出 π 的值,圆的周长与直径的比值(约为 3.141593)。
# Root 2
输出 2 的算术平方根(约为 1.414214)。
# Tau (2 Pi)
输出 τ 的值,圆的周长与半径的比值(约为 6.283185)。
# Trigonometry(三角函数)
# ArcCos
(反余弦)以弧度输出其输入的反余弦。
# ArcSin
(反正弦)以弧度输出其输入的反正弦。
# ArcTan
(反正切)以弧度输出其输入的反正切。
# ArcTan2
(双变量反正切)以弧度输出其两个输入的反正切。 ArcTan2 输出介于 –π 和 π 之间的特定角度。
# Cos
(余弦)
# Sin
(正弦)
# Tan
(正切)
# Code
用于在着色器内部执行自定义代码的节点。 在右侧的示例中,节点与线性插值的工作方式类似,在到达 [end] 之前向 [mid] 弯曲。
# Utility
# Relay
(中继)输出其输入,对于组织节点连接十分有用。