Opengl实验报告及源代码 实验一 建立开发环境

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

学生姓名:学号:专业班级:

实验类型:□验证□综合□设计□创新实验日期:2018/11/1 实验成绩:

一、实验名称

实验一建立开发环境

二、实验内容

1. 安装Visual C++集成开发环境,GLFW和GLAD工具包,配置项目属性,建立OpenGL

开发环境。

2. 建立一个OpenGL项目,使用兼容模式基于GLFW和GLAD库绘制一个简单的

OpenGL图元。

三、实验目的

1. 掌握GLFW、GLAD和其他三方软件库的安装、配置与使用方法。

2. 了解基于GLAD的OpenGL程序的基本结构和工作机制。

四、实验步骤

1. 安装Visual Studio 2017;

2. 建立OPenGL文件夹,在其下建立include文件夹和libs文件夹;

3. 准备GLAD库:

a. 下载GLAD文件包,解压后将include文件下的文件复制到新建立的include文

件夹下;

b. 把glad.c文件复制到OPenGL文件夹。

4. 准备GLFW库:

a. 下载GLFW文件包并解压;

b. 安装CMake 并打开,点击Browse Source将目录设定到glfw目录,点击Browse

Build将目录设置到glfw/build的目录下(bulid文件夹需新建);

c. 点击左下角Configure,选择Visio Studio 2017;

d. 然后再次点击Configure,在点击Generate生成项目;

e. 用Visual Studio 2017编译glfw/build下的glfw项目;

f. 将glfw3.lib库拷贝到OpenGL/libs目录下;

5. 在新项目下链接库

a. 新建空项目;

b. 右击项目->属性->配置属性->vc++目录->包含目录,添加路径到OpenGL/include;

库目录,添加路径到OpenGL/libs;

c. 链接器->输入->附加依赖项,在其中添加opengl32.Lib , glfw3.lib , glew32s

d.lib;

e. 在新建项目的源文件夹下,添加glad.c文件。

6. 在main类中输入代码,进行测试,如果未报错,即环境配置成功。

五、实验结果

1. 新建项目的目录结构

2. 测试代码(核心部分)

#include

#include

#include

int main() {

glfwInit();

GLFWwindow* window = glfwCreateWindow(300, 200, "TRIANGLES", NULL, NULL);

if (window == nullptr)

{

std::cout << "Failed to create GLFW window" << std::endl;

glfwTerminate();

return -1;

}

glfwMakeContextCurrent(window);

if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {

std::cout << "Failed to initialize GLAD" << std::endl;

return -1;

}

//通过回调来注册函数

glfwSetKeyCallback(window, key_callback);

while (!glfwWindowShouldClose(window)) {

glClearColor(0.2f, 0.3f, 0.3f, 1.0f);//设置清空缓冲的颜色

glClear(GL_COLOR_BUFFER_BIT); //填充

glBegin(GL_TRIANGLES);

glColor3f(1.0, 0.0, 0.0);

glVertex3f(0.0, 0.5, 0.0);

glColor3f(0.0, 1.0, 0.0);

glVertex3f(-0.5, -0.5, 0.0);

glColor3f(0.0, 0.0, 1.0);

glVertex3f(0.5, -0.5, 0.0);

glEnd();

glfwSwapBuffers(window);

glfwPollEvents();

}

glfwTerminate();

return 0;

}

3. 运行结果

六、实验体会

1. 这是第一次做OPenGL实验,所以在配置环境上用了很多时间。一开始Cmake配

置VS2017不成功,调整了很长时间,后来重启电脑就莫名奇妙成功了;

2. 在代码编写上,OPenGL编程与之前的编码习惯不同。它不是纯数学的算法,而是

需要明白函数的功能,学会在合适的位置调用合适的函数。对于只有C语言编程基础的我来说,现在具体理解起来有些困难,所以还要用更多的时间、做更多的实验来熟悉OpenGL编程。

相关文档
最新文档