4

我正在尝试在 XNA 中编写 2D Bone 系统。

我最初的想法是使用矩阵来跟踪骨骼树的旋转和定位,以便轻松显示项目。

我想很酷,然后当我看到矩阵只能应用于单个精灵批次时,我感到沮丧。开始调用而不是每次绘制调用!

我进行了一些性能测试,以检查我的沮丧是否值得,确实是,调用 spritebatch.Begin 和 End 一段时间后,我的帧速率大幅下降(且不可接受)。

因此,在绘制单个骨骼图像之前,我将不得不手动构建它的最终位置和旋转(可能在未来进行缩放)。在这种情况下,您是否仍会使用矩阵并在最后绘制骨骼之前以某种方式提取信息?如果是这样,关于如何获得我需要的最终信息的任何想法?或者尝试从其父节点的原始位置和旋转来构建它会更容易吗?

提前感谢任何有想法的人。

4

2 回答 2

4

老实说,我会放弃 Sprite 渲染对象并切换到屏幕空间四边形。屏幕空间四边形没有人为限制,您可以使用骨骼系统的标准实现:沿树向下移动应用变换,然后在向上移动时弹出它们。

于 2009-03-21T16:38:32.177 回答
0

无论如何,当您在 2D 中工作时,矩阵不是矫枉过正吗?我的意思是当您可以使用 4 次旋转乘法和 2 次平移求和时,每个矩阵向量乘积 16 次标量乘法?

于 2009-03-27T20:05:11.413 回答