转换坐标

openGL 实用工具库 (GLU) 提供了几个常用的矩阵转换函数。 可以使用 gluOrtho2D 设置二维正交视图区域、使用 gluPerspective 设置标准透视视图体积,或使用 gluLookAt 设置以指定眼点为中心的视图体积。 其中每个函数都会创建所需的矩阵,并使用 glMultMatrix 将其应用于当前矩阵。

gluPickMatrix 函数通过创建一个将绘制限制为视区较小区域的矩阵来简化选取矩阵的选择。 如果在应用此矩阵后以选择模式重新呈现场景,则将选择将在光标附近绘制的所有对象,并且有关它们的信息将存储在选择缓冲区中。 有关选择模式的详细信息,请参阅“执行选择和反馈” 执行选择和反馈

若要确定对象在窗口中绘制的位置,请使用 gluProject,它使用 modelMatrix、projMatrix视区将指定的对象坐标 objxobjyobjz 转换为窗口坐标。 结果存储在 winxwinywinz 中。 如果函数成功,则返回值GL_TRUE。 如果函数失败,则返回值GL_FALSE。

gluUnProject 函数执行反向转换:它使用 modelMatrixprojMatrix视区将指定的窗口坐标 winxwinywinz 转换为对象坐标。 结果存储在 objxobjyobjz 中。 如果函数成功,则返回值GL_TRUE。 如果函数失败,则返回值GL_FALSE。