【unity】ShaderGraph学习笔记

【unity】ShaderGraph学习笔记

创建ShaderGraph

创建URP的shaderGraph文件

在Project面板里Create→ShaderGraph→URP→这里主要有几个选项

Lit Shader Graph:有光照三维着色器

Unlit Shader Graph:无光照三维着色器

Sprite Custom Lit Shader Graph:自定义光照图片着色器

Sprite Unlit Shader Graph:无光照图片着色器

Sprite Lit Shader Graph:光照图片着色器

Decal Shader Graph:贴花着色器

界面说明

选择LitShaderGraph,命名为Shader Graph Learn,弹出面板

【unity】ShaderGraph学习笔记_第1张图片

Vetex-顶点着色器

  • Position:模型顶点坐标

  • Normal:模型顶点法线向量

  • Tangent:模型顶点切线向量

FragMent-片元着色器

  • Base Color:基础颜色,纹理贴图在该片元上投影的像素颜色

  • Normal(Tangent Space):切线空间下,法线贴图这片元上投影的像素值

  • Metallic:金属度

  • Smoothness:光滑度

  • Emissions:自发光

  • Ambient Occlusion:环境光遮蔽

  • Coat Mask:清漆遮罩

  • Coat Smoothness:清漆光滑度

  • Alpha:透明通道

  • Alpha Clip Threshold:透明裁剪阈值

Shader Graph Learn输入面板

为shader添加变量参数

  • Category:分类

  • Float:浮点变量

  • Vector2:二维向量

  • Vector3: 三维向量

  • Vector4:四维向量

  • Color:颜色

  • Boolean:布尔

  • Gradilent:渐变颜色

  • Texture2D:2D贴图

  • Texture3D:3D贴图

  • Cubemap:Cubemap贴图

  • Virtual Texture:虚拟贴图

  • Matrix2:2阶矩阵

  • Matrix3:3阶矩阵

  • Matrix4:4阶矩阵

  • Sampler State:

  • KeyWord

Graph Inspector-着色器属性面板

Graph settings

  • Precision:着色器精度
    • Single:完整精度
    • Half:一半精度(性能会提高)
  • Material:选择着色器模式(和创建的时候一样)
  • Allow Material override:允许覆盖着色器
  • Workflow Mode:工作流模式
    • Metallic:金属
    • Specular:高光
  • Surface Type:表面类型
    • Transparent:透明
    • Opaque:不透明
  • Render Face:渲染面
    • Front:正面渲染
    • Back:背面渲染
    • Both:双面渲染
  • Depth Write:是否写入深度
  • Depth Test:深度测试
    • Never:不测试一直显示
    • Less:小于当前深度的显示
    • Equal:等于当前深度的显示
    • L Equal:小于等于
    • Greater:大于
    • Not Equal:不等于
    • G Equal:大于等于
    • Always:始终显示
  • Alpha Clipping: 透明通道裁剪
  • Cast Shadows:产生阴影
  • Receive Shadows:接受阴影
  • Fragment Normal Space:片元法线空间
    • Tangent:切线空间
    • Object:模型空间
    • World:世界空间
  • Clear Cost :清漆效果
  • Custom Editor GUI:自制编辑GUI

Node Settings

选择添加变量参数面板里的参数可以在这里进行设置

  • Name 参数名称
  • Reference 脚本修改参数名称
  • Default 默认值
  • Mode 模式
  • precosion 精度
  • Exposed 是否在面板里显示(打勾会在材质面板里显示)

功能工具

子图(subgraph)

subgraph可以保存通用的蓝图,并可以在其他的shaderGraph调用。

选中需要保存的蓝图,右击鼠标选择Convert To→Sub-gragh,弹出文件保存栏,命名保存。

使用的时候,在新的ShaderGraph直接拖入subgraph桥接就可以使用。单独点开subgraph也可以打开面板。

【unity】ShaderGraph学习笔记_第2张图片

注释

框选注释(GroupSelection)

【unity】ShaderGraph学习笔记_第3张图片

选中需要注释的蓝图,右击选择GroupSelection

说明注释(Sticky)

【unity】ShaderGraph学习笔记_第4张图片

右击空白取余,选择Create Sticky Note

pbr材质

【unity】ShaderGraph学习笔记_第5张图片

ShaderGraph节点

输入节点

【unity】ShaderGraph学习笔记_第6张图片

Float 标量

Vector2 二维向量 (用于UV…)

Vector3 三维向量 (用于位置,缩放,坐标,旋转等)

Vector4 四维向量 (用于颜色,四元数等)

Matrix 2x2 二维矩阵

Matrix 3x3 三维矩阵

Matrix 4x4 齐次矩阵

Transformation Matrix 变换矩阵(矩阵预设)

类型 说明
Model UNITY_MATRIX_M(模型矩阵)
InverseModel UNITY_MATRIX_I_M (模型逆矩阵)
View UNITY_MATRIX_V(视口矩阵)
InverseView UNITY_MATRIX_I_V(视口逆矩阵)
Projection UNITY_MATRIX_P(屏幕矩阵)
InverseProjection UNITY_MATRIX_I_P(屏幕逆矩阵)
ViewProjection UNITY_MATRIX_VP(视口屏幕矩阵)
InverseViewProjection UNITY_MATRIX_I_VP(视口屏幕逆矩阵)

Constant 常数节点

【unity】ShaderGraph学习笔记_第7张图片

选项 说明
PI 圆周率=3.14159265258979
TAU 2倍圆周率=6.28318530
PHI 黄金分割点=1.618034
E 自然常数=2.718282
SQRT2 2的平方根=1.414214

Time节点

【unity】ShaderGraph学习笔记_第8张图片

基础数据输入类节点,用来提供随时间变化的动态值,主要实现动态效果

Time: 时间值 float Time_Time=_Time.y (随时间增大的浮点值)

Sine Time:时间正弦值float Time_SineTime=_SinTime.w(正弦时间,随时间在(-1,1)之间变化)

Cosine Time: 时间余弦值 float Time_CosineTime=_CosTime.w(余弦时间)

Delta Time :当前帧时间 float Time_DeltaTime=Unity_DeltaTime.x (从前一帧到后一帧的时间)

Smooth Delta:平滑后的当前帧时间float Time_SmoothDelta=unity_DeltaTime.z

Preview 预览

创建预览节点可以显示shader效果

Position模型点位置

【unity】ShaderGraph学习笔记_第9张图片

Basic 基础

  • Boolean 布尔值
  • Color 颜色
  • Integer 整数
  • Slider 滑块

Geometry 几何

  • Bitangent Vector 副切线向量
  • Normal Vector 顶点法线向量
  • Tangent Vector 切线向量
  • Screen Position 屏幕上的顶点位置
  • Vertex Color 顶点颜色
  • UV mesh中获取的UV
  • View Direction 视口方向

Gradient 渐变

  • Gradient 渐变贴图
  • Sample Gradient 与渐变向量 变化程度可控

Texture 图片

  • Sample Cubemap 立方体贴图采样
  • Sample Reflected Cubemap
  • Sample Texture 2D 2D贴图采样
  • Sample Texture 2D Array 等同于Sample Texture 2D,区别在于可输入一个index
  • Sample Texture 2D LOD
  • Sample Texture 3D 3D贴图采样
  • Sample Virtual Texture
  • Cubemap – 立方贴图 用Sample Cubemap采样
  • Texture 2D – 2D贴图 用普通采样器采样
  • Texture 2D Array – 贴图数据组 用对应的采样器采样(可用于取某一组数据中的一个)
  • Texture 3D – 3D贴图 用3D采样器采样
  • Sampler State – 帮助设置采样器(线性过滤模式、拓展模式)
  • Texel Size – 分辨率
  • Sampler State 采样状态,连接Sample Texture节点的sampler输入,可设置filter(linear,point,trilinear)wrap(repeat,clamp,mirror,mirror once)

Light 灯光

  • Ambient – 环境光
  • Baked GI – 烘焙的全局光照
  • Reflection Probe – 反射探针
  • Dielectric Specular – 预先定义的材质(生锈金属、水、冰、玻璃)
  • Metal Reflectance – 预先定义的金属度系数(PBR上设置为Metallic)

Scene 场景

  • Camera – 相机的 位置、方向、透视视图、深度、宽度、高度、近面,远面

    节点 说明
    Position 位置
    Direction 方向
    Orthographic 透视视图
    Near Plane 视锥近面
    Far plane 视锥远面
    Z Buffer Sign 深度图
    Width 宽度
    High 高度
  • Fog – 雾

  • Object – 对象本身(世界空间下的位置和缩放)

  • Scene Color – 编辑器中设置的值

  • Scene Depth – 编辑器中设置的值

  • Screen – 屏幕宽高

Artistic(美术)

Adjustment调整

  • Channel Mixer 混合颜色通道
  • Contrast 设置对比度
  • Hue 设置色调 range需要选normalized
  • Invert Colors 反转颜色
  • Replace Color 设置两个颜色通道互换,可调参数
  • Saturation 设置饱和度
  • White Balance 白平衡(调冷暖色调)
  • Blend 混合两张图片,可调参数和混合模式

    【unity】ShaderGraph学习笔记_第10张图片

Filter 过滤器

  • Dither 添加抖动效果

Mask 遮罩

  • Channel Mask 可设置RGBA四个通道的遮罩,选中后只显示被选中的通道

  • Color Mask 通过Color Tint 屏蔽选中的颜色,可设置Range和fuzziness(模糊度,用来颜色过渡)

    【unity】ShaderGraph学习笔记_第11张图片

Normal 法线

  • Normal Blend 混合法线贴图

  • Normal From Height 通过灰度图生成法线贴图

  • Normal From Texture通过其他贴图生成法线贴图

  • Normal Reconstruct Z 通过x,y值重构有问题的法线值

  • Normal Strength 修改法线强度

  • Normal Unpack 特殊原因下法线贴图不能把type设置为normal会使用

Utility 实用功能

  • Colorspace Conversion 颜色空间转换,用来把颜色分开,一般配合split使用

Channel (通道)

  • Combine 把数个通道合并在一起
  • Flip 剔除选择的颜色通道显示,翻转颜色
  • Split 把输入分成数个独立通道输出
  • Swizzle 改变颜色通道输出,例如把绿色通道变成透明通道

Math(数学)

Basic 基础

  • Multiply:乘法

  • Divide:除

  • Add:加

  • Subtract:减

  • Power:平方

  • Square Root:开平方

  • Posterize :取余

Advanced

  • Absolute :绝对值

  • Exponential :指数

  • Log:对数

  • Negate :对输入取反向,例如1变-1,0变1

  • Normalize :单位向量

  • Length: 向量的模长

  • Reciprocal 倒数,类似除法

  • Reciprocal Square Root 倒数平方根

Derivative 导数

  • DDX 对x求导,一般输入position节点
  • DDXY 对xy求导
  • DDY 对y求导

Interpolation 插值

【unity】ShaderGraph学习笔记_第12张图片

  • Inverse Lerp 逆线性插值
  • Lerp 插值
  • Smoothstep 类似step节点,但有两个edge输入

Matrix 矩阵

  • Matrix Construction 构造矩阵
  • Matrix Determinant 行列式计算
  • Matrix Split 矩阵分离
  • Matrix Transpose 转置矩阵

Range 范围

  • Clamp 把输入值截取在一个区间(min<=x<=max)
  • Fraction 输出小数部分
  • Maximum 输出多个数中的最大值
  • Minimum 输出多个数中的最小值
  • One Minus 取相反数
    【unity】ShaderGraph学习笔记_第13张图片
  • Random Range 生成一个在最大值、最小值之间的随机浮点数
  • Remap 将输入等比例的从in区间映射到out区间
  • Saturate 将输入截取到0-1之间
  • Round 取整
  • Ceiling 向上取整
  • Floor 向下取整
  • Round 四舍五入
  • Sign 输入大于0输出1,输入小于0输出-1
  • Step 设定边界值,输入的值大于等于边界值,返回1,否则返回0

Trigonometry 三角函数

  • Trigonometry 三角函数
  • Arccosine 反正弦
  • Arcsine 反余弦
  • Arctangent 反正切
  • Cosine 余弦
  • Degrees To Radians 角度转化为弧度
  • Hyperbolic Cosine 双曲函数
  • Hyperbolic Sine
  • Hyperbolic Tangent
  • Radians To Degrees 弧度转化为角度
  • Sine 正弦
  • Tangent 正切

Vector 向量

  • Cross Product 叉积

  • Distance 向量距离

  • Dot Product 点积

  • Fresnel Effect 菲涅尔效果

  • Projection 获得向量A在向量B上的投影

  • Reflection 通过入射光线获得反射向量

  • Rejection

  • Rotate About Axis 绕设定的轴旋转

  • Sphere Mask 以半径为范围的球形遮罩

  • Transform 物体、观察、切线、世界坐标等的空间转换

Wave 波

  • Noise Sine Wave 正弦波

    【unity】ShaderGraph学习笔记_第14张图片

  • Sawtooth Wave 锯齿波

    【unity】ShaderGraph学习笔记_第15张图片

  • Square Wave 方形波

    【unity】ShaderGraph学习笔记_第16张图片

  • Triangle Wave 三角形波,先从0缓慢上升到1,然后立即下降到0(直角三角形)

    【unity】ShaderGraph学习笔记_第17张图片

Procedural(预制程序的节点)

Noise 噪声

  • Gradient Noise

  • Gradient Noise

  • Voronoi

    【unity】ShaderGraph学习笔记_第18张图片

Shapes 形状

  • Ellipse 圆
  • Polygon 多边形
  • Rectangle 四边形
  • Rounded Polygon 圆角多边形
  • Rounded Rectangle 圆角四边形
  • Checkerboard 棋盘图案

【unity】ShaderGraph学习笔记_第19张图片

Utility 功能节点

  • All 输入值所有分量都不为零,则返回true

  • Any 输入值任一分量不为零,则返回true

  • And 输入A和B都为true,则返回true。(与节点)

  • Nand 输入A和B都为true,则返回false。(非与节点)

  • Or 输入A或B有一个为true,则返回true。(或节点)

  • Not 返回输入的相反值。即输入为true,输出false;输入为false,输出为true。(非节点)

  • Branch 输入值为True时,输出等于输入True的内容;输入值为False时,输出等于输入False的内容;(分支节点)

  • Comparison 比较两个节点

    内容 说明
    Equal 等于
    Not Equal 不等于
    Less 小于
    Less Or Equal 小于等于
    Greater 大于
    Greater Or Equal 大于等于

    【unity】ShaderGraph学习笔记_第20张图片

  • Is Infinite 若输入值为无限值,则返回true

  • Is NaN 如果输入的不是数字,则返回 true。 (NaN:Not a Number)

  • Is Front Face 是合法数字或者是正面的,则返回true。

UV

  • Flipbook 用于帧动画,out连接 sample Texture 2D 的inUV

    【unity】ShaderGraph学习笔记_第21张图片

    【unity】ShaderGraph学习笔记_第22张图片

  • Polar Coordinates 极坐标,像是可以把图片映射到球面

    【unity】ShaderGraph学习笔记_第23张图片

  • Radial Shear 类似于变形的鱼眼扭曲

    【unity】ShaderGraph学习笔记_第24张图片

  • Rotate 旋转贴图

    【unity】ShaderGraph学习笔记_第25张图片

  • Spherize 球形扭曲

    【unity】ShaderGraph学习笔记_第26张图片

  • Tiling And Offset 缩放平移设置

    【unity】ShaderGraph学习笔记_第27张图片

  • Triplanar

    【unity】ShaderGraph学习笔记_第28张图片

  • Twirl 旋涡扭曲效果

    【unity】ShaderGraph学习笔记_第29张图片

  • Parallax Mapping

    【unity】ShaderGraph学习笔记_第30张图片

  • Parallax Occlusion Mapping

    【unity】ShaderGraph学习笔记_第31张图片

uv遮罩

【unity】ShaderGraph学习笔记_第32张图片

你可能感兴趣的:(Unity,unity,学习,笔记)