引擎开发日志:重构骨骼动画系统

我发现一个规律,每经过一段时期,都会觉得之前代码写的像💩。如此以来,周期性修改代码结构成为日常。这次重写动画系统,是为了让它可以兼顾后续的变形动画,布料动画,流体动画等扩展。目前基本完成了骨骼动画的修改。整个系统越来越像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,这是非预期操作。

我在此处展现一下效果,否则寥寥文字,非常无聊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChivenZhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值