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

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

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

相关文章

Linux常用操作命令集合

1、 开机启动脚本的设置 如何增加一个服务&#xff1a; 服务脚本必须存放在/etc/ini.d/目录下&#xff1b;&#xff08;具体请参照Centos JDK 和tomcat部署笔记&#xff09; chkconfig --add servicename在chkconfig工具服务列表中增加此服务&#xff0c;此时服务会被在/etc/r…

Elasticsearch 简单搜索查询案例

1.MySql表结构/数据 SET FOREIGN_KEY_CHECKS0;-- ---------------------------- -- Table structure for user_lables -- ---------------------------- DROP TABLE IF EXISTS user_lables; CREATE TABLE user_lables (id varchar(255) DEFAULT NULL COMMENT 用户唯一标识,age…

CNN(卷积神经网络)的实现过程详解

概要 在图像处理领域&#xff0c;CNN(卷积神经网络)处于绝对统治地位&#xff0c;但对于CNN具体是如何用神经网络实现的&#xff0c;能找到的介绍要么是一大堆数学公式&#xff0c;要么是大段晦涩的文字说明&#xff0c;读起来很是辛苦&#xff0c;想写好一片完整的而且有深度的…

【开源项目】低代码数据可视化开发平台-Datav

Datav 基本介绍 Datav是一个Vue3搭建的低代码数据可视化开发平台&#xff0c;将图表或页面元素封装为基础组件&#xff0c;无需编写代码即可完成业务需求。 它的技术栈为&#xff1a;Vue3 TypeScript4 Vite2 ECharts5 Axios Pinia2 在线预览 账号: admin 密码: 123123预…

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建

Java版知识付费-轻松拥有知识付费平台 多种直播形式&#xff0c;全面满足直播场景需求 公开课、小班课、独立直播间等类型&#xff0c;满足讲师个性化直播场景需求&#xff1b;低延迟、双向视频&#xff0c;亲密互动&#xff0c;无论是互动、答疑&#xff0c;还是打赏、带货、…

Redis底层封装细节

日常我们程序员在使用redis做缓存的时候&#xff0c;很少会直接使用到RedisTemplate直接操作k-v键值对&#xff0c;而是通过对RedisTemplate原生代码的封装&#xff0c;来构建我们日常便于使用习惯的代码来操作数据&#xff0c;这里我分享一下日常基本的对RedisTemplate底层的封…

[nlp] tokenizer加速:fast_tokenizer=True

fast_tokenizer 是一个布尔值参数,用于指定是否使用快速的 tokenizer。在某些情况下,使用快速的 tokenizer 可以加快模型训练和推理速度。如果 fast_tokenizer 参数为 True,则会使用快速的 tokenizer;否则,将使用默认的 tokenizer。 快速的 tokenizer 通常使用一些技巧来减…

使用Newtonsoft直接读取Json格式文本(Linq to Json)

使用Newtonsoft直接读取Json格式文本&#xff08;Linq to Json&#xff09; 使用 Newtonsoft.Json&#xff08;通常简称为 Newtonsoft&#xff09;可以轻松地处理 JSON 格式的文本。Newtonsoft.Json 是 .NET 中一个流行的 JSON 处理库&#xff0c;它提供了丰富的功能和灵活性。…

微信小程序实现蓝牙开锁、开门、开关、指令发送成功,但蓝牙设备毫无反应、坑

文章目录 开源htmlJavaScript 开源 wx联系本人获取源码(开源): MJ682517 html <view><view class"p_l_36 p_r_36"><input class"w_100_ h_80 lh_80 ta_c b_2s_eee radius_20" value"{{instructVal}}" type"text" plac…

RocketMq 事务消息原理

Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…

51单片机定时器

51单片机定时器 1.简介 C51中的定时器和计数器是同一个硬件电路支持的&#xff0c;通过寄存器配置不同&#xff0c;就可以将他当做定时器 或者计数器使用。 确切的说&#xff0c;定时器和计数器区别是致使他们背后的计数存储器加1的信号不同。当配置为定时器使 用时&#xff0…

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 ![6 基本介绍 1.MATLAB实现TCN-BiGRU时间卷积双向门控循…

JSON格式Python,Java,PHP等封装获取淘宝商品详情描述数据API

淘宝是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝天猫商品详情描述数据&#xff0c;您可以通过开放平台的接口或者直接访问淘宝天猫商城的网页来获取商品详情详细信息。以下是两种常用方法的介绍&#…

C语言假期作业 DAY 02

题目 一、选择题 1、以下程序段的输出结果是&#xff08; &#xff09; #include<stdio.h> int main() {char s[] "\\123456\123456\t";printf("%d\n", strlen(s));return 0; } A: 12 B: 13 C: 16 D: 以上都不对 2、若有以下程序&#xff0c;则运行…

实现基于UDP简易的英汉词典

文章目录 实现目标认识相关接口socketbzerobindrecvfromsendto 实现思路和注意事项完整代码Server.hppServer.ccClient.hppClient.cc 运行效果END 实现目标 实现一个服务端和一个客户端&#xff0c;客户端负责发送一个单词&#xff0c;服务端接收到后将翻译后的结果返回发送到…

Linux下C++ STL获取Mac地址

在Ubuntu下&#xff0c;你可以使用以下代码来获取MAC地址&#xff1a; #include <iostream>using namespace std;#include <iostream> #include <fstream> #include <string>std::string getMACAddress() {std::string macAddress;std::ifstream file…

蓝桥杯2023年第十四届省赛-飞机降落

题目描述 N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 Di 个单位时间&#xff0c;即它最早 可以于 Ti 时刻开始降落&#xff0c;最晚可以于 Ti Di 时刻开始降落。降落过程需要 Li个单位时…

Android 之 动画合集之帧动画

本节引言&#xff1a; 从本节开始我们来探究Android中的动画&#xff0c;毕竟在APP中添加上一些动画&#xff0c;会让我们的应用变得 很炫&#xff0c;比如最简单的关开Activity&#xff0c;当然自定义控件动画肯定必不可少啦~而Android中的动画 分为三大类&#xff0c;逐帧动画…

了解uuid

目录 一.认识 UUID 二.UUID 会耗尽吗 三.UUID 会重复吗 四.UUID 的版本 五.UUID的应用 六.java 如何生成UUID 一.认识 UUID uuid是经过特定的算法得到的. UUID 是 16 字节 128 位长的数字&#xff0c;通常以 36 字节的字符串表示&#xff0c;示例如下&#xff1a; 3F2…

boardmix AI:让工作效率翻倍的AI智能在线白板软件!

随着ChatGPT热度的飙升&#xff0c;AI逐步深入到各个领域&#xff0c;尤其在技术领域&#xff0c;引发了一场AI的新浪潮&#xff0c;人们谈论的焦点都与AI有关。 AI工具不仅帮助企业节约了成本&#xff0c;还极大提高了生产力。那些尚未融入AI的行业和产品&#xff0c;有着被AI…