2013-05-09 67 views
1

我用點精靈在direct3d9中製作具有動態頂點緩衝區的粒子進行批處理。但我只能以30fps創建2500個粒子。我在互聯網上看到他們可以創造出數以百萬計的微粒。我如何在Direct3D中製作數百萬個粒子?優化的粒子系統Direct3D 9

+0

這100萬個粒子演示通常在CPU上完全計算,而無需從CPU端傳輸任何數據。如果你想計算CPU上的粒子,因此必須將數據發送到GPU,10K粒子是一個正常值。 – Gnietschow 2013-05-10 18:39:16

+0

我如何在GPU中做到這一點? – 2013-05-11 02:13:57

+0

這太複雜了,不能在這裏解釋它,但是在互聯網上有很多來源,它們在那裏被描述,例如, http://www.2ld.de/gdc2004/MegaParticlesPaper.pdf(沒有閱讀它,只挑選了一些隨機鏈接的主題) – Gnietschow 2013-05-11 10:01:05

回答

0

2500粒子非常低。你是用他們自己的Draw(Indexed)Primitive調用來繪製它們嗎?如果是的話,這是做錯事情的錯誤方式。使用DirectX,您希望將您的繪製調用降至最低。你應該用動態頂點緩衝區填充所有的座標位置,然後用一個Draw(Indexed)Primitive調用渲染它們。

+0

我用配料技術繪圖。在一次平局中獲得512分。你能舉個例子嗎? – 2013-05-11 02:14:48

+0

@DilhanGeeth:我真的沒有例子,如何把你的代碼放在一起... – Goz 2013-05-11 06:24:25

+0

http://pastebin.com/t7eVxG9j – 2013-05-12 03:52:44