1

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

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

4

1 回答 1

4

我希望您正在尝试以下内容:

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

    • 粒子位置 (x,y,z)
    • 粒子速度(Vx、Vy、Vz)
    • 粒子加速(Ax,Ay,Az)//你可能也需要的东西..
    • 绘制函数来进行粒子的绘制。
  • 有一个这种结构的数组。根据需要初始化速度、位置和加速度。

  • 在单独的线程中(或在 repaint 事件中,用于启动)执行以下操作:

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

      • 粒子[索引].velocityX += 粒子[索引].accelerationX
      • 粒子[索引].velocityY += 粒子[索引].accelerationY
      • 粒子[索引].velocityZ += 粒子[索引].accelerationZ

      • 粒子[索引].locationX += 粒子[索引].velocityX

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

      //翻译到位置并绘制..

      • 使用 glTranslated(particle[index].locationX,particle[index].locationY,particle[index].locationZ)
于 2012-05-28T05:38:58.910 回答