Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 关于透视和视图投影的疑问,以及自己的整体理解是否正确 Reply To: 关于透视和视图投影的疑问,以及自己的整体理解是否正确

#3005 Score: 0
Angus
Participant
23 pts

不是助教,人在宿舍,刚下床铺

问题1:推荐同学再听一遍老师的推导。你迷惑的这里是求透视投影的第一步,即把frustum挤压成为cuboid。挤压的具体操作是将远平面四个点在x-y平面内移动来形成一个cuboid,在这个过程中显然近平面和远平面的z值是不变的,我觉得应该不需要去约定。

问题2.1:这个好处具体是什么我还真说不上来,等助教大佬来解答吧。只是如果相机不这样假设,后续的视口变换等我推导起来会感觉有点费劲。

问题2.2:Camera 一开始确实可以不在原点,可以随意设置,闫老师的讲解角度与OpenGL等并不冲突,你可以再看一下相应的那几页PPT。【第一步】就像 lookat() 函数一样,根据你的喜好设置 Camera 位置,角度等。【第二步】把 Camera 和 Objects 看作一个整体(整个世界),计算如何把 Camera 移动到origin,up at y,look at -z(即求 View Transformation 矩阵),再把这个矩阵应用到这个整体上。我相信OpenGL 背后应该也是在做这样的工作,如果我理解错了,还请助教同学指正一下。

问题3:我觉得你整体理解的是不错的,就是 View Transformation 那里感觉有些不太熟悉,看看我问题2.1的解答,且最好还是多看两遍老师的讲解。