【问题标题】:Move a 3D custom geometry: the best way to do it移动 3D 自定义几何体:最好的方法
【发布时间】:2011-03-21 14:23:17
【问题描述】:

我正在使用 XNA 构建一个封装以任意方式定义的自定义几何图形的类。我想要这个几何动作,现在,最好的方法是什么? 使用 Vector3.Translate 方法将所有坐标顶点与平移矩阵相乘是否足够?还是将几何体分配给效果(例如 BasicEffect)然后操作世界矩阵更有效?

谢谢!

【问题讨论】:

    标签: c# optimization 3d xna


    【解决方案1】:

    我现在对 xna 并没有那么深入,但一般来说,谈到 3D 编程,您应该转换世界矩阵以“移动”对象的原点。这将比将所有顶点更新到它们的新坐标要快得多(因为计算可以卸载到显卡上,所以要快得多)。您永远不应该仅仅为了移动东西而修改/更新几何数据。这对于复杂的动画可能没问题,但(在我看来)不适用于单个翻译。

    【讨论】:

    • 也许这是一个愚蠢的问题,但是,如果屏幕上有多个移动对象会发生什么?翻译世界矩阵意味着翻译世界上的所有元素
    • @Archedius 仅当您将其应用于世界上的所有元素时!为您的第一个对象设置它,绘制该对象,为您的第二个对象设置它,绘制等。
    • Archedius:换个方向思考。对你来说听起来更有效率吗?移动顶点、绘制、重置顶点、再次移动它们、再次绘制等等。这也是为什么有多个矩阵(视图、投影和世界)的原因:这样更改单个事物会容易得多,例如对象的位置,而无需更新相机。
    • 安德鲁,谢谢你的回答,现在我的想法已经完全清楚了! :)
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2014-04-29
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    相关资源
    最近更新 更多