首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    实验5 OpenGL模型视图变换

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

    1.7K30

    投影矩阵 视图模型矩阵「建议收藏」

    OpenGL在设置场景时,要用到两个矩阵:投影矩阵 和 模型视图矩阵通过glMatrixMode来指定下面的矩阵操作是针对哪一个矩阵进行的。...gluPerspective 等函数只根据其参数计算出一个矩阵M,然后与当前的栈顶元素T相乘;但这些函数本身不能自动找到应该对应的矩阵堆栈,你可以将它们放在任何矩阵堆栈操作中,比如可以将gluLookatup放在glMatrixMode...(GL_PROJECTION)的后面,则视点矩阵与投影矩阵堆栈的当前栈顶元素相乘得到一个新的投影矩阵,这样在某些情况下也可以得到正确的结果,但之后可能出错,若设置glMatrixMode(GL_MODELVIEW...在代码中,视图(点)变换应该出现在模型变换之前,令模型变换首先作用于顶点,即 glMatrixMode(GL_MODELVIEW);glLoadIdentity(); // I 单位矩阵<br...(OpenGL为列主序矩阵,转置) 但可以在绘图之前的任何时候执行投影变换和视口变换。 视锥体的设置: 投影变换创建了一个六面体,位于视锥体内的模型才能被看到,而外面的模型则被裁剪掉。

    51820
    领券