欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 计算机图形学:实验环境配置

计算机图形学:实验环境配置

2025/2/23 14:09:56 来源:https://blog.csdn.net/xzxg001/article/details/141651785  浏览:    关键词:计算机图形学:实验环境配置

        由于OpenGL是一个图形API,并不是一个独立的平台,它需要一个编程语言来工作,在这里我们使用的是C++。

        在使用c++时需要配置相关的环境,c++相比于python需要自己手动查找对应的库下载,这里推荐使用Visual Studio进行相关配置。

        我具体介绍两个主要库的配置,glfw和glew

添加OpenGL依赖项

        打开vs,  工具 ->  NuGet 包管理器  ->  管理解决方案的  NuGet 程序包

1.glfw的下载

        在浏览中找到glfw

        如果出现外部符号或者无法链接的情况,可以打开解决方案管理器,右键,点击属性,找到链接器中的输入:

        在附加依赖项中添加 opengl32.lib,确定并应用后,重新运行

2.glew的下载

        同上,在工具包中找到glew库

        选择glew ->  右边项目打勾  ->  安装

        可以使用下列代码检查是否成功安装

#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>
#include <cmath>void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) {if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {glfwSetWindowShouldClose(window, GLFW_TRUE);}
}int main() {// 初始化GLFWif (!glfwInit()) {std::cerr << "Failed to initialize GLFW" << std::endl;return -1;}// 创建窗口GLFWwindow* window = glfwCreateWindow(800, 600, "GLEW Test", NULL, NULL);if (!window) {std::cerr << "Failed to create GLFW window" << std::endl;glfwTerminate();return -1;}// 设置当前窗口的上下文为活动上下文glfwMakeContextCurrent(window);// 初始化GLEWglewExperimental = GL_TRUE; // 启用GLEW的实验性功能if (glewInit() != GLEW_OK) {std::cerr << "Failed to initialize GLEW" << std::endl;return -1;}// 设置视口大小int width, height;glfwGetFramebufferSize(window, &width, &height);glViewport(0, 0, width, height);// 设置清除颜色glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // 白色背景// 启用深度测试glEnable(GL_DEPTH_TEST);// 主循环while (!glfwWindowShouldClose(window)) {// 清除颜色缓冲区和深度缓冲区glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// 绘制绿色的三角形glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0, (double)width / (double)height, 0.1, 100.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0.0, 0.0, 5.0,  // 眼睛位置0.0, 0.0, 0.0,   // 观察点0.0, 1.0, 0.0);  // 上方向glBegin(GL_TRIANGLES);glColor3f(0.0f, 1.0f, 0.0f); // 绿色glVertex3f(-0.5f, -0.5f, 0.0f);glVertex3f(0.5f, -0.5f, 0.0f);glVertex3f(0.0f, 0.5f, 0.0f);glEnd();// 交换缓冲区glfwSwapBuffers(window);// 处理事件glfwPollEvents();}// 清理资源glfwDestroyWindow(window);glfwTerminate();return 0;
}

        如果发生报错,原因和上述类似,这次缺少的库是 glu32.lib ,同样在属性中加入便可(要用回车在下边加上,不能跟在上个库后面加分号添加),故而自行运行其他代码时,出现类似的报错可寻求相近的解决措施。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词