Opengl实验报告及源代码 实验一 建立开发环境
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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编程。