0

何よりも、私はAndroidでOpenGLES2.0を使用しています。

表面と高さのテクスチャは、シンプレックスノイズアルゴリズムを使用したスレッドCPUによって生成されます。球を描き、ビューア(LOD)からの距離に応じてテクスチャをマッピングしたいと思います。マップジェネレーターが2Dテクスチャ(3Dノイズに基づく)をレンダリングし、マッピングを細かくするために必要な球形の変形を正確に行います。

1つのテクスチャ(運賃距離)のみをマッピングすると、かなりうまく機能します。ここで、目から球の中心ベクトルに基づいてテクスチャをマッピング(および生成)したいと思います。球の真ん中にある正方形(私のテクスチャ)を想像してみてください。球を回転させたり移動したりするときはいつでも、正方形は常にビューアの前の中央に配置する必要があります。内容のみが変更されます。

どこから始めれば ?

ヨー回転でしか動作しません。他の回転(ピッチ、ロール)を変更すると、すべてが壊れます。

私が取り組んでいる別の(最良の)方法はありますか?

テクスチャマッピング用の実際のシェーダーコード(ヨーでのみ機能しました):

vec4 S = INVERTED_VIEW_MATRIX * vec4(sphere.nadir, 1.0);
vec4 d = normalize(WORLD_POSITION - S);

d = TEXTURE_ROTATE_MATRIX * d;

float u = 0.5 - (atan(d.z, d.x) / (2.0 * PI));
float v = 0.5 - (2.0 * (asin(d.y) / (2.0 * PI)));

英語が下手でごめんなさい。

4

0 に答える 0