2014-02-22 40 views
0

我打算使用XNA生成由多個組件組成的模型。該模型是在運行時從動態數據創建的。我的模型與樹相似。樹有一個樹幹,分支,樹葉,單元格等。我打算爲每種內容類型創建類,例如樹枝封裝樹葉等等。如何管理複雜對象中的基元?

我的問題是我應該在哪裏管理繪製模型的基元?

選項1)每個對象管理它自己的圖元或圖形對象。繪製樹會先調用tree-> draw,然後調用truck-> draw來調用branches - > draw等等。

選項2)「主」方法會將樹收集原語遍歷到集合中,然後繪製與樹無關的集合。

這兩個選項都有好處,但是它遵循典型的3D圖形體系結構?

在此先感謝。

回答

1

這個問題真的取決於您將用於存儲數據的邏輯方法。如果你的樹有權訪問它的所有孩子,那麼一次調用tree.Draw()方法在邏輯上是正確的,所有後續的繪製方法將根據你的內部邏輯自動調用。

此外,如果您將從單個spritesheet渲染樹紋理(例如,使用延遲渲染和一些(多個)spritesheet(s))多次後續繪製調用),此方法可以提高性能。