进击的序列帧 三(额外篇,一篇顶两篇)------- 让你的序列帧没有帧感,如飘柔般丝滑。

2024-08-20 15:58

本文主要是介绍进击的序列帧 三(额外篇,一篇顶两篇)------- 让你的序列帧没有帧感,如飘柔般丝滑。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当不要脸已成习惯,当山峰也没有了棱角,当招人这么困难的时候,我还是在篇头植入的招聘。

坐标山东青岛市北,招聘日系画师,其他岗位目前公司没有说,有意思的可以入群私聊。


然后再说一下QQ群,山东手游研发聚集地335772557,进群先看公告,要是抱着我要学习的心态进群的话,那你就失望了,因为是个死群。

偶尔心情好的是时候会发个技术链接。

接下来进入正题!!

这篇文章我只是写个想法,如果想360度的立体,自己根据思路自己实现一下吧,可以跟帖讨论,反正我的博客也是个坟。


这次本来真的打算写motionvector和序列帧之间的故事。但是这个写起来太多了,一时半会儿写不完,于是乎,就继续写一下第二篇的一个触类旁通吧


自从我的序列帧立体起来了,我又困扰了,不知为啥,人总是这么作践自己。明明是个3D游戏,非得搞个2D的渲染,于是一部旷世奇作就产生了,他就是罪恶装备,其中,对本村线的印象着实深厚。明明是个2D游戏,非得做的像个3D的感觉,于是。。。。。对,于是我也开始作践。。。


这里先不引入motion vector map。只做最简单的linear lerp

lerp的公式大家都明白,lerp(a,b,v) = a*(1-v) + b*v;

很明显的,需要a和b两个color去做lerp。我们要做细腻丝滑的过度,消除帧感的思路就是前后两帧做linear lerp。

所以,我们需要采样下一帧图。

继续修改第一篇的shader

既然index是当前帧的序号,那么index+1不就是下一帧的序号么。。。

那么我们开始写上

Index += 1 ;
float2 ShiftUV2 = float2 (Index, floor (Index/_Param.x))/_Param.xy;
ShiftUV2.y = 1 -ShiftUV2.y;


那么,下一帧的uv也计算好了。

目前lerp的a和b都已经准备完毕了,只剩下v这个融合系数了。

计算V有点懵,咱们先放下这个问题,改成原始的序列帧随时间变化的shader。

只需要把radius修改成_Time.x就可以了。

下面咱们一起来分析一下之前第一篇留下的问题,序列帧的序号是怎么算出来的。

假如咱们的序列帧是8x8的图,这是个大前提,下面举例说明会方便很多。

8x8=64,一共64个小图。

再说一下_Time.x是一直在增长的时间变量。

第一个问题:当前时间下,我的序列帧跑到那个序号了?

floor(64*_Time.x);是这个结果吧。(如果不理解,假设t=0,那么得到的就是0;t=0.1,结果=6;如果t=1,结果=64;t=1.1,结果=70;得到的结果是哪张图?如果不理解的话,请恶补一下uv方面的知识吧还有wrapmode)

64*_Time.x究竟有什么意义。。。其实就是把_Time.x根据图片序列的数量放大了多少倍。

我们再修改一下。

speed = _Time.x*速度;

那么64*speed的意义不就是把速度提升了64倍。

不过说这些都没有什么用。。。

我们回归一下,思考一下。

floor(64*_Time.x )是当前帧,到下一帧floor(64*_Time.x) + 1所用的时间是多少?

_Time.x是个线性增长的值,那么当前帧跟下一帧的时间间隔一直都是一样的,这个时间间隔只与_Time.x的增长速度有关系。

那么,frac(64*_Time.x)是什么意义呢?这是第二个问题

这个问题的意义就这样明确了吧——当前帧跟下一帧的时间间隔;一直都是0-1变化着。

我们所探求的v不就是这个值么。。。














这篇关于进击的序列帧 三(额外篇,一篇顶两篇)------- 让你的序列帧没有帧感,如飘柔般丝滑。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090522

相关文章

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

CSP-J基础之数学基础 初等数论 一篇搞懂(一)

文章目录 前言声明初等数论是什么初等数论历史1. **古代时期**2. **中世纪时期**3. **文艺复兴与近代**4. **现代时期** 整数的整除性约数什么样的整数除什么样的整数才能得到整数?条件:举例说明:一般化: 判断两个数能否被整除 因数与倍数质数与复合数使用开根号法判定质数哥德巴赫猜想最大公因数与辗转相除法计算最大公因数的常用方法:举几个例子:例子 1: 计算 12 和 18

安装SQL2005后SQL Server Management Studio 没有出来的解决方案

一种情况,在安装 sqlServer2005 时 居然出现两个警告: 1 Com+ 目录要求 2 Edition change check 郁闷!网上说出现两个警告,是肯定装不成功的!我抱着侥幸的态度试了下,成功了。 安装成功后,正准备 “ 仅工具、联机丛书和示例(T)” 但是安装不了,他提示我“工作站组件”安装过了对现有组件无法更新或升级。 解决办法: 1 打开“控

CSP-J基础之数学基础 初等数论 一篇搞懂(二)

文章目录 前言算术基本定理简介什么是质数?举个简单例子:重要的结论:算术基本定理公式解释:举例: 算术基本定理的求法如何找出质因数:举个简单的例子: 重要的步骤:C++实现 同余举个例子:同余的性质简介1. 同余的自反性2. 同余的对称性3. 同余的传递性4. 同余的加法性质5. 同余的乘法性质 推论 总结 前言 在计算机科学和数学中,初等数论是一个重要的基础领域,涉及到整数

src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录

(venv) shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddeviceCollecting pyaudioDownloading PyAudio-0.2.14.tar.gz (47 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

html记账本改写:数据重新布局,更好用了,没有localStorage保存版本

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>htm记账本</title><style>table {user-select: none;/* width: 100%; */border-collapse: collapse;}table,th,td {border: 1px solid bla

【Linux】萌新看过来!一篇文章带你走进Linux世界

🚀个人主页:奋斗的小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、初识Linux💥1.1 什么是操作系统?💥1.2 各种操作系统对比💥1.3 现代Linux应用💥1.4 Linux常用版本 💥2、Linux 和 Windows 目录结构对比💥2.1 文件系统组织方式💥2.2

vite是如何实现依赖预构建的,浏览器为什么没有实现从node_modules查找依赖,vite开发环境解决了什么问题

浏览器的esmodule 为什么没有做从node_modules查找依赖项 浏览器是基于http请求的,node_modules中依赖项不可控,可能又会依赖很多的包,整个依赖图都需要加载的话很耗性能。 commonjs是运行在服务端的,以file形式读取文件,内部有规避机制。 依赖预构建 首先vite会找到对应的依赖,然后调用esbuild(对js语法进行处理的一个库),将其他规范的代码转换

AI产品经理:ai产品经理从零基础到精通,非常详细收藏我这一篇就够了

在互联网的浪潮中,AI人工智能领域无疑是最引人注目的风口。AI产品经理,作为这一领域的新兴岗位,以其高薪、低压力、无年龄限制等优势,吸引了众多互联网从业者的目光。随着GPT等AIGC工具的兴起,AI产品经理的市场需求日益增长。 AI产品经理需不需要懂算法?🤔‍‍‍ AI产品经理不必像算法工程师那样精通算法,但必须能够与算法工程师有效沟通,了解如何管理AI项目,协调项目资源。 成功转行AI产

【java 走进NLP】simhash 算法计算两篇文章相似度

python 计算两篇文章的相似度算法simhash见: https://blog.csdn.net/u013421629/article/details/85052915 对长文本 是比较合适的(超过500字以上) 下面贴上java 版本实现: pom.xml 加入依赖 <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</a