現在、スカイドームをレンダリングしようとしています。球は gluSphere を使用して作成され、頂点シェーダー内で各頂点から球座標を抽出します。次に、通常のテクスチャ座標と同様に、球座標の theta と phi の両方を範囲 [0,1] にマップします。現在、フラグメント シェーダーは phi のみを考慮します。
ご覧のとおり、勾配が 2 回表示され、pi 回転後に phi がリセットされることを意味するため、phi は正しくマッピングされていないようです。
VS でシータとファイを次のように計算します。
theta = acos(gl_Vertex.y/radius)/(pi);
phi = (atan(gl_Vertex.x/gl_Vertex.z)+pi)/(2*pi);
FS の色は次のとおりです。
gl_FragData[0].rgb = vec3(phi, phi, phi);