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

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

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

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

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理