OpenGL ES 1.1を使用して海洋表面効果を実装する方法[閉まっている]
質問
私は、海面で行われるiPhoneゲームに取り組んでいます。誰かがOpenGLでウェーブまたはリップルを実装するためのサンプルコードまたはチュートリアルを推奨できますか?
これを書いている時点で、iPhoneはOpenGL ES 1.1のみをサポートしているため、シェーダーやその他の派手な効果はサポートされていません。
あまり凝ったものは必要ありません。たとえば、反射は必要ありません。デバイスに過度の負担をかけたくありません。ちょっと海のように見えるものが必要です。 (ただし、Koi Pondと同じくらい見栄えが良いと思います。)
解決
iPhoneの機能は、1999年のGPUによく似ています(例:NVIDIA Riva TNT 2)。したがって、最も現実的なオプションは、いくつかのスクロールテクスチャをブレンドすることです。
たとえば「波のパターン」のあるテクスチャが1つあります。 2つのテクスチャステージに設定し、異なる方向/速度で(テクスチャマトリックスを介して)両方にスクロールします。最終的な結果のためにテクスチャを一緒に追加するためのセットアップテクスチャコンバイナ。
他のヒント
フォームの用語を一緒に追加します:
a * sin(b * x + c * y + d * t)
このような用語はそれぞれ、このように退屈な直線波のセットを生成します。 a
は、これらの波、 b
および c は波の相対的な方向と周波数(間隔)を制御し、
d
は t
(シミュレートされた時間)が変化するにつれて波をその方向に沿ってシフトします。
そのフォームのいくつかの用語で実験し、 t
を一定に保ち、うねる表面を取得します。その後、「チューニング」できます。あなたが好きな粗さの程度を得るための係数。満足のいく係数のセットを見つけたら、 t
を変化させて、それを動かします。