正交投影变换

正交投影变换1 什么是正交投影?投影就是把空间中的物体投射到某个平面的影像,这样就把3D场景转换为为了2D平面图像。投影的方式一般分为正交投影、透视投影两种,透视投影可以产生近大远小的效果,就和人类观察世界的方式类似;而正交投影是一种平行投影,类似用一

大家好,欢迎来到IT知识分享网。

1 什么是正交投影?

投影就是把空间中的物体投射到某个平面的影像,这样就把3D场景转换为为了2D平面图像。

投影的方式一般分为正交投影、透视投影两种,透视投影可以产生近大远小的效果,就和人类观察世界的方式类似;而正交投影是一种平行投影,类似用一束平行光把物体的影像垂直地投射到地面上。

2 盒式可视空间

在计算机图形学中,为了节省计算资源,会定义一个可视空间,只有可视空间内的物体才需要进行绘制。

正交投影定义的可视空间是一个盒状可视空间,由上下左右裁切面以及近裁切面、远裁切面组成,参见下图,靠近原点的面为近裁切面,更远的为远裁切面。

正交投影变换

说明:

  1. 左裁切面:x=l,left
  2. 右裁切面:x=r,right
  3. 上裁切面:y=t,top
  4. 下裁切面:y=b,bottom
  5. 近裁切面:z=n,near
  6. 远裁切面:z=f,far,注意观察方向是相对于z轴负方向来指定的,因此越远坐标反而越小,因此n>f,后面的变换推导中需要注意这个细节。

3 正交投影变换

所谓正交投影变换,就是已知盒状可视空间内任意点坐标(x,y,z),求解垂直投影到xy平面的对应点坐标。

按照这个定义,xyz坐标系本身就是正交坐标系,盒状可视空间内任意点的坐标(x,y,z)投影到(x,y)平面,只要简单地丢弃z坐标就可以啦,即(x,y,z)变换到(x,y,0)即可,这个理解完全没有问题,但却不是正确的结果,那么原因是什么呢?

主要原因是有两个需要考虑的问题:

  1. 规范化坐标系:现实情况几乎所有的图形系统都把坐标系的空间范围限定在(-1,1)范围内,这么做是为了方便移植,使坐标系独立于各种尺寸的图形设备。
  2. z坐标需要保留:想象一下可视空间内存在多个物体的场景,前面的物体可能遮挡后面的物体导致无法被看见,绘制图像时需要利用z坐标来判断前后遮挡关系来觉得那个物体需要绘制,因此保留z坐标是最终图形呈现所必须的参数。

基于以上两个因素,正交投影变换一般不会采用简单丢弃z坐标的方式来实现,而采用下面这种方式

正交投影变换

第一步进行平移变换,将盒状可视空间的中心点,移动做坐标原点,针对正交投影来说无论坐标原点在哪里,可视空间最终投影到xy平面的图像是不会有任何影响的。这一步变换的矩阵为:

正交投影变换

第二步进行缩放变换,也就是把盒状可视空间所表示的一般长方体,通过缩放使其成为范围都是(-1,1)的立方体。这一步变换的矩阵为:

正交投影变换

两个矩阵相乘就得到最终正交投影变换矩阵

正交投影变换

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88234.html

(0)

相关推荐

发表回复

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

关注微信