使用 OpenGL C++中的粒子
Particles in C++ using OpenGL
我想使用 OpenGL 在 C++ 中启动一个基本的粒子系统。我为此编写了一个算法,但我不明白如何启动它。
我面临的问题是我可以打印位置和速度更新,但我不知道如何使用 OpenGL 直观地显示它。
我希望您正在尝试以下内容:
-
有一个结构(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)
-
相关文章:
- 在 Cocos2dx 中初始化粒子效果后的警告 - "libpng warning: iCCP: known incorrect sRGB profile"
- 粒子系统:所有粒子都朝同一方向运动
- 弹性粒子在斜坡上弹跳
- 未定向到相机的粒子
- 使用 Optix 5 显示 X 粒子
- 如何在粒子(Spark)的本地构建中包含第三方库?
- 将粒子投影到立方体的表面
- 使用 std::vector<Particle> 粒子;函数 .at() 不能与迭代器一起使用,它作为 for 循环中的参数
- 用于代替在C++中具有模板基类型的模板类的 C# 的最佳粒子?
- Runge-Kutta第四阶粒子对流代码样本
- C 的问题(弹跳球和粒子爆炸)
- 减慢伊利希特粒子系统的速度
- 一个粒子太多:GL_INVALID_VALUE生成错误。<start> 不满足着色器存储缓冲区的最低对齐要求
- 可以将Statechart库与粒子光子嵌入式系统一起使用
- 粒子与场景中的环境和对象交互
- 在c++中向粒子添加力的列表
- OPENGL c++ 动画粒子
- 使用 OpenGL 3+ 渲染点(粒子)
- C++粒子系统的边界框不起作用
- (渲染粒子)我应该学习着色器还是OpenCL