OpenGL的环境配置了好几次都没有成功。
今天,终于试好了,于是分享出来,让其他人能少走弯路。
OpenGL 已经发展到可编程管线了,下面我就来说说 新版OpenGL 和旧版本的OpenGL 组装的办法!
我的工具是VS2017
【旧版本 固定管线 也是资料最多的OpenGL】
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>
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, "OpenGLShader", NULL, NULL);
if (window == NULL)
{
std::cout << "创建窗口失败" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "初始化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系列。