OpenGL环境配置(超全整合版)

网上搜罗各种资料,终于把openGL的环境配置好了,为了让后面的人省事,于是整合出了一个类似于“懒人包”的东西,非常好弄,按照下面的教程来就好了,什么都不缺

一、事前准备

  • 一块主流显卡(最好是独显)
  • Visual Studio IDE(最好是2017以上版本,本人是2019)

应该都没问题

二、下载完整配置包

链接&提取码:1uzk,解压后暂时先仅考虑以下3个文件夹和一个文件,还有一些其他的文件等学到后面再用也不迟

其中 include 文件夹中的内容放入文件夹

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include

lib 文件夹中的内容放入文件夹

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\lib\x86

dll 文件夹中的内容放入文件夹

C:\Windows\SysWOW64

注意以上是64位系统的放置方法,32位系统类比

三、最后准备

创建一个空项目,之后菜单 → 管理 NuGet 程序包

搜索 glfw 下载如下的这一个

最后将上面的 glad.c 放入源文件中,如下:

四、测试

搞定,现在可以随便去网上找示例代码测试了,一个可以运行的例子如下:

注意如果是copy别的地方的代码,要修改头文件的路径!!!

#include <openGL/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;

void framebuffer_size_callback(GLFWwindow* window, int width, int height);
int main()
{
	glfwInit();
	//glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	//glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
	//glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

	GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
	if (window == NULL) {
		cout << "Failed to create GLFW window" << endl;
		glfwTerminate();
		return -1;
	}
	glfwMakeContextCurrent(window);
	if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
		std::cout << "Failed to initialize GLAD" << std::endl;
		return -1;
	}

	glViewport(0, 0, 800, 600);
	glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
	while (!glfwWindowShouldClose(window)) {
		glfwSwapBuffers(window);
		glfwPollEvents();
	}
	glfwTerminate();
	return 0;
}

void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
	glViewport(0, 0, width, height);
}

另一个glut的例子:


#include <iostream>
#include <opengl/freeglut.h>//freeGLUT窗口库

/**
 * 渲染回调函数
 */
void RenderScenceCB()
{
    // 清空颜色缓存
    glClear(GL_COLOR_BUFFER_BIT);
    // 交换前后缓存
    glutSwapBuffers();
}

/**
 * 主函数
 */
int main(int argc, char **argv)
{
    // 初始化GLUT
    glutInit(&argc, argv);

    // 显示模式:双缓冲、RGBA
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);

    // 窗口设置
    glutInitWindowSize(1136, 640);      // 窗口尺寸
    glutInitWindowPosition(100, 100);  // 窗口位置
    glutCreateWindow("20200414-01");   // 窗口标题

    // 开始渲染
    glutDisplayFunc(RenderScenceCB);
    // 缓存清空后的颜色值
    glClearColor(0.6f, 0.7f, 0.3f, 0.0f);
    // 通知开始GLUT的内部循环
    glutMainLoop();
    return 0;
}

五、注意事项

glad 如果有问题可以自己生成:glad在线网站

部分选项如上填写,其中 gl 版本选择3.3以上即可,其它都不用管,然后生成一下就ok

关于电脑自带的openGL的版本:

查询方法:打开文件C:\Program Files (x86)\Windows Kits\10\Include\10.0.xxxxx.0\um\gl\GL.h

里面有一行:#define GL_VERSION_1_1 1,这里就可以看出 openGL 的版本

截止到 2017 年 9 月,openGL 已经发布了 4.6 版本,然而 Windows 系统对 OpenGL 的支持只局限于1.1版本以下,这样的话理论只能使用一些老函数,超过 1.1 版本的新函数都无法使用,更何况从3.0版本开始,OpenGL就已经摒弃了早期版本的固定管线,升级到了现代OpenGL,但是没关系,我们可以更新显卡驱动,并且还有一些类似于 glew 的扩展库来帮助我们,让我们能够使用新的函数,尽管在使用上有着略微的区别

六、glew、glad、glut、glfw 的一句话介绍

  • glew:是对底层 OpenGL 接口的封装,可以让你的代码跨平台
  • glad:和 glew 作用相同,glew 的升级版
  • glut:处理 OpenGL 程式的工具库,负责处理和底层操作系统的呼叫以及I/O
  • glfw:glut 的升级版
原创文章 1134 获赞 1439 访问量 61万+

猜你喜欢

转载自blog.csdn.net/Jaihk662/article/details/105496707