テクスチャ座標を (u, v)である。
頂点の法線ベクトルを N (nx, ny, nz) とすると、
u = nx * 0.5 + 0.5
v = ny * 0.5 + 0.5
対して、スフィアマッピングの計算式。ただし右手座標系(左手座標系ではz成分は逆)。
視線ベクトルを E (ex, ey, ez)となる。 ここで、スフィアマッピングの計算時、視線ベクトルが必ず
視線反射ベクトルを R (rx, ry, rz) とすると、
視線反射ベクトル R = E - 2 (E・N) N
m = 2 * sqrt(rx^2 + ry^2 + (rz + 1)^2)
u = rx / m + 0.5
v = ry / m + 0.5
E (ex, ey, ez ) = (0, 0, -1)つまり、
つまり平行投影であると仮定すると、反射ベクトル R は
rx = 2 * nz * nx
ry = 2 * nz * ny
rz = 2 * nz^2 - 1
m = 2 * sqrt(rx^2 + ry^2 + (rz + 1)^2) より、
R は単位ベクトル(つまり rx^2 + ry^2 + rz^2 = 1)であるから、
m = 2 * sqrt(2 * rz + 2)= 2 * sqrt(2 * (2 * nz^2 - 1) + 2)m = 4 * nz
= 2 * sqrt(4 * nz^2)
さらに
u = rx / m + 0.5 より
u = (2 * nz * nx) / (4 * nz) + 0.5
= 2 * nx / 4 + 0.5同じく
= nx * 0.5 + 0.5
v = ny * 0.5 + 0.5
u = nx * 0.5 + 0.5フェイク環境マッピングの式となる。
v = ny * 0.5 + 0.5
フェイク環境マッピング(フェイクスフィアマッピング)とは 平行投影と仮定したスフィアマッピングであるということ。 さらに、
平行投影という条件下においては、インチキでも何でもなく正確な計算方法ということである。
ホームページに戻る |