中易网

怎么将右手坐标系转换成左手坐标系??

答案:2  悬赏:40  
解决时间 2021-01-27 19:41
怎么将右手坐标系转换成左手坐标系??
最佳答案
将右手坐标系转换成左手坐标系,z值取反就行了。
  从定义可知,左右手的区别就是z轴一正一负,当然z取反就转换了。
  透视矩阵将把坐标系映射到裁剪空间内,而这个矩阵(perspectiveFieldOfViewLH/perspectiveFieldOfViewRH)已经假定了坐标系是左手还是右手。反过来说,在透视之前,使用哪种坐标系都是无所谓的——因此在透视前的变换矩阵都是统一通用的,包括投影和反射——只需要在透视时确定种类即可。进一步说,就是要在透视前的最后一步上,决定是否反转z轴!而这最后一步是相机的视图矩阵,因此可以在它后面加上反转的语句——也就是viewMatrix.appendScale(1,1,-1)——这样所有的顶点就都会反转了,并且正反面并不会受到影响,因为它们从试图空间中看起来是一样的。
  需要注意的是,知道视图矩阵其实是把整个世界搬到了原点,也就是说,视图矩阵和模型矩阵其实是一回事,只不过,把特定的模型矩阵(相机)求逆后应用在了其它模型矩阵上而已——当然,也可以直接反着赋值,比如相机左移,而赋值却是正数——但为了看着好看,通常还是采用正常赋值,而在连乘时求逆(viewMatrix.invert())的方法实现这一切。明白了原理,那就应该知道,z取反是在最后一步进行——也就是在求逆后进行的。
全部回答
拿一本书来举例,把这本书直立起来,正面朝向你,然后约定,在左手坐标系下,相机在原点位置,朝正Z轴方向看,而右手坐标系则相反,相机在原点是朝负Z轴看的.然后,在右手坐标系下,正面的Z值比背面大,而现在要转换成左手坐标系,并且要看到相同的画面,就必须使正面的Z值比背面小,如果只是把Z值取负,则意味着,正面和背面的所有像素被对等的做了替换,即成了一个镜像的效果,这显然不对.应该把X也取负.这样的话,正面左边的顶点就到了背面右边的位置,(这看上去,似乎正面被放到了后面,但因为左手坐标系下,Z值小的先被看到,所以仍将看到一个正立的书)简而言之,右手坐标系是从最大的Z值往最小的Z值去看的,而左手坐标系相反,是从最小的Z往最大的Z值去看的,即看到的画面将是书的背面,且是镜像的,所以,要把顶点的X和Z值取负.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
工伤判下来软组织损伤有没有赔偿,有的话有多
香港在殖民统治下的生活
北京现代工资多少 普通工人
请问镍镉五号电池电量用完以后每次要充电多长
小高层太阳能怎么装啊?
吉翔堂是不是骗子,我爷爷家才安装了一个吉翔
买来那种一w小夜灯自己可装led灯吗
ppt中如何垂直平均分布各元素?
android系统的手机怎么隐藏图片和视频?
50分的钻戒是不是很小,结婚用
为什么耶稣的父母离开故乡去埃及然后又回来了
怎么提取ACG游戏中的音乐?
哪些是翘舌音
NEBULA模拟器如何窗口化
华联汽车装饰怎么去啊,我要去那办事
推荐资讯
求佛山南庄到番禺市桥地铁路线…谢谢…
为什么我每天都会感觉很累爱生气还爱发脾
我想问下,我是国内的想考GMAT,不想出国,考
tplinkac900无线路由器怎么设置
上海地铁允许宠物放在携带包里带进去么?
2016襄阳四中新生录取名单
核素和同位素怎么区分?
包含星星的长方形有几个
opencv可以集成在哪些
妈妈的手作文开头烘云托月
广州铁路局的免费wifi是和什么公司合作的
如图是人体胰腺组织局部结构模式图,请据图回
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?