C# 二维骨骼系统

C# 二维骨骼系统,c#,xna,C#,Xna,我想用XNA写一个2D骨骼系统 我最初的想法是使用矩阵来跟踪骨骼树的旋转和定位,以便项目可以轻松显示 我觉得很酷,但当我看到矩阵只能应用于单个雪碧批次时,我的脸上突然感到沮丧。开始调用,而不是每次抽签调用 我运行了一些性能测试来检查我的沮丧是否减轻了,是的,我调用了spritebatch.Begin and End一系列的时间会使我的帧速率大幅下降(而且是不可接受的) 因此,在绘制单个骨骼图像之前,我必须手动构建它的最终位置和旋转(将来可能还会缩放)。在这种情况下,您是否仍会使用矩阵,并在绘制骨

我想用XNA写一个2D骨骼系统

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

我觉得很酷,但当我看到矩阵只能应用于单个雪碧批次时,我的脸上突然感到沮丧。开始调用,而不是每次抽签调用

我运行了一些性能测试来检查我的沮丧是否减轻了,是的,我调用了spritebatch.Begin and End一系列的时间会使我的帧速率大幅下降(而且是不可接受的)

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


提前感谢所有有想法的人。

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

在二维中工作时,矩阵不是过度了吗?我的意思是每个矩阵向量积16个标量乘法,当你可以做4个旋转乘法和2个平移求和