パーティクルシミュレーションに基づいてOpenGLで火災エフェクトをレンダリングしたい。私は位置と温度(したがって色)を持つ何百もの粒子を持ち、他のすべての性質を持っています。パーティクルが広すぎると、glutを使用してsolidSphere
をレンダリングするだけでは現実的ではありません。パーティクル情報に基づいてどのように火をつけることができますか?OpenGLのレンダリング
答えて
あなただけのリアルな火災の効果を作成しようとしている場合は、私はいくつかの種類を使用します他の回答で推奨されているように、既存の図書館のしかし、それはあなたがシミュレーションの表示後になっているようです。
試してみる価値のある解決策は、現在の球体を、真ん中が白で、端に向かって透明になるように看板(すなわち、常にカメラに向かっているグラフィックイメージ)で置き換えることができます。あなたのパーティクルに。
より良い解決策は、グリッド上の各頂点の透明度と色を制御できる2Dグリッドのセットとしてフレームに近づけることです。 OpenGLでは、クワッドからプレーンを作成し、パーティクルシステムを使って各頂点の色と透明度を計算します(最も近いパーティクルからの補間によって)。 OpenGLは頂点間の各ピクセルを補間し、「領域内の平均粒子」を滑らかに見せます。
ニース!後者はプロシージャルテクスチャとして実装できます。うーん...いいえ、理にかなっていません。それぞれのフラグメントシェーダのインスタンスには多すぎることが多分あります。そのため、フレームを作成する前に、フレームごとにそのテクスチャを作成する必要があります。 – Kos
ありがとうございます。それらの2次元グリッドに関する情報を追加してください。 – Etan
あなたが達成したいものを正確に知っていれば、本当に役に立ちます:シミュレーションをリアルタイムで描くか、特定のスチルをレンダリングしようとしていますか?あなたはそれが忠実にシミュレーションを表現したいのですか、それとも目に見えるはずですか? – Elemental
あなたはおそらく火の効果をレンダリングするためにパーティクルシステムを使用したい、ここにちょうどそれを行う方法について訥河のチュートリアルがあります:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=19
私は彼らがどのように動作するかを知りたいので、既存のパーティクルシステムを使用したくない;-) – Etan
- 1. OpenGL L-Systemレンダリング
- 2. OpenGL - テクスチャへのレンダリング
- 3. OpenGLバック・トゥ・フロント・レンダリング
- 4. スライバのOpenGLレンダリングとラスタライズ
- 5. QMLアイテムへのOpenGLレンダリング
- 6. OpenGL ESイメージへの2dレンダリング
- 7. レンダリング透明な形状OpenGL
- 8. OpenGLレンダリング状態管理
- 9. Android:NDKを使ったOpenGLレンダリング
- 10. OpenGLソフトウェアのレンダリングの代替方法
- 11. FBOレンダリングのためのOpenGL ES2.0オフスクリーンコンテキスト
- 12. OpenGLテクスチャの初期化/レンダリングの問題
- 13. OpenGLのテキストのレンダリング方法とトレードオフ
- 14. OpenGL ES 2.0の小さなオブジェクトのレンダリング
- 15. CoreGraphicsからIOSのOpenGLテクスチャにレンダリング
- 16. OpenGLの色でレンダリングされたグレースケールテクスチャ
- 17. FBOから画面へのOpenGLレンダリング
- 18. ユーザ空間メモリへのOpenGL ESレンダリング
- 19. qt5のqtquick 2.0でカスタムOpenGLをレンダリング
- 20. OpenGLコンテキストでWin32ウィジェットをレンダリングする
- 21. OpenGLレンダリングにテクスチャ透明度問題
- 22. GLKitを使ったオンデマンドOpenGL ESレンダリング
- 23. OpenGLはレンダリングを停止しました
- 24. OpenGLを使用したQtレンダリング
- 25. OpenGLのレンダリングからテクスチャへのCIFilterの適用
- 26. OpenGLの透明度を持つGL_TRIANGLE_FANsとしてのパーティクルのレンダリング
- 27. OpenGL 4でのテキストのレンダリングが動作しない
- 28. レンダリング後のOpenGLのポイント位置(3d - > 2d)
- 29. 通常のバックバッファ+ OpenGL(FBO)の深度テクスチャにレンダリング
- 30. 一連のサブグループとしてOpenGLのメッシュをレンダリングする?
補間する必要がありますか、これを行う方法がありますか? – ccook
はい、私はまだそれに精通していないので、私はOpenGLでこの補間を行う方法を探しています。固体の動的モデルのいくつかの並べ替え...透明性は、端に現実的な火を作ることも重要です – Etan