2010-07-30 53 views

回答

2

你有多種選擇在XNA修改頂點緩衝區的內容:

  • VertexBufferSetData成員。在任何情況下,您只能在Draw之外安全地使用此項目,您可以激活Predicated Tiling(因此最好總是在Draw之外完成)。

  • DynamicVertexBuffer就像VertexBuffer,但設置其內容時速度更快。但是它很容易丟失圖形設備,並且必須處理這種情況。另請看SetDataOptions

  • DrawUserPrimitives(和indexed版本)。這具有不影響Predicated Tiling的優點,並且不會導致命令緩衝區對少量基元進行刷新。

有關MSDN約Dynamically Updating Vertices的詳細信息。而XNA論壇上的this thread也值得一讀。

+0

非常感謝。這是很多很好的信息。還有一個問題:在Draw之外的VertexBuffer上調用SetData總是安全的嗎? – blachniet 2010-07-30 15:38:09

+1

@blachniet:是的(實際上它是一個命令緩衝區,但是,是的,在簡單情況下,在Draw之外)。您聽起來像是來自DirectX背景:如果需要絕對確定XNA在後臺執行的操作,則始終可以通過PIX運行您的遊戲。 – 2010-07-30 15:58:10

相關問題