当前位置:网站首页>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
}
}
}
边栏推荐
- C--《C和指针》第8章读书笔记之效率问题
- 北京信息科技大学第十三届程序设计竞赛暨ACM选拔赛(重现赛)
- VsCode配置自己喜欢的字体,背景,妈妈再也不担心我写代码枯燥了
- js高级进阶知识
- 在子组件中使用echart视图不刷新的问题
- Flutter TextField边框颜色
- C-关键字之volatile
- C#在控制台应用程序中显示输出字节型数据
- After the sessionStorage value is changed, the value obtained by the page using window.sessionStorage.getItem() will not be updated
- 关于字符串根据字典序排序的方法
猜你喜欢
随机推荐
关于在core中使用minio对象存储
微信小程序 【控制台报错-汇总】
Win10安装 pycocotools
指南针股票软件股票开户安全嘛
Laravel框架之JSON
C#中的&、&&、|、||的区别
MySQL基础知识
C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
C#一些简单的知识
MySQL预处理及过程与对象创建数据库
2020-10-17
C——《C和指针》第六章读书笔记
第七章 数据管理技术的发展
蓝桥杯历届试题-合根植物(并查集)
C#未将对象引用设置到对象的实例
2017年9月历史文章汇总
js实现继承的几种方式
Laravel框架之文件上传
数据机构-哈夫曼树
flutter loading、Progress进度条









