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

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遮罩

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flutter 调试工具篇 | 壹 - 使用 Flutter Inspector 分析界面

theme: cyanosis 1. 前言 很多朋友可能在布局过程中、或者组件使用过程中&#xff0c;会遇到诸如颜色、尺寸、约束、定位等问题&#xff0c;可能会让你抓耳挠腮。俗话说&#xff0c;磨刀不误砍柴工&#xff0c;会使用工具是非常重要的&#xff0c;其实 Flutter 提供了强大的调试…

Kafka入门到起飞系列 - 副本机制,什么是副本因子呢?

我们一直在讲一个主题会有多个分区&#xff0c;这多个分区可以分布在一台服务器上&#xff0c;也可以分布在多台服务器上&#xff0c;还可以增加分区&#xff08;Kafka目前只支持分区&#xff09;&#xff0c;这是Kafka提供的一种横向扩展的手段 比如我们创建了一个主题&#x…

机器学习:异常检测

问题定义 anomaly&#xff0c;outlier&#xff0c; novelty&#xff0c; exceptions 不同的方法使用不同的名词定义这类问题。 应用 二分类 假如只有正常的数据&#xff0c;而异常的数据的范围非常广的话&#xff08;无法穷举&#xff09;&#xff0c;二分类这些不好做。另外就…

MySQL数据库配置及创建用户和授权

注意&#xff1a; 都是基于MySQL8.0以上版本 1、检查是否安装过sql [rootlocalhost ~]# rpm -[qa](https://so.csdn.net/so/search?qqa&spm1001.2101.3001.7020) | grep mysql[rootlocalhost ~]# rpm -qa | grep [mariadb](https://so.csdn.net/so/search?qmariadb&…

左值引用与右值引用的区别?右值引用的意义?

左值引用与右值引用的区别&#xff1f;右值引用的意义&#xff1f; 1 区别1.1 功能差异1.2 左值引用1.3 右值引用1.3.1 实现移动语义1.3.2 实现完美转发 2 引用的作用3 区分左值和右值3.1 左值3.2 右值 1 区别 左值引用是对左值的引用&#xff1b;右值引用是对右值的引用。 &…

04 http连接处理(上)

基础知识&#xff1a;epoll、http报文格式、状态码和有限状态机 代码&#xff1a;对服务端处理http请求的全部流程进行简要介绍&#xff0c;然后结合代码对http类及请求接收进行详细分析。 epoll epoll_create函数 #include <sys/epoll.h> int epoll_create(int size)…

回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-BiLSTM时间卷积…

CleanMyMac X4.14.1中文版如何清理 Mac系统?CleanMyMac 真的能断网激活吗?

CleanMyMac X4.14.1中文版如何清理 Mac系统&#xff1f;Mac系统在使用过程中都会产生大量系统垃圾&#xff0c;如不需要的系统语言安装包&#xff0c;视频网站缓存文件&#xff0c;mac软件卸载残留的注册表等。 随着时间推移&#xff0c;mac系统垃圾就会越来越多&#xff0c;电…

美团小图币代挂教程

登陆美团官网获取对应的cookie 美团官网&#xff0c;点击右上角登陆对应账号。登陆成功后使用f12来获取 cookie 此时如果没有任何数据&#xff0c;点击网页刷新。找到如下的网络请求 赋值cookie项的全部内容&#xff0c;此时已经获取到对应账号的cookie 使用cookie登陆代挂…

Web博客项目及jwt的学习

这几天完善了发布博客&#xff0c;完成了收藏博客的功能 博客项目 一共有三种身份&#xff1a; 访客&#xff08;未登录&#xff09;&#xff0c;用户&#xff0c;管理员。 其中管理员拥有的功能最多&#xff0c;其次是用户&#xff0c;然后是访客。 从功能上看&#xff1a…

一文3000字从0到1使用Selenium进行自动化测试

对于很多刚入门的测试新手来说&#xff0c;大家都将自动化测试作为自己职业发展的一个主要阶段。可是&#xff0c;在成为一名合格的自动化测试工程师之前&#xff0c;我们不仅要掌握相应的理论知识&#xff0c;还要进行大量的实践&#xff0c;积累足够的经验&#xff0c;以便快…

7.7 SpringBoot实战 管理员借阅审核列表 --分页和枚举的使用

文章目录 前言一、需求二、定义接口 BookAdminController三、核心实现 BookBorrowService新建 BookBorrowService 接口定义如下&#xff1a;新建 BookBorrowServiceImpl 类&#xff0c;核心实现逻辑&#xff1a;新建 BookBorrowBO 四、图书借阅状态枚举 BookBorrowStatusEnum五…

华为数通HCIA-数通网络基础

基础概念 通信&#xff1a;两个实体之间进行信息交流 数据通信&#xff1a;网络设备之间进行的通信 计算机网络&#xff1a;实现网络设备之间进行数据通信的媒介 园区网络&#xff08;企业网络&#xff09;/私网/内网&#xff1a;用于实现园区内部互通&#xff0c;并且需要部…

better scoll的使用以及注意事项以及左联右

下载better scoll的核心 在你要使用的页面引入 在data里面定义一个对象 然后在createad里面放一个nexttick异步操作。 上面是获取这个left-box节点是父节点 记住里面只能有一个子节点如果循环了 就要再包一个div就是一个子节点 左联右 首先也要获取 右边的 父节点 然后配…

(树) 剑指 Offer 28. 对称的二叉树 ——【Leetcode每日一题】

❓ 剑指 Offer 28. 对称的二叉树 难度&#xff1a;简单 请实现一个函数&#xff0c;用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样&#xff0c;那么它是对称的。 例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ \2 2/ \ / \3 4 4 3但是下面这个…

了解Unity编辑器之组件篇Layout(八)

Layout&#xff1a;用于管理和控制UI元素的排列和自动调整一、Aspect Ratio Fitter&#xff1a;用于根据宽高比自动调整UI元素的大小 Aspect Mode&#xff1a;用于定义纵横比适配的行为方式。Aspect Mode属性有以下几种选项&#xff1a; &#xff08;1&#xff09;None&#xf…

安全学习DAY12_信息打点-Web应用信息搜集

信息打点-Web应用 文章目录 信息打点-Web应用业务资产企业查信息的目的 Web应用信息搜集Web网站域名搜集WEB单域名WEB子域名OneForAll&#xff08;子域名收集工具&#xff09; WEB网站架构资产WEB指纹识别资产 常用查询平台汇总查企业信息查备案信息查公众号信息域名注册查询IP…

基于 Docker 的深度学习环境:Windows 篇

本篇文章&#xff0c;我们聊聊如何在 Windows 环境下使用 Docker 作为深度学习环境&#xff0c;以及快速运行 SDXL 1.0 正式版&#xff0c;可能是目前网上比较简单的 Docker、WSL2 配置教程啦。 写在前面 早些时候&#xff0c;写过一篇《基于 Docker 的深度学习环境&#xff…

幅度调制与角度调制

文章目录 前言一、调制简介1、调制定义2、调制目的3、调制的分类 二、幅度调制&#xff08;线性调制&#xff09;1、幅度调制的一般模型2、常规双边带调幅 AM①、AM 信号的产生②、AM 调制器的模型③、AM 波形和频谱④、AM 信号的特点⑤、AM 包络检波⑥、调幅系数 3、抑制载波双…

【用IDEA基于Scala2.12.18开发Spark 3.4.1 项目】

目录 使用IDEA创建Spark项目设置sbt依赖创建Spark 项目结构新建Scala代码 使用IDEA创建Spark项目 打开IDEA后选址新建项目 选址sbt选项 配置JDK debug 解决方案 相关的依赖下载出问题多的话&#xff0c;可以关闭idea&#xff0c;重启再等等即可。 设置sbt依赖 将sbt…