opengl 用粒子建模火箭火焰和蒸汽轨迹

Posted

技术标签:

【中文标题】opengl 用粒子建模火箭火焰和蒸汽轨迹【英文标题】:opengl modelling rocket flame and vapour trails with particles 【发布时间】:2011-01-24 02:20:39 【问题描述】:

在opengl中使用顶点缓冲区/4f颜色缓冲区绘制粒子流,对从喷气发动机(带有加力燃烧器)出来的粒子流进行近似编码,是否有人有任何指导?

我认为这个问题有两个方面:

    作为粒子离开喷气发动机的光的颜色是温度和与燃烧气体类型相关的一些常数的函数。 This article 让我相信我需要某种用于温度/颜色转换曲线的数组。显然,氢气在氧气中的燃烧温度为 2,660C,在空气中的燃烧温度为 2,045C,而喷气燃料在空气中的燃烧温度为 287.5C。 (但喷气式战斗机加力燃烧室的温度可以达到1700C)

    火箭/喷气机后面的蒸汽尾迹,如果火箭在大气层中,水基蒸汽尾迹将是带有 alpha 的白色。我也相信我的假设是正确的,这对于在太空中燃烧燃料的火箭来说是不必要的。蒸汽轨迹将模拟为比可见光波长大得多的微小水滴,因此它们会以消色差的方式散射光。由于水本身是无色的,所以产生的颜色会是白色的吗?

此外,我希望从鸟瞰角度对此进行建模,因此它不需要是完整的 3D 模型。因此,例如,加力燃烧室周围 10 个左右指示灯的位置可以近似为 5 个线性点。

【问题讨论】:

【参考方案1】:

根据您需要的详细程度,您可能希望简单地使用从尚未引擎出来的带纹理的圆锥体。如果你想要一个完整的粒子系统(对于喷气发动机来说,这对我来说似乎没有必要),那么你可能想要为堆栈中的每个粒子提供一堆属性,如速度 (vec3)、大小、气体类型和年龄。

每次您的游戏循环进行时,创建一个循环来处理每个粒子。对于每个滴答声,您的模拟将随着粒子变老而改变速度和大小。您应该创建一个函数,根据粒子的年龄和气体类型确定粒子的外观。

简单来说,这可以使有色粒子随着年龄的增长而褪色、扩大和减速。这是你要找的吗?

【讨论】:

是的,我希望有人对温度颜色曲线有所了解:) @Svenstaro 感谢您提供带纹理的锥体创意! (我自己开始摆弄粒子,这对于没有 GL 和物理技能的人来说是一条死胡同。)

以上是关于opengl 用粒子建模火箭火焰和蒸汽轨迹的主要内容,如果未能解决你的问题,请参考以下文章

unity|火焰和烟效果(粒子系统)

6 cocos2dx粒子效果,类图关系,系统原生粒子和自己定义粒子效果,粒子编译器软件,爆炸粒子效果,烟花效果,火焰效果,流星效果,漩涡粒子效果,雪花效果,烟雾效果,太阳效果,下雨效果

Unity 3D:使用粒子系统创建火焰

用OpenGL实现粒子的随机运动

计算机图形学输出图元_6_OpenGL曲线函数_5_其他曲线

[Unity 3D] 权游红袍女在火中看到了什么,我看到了...(粒子系统 | 火焰特效 | ParticleSystem | 手把手制作)