OpenGL相机空间
OpenGL相机空间简介
在上一系列课程中,我们看到了两种类型的转换。第一种类型更改了对象的位置(运动)、方向(旋转)或大小(缩放)。这些转换允许我们将对象放置在 3D 空间的任意位置。第二种类型是这些透视投影,它接受顶点在 3D 空间中的位置,并将其投影到 2D(即平面上)。当坐标转换为 2D 时,将坐标转换为屏幕空间非常容易。这些坐标用于栅格化由对象(点、线或三角形)组成的原始要素。
马赛克的最后一个元素是相机的位置。在前面的所有课程中,我们认为相机位于原点。事实上,我们当然希望相机可以自由地移动到任何地方,顶点投影必须发生在相机前面的一个平面上。这将设置相机与屏幕上对象之间的正确链接。
在下图中,我们看到相机向后向我们。它前面有一个虚拟的2D平面,球被投射到它。如果摄像机倾斜,则平面也以同样的方式倾斜。由于摄像机的视野受其相同的视角限制,因此平面的可见部分(无限)是一个矩形。外面的一切都被切断了我们的目标是将矩形移到屏幕上。
从理论上讲,可以生成一个变换,