学习使用shader制作序列帧的效果的记录。

思路:

1.纹理采样需要映射到每个帧的小格中
//改动顶点的uv坐标
2.获取每个帧小格的纹理范围
// pos0 = float2(1/column,1/row) 即为纹理左下角的一小格范围
// 其余小格的范围 通过pos0.x=第几列x1/column pos0.y=第几行x1/row 即可
3.由于uv是左下角开始的,而序列帧图片一般是从左上角开始,需要对uv.y方向的范围特殊对待。
//所以第二步的 pos0.y = (行数-第几行)x1/row
4.从时间变量中获取循环的行列数。
//allcell = column*row
// time/allcell 时间除以全部格子数 取余数 获取 【0—全部格子-1】的循环数
//上述循环数 / 行数 取整 获得行数
//上述循环数 / 列数 取余 获得列数

5.一个特别的点 上边的循环数 如果不是[0,1,2]这种间断的值,而是0-1连续变化的值,会发现序列帧纹理不是一格一格的变化,而是从第一行从左往右平移效果。

Shader "Mytest/Sequence frame Shader"{Properties{_FrameTexture("FrameTexture",2D)="white"{}_PlaySpeed("PlaySpeed",Range(1,50))=1_HCount("HCount",Float)=8_VCount("VCount",Float)=8}SubShader{Tags{"Queue"="Transparent" "RenderType"="TransParent" "IgnoreProject"="true"}//播放序列帧//将uv映射到采样范围中   [0-1] -->每个单独块的坐标范围//获取每个单独块的坐标范围Pass{Tags{"LightMode"="ForwardBase"}ZWrite OffBlend One OneCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"sampler2D _FrameTexture;float4 _FrameTexture_ST;float _PlaySpeed;float _HCount;float _VCount;struct v2f{float4 pos:SV_POSITION;float2 uv:TEXCOORD0;};v2f vert(appdata_base v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.texcoord,_FrameTexture);return o;}fixed4 frag(v2f i):SV_Target{//小块uv映射 左下角的一格float2 newImageUV = float2(i.uv.x/_VCount,i.uv.y/_HCount);float scal = _HCount * _VCount;//float number = floor(fmod(_Time.y*_PlaySpeed,scal));//[0,1,2,3..,xy-1]float number = fmod(_Time.y*_PlaySpeed,scal);//[0---xy-1]float h = floor(number/_HCount);//行float v = fmod(number,_VCount);//列newImageUV.x = newImageUV.x + 1.0/_VCount*v;newImageUV.y = newImageUV.y + 1.0/_HCount* (_HCount - h);fixed4 color = tex2D(_FrameTexture,newImageUV);return fixed4(color.rgb,1);}ENDCG}}FallBack ""
}

普通的Shader-序列帧相关相关推荐

  1. Unity 代码动态更改SHADER的相关属性(如颜色、SMOOTHNESS、材质……)

    先我们需要明确material里面哪些属性可以通过代码调整,点击material上的齿轮按钮,选择select shader或者edit shader,点击进去注意material的**propert ...

  2. Unity Shader深度相关知识总结与效果实现

    鸣谢:puppet_master (VIA CSDN)贡献此文 前言 前言废话依旧比较多,感觉我是个写游戏体验评测的,233.最近想起了<恶灵附身>这款游戏的几个效果: <恶灵附身& ...

  3. Unity Shader 序列帧动画

    shader中的序列帧动画属于纹理动画中的一种,主要原理是将给定的纹理进行等分,再根据时间的变化循环播放等分中的一部分. Unity Shader 内置时间变量 名称 类型 描述 _Time floa ...

  4. Unity动态(在代码中)更改Shader的相关属性(如颜色、Smoothness、材质……)

    首先我们需要明确material里面哪些属性可以通过代码调整,点击material上的齿轮按钮,选择select shader或者edit shader,点击进去注意material的**proper ...

  5. unity 如何获取到屏幕中间_Unity通用渲染管线Shader日志输出工具

    这是侑虎科技第700篇文章,感谢作者邹春毅供稿.欢迎转发分享,未经作者授权请勿转载.如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨.(QQ群:793972859) 作者主页:https://w ...

  6. 从圆心向外流光的魔法阵shader

    终于实现出美术同事想要的这个效果了: 下面就来讲述我写这个shader的思路. 首先需要一张魔法阵的底图: 用一个平面(Plane)做模型,将底图贴在模型上: 代码如下: Shader "I ...

  7. 【OpenGL】Shader技巧集合

    这篇文章将收集unity中使用shader的相关技巧和特效,会不断地更新内容.关于在Unity中使用shader的介绍,请参考<[OpenGL]使用Unity来学习OpenGL> 常用的内 ...

  8. 【Unity Shader】新书封面 — Low Polygon风格的渲染

    写在前面 最近又开心又担心,因为我的书马上就要上市了,开心当然是因为等了这么久终于可以如愿了,担心是因为不少人对它的期待都很大,我第一次写书,能力也有限,不知道能不能让大家满意,让大家也都喜欢上它.不 ...

  9. SDF 还能这样用?Cocos Creator 基于 SDF 实现多种 Shader 特效

    引言:本文为「Cocos 中文社区第4期征稿活动」参与作品,开发者 muzzik 将和我们分享他所理解的 SDF,运用 SDF 巧妙实现阴影.描边.外发光等效果. SDF 的全称是 Signed Di ...

  10. 修改材质球面板shader属性数值

    Shader 源代码下载: Unity 每次版本更新的时候,不单单会更新 Unity,配套的资源也是会一块更新 的,比如版本配套的 Shader 源代码. 一:下载步骤: 1.打开unity官网将纵向 ...

最新文章

  1. 图灵2010.05书讯
  2. 自动化测试中,测试数据如何管理?
  3. C语言 | 基于51单片机实现MPU6050的卡尔曼滤波算法(代码类1)
  4. 百度数据可视化图表套件echart实战
  5. 【简便解法】1068 万绿丛中一点红 (20分)
  6. <table/>设置列宽度无效的问题
  7. leetcode - 101. 对称二叉树
  8. New StoryBoard in iOS9
  9. springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版)...
  10. 你觉得人生最好的年龄段是哪段时间?
  11. 企鹅手机即将发布,TencentOS会是亮点么?
  12. mine layer(2008 World Final C)
  13. json 文档拆分工具_如何把PDF多页文档拆为单页?快看高手私藏实用的技巧
  14. python幂次_python n次幂
  15. 计算机键盘锁不了怎么办,电脑键盘不能打字_电脑键盘锁住不能打字
  16. mysql查询第10到第20条记录_“取出数据表中第10条到第20条记录”的sql语句+selecttop用法...
  17. 建筑建材行业SaaS多租户用户管理系统:高度整合企业资源,探索数字化转型新路径
  18. EndNote X9插入参考文献的格式
  19. 基于C语言设计的俄罗斯方块小游戏(VS2017运行)
  20. LABVIEW绘制等高线

热门文章

  1. 前端面试宝典总结(一)(搬自牛客)
  2. MicroPython学习笔记(二)操作GPIO和TIMER实现数码管动态显示
  3. 系统重温Pandas笔记:(六)连接
  4. 【十次方】Springboot中使用Redis做缓存
  5. ARFoundation系列讲解 - 63 人脸跟踪四
  6. [读书笔记]《Windows游戏编程之从零开始》(零)
  7. SQLite实现在线电子词典
  8. 【操作系统】Unix文件类型有哪些
  9. 下载——百度文库下载方法
  10. UML 简单易懂 教程