首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

何时调用glMatrixMode()

glMatrixMode()是OpenGL中的一个函数,用于指定当前矩阵模式。矩阵模式是指OpenGL用来进行矩阵变换的方式,包括模型视图矩阵、投影矩阵和纹理矩阵。

glMatrixMode()函数的调用时机取决于具体的应用需求和场景。一般情况下,glMatrixMode()函数会在OpenGL初始化时被调用,用于设置初始的矩阵模式。在绘制过程中,根据需要进行矩阵变换时,也会调用glMatrixMode()来切换矩阵模式。

常见的矩阵模式包括:

  1. GL_MODELVIEW:用于定义模型视图矩阵,控制物体在世界坐标系中的位置、旋转和缩放。在绘制物体时,通常会先调用glMatrixMode(GL_MODELVIEW)来指定矩阵模式,然后使用glLoadIdentity()来重置当前矩阵为单位矩阵,再通过glTranslatef()、glRotatef()和glScalef()等函数来进行具体的变换操作。
  2. GL_PROJECTION:用于定义投影矩阵,控制物体在相机坐标系中的投影方式,包括透视投影和正交投影。在绘制场景时,通常会先调用glMatrixMode(GL_PROJECTION)来指定矩阵模式,然后使用glLoadIdentity()来重置当前矩阵为单位矩阵,再通过glFrustum()或glOrtho()等函数来设置具体的投影方式。
  3. GL_TEXTURE:用于定义纹理矩阵,控制纹理坐标的变换。在绘制带有纹理的物体时,通常会先调用glMatrixMode(GL_TEXTURE)来指定矩阵模式,然后使用glLoadIdentity()来重置当前矩阵为单位矩阵,再通过glTranslatef()、glRotatef()和glScalef()等函数来进行纹理坐标的变换操作。

glMatrixMode()函数的调用示例:

代码语言:cpp
复制
glMatrixMode(GL_MODELVIEW);  // 切换到模型视图矩阵模式
glLoadIdentity();  // 重置当前矩阵为单位矩阵
glTranslatef(1.0f, 0.0f, 0.0f);  // 平移变换
glRotatef(45.0f, 0.0f, 1.0f, 0.0f);  // 旋转变换

glMatrixMode(GL_PROJECTION);  // 切换到投影矩阵模式
glLoadIdentity();  // 重置当前矩阵为单位矩阵
glFrustum(-1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 10.0f);  // 透视投影变换

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 实验5 OpenGL模型视图变换

    设置的方法是以GL_MODELVIEW为参数调用glMatrixMode函数,像这样: glMatrixMode(GL_MODELVIEW); 该语句指定一个4×4的建模矩阵作为当前矩阵。...当我们需要保存时,调用glPushMatrix()函数,它相当于把当前矩阵压入堆栈。当需要恢复最近一次的保存时,调用glPopMatrix()函数,它相当于从堆栈栈顶弹出一个矩阵为当前矩阵。...使用glMatrixMode来指定当前操作的究竟是模型视图矩阵还是投影矩阵。 在代码中,视图变换必须出现在模型变换之前,但可以在绘图之前的任何时候执行投影变换和视口变换。...首先,调用初始的glRotate*()函数对局部坐标系统进行旋转,这个局部坐标系统最初与全局固定坐标系统是一致的。接着,可以调用glTranslate*()把局部坐标系统移动到行星轨道上的一个位置。...第二次调用glRotate*()使局部坐标轴进行旋转,因此确定了这颗行星在一天中的时间。当调用了这些函数变换之后,就可以绘制这颗行星了。 5. 实验作业: (1)尝试在太阳系中增加一颗卫星,一颗行星。

    1.6K30
    领券