【问题标题】:2D Bone system in XNAXNA 中的 2D 骨骼系统
【发布时间】:2022-04-08 20:08:58
【问题描述】:

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

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

我觉得很酷,然后当我看到矩阵只能应用于单个精灵 batch.Begin 调用而不是每次绘制调用时,我感到很沮丧!

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

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

【问题讨论】:

    标签: c# xna


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-15
        • 1970-01-01
        • 1970-01-01
        • 2019-03-12
        • 1970-01-01
        相关资源
        最近更新 更多