VS2022配置OpenGL+GLAD

Glew(The OpenGL Extension Wrangler Library)是对底层OpenGL接口的封装,可以让你的代码跨平台。Glad与Glew作用相同,可以看作它的升级版。

Freeglut(OpenGL Utility Toolkit)主要用于创建并管理窗口和OpenGL上下文、处理手柄、键盘、鼠标输入的功能等。Glfw(Graphics Library Framework)则是Freeglut升级版。

通常来说Glad与Glfw配合使用。


我打算配合使用OpenGL和GDAL来读取和处理TIF图像,至于原因呢,可以看下ChatGPT的回答哈哈

GDAL和OpenGL配合读取TIF的一般步骤如下:

将GDAL和OpenGL结合使用可以实现在OpenGL中读取和渲染TIF影像,从而实现在图形界面中显示地理空间影像的功能。以下是一般的步骤:

  1. 使用GDAL库读取TIF影像,获取影像的数据和元信息,如影像宽度、高度、像素类型、地理空间坐标信息等。可以参考前面提供的GDAL读取TIF影像的示例代码。

  2. 将GDAL读取的影像数据传递给OpenGL,可以通过创建OpenGL纹理(Texture)来加载影像数据。可以使用OpenGL的纹理映射(Texture Mapping)功能,将影像数据映射到OpenGL的纹理对象上。可以使用OpenGL的API来创建纹理对象、设置纹理参数、加载影像数据到纹理对象等。

  3. 在OpenGL的渲染循环中,通过使用纹理对象将TIF影像渲染到OpenGL的窗口或画布上。可以使用OpenGL的2D或3D绘制功能,将纹理对象作为纹理贴图(Texture Mapping)应用到OpenGL的几何图形上,从而将影像渲染到屏幕上。

优势在哪里?

结合使用GDAL和OpenGL可以实现在图形界面中实时渲染和显示地理空间影像的功能,相比单独使用GDAL,有以下一些优势:

  1. 实时渲染:使用OpenGL可以在实时渲染的环境中显示地理空间影像,可以实时查看和交互地理空间数据,如放大、缩小、旋转、平移等操作,提供更直观的用户体验。

  2. 3D渲染:OpenGL支持3D渲染,可以将地理空间影像渲染到3D模型上,实现更复杂的三维地理可视化效果,如地形、建筑物等的渲染。

  3. 硬件加速:OpenGL利用图形硬件加速渲染,可以充分利用计算机的GPU资源,提供高性能的渲染速度,特别是对于大尺寸高分辨率的地理空间影像,可以实现实时渲染的效果。

  4. 图形界面交互:结合OpenGL可以实现更丰富的图形界面交互,如使用鼠标、键盘等输入设备进行用户交互,例如选择、标注、测量等操作,提供更灵活和便捷的用户操作。

  5. 可扩展性:OpenGL作为一种跨平台的图形渲染库,可以在多种操作系统和硬件平台上运行,具有较好的可扩展性,可以方便地与其他图形库或工具进行集成,实现更复杂的地理信息系统(GIS)应用。

综上所述,结合使用GDAL和OpenGL可以充分发挥二者的优势,实现更强大和灵活的地理空间影像渲染和显示功能。

2023/4/23补充:VS2022+GDAL已经配置好了,教程如下

VS2022配置GDAL_程序员班长的博客-CSDN博客


有同学可能要问了,GDAL和GLAD是什么区别?

Glad和GDAL是两个不同的库,它们在功能和用途上有明显的区别。

  1. Glad是一个用于管理和加载OpenGL函数指针的C/C++库。它可以生成用于加载OpenGL函数的代码,从而允许开发者在OpenGL应用程序中使用最新的OpenGL功能。Glad提供了简单的、跨平台的方法来加载和管理OpenGL函数指针,以便开发者可以方便地使用OpenGL的各种功能。

  2. GDAL(Geospatial Data Abstraction Library)是一个开源的、跨平台的库,用于处理和处理地理空间数据。GDAL支持许多地理空间数据格式,如栅格数据(如遥感图像、DEM等)和矢量数据(如矢量地图、矢量数据集等)。GDAL提供了丰富的功能,包括数据读取、写入、转换、处理、投影变换等,可以用于访问、处理和分析各种地理空间数据。

在区别和联系方面,可以总结如下:

  1. 功能:Glad用于加载和管理OpenGL函数指针,以便在OpenGL应用程序中使用最新的OpenGL功能。GDAL用于处理和处理地理空间数据,支持多种地理空间数据格式。

  2. 用途:Glad主要用于图形编程中的OpenGL应用程序,而GDAL主要用于地理空间数据处理和分析,如GIS(地理信息系统)、遥感、地图制图等应用。

  3. 领域:Glad主要在计算机图形和游戏开发领域中使用,而GDAL主要在地理空间信息领域中使用。

  4. 跨平台支持:Glad是一个跨平台的库,可以在多个操作系统上使用,包括Windows、macOS、Linux等。GDAL同样也是一个跨平台的库,可以在多个操作系统上使用,并且对于地理空间数据格式的支持相对较全面。

总的来说,Glad用于加载和管理OpenGL函数指针,用于图形编程中的OpenGL应用程序;而GDAL用于处理和处理地理空间数据,主要用于地理空间信息领域。选择使用哪个库取决于你的具体需求和应用领域。


VS2022配置OpenGL+GLAD教程如下

一、需要下载安装的环境及工具


1、Visual Studio 2022 professional
Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器

Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器

下载安装并进行激活(激活码请自行获取,本教程不提供)。

2、GLFW
 

Download | GLFW

下载Source package,下载完成后将压缩包解压,备用。

3、Glad

https://glad.dav1d.de/

这里gl的版本需要选version 3.3以上,机器配置够好甚至可以拉满,这里以version 4.0为例。

然后下载生成的压缩包

(1)下载完成后将压缩包解压。

(2)任意找一个地方新建文件夹,注意不能有中文路径。将上述解压的glfw与glad文件夹放到此新建的文件夹中。

例如我的文件夹是C:\OpenGL,文件夹内容如下

4、CMake

Download | CMake

下载安装,安装选项全部默认即可。

二、配置环境


1、准备工作


在glfw-3.3.8文件夹中新建build文件夹。

2、编译GLFW源文件


(1)打开CMake。

(2)点击“Browse Source”按钮,找到OpenGL文件夹中的glfw-3.3.8文件夹并选择。再点击“Browse Build”按钮选择glfw-3.3.8文件夹中你刚才新建的build目录。之后点击“Configure”按钮。

(3)此时会弹出一个对话框,选择你需要的编译器即Visual Studio 2022,其他地方不需改动,然后点击“finish”按钮即可。

(4)等待配置完成即通知栏出现“Configuring done”后,点击“Generate”按钮。

(5)生成成功后通知栏会出现“Generating done”字样,并且build文件夹会出现若干文件及文件夹,此时可关闭CMake。

(6)使用Visual Studio 2022打开build中的GLFW.sln工程文件。

(7)点击“生成解决方案”按钮,等待对话框中提示全部生成成功后,关闭Visual Studio 2022。

3、配置Visual Studio 2022目录


(1)重新打开Visual Studio 2022,点击创建新项目,新建一个C++空项目(或者打开已有项目)。

(2)Debug选x64的,然后在解决方案名称上点击右键,点击“属性”(注意不是解决方案四个字那里右键)。

(3)点击“VC++目录”,在右侧的包含目录点击下拉箭头点击“编辑”。

(4)复制并进入计算的值下面的第一个路径,我的为“C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\include”。

(5)打开OpenGL文件夹,将C:\OpenGL\glfw-3.3.8\include的GLFW文件夹以及C:\OpenGL\glad-4.0\include的glad和KHR文件夹复制到刚才打开的C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\include文件夹中。

(6)还是在VC++目录中,在右侧的库目录点击下拉箭头点击“编辑”。复制并进入计算的值下面的第一个路径,我的为“C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\lib\x64”。

(7)打开OpenGL文件夹,将C:\OpenGL\glfw-3.3.8\build\src\Debug的glfw3.lib文件复制到刚才打开的C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\lib\x64文件夹中。

4、配置Visual Studio 2022链接器


(1)点击VC++目录下面的“链接器”中的“输入”,在右侧的附加依赖项点击下拉箭头点击“编辑”。

(2)添加“glfw3.lib”以及“opengl32.lib”。

最后,点击确定即可。

三、测试环境


(1)将C:\OpenGL\glad-4.0\src中的glad.c文件添加到你刚才新建的Visual Studio 2022空项目中,并新建test.cpp文件。

(2)将下面的代码复制到test.cpp文件中。

#include <glad/glad.h>
#include <GLFW/glfw3.h>#include <iostream>void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow *window);// settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;int main()
{// glfw: initialize and configure// ------------------------------glfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);#ifdef __APPLE__glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
#endif// glfw window creation// --------------------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);glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);// glad: load all OpenGL function pointers// ---------------------------------------if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){std::cout << "Failed to initialize GLAD" << std::endl;return -1;}    // render loop// -----------while (!glfwWindowShouldClose(window)){// input// -----processInput(window);// render// ------glClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);// glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc.)// -------------------------------------------------------------------------------glfwSwapBuffers(window);glfwPollEvents();}// glfw: terminate, clearing all previously allocated GLFW resources.// ------------------------------------------------------------------glfwTerminate();return 0;
}// process all input: query GLFW whether relevant keys are pressed/released this frame and react accordingly
// ---------------------------------------------------------------------------------------------------------
void processInput(GLFWwindow *window)
{if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)glfwSetWindowShouldClose(window, true);
}// glfw: whenever the window size changed (by OS or user resize) this callback function executes
// ---------------------------------------------------------------------------------------------
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{// make sure the viewport matches the new window dimensions; note that width and // height will be significantly larger than specified on retina displays.glViewport(0, 0, width, height);
}

(3)点击本地Windows调试器,出现一个空的OpenGL画布,配置成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35945.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatMOSS的使用方法

1、开发者们在VScode界面找到应用商店扩展 2、搜索ChatMoss 并安装 3、CtrlF9快速唤醒使用 4、注册登录 字符数会更多&#xff08;填&#xff1a;zgy999139.com 双方都会获得可用字符数&#xff09;。 笔者体验用来写点小东西确实体验&#xff0c;加快效率&#xff0c;大家可以…

CoinMarketCap推出加密资产数据APP

点击上方 “蓝色字” 可关注我们&#xff01; 暴走时评&#xff1a; 加密货币数据提供商CoinMarketCap推出了其首款Android应用程序并改进了其Apple iOS产品。 值得注意的是&#xff0c;该应用程序提供了CoinMarketCap网站上尚未提供的功能&#xff0c;包括投资组合跟踪&#x…

加密货币--Cryptocurrency

原文链接 Ever since Nas Daily’s video came out about how I earned over $400,000 with less than $10,000 investing in Bitcoin and Ethereum, I’ve been getting hundreds of questions from people around the world about how to get started with cryptocurrency i…

GIBXChange上线MT5交易平台:MT5 LP MAM+5A对冲模式强势来袭

引子 人类近代史就是一部金融的发展史,尤其21世纪更是金融的时代。金融市场的流动性带动着社会资源更广维度流动分配。交易的全球化,推动着地区资源和生产资料的全球化分配。尤其以外汇、期货市场的发展,携带着全球最大规模资金流通量的交易盘口,重构着全球金融市场的新秩…

Ubcoin市场:加密货币-商品交易平台

Ubcoin是一个区块链平台&#xff0c;使用例如亚马逊、Etsy和eBay所用的线上市场模型&#xff0c;打造全球首个真正有别于传统的加密货币交易平台。Ubcoin用户仅需售卖真实商品即可换取加密货币&#xff0c;并且能够使用加密货币购买商品&#xff0c;整条链上无需法定货币的参与…

印度尼西亚通过加密货币期货交易规则

点击上方 “蓝色字” 可关注我们&#xff01; 暴走时评&#xff1a; 印度尼西亚贸易部下属的商品期货交易监管机构&#xff08;Bappebti&#xff09;于周一公布了该国期货交易所的加密资产交易新规则&#xff0c;规定加密货币期货交易所必须进行登记&#xff0c;获准后才能运营…

放弃几百万年薪的后续

厂长&#xff1a;和洋哥认识很久了&#xff0c;最近他从网易离职&#xff0c;放弃了几百万的年薪&#xff0c;全身心的投入AIGC&#xff0c;刚开始我得到这个消息很是诧异&#xff0c;在详谈之后才明白了洋哥背后的思考逻辑&#xff0c;刚好今天他也写了篇文章做了解释&#xf…

盘点一个AI你画我猜的小工具

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 寻声暗问弹者谁&#xff0c;琵琶声停欲语迟。 大家好&#xff0c;我是Python进阶者。 一、前言 前几天在【ChatGPT&AI破局俱乐部】知识星球发现了一…

不愧是比亚迪!

最近这段时间&#xff0c;因为我自己准备买车嘛&#xff0c;然后先后去试驾了比亚迪汉、小鹏P7i、蔚来ET5、智己LS7这几辆车&#xff0c;接下来想分4篇文章依次给大家分享一下这四个品牌的车试驾体验。 比亚迪汉 小鹏P7i 蔚来ET5 这四个品牌总共花了三天时间&#xff0c;也算是…

使用AI,做抖音漫画短视频,4个人2天的工作量,1人仅需5小时即可完成

3 天前 ChatGPT云炬学长 ​关注 ​之前仅用一个多月就在抖音涨粉25w&#xff0c;虽然涨粉速度还可以&#xff0c;但账号至少需要4~5个人&#xff0c;&#xff08;其中包括1个文案&#xff0c;2个漫画师&#xff0c;一个剪辑师&#xff0c;一个运营&#xff09;才能保证日更。…

雷军也入局了...

风口理论的发明者雷总最近也杀入大模型&AI领域了&#xff0c;早在10多天前雷军在微博就发过一段话&#xff1a; 这段话其实已经暗示了雷军和他的小米已经在研发大模型产品了&#xff0c;相信要不了多久小米的大模型产品就会面世。 这下国内几乎所有互联网巨头都杀入了大模型…

阿里放大招了...

昨天阿里放了个大招&#xff1a;宣布自研大模型“通义千问”发布&#xff0c;不过目前只邀请企业用户进行体验测试&#xff0c;用户可通过官网申请&#xff0c;符合条件的用户可参与体验。 我没还没拿到邀请码&#xff0c;申请了体验资格正在排队中。但看完第三方的评测还是充满…

我干了一件大事!

最近读者朋友们应该都知道我做了一个付费社群&#xff0c;马上就要突破10000人了。 我一口气推了10多篇文章&#xff0c;都是关于我的AI星球&#xff1a;ChatGPT破局俱乐部。有些读者抱怨我&#xff1a;洋哥是不是在割韭菜&#xff1f; 另一方面因为我这个星球发展实在太快了&a…

转身卷OpenAI,这才真的香!

ChatGPT爆火后&#xff0c;OpenAI逐渐进入人们的视野。据levels.fyi显示&#xff0c;最近OpenAI给AI/ML岗&#xff08;L5&#xff09;开出$900k的高薪&#x1f447; 反观其他大厂lowball的现状&#xff0c;转身卷OpenAI&#xff0c;是真的香&#xff01; HC多、面试难&#xff…

自注意力机制(Self-Attention)

目录 一、注意力机制和自注意力机制的区别 二、引入自注意力机制的目的 三、Self-Attention详解 3.1 单个输出 3.2 矩阵形式 四、Multi-head Self-attention 五、Positional Encoding 六、Self-Attention和RNN的区别 一、注意力机制和自注意力机制的区别 Attention机制与…

慌了!ChatGPT吃我饭,还要掀我碗?

ChatGPT面世&#xff0c;各种被AI取代“失业言论”笼罩在人们头顶&#xff0c;本文聚焦这一问题&#xff0c;推荐关注ChatGPT的小伙伴阅读。 一时间火爆全网的新晋网红——ChatGPT&#xff0c;就问&#xff1a;还有谁不认识&#xff1f; 谷歌计划在旗舰搜索引擎中添加对话式人…

GPT/GP2/GPT3

GPT&#xff0c;GPT-2&#xff0c;GPT-3 论文精读【论文精读】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1AF411b7xQ?spm_id_from333.999.0.0&vd_source4aed82e35f26bb600bc5b46e65e25c22 笔记&#xff1a;李沐老师GPT系列讲解 - 知乎今天分享的是李沐大神讲解…

IT伦理与道德:Google的“不作恶”准则

不作恶&#xff08;Do not be evil&#xff09;是Google公司的一条不成文的口号和行为准则。对于这条准则&#xff0c;很多人是怀疑和嘲讽的态度&#xff0c;但“不作恶”确实是Google公司一直以来倡导和坚持的。在物欲横流的今天和尔虞我诈的商业竞争中&#xff0c;能够提倡这…

数智赋能 制造当自强

党的二十大报告指出&#xff0c;要“建设现代化产业体系”&#xff0c;“推动制造业高端化、智能化、绿色化发展”。随着新一代信息技术与制造业的持续深度融合&#xff0c;以高端化、智能化、绿色化为目标&#xff0c;为工业创新赋能既是大势所趋&#xff0c;又任重而道远。 制…

excel VBA 编程,数据处理,并画图,详细代码,加解释

基础的东西就不讲了&#xff0c;详情请看&#xff1a;入门瞧一瞧这里 本教程所用数据和代码连接&#xff1a;本节教程所需要的数据和代码 下载原始数据后打开&#xff0c; 右击下图的 Summary 并选择 View Cpde 查看代码 主要的代码在 Sheet3(RawData) 以及 Module1 中&#…