使用OpenGL的C ++中的粒子

时间:2012-05-28 05:23:20

标签: c++ opengl particles

我想用OpenGL在C ++中启动基本粒子系统。我为此编写了一个算法,但我不明白如何启动它。

我面临的问题是我可以打印位置和速度更新,但我不知道如何使用OpenGL直观显示它。

1 个答案:

答案 0 :(得分:4)

我希望你在尝试下面的内容:

  • 有一个结构(C ++结构或类)来表示一个粒子。结构包含:

    • 粒子位置(x,y,z)
    • 粒子速度(Vx,Vy,Vz)
    • 粒子加速度(Ax,Ay,Az)//你可能的东西也需要......
    • 用于绘制粒子的绘画功能。
  • 拥有此结构的数组。根据需要初始化速度,位置和加速度。

  • 在单独的线程中(或在重绘事件中,为了启动),请执行以下操作:

    • 对于每个粒子(数组中的元素)执行:

      • particle [index] .velocityX + = particle [index] .accelerationX
      • particle [index] .velocityY + = particle [index] .accelerationY
      • particle [index] .velocityZ + = particle [index] .accelerationZ

      • particle [index] .locationX + = particle [index] .velocityX

      • particle [index] .locationY + = particle [index] .velocityY
      • particle [index] .locationZ + = particle [index] .velocityZ

      //翻译到该位置并绘画..

      • 使用glTranslated(粒子[index] .locationX,粒子[index] .locationY,粒子[index] .locationZ)