Unity - 技术美术

news2024/10/5 13:32:36

198.Shader Graph

官方教程链接:https://learn.unity.com/project/make-a-flag-move-with-shadergraph

本节课程文档:https://gitee.com/chutianshu1981/AwesomeUnityTutorial/blob/main/%E5%9B%BE%E5%BD%A2-%E6%8A%80%E6%9C%AF%E7%BE%8E%E5%B7%A5%E7%9B%B8%E5%85%B3/08-ShaderGraph%E5%88%9B%E5%BB%BA%E5%8A%A8%E7%94%BB%E6%9D%90%E8%B4%A8.md

198.1 Position节点

获取Mesh顶点的位置信息.

 192. Split 节点

Mesh 中的顶点分为 X , Y , Z 三个轴向 , 三个轴的处理方式肯定是不一样的 , 所以应该利用 Split 节点把三个轴的数据分开 , Split 的 输出值虽然写的是 R G B A , 但是顶点的类型为 Vector3 , 所以我们至于要用到前三个 , 即 R G B 分别代表 Mesh 中的 X , Y , Z 顶点向量的值.

 

 

 198.3 Time 节点

  •  Time : 随着时间增大的线性函数
  • Sine : 正弦函数
  • Cosine : 余弦函数

198.4 Add 节点

求和

198.5 Time & Add 

解释 : Mesh 中的 X 坐标 , 会随着时间以正弦函数周期性发生变化,振幅变化为[-1,1]闭区间

198.6 Combie 节点

 我们上面对 Mesh 中的 X 坐标进行了操作 , 一直到 Add 节点 输出的只是 X 的值 , 但我们最终想要得到的效果是 X 随着正弦函数在 [-1 , 1]区间内变化 , Y & Z 轴不变的 Vector3 的矢量.

 如图 , R(代表X)一直处于正弦曲线的变化中 , 而 Y 和 Z 轴并没有发生任何变化 , 进行了 Combine 

198.7 坐标参考

 如图 按照原来的理论 做出来的效果是不对的 即 现在旗帜是上下飘动,而不是前后飘动.

因此 需要把 Position 节点的 Space 模式改为 Object (Local) 变动的值应该为Y轴.

198.8 飘动而非移动

现在的效果是 Plan Mesh 的 Y 轴本地坐标在移动 , 但我们想要的的效果是类似于波纹的效果!

 直接上图.

 

 198.9 控制振幅

现在旗帜摆动的幅度太大了,需要缩小,现在 Y 轴的震动幅度为绝对的[-1 , 1 ](米)要想将幅度变小,可以对Sine输出的值乘以一个比1小的浮点数来缩小振幅.

198.9.1 创建变量 Amplitude

 198.9.2 设置变量 Amplitude

198.10 控制波动

 效果如图

可以看到 , 方向反了 , 这时我们需要对 UV Mask 的  Y 轴坐标进行去反操作. 

 

美滋滋

198.11 贴图

198.11.1创建 Texture2D类型变量

198.11.2 Rotate 节点

见名知意

  • Unit : Degrees : 度数(另一个概念是弧度) 

198.12 UV

198.12.1 概念

UV(三维建模)_百度百科 (baidu.com)

这里是我的理解啊,可能就是二维贴图(坐标)向三维模型(坐标)升维的数学模型.

198.12.2 应用

这里是为了更好解释 UV 节点. 如图所示 : 

这里是U轴的渐变过程 , 可以看到是从0-1的从左到右的渐变过程.

 这里是V轴的渐变过程 , 从 0 - 1 从下到上的渐变过程 .

 UV 轴的变化与 正常二维坐标的变化方向都是相同的.

这样就能很好的解释UV节点的作用了 , 之所以用了 V 轴来作为变换的基准 , 是因为模型进行了旋转90度的操作. 

197 Shader Graph  

197.1 噪声

197.1.1 梯度噪声

 197.1.2 普通噪声

 197.1.3 相乘

噪声图的每一个像素点都有一个从[0,1]的值,0代表黑色,1代表白色.相乘的意思是每个点的色度值互相乘积得到新的噪声图 , 因为 0 * X = 0 , 比如 : 纯黑色部分的色度值为0相乘后还是为0,所以一直是黑色,从图中也可以看到这种趋势. 

197.2 Remap 节点

这个节点解释起来很复杂 - - ! 涉及到部分数学知识.

197.2.1 计算公式

Out(1) = ( In(1) - In.x ) * (Out.y - Out.x) / (In.y - In.x) + Out.x

根据上面的 值来化简这个表达式可以得到

Out(1)  = 0.9 * In(1) - 0.2 , In(1) 为 正弦函数 sin(x) , 所以最终结果为 Out(1) = 0.9 * Sin(x) - 0.2

这里直接上函数图像就会变得很明显,

 这里上面的函数图形为 sinx , 下面的函数图像为 0.9 * sinx - 0.2 , 用现象来描述就是 , Remap之后的函数更晚从黑转为白色 , 更早从白转成黑色  , 这意味着白色的持续时间更短了.

197.3 SinX 正弦函数作用于图像

经过测试 , Sinx 的自变量与因变量作用于图像对比度的结论. 

  •  从 0 - π/2 : 处于一直变量的状态.
  •  从 π/2 - π : 处于逐渐变暗的状态
  • 从 π - 2π : 纯黑
    • 也就是说只有0-π会出现对比度周期变化的效果.

197.4 Step 节点

if( In(1) > Edge(1) ){
    Out(1) = 1; //白
}else{
    Out(1) = 0; //黑
}

 举个例子 , 比如一个噪声图 有 9 个像素点 如图.

0.10.20.3
0.40.50.6
0.70.80.9

经过 Step (Edge = 0.5) 映射后为. 0 - 黑 , 1 - 白.

000
011
111

197.5 Subtract 节点

Out(1) = A(1) - B(1) , 不解释

重点说一下 , 像素点的相减.

可以见到 , 被减数的白色部分比减数大 , 所以相当于在被减数白色内部掏去减数白色的部分为黑色. 

197.6 Color 

 

 这里不做过多解释.

196 - Shader Graph

196.1 Tiling And Offset

 

  •  Tiiling(2) 
    • 可以理解为单位密度 

  • Offset

    • 位移 

183 -

Unity 中查看网格系统.

185 - Material

185.1 创建 material

 

185.2 附着

让模型附着材质

187 - Material

187.1 Metallic - 金属光泽

187.2 Specular - 漫反射

18

官方教程链接:Map materials with textures - Unity Learn

本节课程文档: 图形-技术美工相关/06-Map&Texture贴图和纹理.md · chutianshu/AwesomeUnityTutorial - Gitee.com

厕纸素材链接:迅雷云盘 提取码:xjbh

189.1 导入材料

189.2 创建材质

189.3 将材质放到 Materials 上

189.4 调整材质

189.5 切换法线贴图类型

切换法线贴图类型为NormalMap.

191-&Alpha

191.1 半透明玻璃瓶

 

 

191.2 Alpha剪裁

制作出叶子贴图.

191.2.1 全部添加

多选叶子到全部根茎 , 添加同一种 Material.

191.2.2 添加Texture

 效果如图,需要将白色的部分去掉

 如图 , 透明的部分需要被剪裁掉!

191.2.3 剪裁

  •  Threshold

192-线

192.1 创建 Cube

192.2 添加材质

192.2.1 基础贴图

192.2.2 添加了法线的贴图

 

193 - &

193.1 飞行模式

  • 点击 鼠标右键 进入飞行模式
  • Shift + 鼠标右键 + 鼠标滚轮可以调整飞行模式速度

193.2 阴影

Occlusion Map

 

 193.3 细节

 

193.4 发光贴图

 

 

193.4.1 改变强度

  • 负二 级别

  • 正二 级别

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

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

相关文章

ElasticSearch入门到springboot使用

文章目录1.存储引擎产品性能对比2.es安装1.创建目录2.创建挂载的配置文件3.编写docker-compose4.添加文件夹权限5.启动es与kibana6.开放端口7.测试访问8.安装IK分词器3.es核心概念1.文档:就是一条数据2.类型:表字段和类型3.索引:就是数据库4.…

【WIN】Windows10 开启远程连接图形化界面(mstsc)

CONTENTwindows10 rdp 开启远程连接开启远程连接win10 专业版遇到的问题3389 端口不可用简述具体解决windows10 rdp 开启远程连接 开启远程连接 win10 专业版 快捷键: winI 打开设置,然后 #mermaid-svg-bTRFQYmaW8UwxJ5Y {font-family:"trebuche…

java计算机毕业设计ssm医疗垃圾管理系统f5aj8(附源码、数据库)

java计算机毕业设计ssm医疗垃圾管理系统f5aj8(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

针对低功率/低电源电压应用的5MBd数字光耦合器

针对低功率/低电源电压应用的5MBd数字光耦合器 介绍 电气系统中的数字光电耦合器提供高压绝缘和高压绝缘数据传输时的噪声抑制。一个高质量的绝缘屏障,在里面光耦合器需要提供卓越的可靠性和耐久性信号隔离。 除了绝缘和噪音抑制能力,新的5MBd数字光耦…

Image-Line升级FL Studio21水果DAW音乐工作站

FL Studio水果21加入了更快、更精确的音频编辑,改进了内容搜索,DAW“情绪主题”控制,甚至还有更多的灵感、创意工具。 如果你真正需要中文语言,你需要更新到FL Studio 21版本打开你的FL设置,在通用(Genera…

Wireshark | 猿如意

文章目录一、前言二、猿如意介绍客户端网页版三、Wireshark简介发展史使用猿如意下载功能介绍使用方法使用感受一、前言 我曾经有过这样的烦恼:去下载一个应用,结果百度到了一大堆广告,最后下载的也不是官方版本,还捆绑了一大堆AP…

SpringBoot中使用Easyexcel实现Excel导入导出功能(二)

目录 常规导出 大批量数据导出 复杂表头的导出 日期、数字、自定义格式转换后导出 常规导出 常规导出excel有两种,个人比较推荐第一种: 1、新建一个导出数据的实体类,用ExcelProperty()注解标明excel中列的中文名称;如果实体的…

maven学习手册

maven学习手册1.maven简介1.1 传统项目的弊端1.2 Maven是什么2.maven的安装和配置2.1 maven的安装2.2 为阿里云设置代理仓库2.3 maven常用命令简单说明3.maven实战3.1 一个简单的maven项目3.2 maven常用命令简单说明3.3 为这个简单的maven项目安装依赖3.4 maven常见标签说明4.依…

在搭载 M1 及 M2 芯片 MacBook 设备上玩 Stable Diffusion 模型

本篇文章,我们聊了如何使用搭载了 Apple Silicon 芯片(M1 和 M2 CPU)的 MacBook 设备上运行 Stable Diffusion 模型。 写在前面 在上一篇文章《使用 Docker 来快速上手中文 Stable Diffusion 模型:太乙》中,我们聊过…

传感器和变送器有什么区别?工业网关能用吗?

传感器和变送器在自动控制领域都有重要作用,但很容易混淆掉,两者有区别也有联系。 传感器是可以将感受到的信息转换成电信号或者其他信号,如将温度、压力、物料、气体等信息转换成电信号,从而使得这些数据可以网络中传输。 变送器…

软件测试必须知道的方法和知识

“软件测试技术是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性…

C++ 实现前缀树

一 、前缀树是什么 前缀树是一种查找结构,常用于指定字符串或是数组、线性表等连续信息的存储和查找。他的作用类似于哈希表,但是它相对于哈希表来说,限制更多,通用性较差,但是它的功能更加强大,可定制性也…

c#入门-字段类型访问权限低于字段本身

字段类型访问权限低于字段本身 现在假设你有一个小兵类,他的访问权限是仅限当前程序集。 internal class 小兵 {public int hp 12;public int atk 10;public int def 5; }然后声明一个兵营,用来创造小兵 public class 兵营 {public 小兵 模板;publ…

深度学习课件-实验1_PyTorch基本操作实验

文章目录一、Pytorch基本操作考察1.11.21.3二、动手实现 logistic 回归2.12.2三、动手实现softmax回归3.13.2一、Pytorch基本操作考察 使用 𝐓𝐞𝐧𝐬𝐨𝐫 初始化一个 𝟏𝟑 的矩阵 &a…

第五、六章

第五章程序控制结构 5.1switch分支结构 每一个分支结构最后要记得加break;表示退出。 import java.util.Scanner; public class Switch01 { //编写一个 main 方法 public static void main(String[] args) { /* 请编写一个程序,该程序可以接收一个字符&#xff0…

我逛遍各大论坛,分享这份大厂招聘总结:涵盖Java岗位95%+真题

我们程序员这一群体,大家都知道最好的涨薪方法是通过跳槽,在你把一个公司的精华都吸收完之后,有追求的肯定会跳去更好的公司发展自己,特别在金三银四,金九银十这样的招聘旺季里 ,会有很多需要准备的面试会有…

Snort入侵检测系统使用示例

1998年,Martin Roesch用C语言开发了开源的入侵检测系统Snort。现如今Snort已发展成为一个具有多平台、实时流量分析、网络IP数据包记录等特性的强大的网络入侵检测/防御系统,是世界最顶尖的开源入侵检测系统。Snort IDS利用一系列的规则去定义恶意网络活…

Qt-数据库开发-QDataWidgetMapper(5)

Qt-数据库开发-使用QDataWidgetMapper将数据库数据映射到小部件 文章目录Qt-数据库开发-使用QDataWidgetMapper将数据库数据映射到小部件1、概述2、实现效果3、主要代码4、完整源代码更多精彩内容👉个人内容分类汇总 👈👉数据库开发 &#x1…

MYSQL数据库-复合查询

MYSQL数据库-复合查询零、前言一、基本查询二、多表查询三、自连接四、子查询1、单行子查询2、多行子查询3、多列子查询3、在from子句中使用子查询五、合并查询1、union2、union all零、前言 本章主要讲解学习MYSQL数据库中的复合查询,前面我们讲解的mysql表的查询都…

嵌入式分享合集119

一、传感器的数据处理算法 在传感器使用中,我们常常需要对传感器数据进行各种整理,让应用获得更好的效果,以下介绍几种常用的简单处理方法: 加权平滑:平滑和均衡传感器数据,减小偶然数据突变的影响。 抽取…