Shader序列帧动画——UnityShader学习笔记复习
文章目录
- 自言自语
- 序列帧图为网上找来的
- 效果转成GIF如下
- 另一个严格一点的切图
- 效果
- shader部分
自言自语
之前有学习过 可是后边忘记了
今天复习 发现当初理解的有一些问题今天就边写边尝试自己理解并注释
可是还有很多地方不明白 一并写在注释里了 有大佬能浅显通俗的帮我答疑解惑么。3D美术在TA路上艰难爬行的时候 也会非常感谢您的不吝赐教的 谢谢
序列帧图为网上找来的
效果转成GIF如下
他这个图并不是很严格的切图 所以会有点偏差哈
另一个严格一点的切图
天之痕小雪 也百度来的
效果
shader部分
Shader "TNShaderPractise/ShaderReview_AnimationTexture_035"
{Properties{_MainTex ("Texture", 2D) = "white" {}//行数Row 从上到下数 本示例图中为3行_Row("Row",float)=3.0//列数Column 从左到右数 本示例图中为5列_Column("Column",float) =5.0_TimeSpeed ("Speed",float) =1.0}SubShader{Tags { "RenderType"="Opaque" }Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct a2v{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 pos : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;float _Row;float _Column;float _TimeSpeed;//例行公事的定点着色器v2f vert (a2v v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);return o;}//计算都放在片元着色器上fixed4 frag (v2f i) : SV_Target{//先对时间取整数 得到整数上的时间 我个人理解为时间一直在流逝乘以速度后得到一个总量 //这个总量去除以相应的行和列的等分 会构成一个行列读取循环 不知道理解的对不对 不是很明白float Time = floor(_Time.y*_TimeSpeed);//时间除以列数 也就是水平方向上平分求得 N列个等分 比如图中是5列 则水平方向上5等分 对其取整 得到 行索引 为5 float rowLine = floor(Time/_Column);//然后其余数就是 列索引 应该为3 用被除数 - 行索引5*列数为5 就得到列索引3个 (冯乐乐女神书上写的行列应该是颠来倒去的,我个人看着难受按照自己理解掰过来)//不过还是没能明白为啥取余就是列索引 求大神浅显明了极其通俗的解我疑惑float columnLine = Time-rowLine*_Column;//然后先把图中X轴向等分 因为本示例有5列,所以水平轴应该是被5等分 因此除以列数Column 冯女神书上写的除以行数难以理解//同理Y轴等分 是竖直方向上的 应该用行数3行 等分成3份 所以除以行数Row//然后分别用行列索引除以行列数量得到当前图像所在的XY坐标范围 去做偏移//需要注意的是做Y方向上偏移时用减法 因为坐标计算是从下方开始向上递增 而贴图往往是从上到下递增half2 uv = float2 (i.uv.x/_Column+columnLine/_Column,i.uv.y/_Row-rowLine/_Row);/上面的长式子拆分下就是下面的式子 再单独注释方便理解然后先把图中X轴向等分 因为本示例有5列,所以水平轴应该是被5等分 因此除以列数Column 冯女神书上写的除以行数难以理解同理Y轴等分 是竖直方向上的 应该用行数3行 等分成3份 所以除以行数Row//half2 uv = float2 (i.uv.x/_Column,i.uv.y/_Row);然后分别用行列索引除以行列数量得到当前图像所在的XY坐标范围 去做偏移//uv.x += columnLine/_Column;需要注意的是做Y方向上偏移时用减法 因为坐标计算是从下方开始向上递增 而贴图往往是从上到下递增//uv.y -= rowLine/_Row;把上面拆分的式子再做个整合 就是冯乐乐女神书里写的那样了 只是我的行和列和她的不同但是这么整合写 反而不好理解 我就直接写一行了同样的我和她理解的行列正好相反//half2 uv = i.uv + float2 (columnLine, rowLine);//uv.x /= _Column;//uv.y /= _Row ;fixed4 col = tex2D(_MainTex, uv);return col;}ENDCG}}FallBack "VertexLit"
}
总之就是 计算过程中的很多还是没理解 还望大佬们赐教
Shader序列帧动画——UnityShader学习笔记复习相关推荐
- Unity-shader学习笔记(七)
文章目录 Unity-shader学习笔记(七) 15 更复杂的光照 15.1 Unity的渲染路径 15.1.1 前向渲染路径 15.1.1.1 前向渲染路径的原理 15.1.1.2 Unity中的 ...
- UnityShader学习笔记:Caustic水纹焦散与鱼群制作水族馆
UnityShader学习笔记:Caustic水纹焦散 贴图 代码部分 关于聚散色彩分离的疑惑 鱼群动画 本文教程原地址:https://www.alanzucconi.com/2019/09/13/ ...
- Unity动画状态机学习笔记
Unity动画状态机学习笔记 一.建平面,拖人物模型.建状态机.动画导入.拖组件--实现Game时人物动画为等待状态. 二.拖WAIT01.WAIT02.WAIT03.WAIT04--实现按数字1切换 ...
- Unity Shader 序列帧动画
shader中的序列帧动画属于纹理动画中的一种,主要原理是将给定的纹理进行等分,再根据时间的变化循环播放等分中的一部分. Unity Shader 内置时间变量 名称 类型 描述 _Time floa ...
- 带顶点动画的护盾效果——UnityShader学习笔记
文章目录 自言自语 一.效果 二.C# 三.Shader 总结 自言自语 最近又是很久没有更新笔记了.原因有二. 一.最近一直再啃一个看起来酷炫的护盾效果 啃了好久啊.直至效果满意 也理解了. 这个是 ...
- 模板测试+一个好玩的顶点动画效果——UnityShader学习笔记
文章目录 一.自言自语 效果 模板测试效果(图传错了就懒得继续换了) 模板测试代码 顶点动画面板 顶点动画效果 顶点动画shader代码 总结 一.自言自语 嗯,又是很久没写笔记了.学习的进度和效率没 ...
- 消散效果shader实践含clip阴影pass——UnityShader学习笔记
文章目录 自言自语 一.效果部分 二.Shader部分 总结 自言自语 消融效果shader学习练习笔记 没啥可说得了 写完看不见模型了 ORZ 然后晚上回来把绕不明白的几个函数给绕明白了...再加上 ...
- 方块粒子动画效果——UnityShader学习笔记
文章目录 自言自语 一.效果和面板 二.Shader 总结 自言自语 很早以前学B站一个UP主的东西.今天突然想起来.果然发现看不懂了.不理解了.然后自己又啃了一遍.总算理解了.并且发现了一些不合适的 ...
- 玉石效果?——UnityShader学习笔记
文章目录 自言自语 一.效果 第一版效果 第二版效果 二.Shder 总结 自言自语 shader的能做的效果太多,又学习一种方法做了个效果.但总感觉不是那么回事儿.. 先笔记下吧 又更新了一下 调整 ...
- Unity3D之Mecanim动画系统学习笔记(五):Animator Controller
简介 Animator Controller在Unity中是作为一种单独的配置文件存在的文件类型,其后缀为controller,Animator Controller包含了以下几种功能: 可以对多个动 ...
最新文章
- [CPP]--Unicode 字符编码
- 天玥运维安全网关默认密码_Soul网关发布全新架构V2.2.0,让高性能网关变得如此简单
- ModuleNotFoundError: No module named 'distutils.core'
- echart中拆线点的偏移_Qt中圆弧和扇形的绘制
- linux下unix timestamp 与 可视化时间/常规时间进行转换
- java.sql.SQLException: 关闭的连接 解决办法
- android实现超酷的腾讯视频首页和垂直水平网格瀑布流一揽子效果
- 小米申请雷军签名商标获批
- make条件判断ifeq,ifneq,ifdef,ifndef
- android 播放多个声音小,手机音量调最大,外播声音却还是很小?可能是你没打开这两个设置...
- 半导体中的电子运动 有效质量
- 《德鲁克管理思想精要》读书笔记11 - 管理你的下半生
- Graph WaveNet:用于时空图建模的图神经网络结构
- 花与剑尚未获取服务器信息,花与剑澄心无忆攻略,触发条件及完成方式介绍
- ARP 地址解析协议 IP地址到MAC地址的转换过程
- 艾美捷人重组MEGACD40L蛋白(可溶性)实例展示
- V2新品来袭 | 简约之选 无限可能
- 使用tensorflow2.1.0+Anaconda3(python3.7.4)从制作自己的TFRrecord数据集到训练神经网络,再到载入模型进行推断
- 拷机测试需要多久_【温馨提示】亚马逊卖家警惕!没有UL测试报告产品将会被下架...
- Sharestation 工作站GPU虚拟化,实现共享GPU办公