OpenGL开发必过的坎------开发环境的准备(Windows10)

这篇具有很好参考价值的文章主要介绍了OpenGL开发必过的坎------开发环境的准备(Windows10)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

图形编程一直以来都是计算机科学中最具挑战性的主题之一。随着限制VR技术的兴起,越来越多的公司开始涉足VR领域。目前来看使用最多的是Unity3d来开发,但是像浏览器,将2D应用3D化(把2D的应用界面投到一个3D的场景中,用户可以通过手柄操作2D界面)这些需求都需要对3D图形编程很熟悉才能做好这些炫酷的场景。而现在的图形编程都是基于图形库来完成,即程序员通过调用一个预先定义的库或者是一系列的库中的函数,由这些库来提供对底层图形操作的支持。

现在的市场上有很多的图形库,但是常见的平台无关的图形库叫做OpenGL(Open Graphics Libary)。本系列的博客也是要介绍如何在C++中使用OpenGL进行3D图形编程。在介绍使用OpenGL进行3D图形编程之前,我们先做一个入门必过的坎-------OpenGL的开发环境配置准备。

1.环境配置准备

俗话说:“万事开头难”,很多同学都是对OpenGL很感兴趣,但是动手做时被环境的配置阶段就劝退了,所以本文将全面介绍OpenGL开发环境相关库的配置,降低对OpenGL感兴趣的同学的入门门槛。首先我们先介绍下在C++中使用OpenGL需要用到的环境和库,如下所示:

开发IDE: Visual Studio2022,其他版本的也行,配置大同小异
OpenGL/GLSL
窗口管理库(GLFW)
扩展库(GLEW)
数学库(GLM)
纹理图像加载库(SOIL2)

下面我们就开始准备配置上面列出的环境,OpenGL/GLSL不用我们配置,系统默认就带了,GLSL是着色器语言,在OpenGL2.0版本引入的。这个引入使得程序员可以通过编写着色器语言实现更多更逼真的效果。

2.下载相关库

2.1 下载窗口管理库(GLFW)

OpenGl 实际上并不是把图像直接绘制到计算机屏幕上,而是将其渲染到一个帧缓冲区中,然后由计算机来负责把帧缓冲区的内容绘制到屏幕上的一个窗口中。完成这个功能就可以选择使用GLFW库来实现,这个库支持Windows,MacOS,Linux以及其他的操作系统,我们可以从官网上获取:
GLFW 官网下载地址
如果是CSDN会员的可以去资源里面下载,不需要积分,没有会员的就直接去官网下载,没必要为了下载一个资源去花钱开会员:
GLFW CSDN下载地址

2.2 下载OpenGL扩展库

GLEW(OpenGL extension wrangler),即OpenGL扩展牛仔,OpenGL是围绕一组基本功能和扩展机制进行组织的,随着技术的发展,扩展机制可以用来支持新的功能,所以GLEW 就是用来干这个活的。下载这个库同样是给读者两个地址:
GLEW官网下载地址

GLEW CSDN下载地址

2.3 下载OpenGL数学库

GLM是OpenGL Mathematics数学库,,它是一个只有头文件的C++库,兼容Windows,MacOS和Linux,它可提供与图形概念相关的类和基本数学函数,例如矢量,矩阵和四元数,它还包含各种工具类,用于创建和使用常见的3D图形结构,例如透视矩阵和视角矩阵
GLM官网下载地址

GLM CSDN下载地址

2. 4 纹理图像加载库SOIL2 下载

SOIL2用于加载OpenGL的图像纹理,我们从零开始编写一个纹理图像加载器是可以做到的,但是考虑到各种各样的图像文件格式,使用一个纹理图像加载库通常是更明智的选择,安装集成SOIL2图像纹理加载库需要我下载SOIL2库和一个辅助工具premake
SOIL2 GitHub下载
premake 工具官网下载

SOIL2 CSDN下载
premake 工具CSDN下载

3.准备共享的库文件(lib)和include文件夹

因为在Windows上开发OpenGL需要配置环境,所以我们最好的方式是将OpenGL的开发环境配置成一个项目模板,这样就可以在每次新建OpenGL项目时可以基于我们事先配置好的模板开发。而在做项目模板之前,我们需要把对应的库找一个地方放起来,然后在Visual Studio中去建立库的引用 ,首先我们需要选择一个位置存放我们的库文件,这里可以选择存放到任何位置。下图是文件夹的文件夹结构。

OpenGL开发必过的坎------开发环境的准备(Windows10)
根据上面的库文件结构图,我们去动手实践下,在这里我是在我的D盘创建了一个文件夹存放OpenGL的这些相关库。
OpenGL开发必过的坎------开发环境的准备(Windows10)创建完库文件的架构后,我们开始去准备对应的库

3.1准备窗口管理库GLFW

我们前面下载好GLFW的压缩包后解压,会得到一个如下的目录
OpenGL开发必过的坎------开发环境的准备(Windows10)解压后我们可以看到有不同版本的Visual Studio的lib,我用的是Visual studio 2022,所以我将lib-vc2022下的内容全部复制到我之前创建的 D:\OpenGL\OpenGLTemplate\lib 这个路径下,然后回到我们解压得到的glfw文件夹下,就是上图的文件夹下,点击include会发现其 目录下有一个GLFW目录,将整个目录复制到我们创建的OpenGLTemplate文件夹下的include目录下,路径为:D:\OpenGL\OpenGLTemplate\include,至此,GLFW的准备工作完成。

3.2 准备OpenGL扩展库GLEW

同样,将前面获取到的GLEW压缩包解压,会得到如下图所示的文件结构:
OpenGL开发必过的坎------开发环境的准备(Windows10)解压得到glew库后,点击lib->Release->x64下的库,全部复制到我们创建的OpenGLTemplate文件夹下的lib目录里:路径D:\OpenGL\OpenGLTemplate\lib,接着回到我们解压的glew目录下,找到include目录,点开后发现里面有一个GL目录,将其全部复制到OpenGLTemplate下的include目录下。路径:D:\OpenGL\OpenGLTemplate\include 至此,GLEW库的集成完成。

3.3 准备OpenGL数学库GLM

这个库的集成比较简单,我们获取到这个库的压缩包后解压,会得到如下图所示的目录
OpenGL开发必过的坎------开发环境的准备(Windows10) 我们直接把解压后目录下的glm目录整个复制到我们创建的OpenGLTemplate目录下的include目录下。glm库就集成完了

3.4 准备纹理图像加载库SOIL2

SOIL2的集成稍微麻烦点,我们需要premake工具的协助,我们首先获取SOIL2的zip后解压,然后获取到premake的zip压缩包解压,premake解压后会得到一个premake5.exe,将其复制到我们解压后的SOIL2目录下。如果读者是从我提供的CSDN下载地址获取的SOIL2里面是我编译好了的,可以直接使用。如果是从官网下载的,需要我们编译一下。
OpenGL开发必过的坎------开发环境的准备(Windows10)获取到premake的压缩包后解压得到下面的目录
OpenGL开发必过的坎------开发环境的准备(Windows10)将premake5.exe复制到我们解压后的SOIL2目录下,即
D:\OpenGL\installPKG\SOIL2-1.3.0 下,然后。
OpenGL开发必过的坎------开发环境的准备(Windows10)然后在SOIL2-1.3.0下运行CMD命令行:输入命令:premake5 vs2022
OpenGL开发必过的坎------开发环境的准备(Windows10)注意,vs2022是我的visual studio的版本,具体的版本根据安装的版本来定
运行上面的命令后会在SOIL2-1.3.0下生成一个make目录
OpenGL开发必过的坎------开发环境的准备(Windows10)接着我们进入make->windwos目录下:
OpenGL开发必过的坎------开发环境的准备(Windows10)使用Visal Studio打开上图中红框标记的文件。
OpenGL开发必过的坎------开发环境的准备(Windows10)打开上面的文件后如图所示,这时我们点击鼠标右键,在弹出的菜单中选择生成,生成结束后关闭Vsual Studio,这时SOIL2-1.3.0目录下会多一个lib,如下所示
OpenGL开发必过的坎------开发环境的准备(Windows10)接下来我们将lib下的库全部复制到我们之前创建的OpenGLTemplate目录下的lib目录下。然后回到SOIL2目录下,将src->SOIL2目录全部复制到OpenGLTemplate目录下的include目录下。这样我们的图像纹理加载库SOIL2就集成完了。

到这里,我们对比下我们之前给到的OpenGLTemplate的文件目录图发现,还差一个glew32.dll文件需要放到OpenGLTemplate目录下,没有 这个库我们是无法运行OpenGL的代码的,这个库位于我们解压后的Glew目录下,我们找到解压的Glew目录,然后在其bin->Release->x64下找到这个库
OpenGL开发必过的坎------开发环境的准备(Windows10)将其复制到OpenGLTemplate目录下, 然后我们的库就准备完了。接下来我们制作一个OpenGL的项目启动模板

4.使用Visual Studio 制作OpenGL项目模板

4.1 模板配置

打开我们的Visual Studio,然后创建一个新的C++空项目
OpenGL开发必过的坎------开发环境的准备(Windows10)创建设置好名字后打开,比如这里我们叫OpenGLTemplate,然后打开
OpenGL开发必过的坎------开发环境的准备(Windows10)我们先配置Debug模式下的库引用
我们找到项目->属性打开属性配置界面,然后将我们之前的OpenGLTemplate目录下的include路径配置到下图中标记的“包含目录”下。
OpenGL开发必过的坎------开发环境的准备(Windows10)OpenGL开发必过的坎------开发环境的准备(Windows10)然后我们还是在Visual Studio的属性设置面板上找到“链接器->常规”然后将我们之前准备的OpenGLTemplate目录下的lib目录配置到这里

OpenGL开发必过的坎------开发环境的准备(Windows10)然后我们同样在“链接器->输入->添加依赖项”下,将OpenGLTemplate目录下的lib中的glfw3.lib、glew32.lib、soil2-debug.lib、opengl32.lib(应该已经是WindowSDK的一部分了,不配置也行,但是为了保险还是配置上)
OpenGL开发必过的坎------开发环境的准备(Windows10)配置完以后保存,然后再切换到Release模式,重复的操作再配置一遍这里就不赘述了。
OpenGL开发必过的坎------开发环境的准备(Windows10)

4.2 模板导出

OpenGL开发必过的坎------开发环境的准备(Windows10)
OpenGL开发必过的坎------开发环境的准备(Windows10)点击完成后,我们再次新建项目时就会发现多了一个项目模板,如下所示:
OpenGL开发必过的坎------开发环境的准备(Windows10)我们点击自己定义的这个模板就可以创建OpenGL项目了。

5.测试OpenGL环境

首先在项目的源文件目录右键新建一个cpp文件:FirstOpenGLDemo.cpp
OpenGL开发必过的坎------开发环境的准备(Windows10)输入代码:

#include<GL/glew.h>
#include<GLFW/glfw3.h>
#include<iostream>

using namespace std;

void init(GLFWwindow* window) {

}

void display(GLFWwindow* window, double currentTime) {
	glClearColor(1.0, 0.0, 0.0, 1.0);
	glClear(GL_COLOR_BUFFER_BIT);
}

int main(void) {
	if (!glfwInit()) {
		exit(EXIT_FAILURE);
	}
		glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
		glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
		GLFWwindow* window = glfwCreateWindow(600, 600, "OpenGl-Demo", NULL, NULL);
		glfwMakeContextCurrent(window);
		if (glewInit() != GLEW_OK) { exit(EXIT_FAILURE); }
		glfwSwapInterval(1);
		init(window);

		while (!glfwWindowShouldClose(window)) {
			display(window, glfwGetTime());
			glfwSwapBuffers(window);
			glfwPollEvents();
		}

		glfwDestroyWindow(window);
		glfwTerminate();
		exit(EXIT_SUCCESS);
}

这时候我们发现相关的库都可以引用成功了,但是运行不起来,会报下面的错误
OpenGL开发必过的坎------开发环境的准备(Windows10)这时就需要把我们之前放在OpenGLTemplate目录下的glew32.dll动态链接库放到,我们项目的目录的同名目录下。

OpenGL开发必过的坎------开发环境的准备(Windows10)这时后我们再运行代码,就会发现运行成功了。
OpenGL开发必过的坎------开发环境的准备(Windows10)我们上面的代码就是简单的展示了一个红底的背景,至此,OpenGL开发环境的配置全部完成

总结

本文主要介绍了在Windows10上的Visual Studio 2022上搭建OpenGL开发环境,主要介绍了窗口管理库GLFW、OpenGL扩展库GLEW、OpenGL数学库GLM和图像纹理加载库SOIL2的配置和集成,最后自定义了一个Visual Studio项目模板,并且最后用一个测试Demo测试了我们配置的环境,其中比较遗憾的就是glew32.dll必须我们手动复制到项目的指定目录,否则无法运行OpenGL程序。这里如果读者有更好更方便的办法,欢迎评论区交流。文章来源地址https://www.toymoban.com/news/detail-432968.html

到了这里,关于OpenGL开发必过的坎------开发环境的准备(Windows10)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mac 10.13.6安装后开发准备工作

    git下载安装 xcode旧版安装搜索 brew国内源安装 brew国内源安装地址2 brew更换源 SwitchHosts github hosts nfts磁盘读写工具 更新ssl证书 证书下载 brew 更新curl(60) ssl错误解决: https://site.ip138.com/ vi 命令: i 插入 :wq 保存退出

    2024年02月11日
    浏览(41)
  • 【手写数据库toadb】01 开发数据库内核准备阶段-开发环境准备

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年01月22日
    浏览(48)
  • 准备HarmonyOS开发环境

    在开始 HarmonyOS 开发之前,需要准备好开发环境。本章将详细指导你如何安装 HarmonyOS SDK、配置开发环境、创建 HarmonyOS 项目。 安装 HarmonyOS SDK 配置开发环境 创建 HarmonyOS 项目 总结 1. 安装 HarmonyOS SDK HarmonyOS SDK 是开发 HarmonyOS 应用的软件开发工具包。它包括了编译器、模拟器、

    2024年02月10日
    浏览(37)
  • Visual Studio 2022 搭建GLFW OpenGL开发环境

    最近工作需要 需要写一个全景的视频播放器 网上搜了下大概解决方案是 ffmpeg+opengl b站有很多视频  按照视频 搭建了OpenGL的开发环境 先去GLFW的网站下载 windows平台的库文件 为什么使用GLFW  因为GLFW是跨平台的   我下的是64位版本解压后有目录如下    包含了动态库和静态库

    2024年02月03日
    浏览(52)
  • Superset二次开发之环境准备-Nodejs

    ① 打开nodejs官网 Node.js 击下载LTS版本. 不建议下载最新版,会有版本冲突.可以先查看一下所有版本  Previous Releases | Node.js , 我下载的Node.js 16.20.2 ,下载地址  https://nodejs.org/dist/v16.20.2/node-v16.20.2-x64.msi ②  直接安装 ③ 这个位置可以勾选,也可以不勾选,勾选了后自动安装一

    2024年02月03日
    浏览(43)
  • Flink开发环境准备: centos-jdk8

      Flink底层源码是基于Java代码进行开发,在Flink编程中我们除了可以使用Java语言来进行编写Flink程序外,还可以使用Scala、Python语言来进行编写Flink程序。 本文主要使用Java来编写Flink程序。 flink搭建在centos服务器:jdk环境1.8、flink单机 - 1.16.0版本 开发环境搭建在win10系统:

    2024年02月13日
    浏览(60)
  • 华为云Elasticsearch(FusionInsight HD) 连接和开发教程-环境准备

    Elasticsearh简介 Elasticsearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎和分析引擎。设计用于大数据中,能够稳定、可靠、快速地实现实时搜索和分析,并且安装使用的方法十分简单方便。 Elasticsearch相比传统关系数据库,通过时间戳或者精确

    2024年02月03日
    浏览(43)
  • 全流程机器视觉工程开发(一)环境准备,paddledetection和labelme

    我现在在准备做一个全流程的机器视觉的工程,之前做了很多理论相关的工作。大概理解了机器视觉的原理,然后大概了解了一下,我发现现在的库其实已经很发展了,完全不需要用到非常多的理论,只需要知道开发过程就可以了,甚至paddlex已经直接有了傻瓜式模型训练的软

    2024年01月19日
    浏览(45)
  • 揭开ChatGPT面纱(1):准备工作(搭建开发环境运行OpenAI Demo)

    本博客的gitlab仓库:地址,本博客对应01文件夹。 随着人工智能技术的飞速发展,ChatGPT作为其中的佼佼者,已经逐渐从实验室走向了公众视野。它不仅仅是一个简单的聊天机器人,而是代表了自然语言处理(NLP)领域的前沿技术。在ChatGPT的帮助下,我们能够实现更自然、更

    2024年04月26日
    浏览(50)
  • odoo17基础培训1-odoo开发基础知识准备以及odoo17开发环境安装

    当我介绍客户使用odoo系统作为业务管理平台时,有时会被问到Odoo是什么? 简单点,可以这么说: Odoo是一套完整的系统,是一个开源框架,针对 ERP 的需求发展而来,适合定制出符合客户各种需求的ERP系统、电子商务系统、CMS、或者是网站。 由于 Odoo 的底层结构很强大,所

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包