左右手坐标系的互换

本文详细介绍了左手坐标系和右手坐标系的转换方法,包括将模型和摄像机坐标中的x值取反以及仅对渲染结果进行水平翻转两种方式。这两种方法在实际应用中可以实现不同坐标系间的转换,并且讨论了为何通常选择对渲染结果进行水平翻转的原因,即避免了对坐标系类型的依赖,同时指出两种方法的错误后果相当。
摘要由CSDN通过智能技术生成

【原文来自:http://blog.csdn.net/zhang11wu4/article/details/47754035】


左手坐标系和右手坐标系的相互转换

Written by  Paul Bourke
May 2001

基于计算机的建模和渲染软件似乎都可以分成两类:使用左手坐标系 或者 使用右手坐标系。 比如 OpenGL 用的是右手坐标系而 PovRay 用的则是左手坐标系。这个文档描述了如何把模型的坐标系/摄像机属性 往不同的坐标系去做转换。以下是两个坐标系,它们的不同于自身的矢量积的不同。。。用的是所谓的左手原则和右手原则。

注意:实际上坐标轴的指向跟以上的图并无相关。y不一定要“向上”,z不一定要“向里”,所有不同指向的坐标轴都可以通过适当地旋转得到以上的相同指向。

有两张种方法可以让左右手坐标系互换得到相同的结果。法一:把模型和摄像机设置中所有顶点(这里的顶点是指需要被显示器显示出来的点)的x值取反;法二:一切坐标保持不变,但在渲染图出来后需要做一个水平方向上的翻转。以下的符号p, d, 和u分别表示显示媒介的位置,视觉方向和向上的方向。

模型 1  - 把x轴坐标取反

模型 2 - 水平翻转渲染结果图

这个例子的模型和摄像机坐标并没有随着左右手坐标系的变换而改变。我们可以看到,只是渲染图在最后时刻做了个水平方向上的翻转。

这个通常作为优选方案,大概是它避免了去考量系统到底使用的时什么坐标系,而只需要在图像处理工具的后运行阶段对图片做一个翻转即可。同样地,不管使用的是什么坐标系,使用法一和法二产生的错误都对导致同样严重的结果,这一点上并没有优劣之分。

你可能会琢磨为什么只按水平方向翻转,这其中有什么特别之处么?答案是因为显示媒介向上的方向(u),按照惯例都是垂直于渲染图的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值