Visual Studio配置OpenGL

2023-05-16

近期工作中需要用到OpenGL,而之前一直是用Opencv工作,这就需要在VS上配置OpenGL。因为是首次在VS上配置OpenGL,以备自己和有需要的小伙伴不时之需。我的VS是2022版的,但配置流程各版本应该都是一样的。

根据百度百科的解释,OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。

这里主要介绍GLUT,GLFW和GLAD的配置,GLUT,GLFW和GLAD都是OpenGL的第三方库。

GLUT配置

首先是GLUT的配置,本来是打算在在官网下载的,但是官网显示建议使用freeGLUT,所以只好在别处下载,以下的链接是从其他博客获得的,可正常下载gult库。或者从在网上搜索一下有关GLUT库的下载,网上资源很多。

https://www.52txr.cn/go/aHR0cHM6Ly93d3cub3BlbmdsLm9yZy9yZXNvdXJjZXMvbGlicmFyaWVzL2dsdXQvZ2x1dGRsbHMzN2JldGEuemlw

文件下载并解压好后会得到以下五个文件:

将glut.h文件放到自己的VS目标目录中,路径为:VS\VC\Tools\MSVC\14.34.31933\include\gl 中,VS为自己的Visual Studio安装文件夹,其中gl文件夹自行创建。 

glut.lib和gult32.lib文件的目标路径为 VS\VC\Tools\MSVC\14.34.31933\lib\x86.

最后把glut.dll和glut32.dll放到系统文件夹,如果电脑是64位则路径为:C:\Windows\SysWOW64

如果电脑系统是32位则路径为:C:\Windows\System32

安装nupengl:

这里要注意的是,每创建一个glut项目都要重新安装nupengl。

首先打开VS,创建一个控制台应用,项目语言要选中C++。

 在项目里选择管理NuGet程序包。

 然后搜索nupengl并进行安装。

到此GULT的安装便完成了。

GLFW配置

GLFW下载链接为:

https://www.glfw.org/download.html

根据电脑系统下载相应版本:

 解压后得到名为glfw-3.3.8.bin.WIN64的文件夹(以64位版本为例),将路径 glfw-3.3.8.bin.WIN64\include\GLFW 中的glfw3.h文件(如下图)放到 目标路径:VS\VC\Tools\MSVC\14.34.31933\include\GLFW下,GLFW文件夹自行创建。

 然后将路径 glfw-3.3.8.bin.WIN64\lib-vc2022中的glfw3.dll, glfw3_mt.lib, glfw3.dll文件放到路径  VS\VC\Tools\MSVC\14.34.31933\lib\x86 下。

 然后将glfw3.dll放到 C:\Windows\SysWOW64。

到此GLFW的安装便完成了。

GLAD配置

glad官网地址为:

https://glad.dav1d.de/

进入官网后安装以下选项选择:

 然后点击Generate然后下载zip文件。

 将glad\include中的两个文件夹复制到目标路径 VS\VC\Tools\MSVC\14.34.31933\include中去。(VS为自己的visual studio安装文件夹)。至于glad\src中的glad.c文件,不需要放置到任何的位置

,如果VS项目中需要用GLAD,把glad.c复制到源文件目录下即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio配置OpenGL 的相关文章

  • QGLWidget 和快速离屏渲染

    是否可以在屏幕外完全渲染QGLWidget使用 Qt 无需将场景重新绘制到屏幕 从而完全避免缓冲区在监视器上翻转 我需要保存帧缓冲区上生成的每一帧 但是 由于序列由 4000 帧组成 并且屏幕上的时间间隔为15ms我花费4000 15ms
  • glBufferSubData什么时候返回? [复制]

    这个问题在这里已经有答案了 我想将一个非常大的内存块的内容传输到足够大的 GPU 缓冲区 然后立即更改 CPU 上的内存内容 伪代码是这样的 glBindBuffer very large buffer glBufferSubData ve
  • 构建人脸图像的线框模型[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想编写一个程序来构建面部图像的线框
  • 使用 xscreensaver 编写屏幕保护程序的提示和技巧? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 几个月来我一直在做一些简单的 Ope
  • 您应该如何有效地批处理复杂的网格?

    渲染复杂网格的最佳方法是什么 我在下面写了不同的解决方案 想知道您对它们有何看法 让我们举个例子 如何渲染 Crytek Sponza 网格 PS 我不使用Ubershader 只使用单独的着色器 如果您通过以下链接下载网格 http gr
  • glDeleteShader - 顺序无关吗?

    在 OpenGL 中 顺序为glAttachShader无关紧要 这是否相同glDeleteShader 如果正在进行一些动态内存分配 我会说是的 但也许在 opengl 上下文中处理方式不同 简单的答案是 没关系 您可以在将它们附加到程序
  • 鉴于 GPU 有任务队列并且是异步的,计算 FPS 的正确方法是什么?

    我始终认为计算 FPS 的正确方法是简单地计算绘制循环迭代所需的时间 互联网上的大部分内容似乎都是一致的 But 现代显卡被视为异步服务器 因此绘制循环会发出 GPU 上已有的顶点 纹理 等数据的绘制指令 这些调用不会阻塞调用线程 直到 G
  • 设置 GLEW 窗口?

    我有 Visual Studio 2010 我想在其上设置 glew h 我执行了这一步 但仍然出现链接器错误 1 下载glew包 2 将 h文件复制到C Program Files x86 Microsoft SDKs Windows v
  • 使用 GLFW + GLEW 时 glGenFramebuffers() 访问冲突

    我收到此错误 执行位置 0x00000000 时发生访问冲突 当我在 Windows 上使用 GLFW GLEW 时 我使用的是 Windows 7 我也有自己的实现 从头开始 它创建一个窗口 初始化 OpenGL 上下文 初始化 GLEW
  • 无法将简单的无符号字节 RGB 纹理映射到四边形:

    我有一个非常简单的程序 将虚拟红色纹理映射到四边形 下面是 C 中的纹理定义 struct DummyRGB8Texture2d uint8 t data 3 4 int width int height DummyRGB8Texture2
  • 3D 图形矩阵 4x4 中最后一行的 magic 4 的用途是什么?

    当我阅读有关WebGL的书时 我看到了下一个矩阵描述 有关于书中最后一行的信息 WebGL 初学者指南 初学者指南 Diego Cantor Brandon Jones 神秘的第四排 第四排没有任何特殊之处 意义 元素 m4 m8 m12
  • libgdx 中帧缓冲区的结果不明确

    我得到以下奇怪的结果帧缓冲区 http libgdx badlogicgames com nightlies docs api com badlogic gdx graphics glutils FrameBuffer htmllibgdx
  • 静态链接库时出现 glew 链接器错误

    我正在尝试在 Visual Studio 2012 中构建一个 opengl 项目 我想静态包含 glew 库 因此我从源代码构建它并将生成的 glew32sd lib 复制到我的 lib 目录 我将此 lib 路径提供给 Visual S
  • 没有着色器的 OpenGL

    我已经阅读了一些教程来编写以下代码 唯一的区别是原始教程使用 SDL 而不是 GLEW 我不明白这段代码有什么问题 它可以编译 但我没有看到三角形 教程也没有使用着色器 include
  • 使用 openGL、SOIL 加载图像

    我尝试了很多使用 SOIL 在 openGL 中加载和显示图像的示例 运行下面的源代码时 它仅显示一个没有图像的白色四边形 我尝试打开一个名为 foto 的图像 我将图像文件放在程序的文件夹中 bool keyStates new bool
  • (定义一个宏)方便OpenGL命令调试?

    有时插入条件打印和检查需要很长时间glGetError 使用二分搜索的形式来缩小范围 其中第一个函数调用是 OpenGL 首先报告错误 我认为如果有一种方法可以构建一个宏 我可以包装所有可能失败的 GL 调用 并有条件地调用 那就太酷了gl
  • CPU 到 GPU 法线映射

    我正在创建一个地形网格 然后这个答案 https stackoverflow com a 5284527 1356106我正在尝试将 CPU 计算法线迁移到基于着色器的版本 以便通过降低网格分辨率并使用在片段着色器中计算的法线贴图来提高性能
  • OpenGL:调试“单通道线框渲染”

    我正在尝试实现论文 单通道线框渲染 它看起来很简单 但它给了我所期望的厚暗值 论文没有给出计算海拔高度的确切代码 所以我按照自己认为合适的方式进行了操作 代码应该将三个顶点投影到视口空间中 获取它们的 高度 并将它们发送到片段着色器 片段着
  • gluPerspective 与 gluOrtho2D

    我查看了 MSDN 上关于这两个函数的文档 但是 我不太明白这两个功能之间的区别 一个是用于设置 3D 相机视图 另一个是用于设置 2D 相机视图 如果能得到解答就太好了 预先感谢您的评论 正交投影基本上是没有透视的 3D 投影 本质上 这
  • 使用 glDrawElements 时在 OpenGL 核心配置文件中选取三角形

    我正在使用 glDrawElements 绘制三角形网格 并且希望能够使用鼠标单击来拾取 选择三角形 三角形的网格可以很大 在固定功能 OpenGL 中 可以使用 GL SELECT http content gpwiki org inde

随机推荐

  • 将mysql中的数据导入到hdfs中

    将mysql中的数据导入到hdfs中 mysql中的数据导入到hdfs中 xff0c 需要借助一个工具sqoop完成 xff0c sqoop的安装和简介请点大数据必学框架 sqoop 一 配置sqoop环境 为了能够让sqoop识别到hdf
  • 串口通信——串口接收数据,发送数据

    十六进制 HEX hexadecimal heks des ml 十进制 DEC decimalism 39 desim liz m 二进制 BIN binary ba n ri 八进制 OCT octonary kt n ri 波特率计算
  • 大疆半固态激光雷达Horizon的优缺点

    原文链接 xff1a 大疆激光雷达 xff0c 车厂为何不爱 xff1f 优点 xff1a 1 成本低 xff0c 可以量产 xff1a 2020 年 xff0c 在当年的 CES 展会上 xff0c 大疆 Livox 发布了 Horizo
  • Ubuntu18.04切换Python版本

    转载自 xff1a Ubuntu18 04 切换 Python 版本 前言 Ubuntu18 04 默认安装了两个版本 Python2 7 和 Python3 6 查看可用二进制文件 ls usr bin python 过程 使用 upda
  • 解决ubuntu1604联网以后网页还是打不开的问题

    ubuntu系统连接正常的联网的网线但是网页还是打不开 xff0c 所有联网的软件也打不开 xff0c 在路由器工作正常的情况下 xff0c 可能出现的问题为dns解析异常 xff0c 关于dns解析异常的解决方法 xff1a 这段时间在u
  • 操作系统--线程并发实验三

    操作系统 线程并发实验三 一 实验目的 线程的运行时并发的 xff0c 如果互不相干的线程交替运行不会产生问题 但是如果有共享资源 合作关系的线程之间由于交替运行可能产生问题 xff0c 例如偶尔出现程序的结果不正常 理解临界区的概念 xf
  • 安装OOQP遇到问题

    Ubuntu20 04 安装OOQP遇到问题 OOQP安装 OOQP安装 MA27是OOQP的依赖 在安装MA27时容易出现找不到fortran77等情况 xff0c 在配置这些环境时容易出现其他错误导致系统环境出现问题 选择其他版本的安装
  • 15个好用的百度网盘搜索引擎

    15个好用的百度网盘搜索引擎 前言 分享 15 个好用的百度网盘搜索引擎 xff0c 方便大家搜索百度云网盘分享的资源文件 挑出来这 15 个效果还不错 xff0c 都可以正常使用 挑选标准 xff1a 免费 xff0c 大部分不登录可用
  • 操作系统死锁实验六

    操作系统死锁实验六 一 实验目的 如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件那么该进程集合就是死锁的 产生死锁的必要条件 xff1a 互斥 xff1b 请求资源和保持已获得资源不释放 xff1b 不可抢占
  • 修复 Windows11 打不开 Windows安全中心

    修复 Windows 打不开 Windows安全中心 遇到以上问题我们直接上解决方法 win10的话直接WIN 徽标 43 X键 win11 菜单栏输入 PowerShell 管理员启动 管理员权限打开PowerShell xff0c 依次
  • webstorm/idea 配置less环境

    看了一下发现大多数教程少了最关键的一步 如果这个lessc不能自动识别的话 需要手动寻找lessc cmd的路径 xff0c 可以在终端中通过 where lessc查找 复制lessc cmd位置就可以了
  • 自定义http钩子

    简单创建一个自定义http钩子函数 span class token keyword import span span class token punctuation span useState span class token punct
  • React Redux 工具包 Redux Toolkit 初步学习

    Redux 工具包 xff08 Redux Toolkit xff09 的目标是帮助简化常见的 Redux 用例 它并不是你想要用 Redux 做的所有事情的完整解决方案 xff0c 但它应该使你需要编写的许多与 Redux 相关的代码变得
  • 卫星导航模拟器GSS7000测试NTRIP RTK--以Ublox F9P 为例.rtklib原始观测量解算固定解FIX

    GSS7000 Ntrip 测试指南 Ntrip Networked Transport of RTCM via Internet Protocol 通过互联网进行RTCM网络传输的协议 是在互联网上进行RTK数据传输的协议 Ntrip是一
  • Ubuntu网络调试助手安装后无法打开

    转载自 解决Ubuntu网络调试助手安装后无法打开问题
  • 微机原理与接口技术之8060微处理器

    微机原理与接口技术之Intel8060微处理器 这篇bolg主要讲的是8060微处理器的内部结构 xff0c 引脚功能以及总线时序 8086内部结构 xff1a 8086CPU是由执行指令部件EU和总线接口部件BIU两部分注组成 1 EU部
  • Qt的三个基类QObject、QApplication和QWidget

    一 Qt介绍 1 概述 Qt是一个跨平台的C 43 43 图形用户界面应用程序框架 由挪威TrollTech公司出品 1996年Qt进入商业领域 xff0c 它已经成为全世界范围内数千种成功的应用程序的基础 Qt也是流行的Linux桌面环境
  • 锂电池串联放电并联充电自动转换电路

    直接通过5v充电器给串联锂电池组充电可以大大提高充电器的利用率 毕竟现在手机充电器都有 再去买个专用的锂电池平衡充电器又感觉没啥必要 一般给串联锂电池组充电的方案就是通过升压模块将5v升压后再充电 感觉有弊端 1 一般没有平衡充电功能 造成
  • Linux(Ubuntu)配置Cuda,Pytorch,Anaconda

    近期需要在Linux xff08 Ubuntu20 04 xff09 上运行一个工程 xff0c 需要搭建相关环境 xff0c 这是首次在Linux系统上完成anaconda xff0c cuda xff0c 及Pytorch的下载与配置
  • Visual Studio配置OpenGL

    近期工作中需要用到OpenGL 而之前一直是用Opencv工作 xff0c 这就需要在VS上配置OpenGL 因为是首次在VS上配置OpenGL xff0c 以备自己和有需要的小伙伴不时之需 我的VS是2022版的 xff0c 但配置流程各