6

パーティクルシミュレーションに基づいて、OpenGLで火の効果をレンダリングしたいと思います。私は何百もの粒子を持っており、それらは位置と温度(したがって色)と他のすべての特性を持っています。solidSphereパーティクルが広すぎるため、単純に過剰を使用してレンダリングすることはあまり現実的ではありません。粒子情報に基づいてどのように火を引くことができますか?

4

2 に答える 2

5

現実的な火の効果を作成しようとしているだけの場合は、他の回答で推奨されているように、ある種の既存のライブラリを使用します。しかし、あなたはシミュレーションの表示の後であるように私には思えます。

試してみる価値のある直接的な解決策は、現在の球体をビルボード(つまり、常にカメラの方を向いているグラフィックイメージ)に置き換えることです。ビルボードは、中央が真っ白で、端に向かって透明にフェードします。明らかに、粒子に応じて画像を配置および色付けします。

私が感じるより良い解決策は、グリッド上の各頂点の透明度と色を制御できる2Dグリッドのセットとして炎にアプローチすることです。OpenGLでこれを行うには、四角形から平面を作成し、パーティクルシステムを使用して、各頂点の色と透明度を(最も近いパーティクルからの補間を介して)計算します。OpenGLは、頂点間の各ピクセルを補間し、「領域内の平均的な粒子」の滑らかな画像を提供します。

于 2010-12-15T13:43:06.310 に答える
5

パーティクルシステムを使用して火の効果をレンダリングすることをお勧めします。これを行う方法についてのNeHeチュートリアルは次のとおりです。http://nehe.gamedev.net/data/lessons/lesson.asp?lesson = 19

于 2010-12-15T13:23:58.210 に答える