移动 3D 自定义几何体:最佳方法
我正在使用 XNA 构建一个类,该类封装以任意方式定义的自定义几何图形。我想要这个几何移动,现在最好的方法是什么? 使用 Vector3.Translate 方法引入所有坐标顶点并将它们与平移矩阵相乘是否足够?或者将几何图形分配给效果(例如BasicEffect)然后操纵世界矩阵是否更有效?
谢谢!
I'm building with XNA a class that encapsulate a custom geometry defined in a arbitrary way. I want to this geometry moves, now, what is the best way to do it?
Is it enough bring all coordinates vertices and multiply them with the translate matrix using Vector3.Translate method? Or is it more efficient assign a geometry to an Effect (say BasicEffect) and then manipulate the world matrix?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我现在对 xna 的了解还不是很深,但一般来说,谈到 3D 编程,您应该转换世界矩阵以“移动”对象的原点。这比将所有顶点更新到新坐标要快得多(因为计算可以卸载到显卡上,所以快得多)。你永远不应该仅仅为了移动东西而修改/更新几何数据。这对于复杂的动画可能没问题,但(在我看来)不适用于单一翻译。
I'm not that deep into xna right now, but speaking of 3D programming in general you should transform the world matrix to "move" the object's origin. This will be a lot faster than updating all vertices to their new coordinates (a LOT faster as the calculation can be offloaded to the graphics card). You should never modify/update geometry data just to move stuff around. This might be okay for complex animations, but (in my opinion) not for single translations.