本文主要是介绍【OpenGL4.6】VS2022安装OpenGL4.6的全过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、说明
- 二、vs2022环境安装
- 2.1. 安装vs2022
- 2.2 为OpenGL专门建立目录
- 三、下载安装cmake,用于编译源代码
- 3.1 为什么安装Cmake
- 3.2 下载和安装Cmake
- 四、下载安装glfw,用于窗口界面
- 4.1 设置glfw库,用于创建窗体
- 4.2 如何使用glfw库?
- 五、下载glad支持
- 5.1 glad是什么?
- 5.2 下载
- 六、配置OpenGL项目
- 6.1 配置步骤总览
- 6.2 集中部署OpenGL的项目环境
- 6.3 如何配置glad
- 6.4 配置glfw库:
- 7 测试代码
一、说明
我这里用python完成OpenGL的开发,目前存在一个问题是:OpenGL4.6到目前还没看到python版本。有时需要OpenGL4.6,不能再等,于是只能安装一个C++版的OpenGL4.6试用。以下为安装过程全记录。
二、vs2022环境安装
2.1. 安装vs2022
- 1首先进入微软的visualstudio主页
https://visualstudio.microsoft.com
- 下载一个visual studio community并运行
- 选择安装
我按自己的需要选择python、c++、c#桌面、VC++;按“继续”开始安装。
注意:第一次安装后启动,需要注册用户,建议保存注册账号,以后永远可用。
2.2 为OpenGL专门建立目录
为了提高效率,建一个VStudent作为所有VC项目的总目录,然后建立一个AboutOpenGL,在AboutOpenGL下生成VC+opengl的项目,如下:
此图后文中还要用到。
三、下载安装cmake,用于编译源代码
3.1 为什么安装Cmake
当然,VC++内部有Cmake,为什么要安装一个?
因为VC++内的Cmake为微软产品配套,对于OpenGL这种开源项目,就不能用微软的Cmake,而是Kitware公司的产品。
CMake使用平台无关的配置文件来控制软件编译过程,并生成可在您选择的编译器环境中使用项目文件,比如可以生成vs项目文件或者makefile。 CMake工具套件由Kitware公司创建,以满足ITK和VTK等开源项目对跨平台构建环境的需求。
3.2 下载和安装Cmake
如果用glfw源码编译就安装Cmake,如果不用源码,可以不安装Cmake。
https://cmake.org/download/
https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-windows-x86_64.msi
双击msi文件,安装。
- 要选择系统环境路径变量path。
四、下载安装glfw,用于窗口界面
4.1 设置glfw库,用于创建窗体
https://www.glfw.org
- 我们选择使用编译好的二进制库:
4.2 如何使用glfw库?
glfw不属于微软默认系统,需要手工添加到你的具体项目中。
下载的glfw-3.4.bin.WIN64.zip是一个多版本并存的包,展开以后挑选相应版本添加到你的opengl项目中:
解压后放到文件夹里面备用opengl32.lib和include
五、下载glad支持
5.1 glad是什么?
glad是最重要的OpenGL库,包括GL_CORE核心库的调用。我们这里下载glad是include文件,不是对全部opengl的lib的安装,因为一般的win10系统,凡是安装了Nvidia驱动,必然安装opengl32.lib,因此不必单独安装opengl32了。
5.2 下载
https://glad.dav1d.de/
只要单击对应压缩文件就可以下载了。下载后解压。
六、配置OpenGL项目
6.1 配置步骤总览
在VC下使用OpenGL,属于对三方代码的管理,因此,围绕OpenGL的配置过程,实际上是对项目的一种定制。这里的定制需要几个方面:
- 1 生成一个项目地址,建议固定一个OpenGL项目地址,内含多个OpenGL项目,这样可以集中配置环境。
- 2 配置glad,opengl核心库
- 3 配置glfw,opengl界面
6.2 集中部署OpenGL的项目环境
1)在D盘生成一个Vstudent总目录,该目录存放许多不同的C++项目
2)在D盘的Vstudent目录下,生成AboutOpenGL目录,在该目录下生成具体OpenGL项目。
3)用VC++管理平台生成第一个OpenGL项目:firstOpenGL
4)在AboutOpenGL安置OpenGL的环境支持。
5)在VC开发界面配置include、lib。
先给出测试代码,建议边配置,边调试代码,将该代码调通了,安装也就成功了。
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <glad.c>class Window
{public:GLFWwindow* win = 0;int w = 0; int h = 0;char* title = 0;char* glsl_version = (char*)"#version 330";int SwapInterval = 1;static void glfw_error_callback(int error, const char* description){fprintf(stderr, "Glfw Error %d: %s\n", error, description);}static 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);}static void setup_opengl_viewport(int width, int height){glViewport(0, 0, width, height);}static void framebuffer_size_callback(GLFWwindow* window, int width, int height){setup_opengl_viewport(width, height);}Window(char* title, int w = 300, int h = 300, int OpenGLVersionMajor = 4, int OpenGLVersionMinor = 6) : title(title), w(w), h(h){glfwSetErrorCallback(glfw_error_callback); if (!glfwInit()) { return; }glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, OpenGLVersionMajor); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, OpenGLVersionMinor);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE); // GLFW_OPENGL_COMPAT_PROFILE GLFW_OPENGL_CORE_PROFILE// glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // for mac os it's neededglfwWindowHint(GLFW_RESIZABLE, GL_TRUE);// glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); // for debugwin = glfwCreateWindow(w, h, title, NULL, NULL); if (!win) { printf("Failed to create GLFW window\n"); close(-1); return; } glfwMakeContextCurrent(win);if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { printf("Failed to initialize GLAD\n"); close(-1); return; }setup_opengl_viewport(w, h);glfwSwapInterval(SwapInterval); //must be used after current context set, the default is 0, which means show the new content once available, 1 is the prefered valueglfwSetFramebufferSizeCallback(win, Window::framebuffer_size_callback); glfwSetKeyCallback(win, key_callback);//------------- opengl global settings ----------------// glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);// glBlendFunc(GL_SRC_ALPHA, GL_SRC_ALPHA); glEnable(GL_BLEND); //glEnable(GL_DEPTH_TEST);}~Window(){close(0);}int close(int r){if (win) glfwDestroyWindow(win); glfwTerminate(); return r;}};void company(){int w = 300, h = 300;Window win((char*)"Lines And Chars", w, h);while (!glfwWindowShouldClose(win.win)){glClearColor(1.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); // 填充红色背景glFlush();glfwSwapBuffers(win.win); // swap buffer to show new contentglfwPollEvents(); // response to user operations on the window, process the events by default handlers// glfwWaitEvents(); // for static rendering content}}int main()
{company();
}
6.3 如何配置glad
分两个配置:
- include
- lib
1)添加包含路径:
项目属性 - C/C++ - additional include directories:
D:\VStudent\AboutOpenGL\glad\include;D:\VStudent\AboutOpenGL\glad\src
2)在项目中添加glad库lib:
6.4 配置glfw库:
分两个配置:
- include
- lib
在项目中添加glfw库:
1)配置include路径
项目属性 - C/C++ - additional include directories: $(SolutionDir)libs\glfw\include;
2)配置lib文件
lib文件路径:
项目属性 - Linker - additional library directories: $(SolutionDir)libs\glfw\lib-vc2022;
lib文件名称
项目属性 - Linker - input - additional dependencies: glfw3.lib,opengl32.lib,user32.lib,gdi32.lib,shell32.lib
7 测试代码
表明当前安装基本正确。但中间出了一个错误,是撞运气排除的。
错误原因正在探索中…
这篇关于【OpenGL4.6】VS2022安装OpenGL4.6的全过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!