如果您只想显示特定的矩形,则需要类似glFrustrum或的glOrtho组合glViewPort。它实际上glViewPort设置了剪切矩形。glFrustrum、glOrtho(gluPerspective等) 然后将一组真实坐标映射到该矩形。通常您几乎不会注意到glViewPort,因为它通常设置为您正在使用的任何窗口的整个区域,而您更改的是映射以获得窗口中的不同视图。
如果您只是自行调整glFrustum(例如),屏幕上的显示区域将保持不变,您只需更改映射,这样您仍然会填充整个窗口区域,并且基本上只需移动虚拟相机,因此您可以放大或缩小(等)正在显示的“世界”。相反,如果您只是调整glViewPort,您将显示完全相同的数据,但显示在较小的矩形中。
要将数据“剪辑”到较小的矩形,您需要同时调整两者,或多或少地“相反”方向,以便当您的视口矩形变小时,您放大视锥体进行补偿。