首页 教程 开发工具 OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

前言

        在查找了众多有关OpenGL相关的环境配置后,对opengl在vs中的初步配置终是有了收获,总结作以此篇以免自己遗忘,也希望对大家有所帮助。

一、OpenGL简介

        OpenGL(Open Graphics Library)是一个跨语言、跨平台的应用程序编程接口(API),用于渲染二维和三维矢量图形。它被广泛应用于图形密集型应用程序,如视频游戏、科学可视化、信息可视化、仿真、虚拟现实和许多其他领域。OpenGL定义了一个跨操作系统的函数集,这些函数可以操作图形处理单元(GPU)来渲染图像。

        OpenGL是一个强大的工具,它为开发者提供了广泛的功能来创建高质量的图形内容。随着技术的发展,OpenGL也在不断更新,以支持更先进的图形处理技术。

        在计算机图形学中,OpenGL是许多游戏引擎的基础,用于渲染游戏中的3D场景和特效。在科学计算和工程领域,OpenGL用于将复杂的数据集可视化,帮助研究人员理解数据。对于需要将大量数据以图形方式展示的应用,OpenGL提供了强大的工具来创建直观的图表和图形。

二、安装Visual Studio

        详情可以去查找另外下载vs的教程,目前我使用的仍然是vs2019。Visual Studio 2022 在性能、用户界面、功能扩展和新技术支持方面都比 Visual Studio 2019 有显著提升。对于处理大型项目和使用最新技术的开发者,VS2022 是更好的选择。而 VS2019 依然是一个稳定、成熟的 IDE 选项,适合多数日常开发需求。

        VS下载官网:点这里

三、创建visual studio project

        进入vs创建新项目:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        选择控制台,它会自动创建一个.cpp文件:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        测试自动生成的"Hello World"有无问题:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

四、添加OpenGL依赖项

        下面介绍的四种库,选择其二进行组合便可。

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

1、freeglut 库安装和使用

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

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        选择freeglut(哪一个都可以)  ->  右边项目打勾  ->  安装

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        在控制台检查是否安装成功

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

          附上一则freeglut库测试代码:

#include <GL/freeglut.h> // 初始化窗口 void init(int width, int height) { glClearColor(0.0, 0.0, 0.0, 1.0); // 设置背景颜色为黑色 glMatrixMode(GL_PROJECTION); // 选择投影矩阵 gluOrtho2D(0.0, width, 0.0, height); // 设置正交投影 } // 绘制图形 void display() { glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓冲区 glColor3f(1.0, 1.0, 1.0); // 设置绘制颜色为白色 glBegin(GL_TRIANGLES); // 开始绘制三角形 glVertex2f(0.0, 0.0); // 第一个顶点 glVertex2f(200.0, 0.0); // 第二个顶点 glVertex2f(0.0, 200.0); // 第三个顶点 glEnd(); // 结束绘制 glutSwapBuffers(); // 交换前后缓冲区 } // 主函数 int main(int argc, char** argv) { glutInit(&argc, argv); // 初始化glut glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); // 设置显示模式 glutInitWindowSize(400, 400); // 设置窗口大小 glutCreateWindow("FreeGLUT Test"); // 创建窗口 init(400, 400); // 初始化窗口 glutDisplayFunc(display); // 设置绘制函数 glutMainLoop(); // 进入glut事件处理循环 return 0; }

        运行成功实例:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

2、glfw 库安装和使用

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

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

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        在控制台检查是否安装成功:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        附上一则glfw库测试代码:

// main.cpp #include <GLFW/glfw3.h> #include <iostream> void error_callback(int error, const char* description) { std::cerr << "Error: " << description << std::endl; } int main() { // 设置GLFW错误回调 glfwSetErrorCallback(error_callback); // 初始化GLFW库 if (!glfwInit()) { return -1; } // 创建窗口对象 GLFWwindow* window = glfwCreateWindow(640, 480, "GLFW Window", nullptr, nullptr); if (!window) { glfwTerminate(); return -1; } // 设置当前窗口的上下文为活动上下文 glfwMakeContextCurrent(window); // 设置窗口的回调函数 glfwSetKeyCallback(window, [](GLFWwindow* win, int key, int scancode, int action, int mods) { if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) { glfwSetWindowShouldClose(win, GLFW_TRUE); } }); // 主循环 while (!glfwWindowShouldClose(window)) { // 清除颜色缓冲区,设置背景为蓝色 glClearColor(0.5f, 0.8f, 0.6f, 1.0f); // RGBA格式,分别对应红、绿、蓝、透明度 glClear(GL_COLOR_BUFFER_BIT); // 交换缓冲区 glfwSwapBuffers(window); // 处理事件 glfwPollEvents(); } // 清理资源 glfwDestroyWindow(window); glfwTerminate(); return 0; }

        注:运行后可能会报错如下图

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        打开解决方案管理器

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        找到当前项目

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        右键,点击属性:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        找到链接器中的输入:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        在附加依赖项中添加 opengl32.lib

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        确定并应用后,重新运行,成功实例:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

3、glew 库安装和使用

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

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

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        在控制台检查是否安装成功:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        附上一则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() { // 初始化GLFW if (!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); // 初始化GLEW glewExperimental = 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; }

        但是,也有可能会报错(手动狗头):

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

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

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        确定并应用后,重新运行,成功实例:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

4、glad 库安装和使用

        那么老样子,打开Nut包下载glad...

        然后你会发现

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        我勒个豆啊安装不了,那就自己去下载库,然后路径填进去就行了,前面步骤若是相同问题也可如此解决。

        glad 官网:https://glad.dav1d.de/

        按下面配置选择:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        然后下载压缩包

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        解压后有两个文件夹,都要用到:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        首先是include,我们要将它添加到路径pass当中去:

        打开项目属性页,找到C/C++中的附加包含目录:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        找到你的glad文件中的include文件,建议是将这个glad直接放到项目文件里面去:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        然后是将src中的.c文件放到项目中,和.cpp放一起就行了:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

        附上一则glad库测试代码:

#include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream> const float vertices[] = { // 位置 // 颜色 -0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 1.0f, // 左下角 0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 1.0f, // 右下角 0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 1.0f, // 右上角 -0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 1.0f // 左上角 }; unsigned int indices[] = { 0, 1, 2, 2, 3, 0 }; void framebuffer_size_callback(GLFWwindow* window, int width, int height) { glViewport(0, 0, width, height); } int main() { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); GLFWwindow* window = glfwCreateWindow(800, 600, "White Quadrilateral", NULL, NULL); if (window == NULL) { std::cerr << "Failed to create GLFW window" << std::endl; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { std::cerr << "Failed to initialize GLAD" << std::endl; return -1; } glClearColor(0.0f, 0.0f, 0.0f, 1.0f); unsigned int VBO, VAO, EBO; glGenVertexArrays(1, &VAO); glGenBuffers(1, &VBO); glGenBuffers(1, &EBO); glBindVertexArray(VAO); glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)0); glEnableVertexAttribArray(0); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)(3 * sizeof(float))); glEnableVertexAttribArray(1); while (!glfwWindowShouldClose(window)) { glClear(GL_COLOR_BUFFER_BIT); glBindVertexArray(VAO); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); glfwSwapBuffers(window); glfwPollEvents(); } glDeleteVertexArrays(1, &VAO); glDeleteBuffers(1, &VBO); glDeleteBuffers(1, &EBO); glfwDestroyWindow(window); glfwTerminate(); return 0; }

        运行成功实例:

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

五、结语

        新建项目的话环境需要重新配置,也可以将原配置好的项目复制一份就不用再次配置了。好欸写完了,希望能对你有帮助。

OpenGL: 计算机图形学OpenGL在Visual Studio 2019/2022中的环境配置

评论(0)条

提示:请勿发布广告垃圾评论,否则封号处理!!

    猜你喜欢
    【MySQL】用户管理

    【MySQL】用户管理

     服务器/数据库  2个月前  2.18k

    我们推荐使用普通用户对数据的访问。而root作为管理员可以对普通用户对应的权限进行设置和管理。如给张三和李四这样的普通用户权限设定后。就只能操作给你权限的库了。

    Cursor Rules 让开发效率变成10倍速

    Cursor Rules 让开发效率变成10倍速

     服务器/数据库  2个月前  1.24k

    在AI与编程的交汇点上,awesome-cursorrules项目犹如一座灯塔,指引着开发者们驶向更高效、更智能的编程未来。无论你是经验丰富的老手,还是刚入行的新人,这个项目都能为你的编程之旅增添一抹亮色。这些规则文件就像是你私人定制的AI助手,能够根据你的项目需求和个人偏好,精确地调教AI的行为。突然间,你会发现AI不仅能理解Next.js的最佳实践,还能自动应用TypeScript的类型检查,甚至主动提供Tailwind CSS的类名建议。探索新的应用场景,推动AI辅助编程的边界。

    探索Django 5: 从零开始,打造你的第一个Web应用

    探索Django 5: 从零开始,打造你的第一个Web应用

     服务器/数据库  2个月前  1.16k

    Django 是一个开放源代码的 Web 应用程序框架,由 Python 写成。它遵循 MVT(Model-View-Template)的设计模式,旨在帮助开发者高效地构建复杂且功能丰富的 Web 应用程序。随着每个版本的升级,Django 不断演变,提供更多功能和改进,让开发变得更加便捷。《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南《Django 5 Web应用开发实战》内容以。

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

     服务器/数据库  2个月前  1.09k

    mysql_secure_installation 是 MySQL 提供的一个安全脚本,用于提高数据库服务器的安全性

    【MySQL基础篇】概述及SQL指令:DDL及DML

    【MySQL基础篇】概述及SQL指令:DDL及DML

     服务器/数据库  2个月前  491

    数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。

    Redis中的哨兵(Sentinel)

    Redis中的哨兵(Sentinel)

     服务器/数据库  2个月前  316

    ​ 上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。