我正在尝试用XNA编写一个2D骨骼系统。
我最初的想法是使用矩阵来跟踪骨骼树的旋转和定位,以便可以轻松地显示项目。
我想,这很酷,但当我看到矩阵只能应用于单个精灵batch.Begin调用而不是每次绘制调用时,我会感到沮丧!
我运行了一些性能测试来检查我的沮丧是否被消除了,它是,调用spritebatch.Begin和结束一堆时间下降了我的帧速率一个巨大的(和不可接受的)数量。
因此,在绘制单个骨骼图像之前,我将不得不手动构建它的最终位置和旋转(将来可能还会缩放)。在这种情况下,您还会使用矩阵并在绘制骨骼之前以某种方式提取末尾的信息吗?如果是这样的话,有什么办法可以获得我需要的最终信息吗?或者,尝试从父节点的原始位置和旋转构造它会更容易吗?
提前感谢任何有想法的人。
发布于 2009-03-21 16:38:32
老实说,我会抛弃Sprite渲染对象,切换到屏幕空间四边形。屏幕空间四边形没有人为限制,您可以使用骨骼系统的标准实现:沿树向下遍历应用变换,然后在沿树向上移动时将其弹出。
发布于 2009-03-27 20:05:11
无论如何,当你在2D中工作时,矩阵是不是太夸张了?我的意思是每个矩阵向量乘积有16次标量乘法,当你可以做4次旋转乘法和2次平移求和时?
https://stackoverflow.com/questions/669547
复制相似问题