[英]Rendering fire in OpenGL
我想基于粒子模拟在OpenGL中渲染一个火焰效果。 我有数百个具有位置和温度(因此颜色)以及所有其他属性的粒子。 简单地使用过剩渲染solidSphere
看起来不太现实,因为粒子传播得太宽。 如何根据粒子信息绘制火焰?
您可能希望使用粒子系统来渲染火焰效果,这是一个关于如何做到这一点的NeHe教程: http : //nehe.gamedev.net/data/lessons/lesson.asp?withouton = 19
如果您只是想创建一个真实的火焰效果,我会使用其他答案中推荐的某种重新存在的库。 但在我看来,你是在展示模拟之后。
一个值得尝试的直接解决方案可能是用广告牌替换你当前的球体(即总是面向相机的图形图像),中间是纯白色,边缘是淡入淡出的 - 显然可以根据你的粒子定位和着色图像。
我觉得更好的解决方案是将火焰作为一组2D网格接近,您可以在其上控制网格上每个顶点的透明度和颜色。 可以在OpenGL中通过从四边形构造一个平面并使用粒子系统来计算(通过从最近的粒子插值)每个顶点的颜色和透明度。 OpenGL将为您渲染顶点之间的每个像素,并为您提供“区域中平均粒子”的平滑图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.