1 常用节点

1.1 基础运算

数学表达式 | 虚幻引擎文档 (unrealengine.com)

一维向量:值/数学定义中的向量/小于0-黑色,大于1-白色(单通道)

二维向量:二维坐标中的点/向量/R&G通道

三维向量:三维坐标中的点/向量/R&G&B通道

四维向量:R&G&B&A(比三维多了一个透明度)

一般向量和更高维向量进行运算,缺少的维度默认用0替代,但一维向量和二/三维向量进行运算,会复制其本身补全剩下两个维度(numpy的广播)

add+ :数学含义/位移/

Subtract- 数学含义/位移/

multiply* 数学含义/缩放/

divide/ 数学含义/缩放/

power^ 数学含义/

sqrt√ 数学含义开根/

Max 同样通道取最大

Min 同样通道取最小

性能消耗+ < - < * < /,运算时候推荐用+和 *

Multiply让灰色部分更亮、Power让灰色部分更暗,二者结合可以增加对比度,可以创建一个RadialGradientExponential 圆形遮罩来试验

1-x 节点 用于取反(颜色范围必须0-1)

Lerp 线性插值 alpha为1输出b,为0输出a

Abs 绝对值 用于对称图像

Ceil 向上取整(借位取整),输出整数 区分灰度 制作阶梯状蒙版

Floor 向下取整(舍位取整),输出整数 区分灰度 制作阶梯状蒙版

Truncate 去掉小数,取整数部分

Frac 去掉整数,取小数部分,图像如下,适合做循环效果

Sign 符号函数 大于0为1 小于0为-1

Clamp 截止到指定范围

Saturate 截止到[0, 1] 比Clamp节省性能

Step(y, x) 当x>y 时输出1,x<y时输出0

深入理解unity中的Step节点(ShaderForge) - 知乎 (zhihu.com)

 

 

fmod 求余 可以用于取周期/延展周期 类似离散信号的缩放 适合做条纹

我在虚幻学数学_UE4美术你有必要了解的数学基础(三) - 知乎 (zhihu.com)

Desaturation 去色 使用时会把颜色往两个方向变化,0不去色1去色

Time 值随时间变化 做动态

1.2 空间变换

  • TransformVector 将向量变换到指定空间,通常用于法线
  • TransformPosition 将位置变换到指定空间
  • Normalize 归一化

1.3 纹理

  • TextureSample纹理采样 Apply View MipBias:对贴图进行mipmap
  • TexCoord 物体UV坐标 连到TextureSample的第一个输入(UVs)
  • TextureObject 纹理对象 连到TextureSample的第二个输入(Tex)
  • Panner:控制纹素移动,输出一个UV坐标。coordinate连uv通道(TexCoord),控制uv通道向某个朝向偏移,time连time,speed连一个二维向量
  • Rotator:控制纹素转动
  • Mask:多维转单维(breakoutfloat函数:拆分多维)
  • Append:单维转多维

1.4 图像运算

sin cos 制作波形

arctan2 用法比较固定,生成扫描图、加载转圈 的效果

arctan2fast为近似版本,性能更好

雷达图生成算法_腾讯新闻 (qq.com)

Dot 点乘 用顶点法线和摄像机向量点乘,可以得到类似菲涅尔的效果,更节省性能ps:所有非金属都有菲涅尔效果

 

 

  • Cross叉乘 可计算物体朝向/法向
  • if 消耗比较大
  • TwoSidedSign 当顶点法线方向为正时输出1,反之输出-1,用于双面材质(植物)纠正背面法线与法线贴图相乘即可

 

 

  • Distance 获取距离 用于制作圆形遮罩(输入一个UV坐标和一个点然后提高对比度)
  • Fresnel 菲涅尔 第一个参数(指数)控制边缘硬度 第二个参数(基础反射部分)控制范围
  • Noise 生成灰度噪声 可以自己选择算法 关卡值越高越细腻
  • VectorNoise 生成彩色噪声(向量) 
  • SphereMask 球形遮罩 如果A参数为世界空间的位置,可以做一个球体保护罩效果
  • BumpOffset 输入高度图,通过像素偏移做视差效果

1.5 深度

  • DepthFade 显示后面物体深度 通常用于求接触面(在混合模式不透明时失效)
  • PixelDepth 像素深度 屏幕上的像素到摄像机的深度
  • SceneDepth 场景深度 物体表面顶点到摄像机的深度
  • 深度范围是0-1,但场景中的距离通常大于1米(100),所以要用除法修正
  • 场景深度减去像素深度,可以模拟海的深度透视效果

1.6 位置输入

  • WorldPosition绝对世界位置 获得物体每一个顶点所处的世界空间位置 用于判断面朝向
  • Object Position 获得物体绝对中心所处的世界空间位置 用于判断面朝向
  • Actor Position 获得Actor坐标轴所处的世界空间位置 用于判断面朝向
  • WorldPosition减去ObjectPosition 可以得到挤出向量,Normalize后用于重映射法线为球体,如图

 

 

  • CameraPosition 镜头(视口框)的世界位置
  • CameraVector 注意是反的(物体到相机的向量)
  • VertexNormalWS 世界空间中的顶点法线方向
  • VertexTangentWS 世界空间中的顶点切线方向
  • PixelNormalWS 世界空间中的片元(像素)法线 常被用于表现颜色
  • SkyAtmosphereLightDirection 太阳光照方向

1.7 像素处理

这部分多用于后处理材质

  • ScreenPosition 屏幕空间UV坐标
  • SceneTexture 屏幕空间采样 比较常用的是获取场景深度和自定义深度
  • 给物体设定自定义深度后,减去场景深度,可以将物体从场景中剔除,附加到后期处理盒子以获取ID贴图,辅助绘画和影视后期常用
  • DDX 求偏导 水平像素的差值 可以用来计算法线
  • DDY 求偏导 垂直像素的差值 可以用来计算法线
  • DistanceFieldGradient
  • DistanceToNearestSurface
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐