ブレンドマップやテクスチャスプラッティングは(UVマッピングとは無関係であるため)気にする必要はないと思います。マッピングによって生じる歪みを最小限に抑えることを具体的に求めたので、このGPU Gems記事のセクション1.5を参照できます。
https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch01.html
これは、手続き的に生成された地形でも機能します。このコンセプトは、「トリプラナーテクスチャリング」とも呼ばれます。
後で編集:マッピングに事前計算されたUVを使用せずに、自分のテレインレンダラーでこのテクニックをテストしました。3つの異なる投影面(XY、YZ、ZX)の3セットのUVを計算するだけです。これは、単純な頂点およびフラグメントシェーダースニペットを使用して実現できます。
VShader:
float tileSize = 2.0;
vec4 worldPos = ( gl_Vertex);//So we obtain the world position
TexCoordX = (worldPos.zy/tileSize);//here are our texture coordinates...
TexCoordY = (worldPos.xz/tileSize);
TexCoordZ = (worldPos.xy/tileSize);
normal = gl_Normal;
wNormal = normal;
FShader:
vec3 n = wNormal;
n*=n;
vec2 tcX = fract(TexCoordX);
vec2 tcY = fract(TexCoordY);
vec2 tcZ = fract(TexCoordZ);
vec4 grassCol = texture2D(grassTexture,tcX)*n.x+
texture2D(grassTexture,tcY)*n.y+
texture2D(grassTexture,tcZ)*n.z;