Opengl学习笔记1 -- 做一个透视立方体

截图如下:

Opengl学习笔记1 -- 做一个透视立方体_第1张图片

Opengl学习笔记1 -- 做一个透视立方体_第2张图片

第一个难度较低,第二个任务则包含更多的代码学习,所以在这里将hw2-2中的相关代码解释一遍:

  1. http://www.cnblogs.com/graphics/archive/2012/07/25/2582119.html,这是解释透视原理的博客,在学习代码前首先一定要先搞清楚基础的原理是什么,这样才能理解代码中的相关参数。

  2. glClearColor(1.0,1.0,1.0,0.0);这四个参数分别的 RGBA,范围是0.0f到1.0f,这个方法设置了用于清除的颜色是什么,而 glClear(GL_COLOR_BUFFER_BIT)函数则执行了清除。

  3. gluLookAt(x0,y0,z0,xref,yref,zref,Vx,Vy,Vz); 这个函数设置摄像机的位置,角度等属性。参数中 前3个为 摄像机坐标系的原点,中间3个是 摄像机的视点,而最后的则是 摄像机的向上向量(就是规定摄像机哪里是向上的,也就是摄像机角度);

  4. glMatrixMode() 函数的参数,这个函数其实就是对接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有3种模式: GL_PROJECTION 投影, GL_MODELVIEW 模型视图, GL_TEXTURE 纹理.

  5. 这个函数表示模型在各轴上是如果进行缩放的。举个例子:glScalef (1.0, 2.0, 1.0);//表示y坐标值扩大两倍,这样原本方的物体就变成长的了。 注意是 针对模型的

  6. glRotatef(45.0, 0.0, 1.0, 1.0); 旋转变换同上理,第一个参数是旋转角度,后面三个参数则代表一个向量

  7. glFrustum(... )是opengl类库中的函数,它是将当前矩阵与一个透视矩阵相乘,把当前矩阵转变成透视矩阵,在使用它之前,通常会先调用glMatrixMode(GL_PROJECTION).
    即是该函数构造了一个视景体用来将模型进行投影,来裁剪模型,决定模型哪些在视景体里面,哪些在视景体的外面,在视景体之外的就不可见。

  8. glLoadIdentity(),恢复初始坐标系

  9. glutSolidCube (1.0); 创建单位立方体,1表示一个单位的

  10. glutWireCube (1.0); 创建立方体边线,1表示一个单位的

  11. glFlush()就是强制刷新

  12. glutDisplayFunc (displayFcn); 注册一个绘图函数

  13. glutReshapeFunc() 当改变窗口大小的时候的回调函数

总结:

在了解了代码之后发现绘图的过程其实和 canvas 一类的还是有相似之处的,而且可以明显感觉到并不是面向对象而是面向过程的。

你可能感兴趣的:(OpenGL)