最近事情比较杂乱学习的内容也比较零散,所以也没怎么拿出来和大家分享。之前一直是代码编写Shader,ShaderGraph出了很久了,一直被我无视了,最近学习了一下ShaderGraph感觉真的让我又有了很多新的想法,在很多效果实现方面真的方便很多。
因为原来就有写Shader的基础 ,学习起来不算太吃力,这里把学习到的内容在这里记录一些,当然不全是我 自己原创的内容,搬过来方便自己和大家查阅。
ShaderGraph也有些要注意的:
1.ShaderGraph只能用于新HDPR(高清渲染管线)和LWRP(轻量级渲染管线)中。
2.ShaderGraph最好还是能掌握一些Shader编写规则,否则难以深入。
3.HDPR和LWRP下的编辑出来的节点和效果也有些差异
4.一些节点需要和一些选项配合才能出效果,比如DepthTexture或是视频的远近截面有关。
5.不同版本的Unity含有的节点和节点的位置也会有的不同
ShaderGraph类型 | 含义 |
---|---|
BPR Graph | 基于物理规律的渲染流程 |
Sub Graph | |
Unlit Graph | 无光线处理的渲染流程 |
节点(Artistic>Adjustment) | 含义 | 说明 |
---|---|---|
Channel Mixer | 混合通道 | 将RGB三个通道进行混合 |
Contrast | 对比度 | 对比度调整 |
Hue | 色调 | 色调调整 Degrees:0~360 Normalized:0~1 |
Invert Colors | 反色 | |
Replace Color | 颜色替换 | 可以选择指定颜色进行替换 |
Saturation | 饱和度 | |
White Balance | 白平衡 | 用于改变色温色调 |
节点(Artistic>Blend) | 含义 | 说明 |
---|---|---|
Blend | 混合 | 有多种混合模式可以选择 |
节点(Artistic>Filter) | ||
---|---|---|
Dither | 混色 | 屏幕空间下的图形处理 |
节点(Artistic>Mask) | 含义 | 说明 |
---|---|---|
Channel Mask | 通道遮罩 | 显示/隐藏各颜色通道 |
Color Mask | 颜色遮罩 | 通过颜色控制遮罩 |
节点(Artistic>Normal) | 含义 | 说明 |
---|---|---|
Normal Blend | 法线混合 | 将两个法线贴图按指定方式混合 |
Normal From Height | 高度法线 | 可以从一张调试图中得到法线 |
Normal Form Texture | 贴图法线 | 可以从一张贴图中生成法线 |
Normal Reconstruct Z | 从生成的贴图中重建他的Z向量 | |
Normal Strength | 法线增强 | 用于调整法线强度 |
Normal Unpack | 法线解压 | 将RGB通道的贴图重建成法线贴图,图片类型不需要再改Normal |
节点(Artistic>Utility) | ||
---|---|---|
Colorspace Conversion | 色彩模型转换 | RGBLinear和HSV之间转换色彩模型 |
节点(Channel) | 含义 | 说明 |
---|---|---|
Combine | 组合 | 将n个数组合并为一个 |
Flip | 取反 | 将输入的值取反 |
Split | 拆分 | 将组中的值拆分 |
Swizzle | 搅拌 | 将一个通道的值输出到另一个通道 |
节点(Input>Basic) | 含义 | 说明 |
---|---|---|
Boolean | 布尔值 | |
Color | 颜色值 | |
Constant | 常量 | |
Integer | 整数值 | |
Slider | 滑动条 | |
Time | 时间值 | |
Vector 1 | 一维向量 | |
Vector 2 | 二维向量 | |
Vector 3 | 三维向量 | |
Vector 4 | 四维向量 |
节点(Input>Geometry) | 含义 | 说明 |
---|---|---|
Bitangent Vector | 双切线向量 | 网格顶点或片段的双切线向量 |
Normal Vector | 法向量 | 网格顶点或片段的法向量 |
Position | 位置 | 网格顶点或片段的位置 |
Screen Position | 屏幕位置 | 当前点在屏幕空间下的位置 |
Tangent Vector | 切线 | 网格顶点或片段的切线 |
UV | UV坐标 | 网格顶点或片段的UV坐标 |
Vertex Color | 顶点颜色 | 网格顶点或片段的顶点颜色 |
View Direction | 视角方向 | 相机到网格顶点或片段的视角方向 |
节点(Input>Gradient) | ||
---|---|---|
Gradient | 渐变 | 设置渐变常量 |
Sample Gradient | 渐变样本 | 时间控制渐变 |
节点(Input>Lighting) | 含义 | 说明 |
---|---|---|
Ambient | 环境 | 取得环境光的设置参数 |
Baked GI | 光照贴图 | 烘焙过后的光照贴图,可以用动态或静态的UV采样光照贴图 |
Reflection Probe | 反射探测器 | 访问物体对应的反射探测器。需要Normal和View Direction 两个输入参数进行彩样。LOD参数可以设置LOD的级别 |
节点(Input>Matrix) | 含义 | 说明 |
---|---|---|
Matrix 2X2 | 二维矩阵 | |
Matrix 3X3 | 三维矩阵 | |
Matrix 4X4 | 四维矩阵 | |
Transformation Matrix | 变换矩阵 |
节点(Input>PBR) | 含义 | 说明 |
---|---|---|
Dielectric Specular | 介电反射 | 个基于物理材质的高光系数,可以通过Material,下拉选择类型 |
Metal Reflectance | 金属反射率 | 返回基于材质的金属反射值 Specular Workflow转出节点为Specular ,Matallic Workflow节点输出为Albedo。 |
节点(Input>Scene) | 含义 | 说明 |
---|---|---|
Camera | 相机参数 | 获得当前摄像机的相关参数 |
Fog | 雾参数 | 获取当前场景中的Fog参数 |
Object | 对像 | 获取物体的位置和缩放 |
Scene Color | 场景颜色 | 获得当前相机的颜色缓冲 |
Scene Depth | 场景深度 | 用来访问当前场景的深度 |
Screen | 屏幕 | 获取当前屏幕的宽高(像素) |
节点(Input>Texture) | 含义 | 说明 |
---|---|---|
Cubemap Asset | 立体贴图 | 定义cubemap常量后连接Sample Cubemap节点,可作为外部属性使用 |
Sample Cubemap | 立方贴图采样 | 根据输入参数View Direction和Normal进行cubemap采样。可以设置LOD作为LOD采样级别 |
Sample Texture 2D | 贴图采样 | 通过此节点配合UV坐标和Sampler State获取贴图中的数据 |
Sample Texture 2D Array | 贴图Array采样 | |
Sample Texture 2D LOD | 贴图LOD采样 | |
Sample Texture 3D | 立方贴图采样 | |
Texel Size | ? | |
Texture 2D Array Asset | 贴图Array资源 | |
Texture 2D Array | 贴图资源 | |
Texture 3D Array | 立方贴图资源 | |
Sampler State | 采样器 | 用Sample Texture节点中的输入结点Sampler |
节点(Master) | 含义 | 说明 |
---|---|---|
PBR | ||
Unlit |
节点(Math>Advancend) | 含义 | 说明 |
---|---|---|
Absolute | 绝对值 | |
Exponential | 指数 | 可选择以e为底或2为底 |
Length | 长度 | 二维: x平方加y平方的和再开方 , **三维:**x平方加y平方加z平方的和再开方 |
Log | 对数 | |
Modulo | 取余 | |
Negate | 取反 | |
Normalize | 归一 化 | |
Posterize | 色调分离 | 将颜色分级 |
Reciprocal | 倒数 | 二的倒数是二分之一,三的倒数是三分之一… |
Reciprocal Square Root | 反平方根 | 平方根的倒数 |
节点(Math>Basic ) | 含义 | 说明 |
---|---|---|
Add | 相加 | |
Divide | 相除 | |
Multiply | 相乘 | |
Power | 次方 | |
Square Root | 开方 | |
Subtract | 相减 |
节点(Math>Derivative) | 含义 | 说明 |
---|---|---|
DDX | 偏导数X坐标 | 基于X求导 |
DDXY | 偏导数XY坐标的和 | 基于XY求导 |
DDY | 偏导数Y坐标 | 基于Y求导 |
节点(Math>Interpolation ) | 含义 | |
---|---|---|
Inverse Lerp | 逆向线性差值 | Out = (T-A)/(B-A) 比如 A:0 B:10 T:5 输出 T就是在0和10之间50%的位置输出0.5 |
Lerp | 线性差值 | *Out = (B-A)T+A 用T来控制倾越接近0越倾向于A,越接近1越倾向于B |
Smoothstep | 平滑差值 | 映射差值,输入值小于Edge1则返回0,大于Edge2则返回1,如图小于0.2的归为0了,大于0.8的归为1了,基体值映射到0~1之间 |
节点(Math>Matrix ) | 含义 | 说明 |
---|---|---|
Matrix Construction | 构造矩阵 | 用于构建一个矩阵 |
Matrix Determinant | 矩阵行列式 | 用于求解行列式 |
Matrix Split | 矩阵拆分 | 将N维矩阵转换为N个行列式 |
Matrix Transpose | 矩阵转置 | 返回传入值的转置 |
节点(Math>Range ) | 含义 | 说明 |
---|---|---|
Clamp | 范围限制 | 返回传入值A,A在min与max之间返回原来值A,小于min返回min,大于max返回max |
Fraction | 取小数 | 返回值的小数部分 |
Maximum | 最大值 | 返回输入值最大的那个 |
Minimum | 最小值 | 返回输入值最小的那个 |
One Minus | 一减 | 一减输入值 |
Random Range | 范围随机值 | 返回一个在min和max之间的伪随机值 |
Remap | 重映射 | 如下图则是将 -1~1 得映射到0~1 |
Saturate | 截取 | 返回输入值到0~1的范围 |
节点(Math>Round ) | 含义 | 说明 |
---|---|---|
Ceiling | 向上取整 | |
Floor | 向下取整 | |
Round | 四舍五入(要大于0.5才算1) | |
Sign | 取符号 | |
Step | 取值 | 输入值X,大于X返回1,小于X返回0 |
Truncate | 截断小数 | 和Floor不同,这个是直接截断 |
节点(Math>Trigonometry ) | 含义 | 说明 |
---|---|---|
Arccosine | 反余弦 | |
Arcsine | 反正弦 | |
Arctangent | 反正切? | |
Arctangent2 | 反正切? | |
Cosine | 余弦 | |
Degrees To Radians | 角度转弧度 | |
Hyperbolic Cosine | 双曲余弦 | |
Hyperbolic Sine | 双曲正弦 | |
Hyperbolic Tangent | 双曲正切 | |
Radians To Degrees | 弧度转角度 | |
Sine | 正弦 | |
Tangent | 正切 |
节点(Math>Vector ) | 含义 | 说明 |
---|---|---|
Cross Product | 叉乘 | 用来获取法向量 |
Distance | 距离 | 获取两个点的距离 |
Dot Product | 点积 | 用来获取投影 |
Fresnel Effect | 菲涅尔效应 | 夹角越小值越接近于0,夹角越大越接近于1,常用于制作外发光 |
Projection | 射影 | 求A在B上的投影 |
Pejection | 反投影 | 求A在B上的反投影 |
Reflection | 反射 | 求进入的向量反射出去的向量 |
Rotate About Axis | 转轴旋转 | 一坐标在某个轴上的旋转 |
Sphere Mask | 球型遮罩 | 三维空间中建立一个球,球以外的输出为1,以内的为0 |
Transform | 变换 | 空间转换 |
节点(Math>Wave ) | 含义 | 说明 |
---|---|---|
Noise Sine Wave | 噪点正弦波 | 返回转入的正弦波,添加振幅,噪点在min和max之间 |
Sawtooth Wave | 锯齿波 | |
Square Wave | 方波 | |
Triangle Wave | 三角波 |
节点(Procedural) | 含义 | 说明 |
---|---|---|
Checkerboard | 棋盘 | 生成原始像棋盘纹理,可调整大小和颜色 |
Gradient Noise | 噪音 | 可以改变大小 |
Simple Shape | 圆型 | |
Voronoi | 泰森多边形法 | 如下的图形,可以改变大小密度 |
Ellipse | 椭圆形 | |
Polygon | 多边型 | |
Rectangle | 矩形 | |
Rounded Rectangle | 圆角四边型 |
节点(Properties) | 含义 | 说明 |
---|---|---|
Property : BaseColor | ||
Property : Metallic | ||
Property : Normal | ||
Property : Wind Density | ||
Property : Wind Movement | ||
Property : Wind Strength |
节点(Sub Graphs) | 含义 | 说明 |
---|---|---|
Sub Graphs |
节点(Utility) | 含义 | 说明 |
---|---|---|
Preview | 预览 | 预览效果 |
All | 所有 | 当输入的所有参数不为0或flash的时候返回真 |
And | 和 | 两个为真的时候返回真 |
Any | 任何 | 任何一个参数为真或0以外时为真 |
Branch | 分岔 | 逻辑转回数字,将真假转加数值 |
Comparison | 比较 | 按条件比较 |
Is Front Face | 是否正面 | 是正面为真 |
Is Infinite | 无限大 | 是无际大返回真 |
Is NaN | 非数字 | 输入不是数字返回真 |
Nand | 为假 | 输入值都为假反加真 |
Not | 取反 | 假为真,真为假 |
Or | 或 | 一个为真,则返回真 |
节点(UV) | 含义 | 说明 |
---|---|---|
Flipbook | 翻页书 | 用于裁切动画帧 |
Polar Coordinates | 极坐标 | |
Radial Shear | 径向剪切 | |
Rotate | 旋转 | |
Spherize | 球面化 | |
Tiling And Offset | 平铺和偏移 | |
Triplanar | 三维映射 | 贴图映射到正面 |
Twirl | 扭曲旋转 | |
最后呢留下全解析的视屏,可以快速过一次,个人觉得挺好的: | ||
Unity3D Shader Graph 全节点解析 |