如何管理复杂对象中的基元



我打算使用 XNA 生成一个由多个组件组成的模型。 模型是在运行时从动态数据创建的。 我的模型类似于一棵树。 这棵树有树干、树枝、叶子、细胞等。 我计划为每种内容类型创建类,例如封装叶子等的分支。

我的问题是我应该在哪里管理用于绘制模型的基元?

选项 1)每个对象都管理自己的基元或图形对象。 绘制树将从调用树>绘制开始,这将调用卡车>绘制,这将调用分支>绘制等。

选项 2)"master"方法将遍历树,将收集基元到集合中,然后独立于树绘制集合。

这两种选择都有好处,但哪个遵循 3D 图形的典型架构?

提前谢谢。

这个问题实际上取决于用于存储数据的逻辑方法。如果您的树可以访问其所有子树,那么调用一次 tree.Draw() 方法在逻辑上是正确的,并且所有后续的 draw 方法都将根据您的内部逻辑自动调用。

此外,如果您将从单个spritesheet渲染树纹理(例如,使用延迟渲染和一些精灵表进行许多后续绘制调用),则此方法可以提高性能效率。

相关内容

  • 没有找到相关文章

最新更新