私は単純なピクセルのトップダウンゲームを作っています。そして、そこにシンプルなライトを追加したいのですが、それを行う最良の方法がわかりません。このイメージは私が実現したい光の例です。
http://imgur.com/a/PpYiR
私がその仕事を捜したとき、私はその種の光のための解決策しか見ませんでした。
https://www.youtube.com/watch?v=mVlYsGOkkyM
しかし、光源が近くにあるときにテクスチャ部分の明るさを増やす必要があります。 UVなしでGL_QUADSでテクスチャを使用している場合は、どうすればよいですか?openGL simple 2d light
答えて
私の回答が完全にあなたの質問に答えるわけではありませんが、正しい道を導きます。
これは即時モードを使用しているようですが、これは現在価値が下がりました.VBO(頂点バッファオブジェクト)に変更すると、あなたの生活が楽になります。
画像の照明が手描きのようです。最適なアルゴリズムでも、その照明スタイルを正確に作成することはできません。
実際には、問題を解決するための2つのオプションがあり、どちらもテクスチャ座標とシェーダが必要です。
ライトマップは、事前に生成されたテクスチャをクワッドのテクスチャに乗じて使用できます。これは非常に高速ですが、ライトマップを生成するためのツールが必要になります。
代わりに、シェーダベースの照明を習得してください。多くのチュートリアルは3Dライティングのために存在しますが、原則は2Dの場合と同じです。 一部のグーグルでは、シェーダを実装するために必要なリソースが得られます。 は、基本的な距離ベースの照明アルゴリズムは次のようになります。
GL_Color = texturecolor * 1.0/distance(light_position,world_position);
これは、テクセルは、光の位置からどれだけ離れているかによって、テクセルの色を乗算します。これについて深く理解しているチュートリアルがあります。
最初のイメージのように照明を「レトロ」にしたい場合は、後処理ステップで色をダウンサンプリングすることができます。
これは質問に対する答えではありません。 – Rabbid76
- 1. OpenGL Light Position
- 2. opencv - Simple 2D 2D変換
- 3. 2D OpenGL ESアーキテクチャ
- 4. OpenGL Noob - > 2D Animation
- 5. フルHD 2DテクスチャメモリOpenGL
- 6. のOpenGL:2Dオーバーレイは、3Dシーン
- 7. openGL 2Dマウスのクリック位置
- 8. 2DでのOpenGLの回転
- 9. 3DアプリケーションでのOpenGL 2D hud
- 10. OpenGL、等尺2Dマップとテクスチャ
- 11. OpenGL 2Dのパフォーマンスのヒント
- 12. OpenGL ESイメージへの2dレンダリング
- 13. OpenGl ES 2D Android再描画
- 14. 2Dスプライト用のOpenGL ESドロップシャドウ
- 15. OpenGL for 2Dの使用
- 16. iPhone OpenGL ESテクスチャ2Dマスキング
- 17. OpenGLピクセルの完全な2D図面
- 18. 2D Point Light XNA、なぜポイントライトの半径が楕円ですか?
- 19. OpenGL 2Dテクスチャが動作しない
- 20. CUDA - OpenGLレンダリングイメージを2D配列にコピー
- 21. OpenGLで2D地形を作るには?
- 22. スプライトシートとOpenGLを使用した2Dスプライトアニメーション
- 23. iPhone OpenGL ES 2dの背景テクスチャ
- 24. OpenGL 2D Viewのボイラープレートコードは何ですか?
- 25. OpenGL ES、Zバッファ、2Dスプライト、破棄、パフォーマンス
- 26. OpenGL 2D矩形領域のクリッピング
- 27. OpenGL ES 2.0での2D描画(iOS)
- 28. 2Dテクスチャを回転させたOpenGL
- 29. OpenGL 2D投影行列の問題
- 30. OpenGL 2d矩形がレンダリングされない
シェーディングについて考えましたか? [正しい質問をするにはどうすればいいですか?](https://stackoverflow.com/help/how-to-ask) – Rabbid76
固定パイプライン(シェーダなし)には[ネイティブOpenGLライト](https:///www.cse.msu.edu/~cse872/tutorial3.html)をポイントライトに設定します。または、アルファテクスチャ+カスタムパターンのブレンドを使用します。 – Spektre