当前位置:网站首页>引擎开发日志:重构骨骼动画系统
引擎开发日志:重构骨骼动画系统
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,这是非预期操作。
我在此处展现一下效果,否则寥寥文字,非常无聊。
边栏推荐
- PAT甲级:1020 Tree Traversals
- 连接本地MySql时出现2003-Can‘t connect to MySql server on ‘localhost‘(10061)
- [DS3231 RTC real-time clock module and Arduino interface to build a digital clock]
- 【霍尔效应传感器模块与 Arduino】
- 写博客的原因。
- Website development plan research
- 树莓派入门(1)系统镜像烧录
- How to quickly build your own IoT platform?
- PCIE电路设计
- 物联网方案
猜你喜欢
GM8775C规格书,MIPI转LVDS,MIPI转双路LVDS分享
【心率传感器与Arduino连接读取心率数据】
【Arduino connects SD card module to realize data reading and writing】
【科普贴】SD卡接口协议详解
案例|工业物联网解决方案·智慧钢厂高性能安全数采
ICN6211:MIPI DSI转RGB视频转换芯片方案介绍 看完涨知识了呢
【Arduino使用旋转编码器模块】
Arduino lights up nixie tubes
MIPI解决方案 ICN6202:MIPI DSI转LVDS转换芯片
[Arduino uses a rotary encoder module]
随机推荐
物联网方案
【nRF24L01 connects with Arduino to realize wireless communication】
树莓派入门(1)系统镜像烧录
TimeSformer视频理解框架:视频理解中的Transformer
[Arduino uses a rotary encoder module]
同时求最大值与最小值(看似简单却值得思考~)
Go 程序太大了,能要个延迟初始化不?
USB HUB USB集线器电路设计
野火ISO-V2学习
Typora use
【NTC 热敏电阻与 Arduino 读取温度】
【Arduino connects DHT11 humidity and temperature sensor】
【科普贴】SD卡接口协议详解
树莓派4B打开文件管理时出现闪退
Arduino点亮数码管
【Arduino 连接 SD 卡模块实现数据读写】
【水位传感器与 Arduino 连接测量水位】
2019 - ICCV - 图像修复 Image Inpainting 论文导读《StructureFlow: Image Inpainting via Structure-aware ~~》
ICN6211:MIPI DSI转RGB视频转换芯片方案介绍 看完涨知识了呢
使用Vercel托管自己的网站