【问题标题】:Particles in C++ using OpenGL使用 OpenGL 的 C++ 中的粒子
【发布时间】:2012-05-28 05:23:19
【问题描述】:

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

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

【问题讨论】:

标签: c++ opengl particles


【解决方案1】:

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

  • 有一个结构(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(particle[index].locationX,particle[index].locationY,particle[index].locationZ)

【讨论】:

  • 大家好,谁能给我一个使用openGL的基本粒子系统的例子,或者任何链接......
  • 嗯,我在上面放的子弹,对于实现一个基本的粒子系统,IMO 来说已经足够了。向我们展示您的尝试,也许我们可以提供帮助。如果你需要一个代码来启动你,谷歌它;我相信你最终会得到1000个。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
相关资源
最近更新 更多