Unity Shader實(shí)現(xiàn)動(dòng)態(tài)過場(chǎng)切換圖片效果
本文實(shí)例為大家分享了Unity Shader實(shí)現(xiàn)動(dòng)態(tài)過場(chǎng)切換圖片的具體代碼,供大家參考,具體內(nèi)容如下
一、簡(jiǎn)單介紹
Shader Language的發(fā)展方向是設(shè)計(jì)出在便攜性方面可以和C++、Java等相比的高級(jí)語言,“賦予程序員靈活而方便的編程方式”,并“盡可能的控制渲染過程”同時(shí)“利用圖形硬件的并行性,提高算法效率”。
本文介紹,如何使用 shader ,動(dòng)態(tài)過場(chǎng)形式切換圖片的一點(diǎn)簡(jiǎn)單效果。
二、實(shí)現(xiàn)原理
1、通過時(shí)間疊加判斷,當(dāng) 值小于 主圖 uv 的時(shí)候,進(jìn)行切換圖的渲染
// 過場(chǎng)切換的位置
float curPos = _Time.y*_Speed;
if(curPos < i.uv.x){
col = tex2D(_CutTex,i.uv);
}
三、注意事項(xiàng)
1、 當(dāng)小于 x,渲染_CutTex(開始都是小于 x的,開始渲染_CutTex), 隨著時(shí)間變化,切換為 _MainTex
四、效果預(yù)覽

五、實(shí)現(xiàn)步驟
1、打開Unity,新建一個(gè)工程

2、導(dǎo)入素材,和新建shader,并對(duì)應(yīng)新建材質(zhì)

3、編寫好shader,把材質(zhì)對(duì)應(yīng)賦值

4、場(chǎng)景中添加一個(gè) Quad ,并把材質(zhì)賦給Quad,用來顯示

5、運(yùn)行場(chǎng)景,效果如上

六、關(guān)鍵代碼
Shader "Unlit/CutEffect"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_CutTex("Cut Tex",2D)="white"{}
// 切換速度
_Speed("speed",Range(-1,1))=0.2
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _CutTex;
float _Speed;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 col = tex2D(_MainTex,i.uv);
// 過場(chǎng)切換的位置
float curPos = _Time.y*_Speed;
// 當(dāng)小于 x,渲染_CutTex(開始都是小于 x的,開始渲染_CutTex),
// 隨著事件變化,切換為 _MainTex
if(curPos < i.uv.x){
col = tex2D(_CutTex,i.uv);
}
return col;
}
ENDCG
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#使用OpenCvSharp實(shí)現(xiàn)透視變換功能
這篇文章主要為大家詳細(xì)介紹了C#如何使用OpenCvSharp實(shí)現(xiàn)透視變換的功能,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,需要的小伙伴可以參考下2023-11-11
c#基于NVelocity實(shí)現(xiàn)代碼生成
這篇文章主要介紹了c#基于NVelocity實(shí)現(xiàn)代碼生成的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-01-01
WPF實(shí)現(xiàn)動(dòng)畫效果(四)之緩動(dòng)函數(shù)
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫效果之緩動(dòng)函數(shù),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
C#中如何自定義配置上周和本周起始日來查詢業(yè)務(wù)數(shù)據(jù)(思路詳解)
在C#中并沒有封裝的方法根據(jù)我們需要來直接獲取上一周某天到某天、本周某天到某天,所以需要我們自己封裝方法來實(shí)現(xiàn)(我們也可以按照這個(gè)思路使用其他語言來實(shí)現(xiàn)),感興趣的朋友跟隨小編一起看看吧2023-09-09
C#異步綁定數(shù)據(jù)實(shí)現(xiàn)方法
這篇文章主要介紹了C#異步綁定數(shù)據(jù)實(shí)現(xiàn)方法,實(shí)例分析了C#操作數(shù)據(jù)庫及異步綁定的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09

