2012-05-28 27 views
1

我想使用OpenGL在C++中啓動基本粒子系統。我爲此寫了一個算法,但我不明白如何啓動它。使用OpenGL的C++中的粒子

我面臨的問題是我可以打印位置和速度更新,但我不知道如何使用OpenGL直觀地顯示它。

+0

你嘗試過在對所有的顆粒,每個位置抽選四? –

+0

使用點精靈:http://www.informit.com/articles/article.aspx?p=770639&seqNum=7 – fen

回答

4

我希望你嘗試的東西在下面什麼線:

  • 有一個結構(C++結構或類)來表示一個粒子。該結構包含:

    • 粒子位置(X,Y,Z)
    • 粒子速度(Vx的,VY,1/2)
    • 粒子加速器(AX,AY,AZ)//東西,你威力需要太多..
    • 繪畫功能來做繪畫的粒子。
  • 擁有這種結構的數組。根據需要初始化速度,位置和加速度。

  • 在一個單獨的線程(或在重畫事件,用於啓動)執行以下操作:

    • 對於每一個粒子(數組中元素)做:

      • 粒子[ index] .velocityX + = particle [index] .acceleration X
      • particle [index] .velocityY + = particle [index] .accelerationY
      • particle [index] .ve locityZ + =粒子[指數] .accelerationZ

      • 粒子[指數] .locationX + =粒子[指數] .velocityX

      • 粒子[指數] .locationY + =粒子[指數] .velocityY
      • 粒子[索引] .locationZ + =粒子[指數] .velocityZ

      //轉換爲位置和油漆..

      • 使用glTranslated(顆粒[指數] .locationX,particl E [指數] .locationY,粒子[指數] .locationZ)
+0

嗨,大家好,任何人都可以給我例子基本粒子系統使用openGL,或任何鏈接... – Kalyan

+1

Umm ,我已經放在上面的子彈幾乎足以實現一個基本的粒子系統,IMO。向我們展示你所嘗試過的,可能是我們可以幫助的。如果你需要一個代碼來啓動你,谷歌爲它;我相信你最終會得到1000個。 :) – SuperSaiyan