【发布时间】:2012-12-12 14:17:21
【问题描述】:
如何在 Three.js 上制作一个投影矩阵,按照以下规则描述从 3d 点到屏幕坐标的映射?
screen_x = x - z*0.5
screen_y = y - z*0.5
depth = z
【问题讨论】:
标签: matrix 3d three.js projection-matrix
如何在 Three.js 上制作一个投影矩阵,按照以下规则描述从 3d 点到屏幕坐标的映射?
screen_x = x - z*0.5
screen_y = y - z*0.5
depth = z
【问题讨论】:
标签: matrix 3d three.js projection-matrix
投影矩阵表示以下方程:
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。
【讨论】: