转自https://blog.csdn.net/qq_19003345/article/details/76098781
OpenGL的环境配置了好几次都没有成功。
今天,终于试好了,于是分享出来,让其他人能少走弯路。
OpenGL 已经发展到可编程管线了,下面我就来说说 新版OpenGL 和旧版本的OpenGL 组装的办法!
【旧版本 固定管线 也是资料最多的OpenGL】
我的工具是VS2017
1.方法(下载各种库文件)
下载OpenGL的所需要的文件
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
然后得到5个文件:
glut.dll glut32.dll glut.lib glut32.lib glut.h
找到目录..\VC\Tools\MSVC\14.10.25017\include\gl(没有的话就建立一个)。 将glut.h放到里面。
2.方法(使用VS的插件)
打开vs创建一个C++项目(Win32控制台-空白项目)
然后点击 项目—管理Nuget程序包
然后点击浏览—在搜索栏输入NupenGL
然后安装(如果有两个就安装两个)
------------------------------------------------------
最后测试一下:
- #include <GL/glut.h>
- void Show()
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glRectf(-0.1f, -0.1f, 0.5f, 0.5f);
- glFlush();
- }
- int main(int argc, char *argv[])
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
- glutInitWindowPosition(100, 100);
- glutInitWindowSize(400, 400);
- glutCreateWindow("OpenGL");
- glutDisplayFunc(Show);
- glutMainLoop();
- return 0;
- }
运行就会看到一个白色的正方形
我VS使用的字体是 汉趣雅黑W 大小25
【新版本 可编程管线】
下载GLFW(管理窗口)
http://www.glfw.org/download.html
在这里我们选择编译好的版本 想自己编译的朋友可以下载 Source package(用CMake)
我们选择32-bit,这里不是按照电脑来选的,是按照vs里面的
x86就是32位的
打开vs创建新的空白工程
然后打开项目的文件目录
建立文件夹
Includes
Libs
这个两个名字后面要用的
解压刚才下好的glfw压缩包
把../include/GLFW/中的glfw3.h复制到我们刚创建好的Inlcudes文件夹中
同理把vc2015中的glfw3.lib放到Libs文件夹中
打开vs设置项目属性
如果你的文件夹层级结构和名字和我的一样就这样写,不一样就要调整路径。
打开属性-C/C++ 改成这样
然后链接器-输入
然后我们要下载GLAD(使用OpenGL函数)
http://glad.dav1d.de/
选择成这个样子,然后点击CENRATE
选中最后的压缩包下载,打开压缩包,把include中所有的文件复制到我们的Includes中
把src中的文件复制到这
回到VS,把glad.c添加到工程中
输入以下代码:
- #include "Includes\glad\glad.h"
- #include "Includes\glfw3.h"
- #include <iostream>
- #define SCR_WIDTH 800
- #define SCR_HEIGHT 600
- 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(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
- if (window == NULL)
- {
- 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;
- }
- while (!glfwWindowShouldClose(window))
- {
- glfwSwapBuffers(window);
- glfwPollEvents();
- }
- glfwTerminate();
- return 0;
- }
生成一下
有的朋友可能生成成功,成功了最好。
如果有的小伙伴出现这种情况
不用担心,不会有影响,在意的小伙伴 百度搜一下这个问题,很好解决
然后我们运行一下Ok出现这个窗口就成功了
--------------------------------------------------------------------------------------
【查看自己OpenGL 的版本】
- #include<Windows.h>
- #include <iostream>
- #include <GL/glut.h>
- using namespace std;
- int main(int argc, char** argv)
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(300, 300);
- glutInitWindowPosition(100, 100);
- glutCreateWindow("OpenGL Version");
- cout<<"OpenGL版本号"<<glGetString(GL_VERSION)<<endl;
- system("pause");
- return 0;
- }
最后希望大家多多关注我的OpenGL系列。