初探计算机图形编程技术之OpenGL编程变换的秘密

2019-09-25  本文已影响0人  huxinwen

变换的流程

通过之前的了解,我们知道OpenGL的变化包括:几何变换 -> 投影变换 -> 裁剪 -> 视口变换: 变换 变换2

几何变换

几何变换包括三种:平移、缩放、旋转。 几何变换

几何变换的本质就是矩阵的变换

上面我们看到,几何变化都有对应的矩阵计算,其实OpenGL底层就是矩阵的计算(这么设计,应该是从GPU的计算能力方面考虑的): 矩阵计算 连续的几何变换就是矩阵的相乘: 矩阵相乘 结合OpenGL的函数来: 组合变换1 组合变换2

堆栈管理矩阵

模型变换与视点变换:

全局变换和局部变换

先看下面的例子: 全局变换和局部变换 组合变换的,全局变换和局部变换可以通过调整变换顺序到达相同的效果: 全局变换和局部变换 可以得出如下结论:

投影变换

视口变换

图像经过投影后,最总是要显示到屏幕上指定的区域的,这个指定的区域就是shi 视口。 图像显示在屏幕上的过程

OpenGL开发的编程函数是void glViewport (GLint x, GLint y, GLsizei width, GLsizei height)。设置当前窗口显示的区域,参数值都是以屏幕的像素为单位。
一般这个函数是与投影函数结合起来使用的,投影函数决定投影窗口的比例,只有当投影窗口的比例跟视口的比例一致时,才会保证图像不会因为窗口大小调整而变形。具体代码如下:

    glViewport (0, 0, (GLsizei) w, (GLsizei) h);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 4, -10.0);

未完待续。。。

上一篇 下一篇

猜你喜欢

热点阅读