Viewing 2 reply threads
  • Author
    Posts
    • #2850 Score: 0
      .J.
      Participant

      第四节课介绍了正交投影和透视投影,对于这两种变换我都有一些疑问:
      1. 对于正交投影,我能理解这个过程是将三维空间中的图形移动、拉伸变到[-1,1]^3这个区域中,但是不知道这样做有什么用;
      2. 对于透视投影,第一步的squish为什么会改变z的值呢?不太明白这个第一步的压缩具体是怎么压缩的。以及为什么这一步结束以后还有一步正交投影,这里我不理解的地方是正交投影变换以后得到的依旧是三维的图形,而不是二维的视图,怎么就能得到平面透视图呢?

      谢谢老师解答!

    • #2857 Score: 3
      slongle(助教)
      Keymaster
      11 pts

      1.这个你可以这么理解,是把世界中的物体变换一下之后,摄像机只想看到变换后[-1,1]^3区域的物体,不想看到在[-1,1]外面的物体,所以我们把世界中某个界限框出的一个[a,b]x[c,d]x[e,f]区域变换到了[-1,1]^3,方便后面摄像机来进行操作。
      2.
      先解释一下第二个问题。
      第二个问题,课程中是把透视投影拆开来讲的,后一步变换正好是和透视投影一致的。透视投影和正交投影都是把空间坐标系中的物体变换到[-1,1]^3,所以还有一步正交投影是因为前面还没完全变换完。正交投影和透视投影变换后都是变换到[-1,1]^3,仍然是三维的,如果想变成二维的话,起码要去掉一维,比如说把z去掉,将坐标(x,y,z)变成(x,y)。
      第一个问题,摄像机想看到[-1,1]^3区域的物体,透视投影是想把某个视锥区域变换到[-1,1]^3区域,因为课程里是拆成了两个变换,所以这里的”透视投影”是先变换到一个[a,b]x[c,d]x[e,f]区域。假设这个视锥的近平面和远平面的z值分别为n和f,我们想使这个”透视投影”的变换,对于原来的z在[n,f]变换后的z’还在[n,f]且若z=n则z’=n,若z=f则z’=f。这个变换过程类似于插值的过程,你可以想一想怎么样把这个用齐次变换的形式写出来。

      如果有解释不清楚的地方可以继续提问。

      This post has received 2 votes up.
    • #2936 Score: 0
      .J.
      Participant

      谢谢助教老师,我应该理解了,我说一下我的理解,您看看是否正确。

      首先,正交投影相当于先用一个长方体框住空间中的一个物体,然后把这个长方体移动、缩放到[-1,1]^3空间内,然后这个长方体里的每个点也对应做这个变换;
      透视投影是用一个Frustum去框住空间中的物体,然后先压缩成长方体,且保证这个压缩过程不改变n和f的值,然后再移动、缩放到[-1,1]^3空间内。

      最后如果要投射到平面,只需要截取一个截面z就行了。

Viewing 2 reply threads
  • You must be logged in to reply to this topic.