当前位置:网站首页>引擎开发日志:重构骨骼动画系统
引擎开发日志:重构骨骼动画系统
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,这是非预期操作。
我在此处展现一下效果,否则寥寥文字,非常无聊。
边栏推荐
猜你喜欢
随机推荐
最第k大的数的一般性问题
Vision Transformer(ViT)论文精读和Pytorch实现代码解析
Modify hosts file using batch script
Transformer结构解析及常见问题
【NTC 热敏电阻与 Arduino 读取温度】
uniCloud use
从Attention到Self-Attention和Multi-Head Attention
n皇后问题(回溯法)
单火线开关设计详解
火焰传感器与 Arduino 连接
USB3.0一致性测试方法
哈工大2021机器学习期末考试题
目标检测(一):R-CNN系列
PCIE电路设计
[Popular Science Post] I2C Communication Protocol Detailed Explanation - Partial Software Analysis and Logic Analyzer Example Analysis
Website development plan research
GM8775C规格书,MIPI转LVDS,MIPI转双路LVDS分享
Type c PD 电路设计
【plang 1.4.6】Plang高级编程语言(发布)
【Arduino 连接GP2Y1014AU0F 灰尘传感器】