openGL库的简单配置
主要是针对openGL的一些初步的学习,因为openCV主要是处理图像视频,是从现有的得到数据,而openGL好像是从数据进行绘图,学习一下。在《计算机图形学编程》一书中,它把图形编程定性为着色器编程,相对于C/C++这种,就可谓是两种明线了,C/C++到了后期要进行编译器调优,估计图形编程也是如此,需要针对着色器,不过目前还是先学习其用。
这里的openGL(Open Graphics Library,开放图形库),说是平台无关的图形编程库,很多人现在都把它说成是一个标准,一个规范,我也不太确定。
窗口管理,GLFW
在openGL中,图像会渲染到一个帧缓冲区,然后再由机器负责绘制帧缓冲区的内容。能进行这种工作的有GLUT库、CPW库、GLOW库和GLUI库,但GLUT太老了,已经演变成freeglut。这里选择的是GLFW窗口管理库,需要编译安装。因为glfw都是编译安装的,所以还是先装个cmake,到官网直接下载msi来安装就行。
cmake下载路径
因为installer可以帮你添加环境变量,这样也懒得重启电脑了,现在是能不重启就不重启。安装好以后测试看看环境变量配好了没,cmake --version
,能成功回应就ok。
然后下载glfw的编译安装包:
GLFW官网
从我找到的信息来看,很多openGL的库都是比较老的了,所以这也是为了学习而使用的,这个链接也不知道什么时候会失效,且用且珍惜吧。下载好以后就正常解压,然后进入对应glfw文件夹,进行编译安装。
打开cmake的GUI后,拖动GLFW的cmakelist到其中,然后configure一下,设置好自定义参数后,如果高亮就在configure一下,就开始generate;cmake的工作就到这一步,接下来是vs的工作了,到编译后文件下,vs打开GLFW.sln文件,然后批生成下勾选ALL BUILD和INSTALL的debug和release选项,一个是调试模式一个是发布模式,两种编译模式都选好以后就开始生成。到这一步,src下有对应的两种模式的lib即可。然后这里GLFW环境就算配置好了。
扩展库,GLEW
openGL中,有着基本功能和扩展机制,其中的扩展机制就是属于一个自定义内容了,用来支持新的功能。其实,这里针对的是openGL中的现代命令,这些命令的执行需要定量的代码,用扩展库来处理这些细节就成了标准做法。GLEW(OpenGL Extension Wrangler),openGL扩展牧马人,但除去这个还有备选,比如GL3W和GLAD,这些都可自动更新,但需要python支持。回归正题,GLEW需要从sourceforge上下载压缩包,得到对应glew32.lib和glew32.dll以及对应头文件。链接如下:
GLEW下载
实际上是官网,在上面有跳转到sourceforge的链接,auto select也是挺快的。不过这个版本更新也是绝了,07年,呵呵。
数学库,GLM
3D图形编程需要大量使用向量和矩阵代数(看来要复习了),一个配合常见数学计算任务的函数库和类包显得至关重要。常见的有Eigen和vmath,但这里使用的是数学库GLM(OpenGL Mathematics)。直接百度GLM安装,然后它就跳到sourceforge页面了,干脆在这里搞定吧,好,压缩包get。打开以后,居然是cmakelist包,不过glm下面也有对应hpp文件,所以暂时还是不做操作
纹理图像加载库,SOIL2
SOIL2是图像加载库SOIL的更新分叉版本,这里的东西实在是太老旧了,不是学习的话好像都不想用它。这里就做详细点的记录吧。
首先是安装软件的premake4的下载安装
premake4下载页面
下载好以后就接着下载SOIL2项目文件,原本是github的习惯就是发布文件放release嘛,它倒好,直接有链接没东西,好吧,git clone吧。
clone完毕后,把premake5.exe可运行文件解压到此文件夹,然后右键打开命令行,输入./premake5.exe vs2022
,因为我没有为premake配置环境变量,所以这样的方式进行,而且我的vs版本是2022,完了后可以看到以下内容:
PS D:\source code\SOIL2-master> ./premake5.exe vs2022
Building configurations...
Running action 'vs2022'...
Generated make/windows/SOIL2.sln...
Generated make/windows/soil2-static-lib.vcxproj...
Generated make/windows/soil2-shared-lib.vcxproj...
Generated make/windows/soil2-test.vcxproj...
Generated make/windows/soil2-test.vcxproj.filters...
Generated make/windows/soil2-perf-test.vcxproj...
Generated make/windows/soil2-perf-test.vcxproj.filters...
Done (74ms).
PS D:\source code\SOIL2-master>
然后又是vs的时间了,在下面路径vs打开sln文件
然后右键选中soil2-static-lib选项,右键生成,就可以得到lib文件了。
目前主要使用的就是src下SOIL2文件夹里面的头文件和新生成的soil2-debug.lib库文件(新生成的lib文件夹下可寻)。
配置openGL库文件夹
其实就是为了方便vs,特地把上面的头文件和库文件都集中在一起,自定义一个专门目录新建一个include和lib文件夹。然后把上面对应的头文件夹给复制过去,还有库文件给复制过去就行。
include文件夹:GLFW文件夹、GL文件夹、glm文件夹、SOIL2文件夹;
lib文件夹:glfw3.lib、glew32.lib、soil2-debug.lib
还可以把GLFW的glew.dll文件放上面两个同级路径,然后就凑成了一个基本的openGL库结构。
不过我好像犯了个错误,在我实际操作vs进行小实验的时候,才发现,即使引入了上面的头文件,vs也一样无法识别到,简直是怪圈,那么垃圾的。没办法,只能根据各前人的经验,放vs对应的include和lib目录下了。
因为vs就算是自定义了安装目录,它也还是把一大堆东西放在c盘,这个没办法,和你的用户目录挂钩的。我找vs内置的include的办法就是直接输入#include,然后跟随软件提示输入头文件,再右键打开那个头文件的文件夹即可,路径就在那,也就好办了。
然后把我先前include文件夹下所有文件夹(GL、GLFW、glm、SOIL2)都给复制过去,还有lib下的也是,对应好路径关系就找得到的,还是比较简单的,我这里的vs2022对应的两个内置路径是:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x64
嗯,还有动态库要配置,这个就直接放项目文件夹下就行,就一个glew.dll。
简单测试
#include <GL/glew.h>
#include <glfw/glfw3.h>
#include <iostream>
#pragma comment(lib, "glew32.lib")
#pragma comment(lib, "glfw3.lib")
//作为标准提供在windows SDK中,但需要引入
#pragma comment(lib, "opengl32.lib")using namespace std;//绘制window窗体内容
void display(GLFWwindow *window, double currentTime) {//绘制红色背景glClearColor(1.0, 0.0, 0.0, 1.0);glClear(GL_COLOR_BUFFER_BIT);
}int main() {//初始化GLFW库if (!glfwInit())exit(EXIT_FAILURE);//创建GLFW窗口和相关openGL上下文,并指定机器主次版本兼容openGL4.3glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//创建一个宽高都为600像素的标题为none的、后面两个参数设置全屏显示和资源共享,暂时用NULL参数替代GLFWwindow *window = glfwCreateWindow(600, 600, "none", NULL, NULL);//把windows对象和当前openGL上下文相关联glfwMakeContextCurrent(window);//初始化GLEW库if (glewInit() != GLEW_OK)exit(EXIT_FAILURE);//开启垂直同步glfwSwapInterval(1);//简单的渲染循环while (!glfwWindowShouldClose(window)) {display(window, glfwGetTime());//绘制屏幕glfwSwapBuffers(window);//等待事件的处理,比如按键点击退出glfwPollEvents();}//逐一操作以释放窗口对象glfwDestroyWindow(window);glfwTerminate();exit(EXIT_SUCCESS);
}
//openGL上下文,openGL实例及状态信息等,包括颜色缓冲区等
因为已经提前把glew.dll放在项目路径下了,所以基本是没啥问题了的,运行结束就会出现一个红色窗口。
openGL库的简单配置相关推荐
- autoHotkey进阶 --- 用于访问窗口对象-acc库的简单配置
文章目录 autoHotkey进阶 --- 用于访问窗口对象-acc库的简单配置 引言 配置过程 资源 函数列表 autoHotkey进阶 - 用于访问窗口对象-acc库的简单配置 引言 access ...
- x64版本的OpenGL库配置
问题的提出: 以前一直在win7系统下进行的基于win32的OPengGL开发,今天换了Win 10的系统且是x64的,发现原来的glut不能用了(网上说开发glut的团队不再技术支持win32 ...
- VS2017 搭建OpenGL环境 GLTools freeglut glew glut freeglut_static 暴力简单配置
目录 一.下载配置文件包 二.开始搭建OpenGL环境 测试 可能报错的情况 转自:VS2015下OpenGL库的配置 - 同勉共进 - 博客园 一.下载配置文件包 下载百度网盘资源:百度网盘 请输入 ...
- MySQL笔记-简单配置主从库
这里以2台MySQL为例进行实验: Master库: ip:192.168.79.134 Slave库: ip:192.168.79.136 主库修改或增加/etc/my.cnf为: [mysqld] ...
- 杰奇CMS1.7一库多站配置 简单教程记录
最近在制作1.7模板的时候,发现这个版本的一库多站配置和其它版本稍微有差别,但是主要的差别不大,应该还是在一些比较细节的地方,这个版本需要进行额外的设置.相对来说,通过一库多站可以轻易的建议站群,或者 ...
- opengl库区分:glut、freeglut、glfw、glew、gl3w、glad
opengl原生库 gl* 随opengl一起发布 opengl实用库 glu* 随opengl一起发布 opengl实用工具库glut glut* 需要下载配置安装(太老了!) opengl实用工具 ...
- Windows7+VS2012下OpenGL 4的环境配置
系统环境 Windows 7 Ultimate x64,Visual Studio Ultimate 2012 Update 4,和一块支持OpenGL 4.x的显卡. 准备工作 首先用GPU Cap ...
- OpenGL C#绘图环境配置
OpenGL C#绘图环境配置 OpenGL简介 OpenGL作为一种图形学编程接口已经非常流行, 虽然在大型游戏方面DirectX有一定的市场占有率, 但由于OpenGL的开放性,可移植性等优点,O ...
- IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置[完整修正实用版]
IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置[完整修正实用版] IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin ...
最新文章
- 洛谷P3205合唱队——区间DP
- 抠像噪点去除 unity_这个在线抠图工具,好用又免费,告别Photoshop繁杂操作
- IoT -- (九) IoT通讯技术选型与模型设计
- PaddleOCR问题汇总(1)
- 使用opensl 的BufferQueueAudioPlayer对wav文件的播放
- 超全面Figma,Pixso和Sketch工具盘点
- Excel如何批量将图片插入到批注中
- 基于FPGA实现的数字位同步锁相环设计
- 计算机找不到海信电视,海信电视突然看不了电视直播了,怎么解决?当贝市场良心分享...
- Fuzzy kmeans
- 【转】Python实现量化选股
- 如何在CAD中等比例插入光栅图像
- python设置时间过期改变状态_将Python程序设置为在特定天数后过期
- Android OTA版本任意升级
- idea中同一个项目同时启动多个端口进行访问
- matlab编程实现自适应均值滤波和自适应中值滤波
- 原来Glide是这样加载GIF图的
- 基于 mapboxgl+threejs+react+ts 三维 webgis 实战系列教程
- Linux无root权限解决matplotlib中文字体各种疑难杂症
- Leetcode题解 0026期