【案例】平面云

news2024/11/25 1:04:29

教程案例视频: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.coloradmin.cn/o/2188061.html

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

相关文章

打造高效灵活的数字企业——The Open Group 2024生态系统架构·可持续发展年度大会重磅来袭

随着数字经济的高速发展,企业数字化转型已成为时代的必然趋势。如何在这场变革中抢占先机,实现业务增长与降本增效,成为众多企业关注的焦点。为此,The Open Group 2024生态系统架构可持续发展年度大会将于明年盛大开启&#xff0c…

Studying-多线程学习Part1-线程库的基本使用、线程函数中的数据未定义错误、互斥量解决多线程数据共享问题

来源:多线程编程 线程库的基本使用 两个概念: 进程是运行中的程序线程是进程中的进程 串行运行:一次只能取得一个任务并执行这一个任务 并行运行:可以同时通过多进程/多线程的方式取得多个任务,并以多进程或多线程…

Leetcode: 0011-0020题速览

Leetcode: 0011-0020题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解 遵从开源协议为知识共享 版权归属-相同方式…

Java在用增强for循环遍历集合时删除元素,抛出java.util.ConcurrentModificationException异常

文章目录 0. 前言1. 问题产生的背景2. Java中增强for循环的底层原理3. 为什么增强for循环不支持在遍历集合时删除元素3.1 问题排查3.2 modCount 变量的来源3.3 expectedModCount 变量的来源3.4 导致modCount变量和expectedModCount不相等的原因3.5 为什么用迭代器遍历元素时删除…

学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)

在线学籍管理平台系统 目录 基于SpringbootVUE的在线学籍管理平台系统设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大…

Leetcode: 0021-0030题速览

Leetcode: 0021-0030题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解 遵从开源协议为知识共享 版权归属-相同方式…

如此的“宠物医保”靠谱吗?

今天是世界动物日,本“人民体验官”推广人民日报官方微博文化产品《带着笑意的眼睛,能看见最美的风景》。 截图:来源“人民体验官”推广平台 人民微博说,带着笑意的眼睛,能看见最美的风景。生活中多一点微笑&#xff…

buuctf 部分misc题

rar 这个不多说了直接暴力破解,提示说的已经很清楚了,四位数密码; qr 这个就是一个二维码,用qr扫一下就出来了; 镜子里面的世界 用stegslove,打开dataextract进行调整 调整之后就可以得到flag了 ning…

ipv6之ospf配置

topo图 路由器均使用ipv6的地址 AR1使用默认路由到达ISP,在ospf上使用路由下发功能,把ISP的静态路由下发给内部网络 ISP使用7条静态路由,到达内部网络 AR1、AR2、AR3、AR4之间使用ospfv3进行通信 但是我配了下面的代码无法通信&#xff0…

driver,sequencer,sequence之间的握手关系_2024年10月3日

driver :根据接口协议将事务转换为一组信号级切换的组件。 sequencer :将事务(sequence items)从 sequence 发送到 driver,并将 driver 的响应反馈给 sequence 的组件。会对同时尝试访问 driver 以激励设计接口的多个 …

什么是 HTTP 请求中的 options 请求?

在 Chrome 开发者工具中的 Network 面板看到的 HTTP 方法 OPTIONS,其实是 HTTP 协议的一部分,用于客户端和服务器之间进行“预检”或“协商”。OPTIONS 请求的作用是让客户端能够获取关于服务器支持的 HTTP 方法和其他跨域资源共享 (CORS) 相关的信息&am…

spring揭秘25-springmvc04-servlet容器与springmvc容器总结

文章目录 【README】【1】DelegatingFilterProxy回顾【1.1】DelegatingFilterProxy初始化过滤器bean 【2】从servlet容器获取springmvc顶级web容器【2.1】从Servlet容器中获取springmvc容器总结【2.2】ContextLoaderListener加载springmvc顶级web容器并将其添加到servlet容器【…

基于SpringBoot+Vue的科研课题项目管理系统源码

文章目录 1.技术架构2.主要功能3.获取方式 1.技术架构 后端:SpringBoot 前端:Vue – Element UI 2.主要功能 登录 /注销、 用户管理、项目管理、申报管理、变更管理、 结题管理、角色管理、权限管理、数据字典等功能 3.获取方式 点击下方名片&a…

android 全面屏最底部栏沉浸式

Activity的onCreate方法中添加 this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); Android 系统 Bar 沉浸式完美兼容方案自 Android 5.0 版本,Android 带来了沉浸式系统 ba - 掘金 (juejin.cn)https://juejin.cn/post/7075578…

pycharm中使用anaconda创建多环境,无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

问题描述 用的IDE是: 使用anaconda创建了一个Python 3.9的环境 结果使用pip命令的时候,报错 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案 为了不再增加系统变量,我们直接将变量添加在当前项目中你的Ter…

Python3使用cv_bridge转换ROS的image信息

0. Preface 现在很多新的图片处理model都是基于python3的,而ROS还是2.7的,要结合起来用不可避免有很多问题,以下以接收ROS image为例子 以下方法需要用的anaconda,安装方法有很多blog分享 1. Preparation 以下是python3接收ima…

【黑马点评】0.环境配置--Redis6.2.6和可视化工具在Windows上的安装

黑马点评--0.Redis6.2.6在windows上的环境配置与可视化 0 前言1 下载安装2 解压后运行msi文件3 修改配置文件并打开Redis3.1 修改密码(可选)3.2 测试 4 Redis可视化(可选)4.1 Another Redis Desktop Manager下载安装4.2 连接Redis…

删除苹果手机所有照片的方法有哪些?

在这个数码摄影盛行的时代,手机相册里可能堆积了成千上万的照片,尤其是苹果手机用户。无论是为了释放存储空间,还是因为想要重新开始整理照片,删除所有照片可能成为一个必要的任务。那么,如何有效地删除删除苹果手机所…

防止老年痴呆的一题

如何只移动三个圆使下图变为正三角? 真相如此简单:

Redis常用命令(超详细整理)

Redis常用命令(超详细整理) 服务器相关命令 ping : 检测连接是否存活echo: 在命令行打印一些内容quit、exit: 退出客户端shutdown: 退出服务器端info: 返回redis相关信息config get dir/* 实时…