南邮计算机图形学实验报告一绘制立方体 下载本文

《计算机图形学程序设计》

题 目: 绘制立方体

学 生 姓 名 班 级 学 号 学 生 学 院 学 生 专 业 联 系 电 话 电 子 邮 件 指 导 教 师 黄睿 指 导 单 位 计算机学院 日 期

成 绩 批阅人 日 期

一、课题名称

使用OpenGL3.3以上的版本绘制一个立方体。

二、课题内容和要求

内容:初步学习计算机图形学的基础知识,初步学会使用OpenGL,学会编写顶点着色器和片段着色器以及编译和链接,熟悉在三维空间下绘制图形的流程。

要求:使用OpenGL3.3以上的版本绘制图形。

三、课题分析

本课题要求绘制一个立方体,本人绘制了一个不同的面呈现红、绿、蓝三色的正方体,绘制的步骤如下。

首先,在主函数开始前,以字符串的形式编写顶点着色器和片段着色器的代码。 其次,在主函数中,设置OpenGL的版本号为3.3,创建一个窗口对象,获取实际像素,并将该窗口对象设置为当前窗口,调用glViewport函数来设置窗口的维度,调用glEnable(GL_DEPTH_TEST)函数开启深度测试。

接着,调用glShaderSource函数获取编写的两个着色器的代码,调用glCompileShader函数编译两个着色器,并调用glGetShaderiv函数检验是否成功编译,两个着色器编译完毕后调用glAttachShader函数和glLinkProgram函数实现链接,同时也要检验是否连接成功,最后把这两个着色器对象删除。

然后,定义顶点数组和颜色数组(本人将其放在一个数组中),创建并绑定VAO和VBO,调用glBufferData函数,把定义的数组中的数据复制到缓冲的内存中,调用glVertexAttribPointer函数设置顶点属性指针和颜色属性指针。

最后,在while循环中,设置模型矩阵Model、观察矩阵View和投影矩阵Projection,调用glDrawArrays函数画12个三角形。

四、详细设计

1、流程图

1

2、详细代码

1 OpenGL绘制立方体流程图

2