【案例】故障雪花屏

开发平台:Unity 6.0
开发工具:Shader Graph
参考视频:【U2D Shader Graph】❄️雪❄️花❄️屏❄️

一、效果图


在这里插入图片描述

二、Shader Graph 路线图


在这里插入图片描述

三、案例分析


核心思路:雪花屏幕效果 +(混合)+ 原图像 = 最终图像

3.1 雪花屏实现 - 使用 Noise(噪声节点)


在这里插入图片描述
Simple Noise(简易噪声节点)的呈像符合雪花屏的表现,是实现雪花屏幕的最佳选择。

结合实际表现情况,雪花屏为动态型变化更新。
故需要引入 Time(定时器节点)+ 变量Speed(控制变化频率)的结果。如下所示:

在这里插入图片描述

[1] 可能出现的问题部署 Shader Graph 至 UnityEngine.UI.Image 后,发现雪花屏仍然保持静态。
这是因为 Simple Noise(简易噪声节点)的 Seed 输入值偏小所造成的。当输入值 ≥ 5 时,出现明显的浮动变化。


关于原作者选择的实现路线效果图 对比 Noise 效果图

图1 使用 Simple Noise(简易噪声节点)输入
图2 使用 Random Range(随机数节点)输入

原视频作者采取 UV(光照贴图节点) + Random Range(随机数生成节点)实现动态的类噪声表现效果。
但笔者选择继续 Noise(噪声)线路进行改善。后续内容将延续该思路进行,大致最终实现效果与原视频作者思路相似。

3.2 动态 Noise(噪声)变化


在这里插入图片描述

  • 动态变化的固定节点组合:Time(定时器节点)* 变量Speed 的 输出结果。
  • UV 位置变化关系固定组合:Tilling And Offset(缩放偏移节点)输入 Offset 信息。


Simple Noise(简易噪声节点) 需要 UV + Scale 两个变量来动态改变生成的噪声图。

  • 变量 Scale:控制噪声图的颗粒密度。
  • UV:控制变化速度
图1 Scale = 200
图2 Scale = 15

3.3 不透明度表现


在这里插入图片描述

控制雪花屏的透明度表现:变量 Alpha * UV 输出值。具体对比如下:

图1 alpha = 1.0
图2 alpha = 0.6
图2 alpha = 0.4
图2 alpha = 0.0

3.4 叠加背景纹理输出(可选)


叠加背景图,一般的为了方便使用 UnityEngine.UI.Image x2 来实现叠加效果。这是最快且迅速的方式。

在这里插入图片描述

如果需要在 Shader Graph 中实现叠加,引入 Blend(混合节点)。该节点将图层叠加输出至 Base Color 中即可。
须注意:应用于 Cavnas 上的纹理图选择 Mode = Screen。其他模式可自探索效果。

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

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

相关文章

图像手动标注-labelme+yolo格式导出

conda环境 运行以下命令来激活你的虚拟环境: conda activate labelme如果你没有创建 labelme 环境,首先需要创建一个环境并安装 labelme: conda create -n labelme python3.8 conda activate labelme conda install -c conda-forge labelm…

有什么办法换网络ip动态

在数字化时代,网络已成为我们生活、工作不可或缺的一部分。然而,随着网络应用的日益广泛,IP地址作为设备在网络中的唯一标识,其重要性不言而喻。动态换IP,作为一种灵活且高效的网络技术,正逐渐受到越来越多…

unity实习生面试

北京教育中厂的成都分部 11.5 时长有28分钟 一面二面合并了 面试官人挺好的,也不是特别急,答的不是很好的问题面试官直接跳过了 顺序不是很统一 只写记得的部分 1.问了值类型和引用类型的区别 2. 问了ugui的组件有哪些 ugui有哪些优化方案 答用打图集…

Spring Boot中集成MyBatis操作数据库详细教程

目录 前言1. 项目依赖配置1.1 引入MyBatis和数据库驱动依赖1.2 数据源配置 2. 创建数据库映射实体类3. 创建Mapper层接口4. 创建Service层4.1 定义Service接口4.2 实现Service接口 5. 创建Controller层6. 运行和测试项目6.1 启动项目6.2 测试接口 7. 总结 前言 在Java开发中&a…

OpenCV相机标定与3D重建(2)鱼眼相机模型

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 鱼眼相机是一种具有非常宽视野的相机,通常会产生强烈的径向畸变。鱼眼相机模型旨在捕捉这种畸变,以便能够准确地处理和校…

Matplotlib 绘图艺术:从新手到高手的全面指南

引言 在数据科学和机器学习领域,数据可视化是一项至关重要的技能。一个优秀的可视化图表可以直观地展示数据的内在规律,帮助我们更好地理解数据,并做出更明智的决策。而在众多的绘图库中,Matplotlib 是 Python 中最强大、最灵活的…

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏 目录 文章目录 【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果代码推荐阅读指数&…

RocketMQ部署教程

拉取 RocketMQ 镜像: 首先,从 Docker Hub 获取最新的 RocketMQ 镜像: docker pull apache/rocketmq:latest创建 Docker 网络: 为了使各容器之间能够通信,创建一个名为 rocketmq 的网络: docker network cre…

ORACLE批量插入更新如何拆分大事务?

拆分大事务 一、批量插入更新二、拆分事务之前文章MYSQL批量插入更新如何拆分大事务?说明了Mysql如何拆分,本篇文章探讨Oracle或OceanBase批量插入更新拆分大事务的问题 一、批量插入更新 oracle批量插入更新可使用merge语法eg: merge test ausing test_tmp bon (a.id = b.id…

鸿蒙next打包流程

目录 下载团结引擎 添加开源鸿蒙打包支持 打包报错 路径问题 安装DevEcoStudio 可以在DevEcoStudio进行打包hap和app 包结构 没法直接用previewer运行 真机运行和测试需要配置签名,DevEcoStudio可以自动配置, 模拟器安装hap提示报错 安装成功,但无法打开 团结1.3版本新增工具…

chatgpt3.5权重参数有多少MB;llama7B权重参数有多少MB

目录 chatgpt3.5权重参数有多少MB llama7B权重参数有多少MB chatgpt3.5权重参数有多少MB 关于ChatGPT 3.5的权重参数占用的存储空间大小,虽然直接给出具体的MB数值可能较为困难(因为这取决于多种因素,如参数表示的精度、是否进行了压缩等),但可以根据其参数量来估算一个…

基于Jeecgboot3.6.3vue3的flowable流程online表单的审批使用介绍

更多技术支持与服务请加入我的知识星球或加我微信,名称:亿事达nbcio技术交流社区https://t.zsxq.com/iPi8F 今天介绍一下基于jeecgboot3.6.3的flowable流程使用online表单进行审批的情况 1、首先建立一个online应用类型的流程,如下: 2、进行…

【LeetCode】【算法】238. 除自身以外数组的乘积

LeetCode 238. 除自身以外数组的乘积 题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位整数范围内。 请不…

如何构建一个可扩展的测试自动化框架?

以下为作者观点: 假设你是测试自动化方面的新手,想参与构建一个框架。在这种情况下,重要的是要了解框架所需的组件,以及它们是如何组合的。思考项目的具体需求和目标,以及可能遇到的困难和挑战。 假如你是一个测试架…

实战:索引的命中机制

在 SQL Server 中,查询是否能命中索引(即是否能使用 Index Seek)取决于多个因素,包括索引的结构、查询条件的排列、和数据库优化器的策略。以下是一些常见的命中索引和不能命中索引的情况,及其详细解释: 一、命中索引的情况 1. 前导列匹配(典型的命中索引场景) 索引结…

使用Docker快速部署FastAPI Web应用

Docker是基于 Linux 内核的cgroup、namespace以及 AUFS 类的Union FS 等技术,对进程进行封装隔离,一种操作系统层面的虚拟化技术。Docker中每个容器都基于镜像Image运行,镜像是容器的只读模板,容器是模板的一个实例。镜像是分层结…

C++【string类,模拟实现string类】

🌟个人主页:落叶 🌟当前专栏: C专栏 目录 为什么学习string类 C语言中的字符串 标准库中的string类 auto和范围for auto关键字 迭代器 范围for string类的常用接口说明和使用 1. string类对象的常见构造 2.string类对象的容量操作 3…

android——jetpack startup初始化框架

一、jetpack startup Android Jetpack Startup是一个库,它简化了Android应用启动过程,尤其是对于那些需要处理复杂数据绑定和初始化逻辑的应用。它的核心在于提供了一个StartupComponent,用于声明应用的初始化逻辑,这个逻辑会在首…

A019基于SpringBoot的校园闲置物品交易系统

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

【赵渝强老师】Redis的RDB数据持久化

Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出会造成服务器中的数据库状态也会消失。所以 Redis 提供了数据持久化功能。Redis支持两种方式的持久化,一种是RDB方式;另一种是AOF(ap…