当前位置:网站首页>Shader实现帧动画-FrameAnimation
Shader实现帧动画-FrameAnimation
2022-08-09 00:08:00 【ThomasQxx】
Shader "QShader/FrameAmination_One"{
Properties{
_MainTex("Animation Texture",2D) = "white"{
}
_BaseColor("BaseColor",Color) = (1.0,1.0,1.0,1.0)
_XCount("XCount",Int) = 1
_YCount("YCount",Int) = 1
_Speed("Speed",Range(1,100)) = 30
}
SubShader{
Tags{
"Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent"}
pass {
Tags{
"LightMode" = "Always"}
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#include "Lighting.cginc"
#include "UnityCG.cginc"
#include "AutoLight.cginc"
#pragma vertex Vertex
#pragma fragment Fragment
sampler2D _MainTex;
fixed4 _BaseColor;
int _XCount;
int _YCount;
float _Speed;
struct v2f {
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
};
v2f Vertex(appdata_base v) {
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = v.texcoord;
return o;
}
fixed4 Fragment(v2f i) :SV_TARGET{
//Speed来控制速度
//_Time.y = 自该场景加载后经过的时间
float time = floor(_Time.y * _Speed);
float ypos = floor(time / _XCount);
float xpos = time - ypos * _XCount;
i.uv.x = (i.uv.x + xpos) / _XCount;
i.uv.y = 1 - (ypos + 1 - i.uv.y) / _YCount;
fixed4 c = tex2D(_MainTex,i.uv);
return c * _BaseColor;
}
ENDCG
}
}
}
边栏推荐
猜你喜欢
随机推荐
NOR flash和NAND flash的区别
解决8080端口被占用问题
WeChat applet console error - summary 】 【
IDEA常用插件及代快捷键模板整理
C#中的&、&&、|、||的区别
pytorch 使用torch.autograd.grad 求导
第二章 网络应用
对于js中apply和call的区别和用法
穿越派(v3.14)版本可以试用啦!
Canvas绘图基础知识
SyntaxError line:3546,column:96577,SyntaxError: Unexpected token '...'. Expected a property name.
JS基础-数组
GRPC学习(An RPC library and framework)
C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
一种新的测转速的方法
如何快速简单的设置你的vscode背景图
工作中经常遇到的232、485、TTL信号
Task19_14_最长公共前缀
面试题--数据库事务四大特性及事务的隔离级别
[深度学习] - 网络模型训练过程的 loss 变化分析 (loss / val_loss / test_loss)