当前位置:网站首页>引擎开发日志:重构骨骼动画系统
引擎开发日志:重构骨骼动画系统
2022-08-02 03:29:00 【ChivenZhang】
我发现一个规律,每经过一段时期,都会觉得之前代码写的像。如此以来,周期性修改代码结构成为日常。这次重写动画系统,是为了让它可以兼顾后续的变形动画,布料动画,流体动画等扩展。目前基本完成了骨骼动画的修改。整个系统越来越像ECS靠近,但是部分结构有别于ECS,可谓具体问题具体分析。
系统运行效果与之前一模一样,但是把窗口由win32换成glfw,另外用glm数学库替换了原先的轮子。这两处更改是有意义的,前者保证了跨平台,后者具备SIMD运算加速的特性。
glm数学库在计算transform时,有处坑需要特别强调,因为花费了我一周时间排查骨骼动画数据。本人原先使用的矩阵库,都是按照Scaling,Rotation,Translate的顺序,进行矩阵右乘。例如函数调用 M=T(R(S)),该变换的结果为 M = Mt * Mr * Ms。这样在变换顶点坐标时,可以把顶点从右至左依次Scale,Rotate,Translate。但是替换为glm后,动画效果严重变形。排查后发现,glm源码里的基本变换都是矩阵左乘,因此导致顶点先被Translate,再被Rotate,这是非预期操作。
我在此处展现一下效果,否则寥寥文字,非常无聊。
边栏推荐
猜你喜欢
随机推荐
Comparative analysis of mobile cloud IoT pre-research and Alibaba Cloud development
【Arduino connects DHT11 humidity and temperature sensor】
【opencv】error: (-215:Assertion failed) ssize.empty() in function ‘cv::resize‘报错原因
I2C无法访问ATEC508A加密芯片问题
Website development plan research
博达工业云与阿里云对比
三相同步发电机的空载短路的simulink仿真
基于阿里云OSS+PicGo的个人图床搭建
【Popular Science Post】UART Interface Communication Protocol
How to quickly build your own IoT platform?
振芯GM7123C:功能RGB转VGA芯片方案简介
SyntaxError: unexpected character after line continuation character
NE5532运放加法器
VCA821可变增益放大器
分布式消息队列平滑迁移技术实战
BSN:Boundary-Sensitive Network for Temporal Action Proposal Generation论文阅读笔记
AD8307对数检波器
【Popular Science Post】Detailed explanation of MDIO interface
MC1496乘法器
USB2.0一致性测试方法_高速示波器