【案例】平面云

教程案例视频:Unity Shader Graph - 云教程
开发平台:Unity 2022
开发工具:Unity ShaderGraph

一、效果展示


在这里插入图片描述

二、ShaderGraph 路线图


在这里插入图片描述

三、案例分析


核心思路:使用 Noise(噪声)模拟云层状态

3.1 说明 | 云层运动

在这里插入图片描述
云层的最终表现输出为 Fragment 下 Base Color。
云层的自身表现属于多规则无序性质。则 Noise(噪声)是最佳的实现节点。ShaderGraph 提供累计3种的 Noise Node(噪声节点)可用。

  • (视情况均可选择,此处选择 Simple Noise 作为使用)
  • 在过去开发中,也有直接使用静态噪声纹理图作为 Sample Texture(纹理输入)的情况。


Simple Noise Node(简易噪声)提供 Scale 的输入变量管理噪声程度。因此需要新建 Cloud Scale 变量管理。
Simple Noise Node(简易噪声)提供 UV 的输入管理噪声图的运动表现。当需要噪声图动态变化以模拟动态云层图时,需要输入该变量。如上图所示加入了 Tilling And Offset (平铺与偏移)管理运动方向与速度。

当期望位移幅度可控时,需要对 Tilling And Offset(平铺与偏移)中的 Offset(偏移)进行输入管理。但为了模拟动态云层效果,加入了 Timer(计时器)的计时器节点。但计时器本身不具备控制偏移的发生与程度。加入 Cloud Speed 变量管理运动方向与速度。于是, Multiple(乘法)节点的作用是将结果值乘法以最终输入。得到的 Offset(偏移)在 Timer(计时器)作用下为一个持续动态变化值。

Power(幂函数),为了控制颜色厚度表现的重要值。因此加入 Cloud Power 控制云层颜色深度。同理将输出值与 Cloud Color 相乘作为最终的颜色输出效果。

3.2 说明 | 云层区域透明化表现

在这里插入图片描述
云层并非全覆盖,实际情况表现为部分区域保持透明效果。需设置 Shader Graph - Surface Type = Transport (透明模式)。在此模式下的 Fragment 中将新增 Alpha (透明度)的可管理选项。

最终云层图的输出在 Power (幂函数)中完成,因此获取该输入值。接入 Alpha 中。在实际情况中,为了控制透明度,新建了 Cloud Alpha 变量管理。

3.3 说明 | 云层消融表现

在这里插入图片描述
在 3.1 中仅仅实现云层的移动,即固定狀云的移动表现。实际观察云层在移动中也有着形状变化的差异。因此,在效果上增加一组 Noise Node 噪声来制作另一组图层叠加至原图层上混合输出达到目的。

新建的图层项的变量与原图层相似,但不再受原变量管理控制。混合后的图层通过 Multiple(乘法)输出至 Powder 计算最终输入至 Alpha 即可。为保证效果的良好,两组图层的变量数据应尽可能保持不一。

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

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

相关文章

Chat登录时出现SSO信息出错的解决方法

目录 1. 问题所示2. 问题所示3. 解决方法 1. 问题所示 此贴主要是总结回顾,对此放置在运维专栏 出现如下问题,很懵,以为是节点挂了还是网址蹦了 一直刷新,登录之后就出现这个问题 2. 问题所示 对于SSO,也就是单点登…

负载均衡--相关面试题(六)

在负载均衡的面试中,可能会遇到一系列涉及概念、原理、实践应用以及技术细节的问题。以下是一些常见的负载均衡面试题及其详细解答: 一、什么是负载均衡? 回答:负载均衡是一种将网络请求或数据传输工作分配给多个服务器或网络资源…

详解JavaScript函数属性、方法和构造函数

函数属性、方法和构造函数 JS中,函数是值,对函数执行typeof运算会返回function,但是函数是JS中特殊的对象,也可以拥有属性和方法。 length属性 函数体里面,arguments.length表示传入函数的实参个数,而函…

2024年优化苹果免签封装APP H5站打包苹果APP 绿标-永不掉千(永久使用)

大家都知道苹果手机做APP签名很贵, 这个程序就是吧您的H5网站 一切网页可以打开的,封装成app 苹果手机上可以直接安装使用 永久可用!!很简单,可以看视频教程来安装使用, 视频教程: https://ww…

修改Anaconda虚拟环境默认安装路径(Linux系统)

文章目录 修改Anaconda虚拟环境默认安装路径(Linux系统)1.方法一:使用--prefix参数2.方法二:配置conda环境的默认安装位置 修改Anaconda虚拟环境默认安装路径(Linux系统) 1.方法一:使用--prefix参数 在创建虚拟环境时,使用--pre…

macOS编译和运行prometheus2.54

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文详述了在macOS(M2芯片)上编译和运行prometheus2.54版本的过程,以及安装node_exporter和grafana并使用prometheus指标进行展示 本地…

wzoissb的博客网(感谢CSDN支持)

感谢CSDN提供技术支持!!! wzoissb的博客网站!!!今天发布!!! 我的主页 wzoi账号不公布 LUOGU 账号 其余网络账号…

vue3导入本地图片2种实现方法

在<script setup>中使用import语法&#xff1a; <template><img :src"logo" alt"Logo"> </template><script setup> import logo from ./assets/logo.png; </script> 使用Vue的ref来动态地在<script setup>中…

openpnp - 底部相机高级校正的参数设置

文章目录 openpnp - 底部相机高级校正的参数设置概述笔记修改 “Radial Lines Per Calibration Z” 的方法不同 “Radial Lines Per Calibration Z”的校验结果不同 “Radial Lines Per Calibration Z”的设备校验动作的比较总结备注END openpnp - 底部相机高级校正的参数设置 …

根据给定的相机和镜头参数,估算相机的内参。

1. 相机分辨率和传感器尺寸 最高分辨率&#xff1a;6000 4000 像素传感器尺寸&#xff1a;22.3 mm 14.9 mm 2. 计算像素大小 需要计算每个像素对应的实际尺寸&#xff08;mm/pixel&#xff09;&#xff1a; 水平方向像素大小&#xff1a; 垂直方向像素大小&#xff1a; …

JAVA实现大写金额转小写金额

在金融行业中经常需要把大写金额转成小写金额&#xff0c;之前在一次开发中有个类似的需求&#xff0c;翻阅了好多博文&#xff0c;都没找到合适的&#xff0c;故没办法&#xff0c;就花了点时间研究并实现! 实现代码如下: private static final Character ZERO 零;private s…

国外电商系统开发-运维系统批量添加服务器

您可以把您准备的txt文件&#xff0c;安装要求的格式&#xff0c;复制粘贴到里面就可以了。注意格式&#xff01; 如果是“#” 开头的&#xff0c;则表示注释&#xff01;

Linux篇之IO多路复用

文章目录 前言流IO操作IO阻塞多路IO多个流的IO请求处理水平触发边缘触发最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;今天介绍一下Linux中的IO多路复用机制 流 流是一种用于在程序与外部数据源&#xff08;如文件、网络连接、内存等&#xff09;之间传输数据的机制&…

在掌控板中加载人教版信息科技教学指南中的educore库

掌控板中加载educore库 人教信息科技数字资源平台&#xff08;https://ebook.mypep.cn/free&#xff09;中的《信息科技教学指南硬件编程代码说明》文件中提到“本程序说明主要供教学参考。需要可编程主控板须支持运行MicroPython 脚本程序。希望有更多的主控板在固件中支持ed…

AppointmentController

目录 1、 AppointmentController 1.1、 保存主页面信息 1.1.1、 //预约表 1.1.2、 维修明细表 1.1.3、 //配件明细表 1.1.4、 1.1.5、 //从某集合中删除其与另一个集合中相同的项&#xff1b;其实这个说简单点就是某集合中独有的元素(差集) 1.1.6、 //删除 1…

(JAVA)浅尝关于 “栈” 数据结构

1. 栈的概述&#xff1a; 1.1 生活中的栈 存储货物或供旅客住宿的地方&#xff0c;可引申为仓库、中转站。例如酒店&#xff0c;在古时候叫客栈&#xff0c;是供旅客休息的地方&#xff0c;旅客可以进客栈休息&#xff0c;休息完毕后就离开客栈 1.2计算机中的栈 将生活中的…

设计模式(3)builder

需求&#xff1a; 对于复杂的对象&#xff0c;我们只需要 通过 设置一些参数&#xff0c;就可以得到相对应的 实例。 简单来说&#xff0c; 需求就是用一个类 通过方法返回一个 新建的对象&#xff0c;而且可以通过方法去设置这个对象 public interface CarBuilder {void se…

有些硬盘录像机接入视频汇聚平台EasyCVR后通道不显示/显示不全,该如何处理?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。该平台不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能&#xff0c;还支持多种主流标准协议&#xff0c;如GB28181、RTSP/Onvif、RTMP、部标JT808、GA/T 1400协…

Pikachu-Sql Inject-数字型注入(GET)

一、、破解 SQL 查询语句中的字段数 ?id1 order by 3 -- // -- 是注释&#xff0c; 加号 在MySQL中会转成空格 order by 1 &#xff0c;by 数字几&#xff0c;就是按照第几列进行排序&#xff1b;如果没有这一行&#xff0c;则报错 如&#xff1a;以下语句&#xff0c;根据…

RabbitMQ(死信队列)

一、本文抒写背景 前面我也在延迟队列篇章提到过死信队列&#xff0c;也提到过一些应用场景&#xff01; 今天呢&#xff0c;这篇文章&#xff0c;主要就是实战一个业务场景的小Demo流程&#xff0c;哈哈&#xff0c;那就是延迟关闭订单。 二、开始啦&#xff01;letgo! 首…