URP - 序列圖動畫的實現

效果:

【太妃糖耶】更新了一條視頻,快來圍觀!

序列圖動畫的實現

首先先了解下序列圖樣式的紋理圖片

如上圖一可在Shader中使用該圖片制作燃燒的火的動畫,但是如何實現呢?接下來一起來看一下吧

序列圖動畫的實現原理大概是順序采樣序列圖紋理中的每一個小格子塊,從最上方的左邊開始一直到最右邊然后再繼續下一行的采樣,從而形成動畫效果

所以序列圖動畫的實現分為兩個步驟:

1.首先采樣最上方左側小格子中的紋理

2.完成UV的走格,通過變化的UV來采樣對應的格子塊從而形成動畫效果


第一步:采樣最上方左側小格子中的紋理

o.uv = float2(v.uv.x/_Column,v.uv.y/_Row+1/_Row*(_Row-1));

其中_Row代表行數,_Column代表列數 (兩者必須為float類型)

上面的代碼相當于? ?v.uv.x=v.uv.x/_Column;? ? ? ?v.uv.y=v.uv.y/_Row+1/_Row*(_Row-1);

?v.uv.x=v.uv.x/_Column; 用原UV中U方向的值除以列數,得到新的U方向上的值(如果列數為3,U方向上的值則為(0,0.333))

v.uv.y=v.uv.y/_Row+1/_Row*(_Row-1); 用原UV中V方向的值除以行數,表示一個小格子中U方向的值。再加上1/_Row*(_Row-1)代表將U方向的值移動到原UV中V方向的最上側。

第二步:完成UV走格,通過變化的UV來采樣對應的格子塊從而形成動畫效果

首先我們可以用o.uv.x+=_Time.y;來看一下效果(可見不是我們想要的走格的效果)

  • U方向的走格:?

o.uv.x += frac(floor(_Time.y*_Column*_Speed)/_Column);

floor(_Time.y*_Column)/_Column : 實現一秒之內完成一行的走格

  • V方向的走格:?

?o.uv.y - = frac(floor(_Time.y*_Speed)/_Row);

floor(_Time.y)/_Row : 每秒向下偏移一格(用減法實現向下偏移)

?frac取小數的作用是優化紋理采樣,使得采樣紋理的UV在0-1的范圍內


?實現透貼效果

Tags{"Queue"="Transparent"}

當序列圖為透貼格式時,使用 Blend SrcAlpha OneMinusSrcAlpha 來實現背景透明

還可以在片元著色器中使用 c.rgb *= c.a;?, 透明區域的a通道中的值為0,所以此時透明背景就變為黑色,所以要配合 Blend One One 來使用

若序列圖的背景是黑色時,可以使用 Blend One One?

綜上所述,可以使用?c.rgb *= c.a?和?Blend One One 共同實現透貼圖片和黑底圖片的半透明效果

Shader"unity/UV"
{Properties{[NoScaleOffset]_MainTex("MainTex",2D)="white"{}_Row("Row",float)=1_Column("Column",float)=1_Speed("Speed",float)=3[Enum(Billaboard,1,VerticalBillaboard,0)]_BillaboardType("BillaboardType",int)=1}SubShader{Tags{"RenderPipeline"="UniversalPipeline""Queue"="Transparent"}//常用于透貼// Blend SrcAlpha OneMinusSrcAlpha//用于黑底圖片Blend One OnePass{HLSLPROGRAM#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"#pragma vertex vert#pragma fragment fragTEXTURE2D(_MainTex);float4 _MainTex_ST;#define sampler_MainTex samplerState_Linear_RepeatSAMPLER(sampler_MainTex);CBUFFER_START(UnityPerMaterial)float _Row,_Column,_Speed;int _BillaboardType;CBUFFER_ENDstruct Attributes{float4 positionOS : POSITION;float2 uv : TEXCOORD;};struct Varyings{float4 positionCS : SV_POSITION;float2 uv : TEXCOORD;};Varyings vert(Attributes v){Varyings o = (Varyings)0;o.positionCS = TransformObjectToHClip(v.positionOS);o.uv = TRANSFORM_TEX(v.uv,_MainTex);//序列圖動畫的起始位置o.uv = float2(v.uv.x/_Column,v.uv.y/_Row+1/_Row*(_Row-1));//frac取小數的作用是優化紋理采樣,使得采樣紋理的UV在0-1的范圍內//U方向上的走格 floor(_Time.y*_Column)/_Column代表一秒鐘走完一行中的所以列的格子o.uv.x+=frac(floor(_Time.y*_Column*_Speed)/_Column);//V方向上的走格 floor(_Time.y)/_Row 代表每一秒走一行o.uv.y-=frac(floor(_Time.y*_Speed)/_Row);return o;}float4 frag(Varyings i):SV_Target{float4 c;float4 mainTex = SAMPLE_TEXTURE2D(_MainTex,sampler_MainTex,i.uv);c=mainTex;//用于透貼圖片消除Alpah為0的區域 Alpha=1為不透明,Alpha=0為透明c.rgb*=c.a;return c;}ENDHLSL}}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79122.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79122.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79122.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python中 str.strip() 是什么意思

在 Python 中,str.strip() 是字符串(str)類型的一個方法,用于移除字符串兩端的空白字符(默認情況下)或指定字符,并返回處理后的新字符串。 語法: str.strip([chars])chars&#xf…

記錄idea可以運行但是maven install打包卻找不到問題

解決idea使?maven多模塊install報依賴模塊的包找不到的問題 如果被依賴項?是springboot項?,那么可以把相關的springboot的東西移除掉,改造成普通項?。如果不想改造項?,那就添加部分的配置,因為springboot項?打包的時候會?…

uniapp如何獲取安卓原生的Intent對象

通過第三方app喚起,并且獲取第三方app喚起時攜帶的參數 因為應用a喚起應用b時,應用b第一時間就要拿到參數token,所以需要將獲取參數的方法寫在APP.vue中的onLaunch鉤子里,如果其他地方要用可以選擇vuex或者采用本地緩存。 uniapp中plus.run…

《多端統一的終極答案:X5內核增強版的渲染優化全解析》

跨端應用的需求呈爆發式增長,無論是電商購物、社交互動,還是金融理財類應用,都期望能夠在不同平臺上為用戶提供一致且流暢的體驗。而在這一過程中,跨端渲染技術成為了關鍵瓶頸。騰訊X5內核增強版的出現,猶如一道曙光&a…

深入理解算力:從普通電腦到宏觀計算世界

在科技飛速發展的當下,“算力” 一詞頻繁出現在我們的視野中,無論是前沿的人工智能領域,還是新興的區塊鏈世界,算力都扮演著至關重要的角色。但對于大多數普通人來說,算力仿佛是一個既熟悉又陌生的概念。今天&#xff…

Paramiko復用 Transport 連接解析

1. 什么是 Transport 連接? 在 Paramiko 中,Transport 是負責底層 SSH 協議通信的核心類,它封裝了以下功能: 加密通信:處理 SSH 協議的加密和解密。會話管理:維護與遠程服務器的 TCP 連接。多路復用&…

sd webui 安裝插件sd-webui-EasyPhoto依賴安裝失敗解決辦法

在最新版的SD webui中,可以安裝easyphoto插件,官方建議通過github安裝,對無法科學上網的用戶很不友好。對我自己來說是通過地址: https://gitee.com/wowai/sd-webui-EasyPhoto.git 分支:anyid 點擊安裝即可。 在安裝…

WEBSTORM前端 —— 第2章:CSS —— 第3節:背景屬性與顯示模式

目錄 1.Emmet寫法 2.背景屬性 (1) background-color (2) background-image (3) background-repeat (4)background-position (5)background-size &…

【android bluetooth 協議分析 01】【HCI 層介紹 2】【Malformed Packet 介紹】

在實際工作中遇到了 malformed packet , 我這里來分析一下。 遇到這種問題的處理思路。 1. Malformed packet 36982 2025-04-29 14:15:34.899760 controller host HCI_EVT 4 Rcvd Role Change[Malformed Packet]Frame 36982: 4 bytes on wire (32 bits), 4 bytes captured (32…

【視頻生成模型】通義萬相Wan2.1模型本地部署和LoRA微調

目錄 1 簡介2 本地部署2.1 配置環境2.2 下載模型 3 文生視頻3.1 運行命令3.2 生成結果 4 圖生視頻4.1 運行命令4.2 生成結果 5 首尾幀生成視頻5.1 運行命令5.2 生成結果 6 提示詞擴展7 LoRA微調 1 簡介 通義萬相 2.1 在 2025 年 1 月推出,2 月 25 日阿里巴巴宣布全…

模式識別的基本概念與理論體系

前面在討論專家系統時曾經說過,為了使計算機具有自動獲取知識的能力,除了應使它具有學習能力外,還應使它具有能識別諸如文字、圖形、圖象、聲音等的能力,計算機的這種識別能力是模式識別研究的主要內容。當然,模式識別…

樹的序列化 - 學習筆記

樹的序列化可以有很多種類:可以變成 dfs 序,可以變成歐拉序,還有什么括號序的科技。 但是除了第一個以外其他的都沒什么用(要么也可以被已有的算法給替代掉)。所以表面上是講樹的序列化,實際上還是講的 df…

KBEngine 源代碼分析(三):組網邏輯

machine 服務 machine 服務是 KBEngine 用來做服務治理的 每個節點上都需要部署 machine 服務 machine 服務使用 UDP 進行通信 服務發現的方法是其他服務使用 UDP 廣播的方式,通知所有 machine 服務 machine 服務啟動初始化 mahcine 服務初始化過程,主要做了監聽 UDP 端…

git 怎樣把本地倉庫推送到新建的遠程倉庫

將本地 Git 倉庫推送到一個新的遠程倉庫是一個常見的操作。以下是詳細的步驟: 步驟 1: 創建一個新的遠程倉庫 首先,你需要在 GitHub、GitLab 或其他代碼托管平臺上創建一個新的遠程倉庫。 例如,在 GitHub 上創建一個新倉庫: 登…

SPSS PCA+判別分析

1, 主成分分析PCA 我們只要對數化的變量數據: (1)對數據進行標準化處理: 選擇【分析】—【描述統計】—【描述】 添加要標準化的變量,勾選【將標準化值另存為變量(Z)】,再點確定 SPSS軟件本身不…

XWPFDocument生成word文檔介紹(格式 .docx)

以下是針對 XWPFDocument 的詳細解析,涵蓋其核心功能、常見用法及實際開發中的關鍵點: XWPFDocument 1. XWPFDocument 簡介2. 核心結構與類3. 核心操作詳解**3.1 段落與文本****3.2 表格操作****3.3 列表與編號****3.4 圖片插入** 4. 高級功能**4.1 頁眉…

crashpad 編譯

一環境配置 1.1設置系統UTF8編碼 1.2vs2017語言環境設置英文包 二.獲取depot_tools(此步驟可以跳過 最新工具包已上傳下載使用即可) windows下載壓縮包,然后放到系統PATH中 下載完以后,基本就是靠depot_tools這個工具集合了&am…

基于標注數據的情感分析模型研究

標題:基于標注數據的情感分析模型研究 內容:1.摘要 隨著互聯網的快速發展,大量文本數據蘊含著豐富的情感信息,對其進行情感分析具有重要的商業和社會價值。本研究的目的是構建基于標注數據的情感分析模型,以準確識別文本中的情感傾向。方法上…

【數據鏈路層深度解析】從幀結構到協議實現

目錄 一、數據鏈路層核心定位1.1 OSI模型中的位置1.2 三大核心職責 二、幀結構詳解2.1 以太網幀標準格式(IEEE 802.3)2.2 幀封裝代碼示例 三、核心協議機制3.1 MAC地址體系3.2 介質訪問控制CSMA/CD(以太網沖突檢測)現代交換機的演…

在若依前后端分離項目中集成 ONLYOFFICE 以實現在線預覽、編輯和協作功能

在若依前后端分離項目中集成 ONLYOFFICE 以實現在線預覽、編輯和協作功能 概述 ONLYOFFICE 是一款開源的在線文檔編輯套件,可實現文檔預覽、編輯、協作與轉換等功能,可通過 Docker 部署 DocumentServer 服務,并通過 HTTP API 或 WOPI 接口與…