以下のルールで説明されている3Dポイントから画面座標へのマッピングを行うThree.jsで投影行列を作成するにはどうすればよいですか?
screen_x = x - z*0.5
screen_y = y - z*0.5
depth = z
以下のルールで説明されている3Dポイントから画面座標へのマッピングを行うThree.jsで投影行列を作成するにはどうすればよいですか?
screen_x = x - z*0.5
screen_y = y - z*0.5
depth = z
射影行列は、次の方程式を表します。
xx xy xz xt <- x' = (xx*x + xy*y + xz*z + xt) / (wx*x + wy*y + wz*z + 1)
yx yy yz yt y' = (yx*x + yy*y + yz*z + yt) / (wx*x + wy*y + wz*z + 1)
zx zy zz zt z' = (zx*x + zy*y + zz*z + zt) / (wx*x + wy*y + wz*z + 1)
wx wy wz 1
それから、他のすべての要素はゼロになりますが、
screen_x = x-z*0.5 : xx=1, xz=-0.5
screen_y = y-z*0.5 : yy=1, xz=-0.5
depth z'= z : zz=1 (and ww=1)
編集これは一般的な射影行列ではありませんが、この特定の問題にのみ適用されます。
一般的な[対称]射影行列は次の形式です
a 0 0 d
0 b 0 e
0 0 c f
0 0 1 0,
これにより、xとyはwx * z==zで除算されます。