乐趣区

关于javascript:怎么将右手坐标系转换成左手坐标系

有两种:
(1)z 轴取负,而后渲染时反面消隐改为逆时针!
(2)相机用右手坐标

拿一本书来举例, 把这本书直立起来,侧面朝向你, 而后约定, 在左手坐标系下,相机在原点地位,朝正 Z 轴方向看,而右手坐标系则相同,相机在原点是朝负 Z 轴看的.

而后,在右手坐标系下, 侧面的 Z 值比反面大,
而当初要转换成左手坐标系, 并且要看到雷同的画面, 就必须使侧面的 Z 值比反面小, 如果只是把 Z 值取负, 则意味着, 侧面和反面的所有像素被对等的做了替换,即成了一个镜像的成果,这显然不对. 应该把 X 也取负.
这样的话,侧面右边的顶点就到了反面左边的地位,(这看上去, 仿佛侧面被放到了前面,但因为左手坐标系下,Z 值小的先被看到, 所以仍将看到一个正立的书)

简而言之, 右手坐标系是从最大的 Z 值往最小的 Z 值去看的,而左手坐标系相同, 是从最小的 Z 往最大的 Z 值去看的, 即看到的画面将是书的反面,且是镜像的, 所以, 要把顶点的 X 和 Z 值取负.

退出移动版