【unity】ShaderGraph学习笔记

news2024/10/6 18:32:06

【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,弹出面板

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也可以打开面板。

注释

框选注释(GroupSelection)

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

说明注释(Sticky)

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

pbr材质

ShaderGraph节点

输入节点

Float 标量

Vector2 二维向量 (用于UV…)

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

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

Matrix 2x2 二维矩阵

Matrix 3x3 三维矩阵

Matrix 4x4 齐次矩阵

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

类型说明
ModelUNITY_MATRIX_M(模型矩阵)
InverseModelUNITY_MATRIX_I_M (模型逆矩阵)
ViewUNITY_MATRIX_V(视口矩阵)
InverseViewUNITY_MATRIX_I_V(视口逆矩阵)
ProjectionUNITY_MATRIX_P(屏幕矩阵)
InverseProjectionUNITY_MATRIX_I_P(屏幕逆矩阵)
ViewProjectionUNITY_MATRIX_VP(视口屏幕矩阵)
InverseViewProjectionUNITY_MATRIX_I_VP(视口屏幕逆矩阵)

Constant 常数节点

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

Time节点

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

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模型点位置

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 混合两张图片,可调参数和混合模式

Filter 过滤器

  • Dither 添加抖动效果

Mask 遮罩

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

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

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 插值

  • 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 取相反数
  • 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 正弦波

  • Sawtooth Wave 锯齿波

  • Square Wave 方形波

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

Procedural(预制程序的节点)

Noise 噪声

  • Gradient Noise

  • Gradient Noise

  • Voronoi

Shapes 形状

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

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大于等于

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

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

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

UV

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

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

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

  • Rotate 旋转贴图

  • Spherize 球形扭曲

  • Tiling And Offset 缩放平移设置

  • Triplanar

  • Twirl 旋涡扭曲效果

  • Parallax Mapping

  • Parallax Occlusion Mapping

uv遮罩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/791519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【解决方案】医疗行业资产定位管理方案-蓝牙资产定位方案

蓝牙资产定位追踪技术已经开始应用于多种行业的资产、设备管理方面&#xff0c;有不少机构、企业开始尝试使用实时蓝牙定位系统对其各类资产、机器设备、工具、材料、产品等进行精准定位&#xff0c;提高各类资产、设备的管理和使用效率&#xff0c;从而节省运营成本。 医疗行业…

汽配企业建设数字化工厂的步骤是什么

随着信息技术的迅猛发展&#xff0c;汽车行业也面临着数字化转型的迫切需求。汽配企业作为汽车产业链上重要的一环&#xff0c;也需要积极采取措施&#xff0c;建设数字化工厂系统&#xff0c;以适应市场竞争的变化。下面将介绍建设汽配企业数字化工厂的具体步骤。 第一步&…

在niso ii中读写EPCS时出现“Can‘t open flash device”

在niso ii中读写EPCS时出现“Can’t open flash device”&#xff0c;即alt_flash_open_dev(EPCS_FLASH_NAME)函数返回0。 Cant open flash device函数alt_flash_open_dev(EPCS_FLASH_NAME)打开epcs不成功&#xff0c;返回为0&#xff0c;试了几次硬件重新烧入、重启开发板还是…

呕心沥血解决xampp启动mysql异常停止due to a blocked port, missing dependencies问题

Error: MySQL shutdown unexpectedly.<br> This may be due to a blocked port, missing dependencies 这一行就是我问题的开始。 原因是因为&#xff0c;之前一直使用xampp用作本地mysql的启动管理&#xff0c;是个很好用的工具&#xff0c;但是近日想要给一个项目配…

STM32速成笔记—串口IAP

本文涉及到串口通信和Flash知识&#xff0c;对于这部分知识不熟悉的小伙伴可以到博主STM32速成笔记专栏查看。 文章目录 一、串口IAP简介1.1 什么是IAP1.2 STM32下载程序 二、串口IAP有什么作用三、启动流程3.1 正常启动流程3.2 加入IAP后的启动流程 四、必备知识4.1 修改程序运…

日常开发中Git遇到的问题-记录贴

日常开发中Git遇到的问题 前言场景一&#xff1a;clone代码并进行开发完毕后&#xff0c;进行代码合并时要求在新分支下提交代码场景二&#xff1a;远程分支被删除后&#xff0c;本地分支缓存需要更新&#xff0c;防止提交错误 前言 本篇博客只是用来记录平时开发过程之中用gi…

从头开始:数据结构和算法入门(时间复杂度、空间复杂度)

目录 文章目录 前言 1.算法效率 1.1 如何衡量一个算法的好坏 1.2 算法的复杂度 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 2.3常见时间复杂度计算 3.空间复杂度 4.常见复杂度对比 总结 前言 C语言的学习篇已经结束&#xff0c;今天开启新的篇章——数据结构和算…

Hive视图

hive的视图 简介 hive的视图简单理解为逻辑上的表hive只支持逻辑视图&#xff0c;不支持物化视图视图存在的意义 对数据进行局部暴露&#xff08;涉及隐私的数据不暴露&#xff09;简化复杂查询 创建视图&#xff1a; create view if not exists v_1 as select uid,movie f…

国内十大精准的现货黄金价格走势图软件最新排名(综合版)

选择国内现货黄金价格走势图软件时&#xff0c;需要考虑几个因素。首先&#xff0c;软件的稳定性和可靠性至关重要。应选择有良好声誉和长期稳定运行的平台&#xff0c;以确保价格数据的准确性和及时性。其次&#xff0c;要选择功能齐全的软件。较为优秀的软件应该提供多种技术…

C++学习——类和对象(三)

接着我们就继续学习我们C当中的相关的知识。 一&#xff1a;初始化列表 还记得我们之前讲过的构造函数吗&#xff1f;我们在构造函数的函数体里面可以对对象当中的属性进行初始化。但是作为我们的构造函数来说&#xff0c;初始化的方式并不只是在构造函数体当中进行赋值。我们…

Junit4+MultiThreadedTestRunner 并发测试

目录 前言&#xff1a; 具体步骤&#xff1a; 前言&#xff1a; 在进行软件测试时&#xff0c;我们需要确保应用程序在不同的并发情况下仍能正常运行。 最近要对一个类里的方法&#xff0c;进行压力测试。下面讲一下写出的 Junit4 的并发测试代码吧。如果要复用的话&#x…

通达信一看就懂的成交量指标公式_通达信公式

用法说明&#xff1a;黄色为立桩量&#xff0c;绿色长竖条为逃顶提示&#xff0c;蓝色与红箭头为突破&#xff0c;红色为牛&#xff0c;紫色为立桩三天法则成立&#xff0c;笑脸为寻底&#xff0c;棕色与绿箭头为破位&#xff0c;淡红色黑中线涨停&#xff0c;深绿色黑中线跌停…

yolov7裂缝检测

B站视频笔记。 1.首先到Github上找RoboFlow的仓库地址 该教程提供了传统算法比如Resnet、YOLO等&#xff0c;还有包含一些较新的算法。 2.通过Colab打开例程 可以直接通过Colab打开,还支持其他的打开方式&#xff0c;这里提供三种方式。 提示&#xff1a;点击授权即可。 …

dy设备deviceid iid注册分析

清楚缓存&#xff0c;重新打开app, 点击同意按钮&#xff0c;会触发设备注册&#xff1b; 很明显是一个post包&#xff0c;device_register 可以看到请求体加密了 那么 请求体是什么呢&#xff1f; 很老版本思路&#xff1a;都是直接明文注册 较老版本思路&#xff1a;在反编译…

二、SQL-5.DQL-8).案例练习

1、查询年龄为20,21,22,23岁的员工信息 select * from emp where age in(20, 21, 22, 23) and gender 女; 2、查询性别为男&#xff0c;并且年龄在20-40岁&#xff08;含&#xff09;以内的姓名为三个字的员工 select * from emp where gender 男 && age between 2…

如何从任何地方远程解决电脑问题?

​如何远程解决电脑问题&#xff1f; “嗨&#xff01;我有一台Windows 10家用电脑。我外出旅行&#xff0c;但我的家人告诉我我的电脑有一段时间无法正常工作。我该如何远程检查电脑并解决相应的问题&#xff1f;提前谢谢&#xff01;” 您是否正在寻找远程解决电…

重庆市北斗新型智慧城市政府项目

技术栈&#xff1a;使用vue2JavaScriptElementUIvuexaxiosmapboxcesium 项目描述&#xff1a;重庆市北斗新型智慧城市政府项目是基于千寻孪界开发的一款智慧城市项目&#xff0c;包含车辆实时位置定位&#xff0c;智能设备的报警&#xff0c;基础设施的部设等等功能 工作内容&a…

javascript 7种继承-- 寄生式继承分析(5)

文章目录 概要继承的进化史技术名词解释寄生式继承案列分析源代码解析效果图小结 概要 这阵子在整理JS的7种继承方式&#xff0c;发现很多文章跟视频&#xff0c;讲解后都不能让自己理解清晰&#xff0c;索性自己记录一下&#xff0c;希望个位发表需要修改的意见&#xff0c;共…

C++多线程编程(第一章 多线程基本使用)

C 11&#xff1b; C 14; C 17; C 20&#xff1b; 1、为什么要多线程 任务分解 耗时的操作&#xff0c;任务分解&#xff0c;实时响应 数据分解 充分利用多核CPU处理数据 数据流分解 读写分离&#xff0c;解耦合设计 2、相关代码 1、初步&#xff1a; join(),detach() …

【数学建模】时间序列分析

文章目录 1. 条件2. 模型分类3. SPSS处理时间序列 1. 条件 1.使用于具有时间、数值两种要素 2.数据具有周期性可以使用时间序列分解 2. 模型分类 叠加模型【YTSCI】 序列的季节波动变化越来越大&#xff0c;反映变动之间的关系发生变化乘积序列【YTSC*I】 时间序列波动保持恒…