OpenGL环境配置(超全整合版)
网上搜罗各种资料,终于把openGL的环境配置好了,为了让后面的人省事,于是整合出了一个类似于“懒人包”的东西,非常好弄,按照下面的教程来就好了,什么都不缺
一、事前准备
- 一块主流显卡(最好是独显)
- Visual Studio IDE(最好是2017以上版本,本人是2019)
应该都没问题
二、下载完整配置包
链接&提取码:u8d3,解压后暂时先仅考虑以下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)
{// 初始化GLUTglutInit(&argc, argv);// 显示模式:双缓冲、RGBAglutInitDisplayMode(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 的升级版
OpenGL环境配置(超全整合版)相关推荐
- Mac版OpenGL环境配置
前段时间图形学要求在电脑上配置OpenGL环境,但是老师发的资料都是Windows的.CSDN上看了无数个帖子也没配好,最后是看朋友推的一个B站视频配好的. 以下是原链接:[Mac搭建OpenGL开发 ...
- 深度学习环境配置超详细教程【Anaconda+PyTorch(GPU版)+CUDA+cuDNN】
深度学习环境配置 入门深度学习,首先要做的事情就是要搭建深度学习的环境.不管你是Windows用户,Mac用户还是Ubuntu用户,只要电脑配置允许,都可以做深度学习,毕竟Windows.Mac和Ub ...
- 图解VC++ opengl环境配置和几个入门例子
VC6下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 demo工程和glut库下载 http://pan.baidu.com/s ...
- VS2010/VS2012/VS2015下openGL环境配置(转)
按:按照下述博文,三个例子均成功. https://blog.csdn.net/so_geili/article/details/51685005 请仔细阅读每一个字. 为了学习<OpenGL超 ...
- OpenGL 环境配置教程-库文件汇总【glfw/glew/glad/glm/std_img】
OpenGL的环境配置是最让初学者头疼的事情了,主要是一开始链接什么glfw.glad,不知道有什么用,什么链接库.包含目录很头大,有一步做错就可能一大堆报错. 本文对LearnOpenGL CN教程 ...
- 树莓派Raspberry Pico RP2040 开发环境配置完全缝合终极版C-SDK
树莓派Raspberry Pico RP2040 开发环境配置骨灰版 总览目录 树莓派Raspberry Pico RP2040 开发环境配置骨灰版 前置说明 0.1 关于调试使用的Debugger ...
- node.js安装及环境配置超详细教程【Windows系统安装包方式】
文章目录 Step1:下载安装包 Step2:安装程序 Step3:查看 Step4:环境配置 最后补充: Step1:下载安装包 https://nodejs.org/zh-cn/download/ ...
- CososJS学习笔记(1) 环境配置(填坑版,让你少走弯路!)
这段时间比较了国外的phaser.pixi.create等h5游戏框架以及国内的egret.cocosjs之后,最后还是决定使用cocosjs进行h5游戏的开发. 先简单地说一下个人的观点:首先pix ...
- Android + Eclipse + PhoneGap 2.9.0 安卓最新环境配置,部分资料整合网上资料,已成功安装....
前言:最近心血来潮做了一个以品牌为中心的网站,打算推出本地服务o2o应用.快速开发手机应用,最后选择了phonegap,这里我只是讲述我安装的过程,仅供大家参考. 我开发的一个模型http://www ...
最新文章
- 一文带你了解 MySQL 中的各种锁机制!
- 如何提高营销型网站与搜索引擎之间的信任度?
- 51中断编程c语言,[新人求指教]51C语言编程可否用中断令循环结束提早结束
- CentOS下rsync数据同步备份
- 解决WORD文档无法显示链接的图像问题
- git命令——git commit
- HTML a 标签的伪类
- c语言课后题答案83,C语言练习试题和答案
- 淘宝客、返利机器人详细解读(个人理解)
- 上位机和下位机的区别是什么
- 微信公众号推送模板消息(三):获取关注者列表 openid
- HTML meta 标签
- 酷Q自动升级失败的可能解决方法
- docker-compose 部署shipyard
- 论“期权股”的财富经 !!!
- 海思开发板学习记录2----- 开发板配置tftp 服务
- 金堂五月花计算机学校招聘,2019年成都市金堂五月花学校招生简介
- ZG前端学习系统day11 2020-11-16
- 你的眼中满是“变量”,可“变量”眼中是无相(Python)(Java与Python学习通法)
- 也说对程序语言的认识
热门文章
- 专科python应届生工资多少-请问学过一点python,应届生怎么找工作?
- python入门教程(非常详细)-菜鸟学Python入门教程大盘点|7个多月的心血总结
- python3入门代码-Python3入门(三)——Python基础语法
- python3.8.5-Python 3.8.5 正式发布
- 语音识别论文.doc
- BMP 转 YUV (BMP2YUV)
- android skype 无法用蓝牙耳机,Skype发布更新 增加蓝牙耳机稳定性
- java 线程 内部_从Java中的main()内部在线程实例上运行wait()
- Helm 3 完整教程(十一):Helm 函数讲解(5)日期函数
- java 合并对象中属性_Java2个对象形集合按某一个属性合并