当前位置:首页 > > 正文内容

OpenGL(二)

admin5年前 (2020-09-20)8062

GLFW与GLAD

    在绘制出想要的效果之前,需要先常见OpenGL上下文和一个用于显示的窗口。但是这些操作在每个系统上是不一样的,OpenGL讲这些操作抽象出去,需要我们自己创建窗口,定义OpenGL上下文以及处理用户输入。有些库为我们提供了这些功能,用来创建上下文和创建窗口,早的时候有freeglut,现在可以使用更高级一些的GLFW库来实现。

    由于OpenGL只是一个标准/规范,具体的实现是由显卡的驱动开发商实现的。由于由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。但是这个过程比较复杂且繁琐,同样可以使用库来简化这个过程,这些库有GLEW、GLAD,目前可以使用比较流行的GLAD库。 

    所以,首先需要配置这几个库,这里使用VS2019作为IDE进行开发。

首先编译配置GLFW

    GLFW下载地址:https://www.glfw.org/download.htm官网有预编译好的二进制文件,但是这里我们自己进行编译。在官网下载Source package,然后使用CMake(下载地址:https://cmake.org/download/)进行编译,如下图,源文件路径是你解压的GLFW源码的路径,再设置编译的路径。

image-20200919223000082.png

    在Tool->Configure中配置生成的工程,这里我选择的是vs 2019的,其余默认:

image-20200919223413440.png

 

    完事生成后,去build的文件夹找到GLFW.sln文件,使用visual studio 2019打开,直接点击 本地Windows调试器 即可,然后编译的库glfw3.lib就会出现在src/Debug文件夹内。

我们将GLFW源文件中的include文件夹复制一份到一个新的文件夹GLFW_GLAD(名字随意)中,再在文件夹中新建一个lib文件夹,再将glfw3.lib复制一份到lib文件夹中,这样GLFW这边基本完事了。

配置GLAD

    GLAD下载地址:https://glad.dav1d.de ,,与其它的库不同,GLAD使用了一个在线服务,按照下图说明进行下载:

image-20200920094721145.png

    下载下来glad的压缩包,解压后将里面的 include 文件下下的内容复制到上面的GLFW_GLAD 文件夹下的include文件夹下,将src文件夹复制到GLFW_GLAD文件夹下。

配置Visual Studio 2019的OpenGL环境

    先创建一个C++空项目,在项目名上右键->属性,打开属性页,选择VC++目录,包含目录添加我们刚才GLFW_GLAD下的include目录,库目录添加lib目录,然后链接器->输入->附加依赖项 添加 glfw3.lib

image-20200920095751103.png

    在解决方案下的源文件上右键添加现有项,将src目录下的glad.c文件加入,再右键添加新建项,添加一个C++文件,起名就叫main.cpp,加上如下代码,运行后无错误发生就没问题了。

注意:这里两个包含的顺序不要错,一定要先#include<glad/glad.h>#include<GLFW/glfw3.h>否则会报重复包含头文件的错误,另外之前编译的GLFW默认是64位的,在配置vs环境的时候要选择x64,选错头文件不会被包含进来。

#include<glad/glad.h>
#include<GLFW/glfw3.h>
#include <iostream>

using namespace std;

int main()
{
    return 0;
}

 

附上编译好的适用于vs2019的库GLFW_GLAD.zip

主要内容参考此处:https://learnopengl-cn.github.io/01%20Getting%20started/03%20Hello%20Window/

扫描二维码推送至手机访问。

版权声明:本文由lovedm.club发布,如需转载请注明出处。

本文链接:https://lovedm.club/?id=81

标签: OpenGL
分享给朋友:
返回列表

上一篇:OpenGL(一)

下一篇:OpenGL(三)

“OpenGL(二)” 的相关文章

Origin9.1绘图时加外边框

参考百度经验https://jingyan.baidu.com/article/4b07be3caf7e6448b280f36d.html...

内网穿透下搭建方舟服务器

内网穿透下搭建方舟服务器

EPIC领了方舟,顺便steam上也买了,现在的问题是搭服务器没有公网ip,没法和基友们愉快玩耍,于是乎用内网穿透吧。 需要准备:有公网ip的服务器一台,frp软件,搭建方舟的服务器一台。 公网ip的服务器建议选国内的,延迟低,百度腾讯阿里都可以,就是带宽贵点,可以选学生服务器,虽然有期限,但...

Windows远程桌面隐藏标题栏

Windows远程桌面隐藏标题栏

远程桌面开网页时上面的标题栏总是碍事,可以设置一下关掉。点击显示选项在显示选项卡,把下面的 全屏显示时显示连接栏 选项勾掉。若想显示连接栏或退出,可如下操作:1、CTRL+ALT+Home。标题栏会出现。2、CTRL+ALT+BREAK。退出全屏。...

OpenGL(一)

OpenGL一般认为是一个API,包含了一系列可以操作图形、图像的函数,但是实际上仅仅是一个规范,OpenGL规范严格规定了每个函数该如何执行,以及它们的输出值。具体里面每个函数的实现由库的开发者去实现,这里的开发者主演是显卡厂商。函数的实现细节并没有规定,只要最后与函数的功能相匹配就可以。简单的说...

矩阵乘法次数

p*q的矩阵和q*r的矩阵相乘,计算时需要的乘法的次数是p*q*r 。想想很简单,最后算出来的矩阵是p*r的,最后每个矩阵元素在计算时算了q次乘法,所以最后算出来总共是p*q*r次乘法。...

2020双十一小结

今年买的东西不多,一共买了7个东西,不到一千块钱吧。闪迪的CZ880早就到了,这优盘一如既往的高质量体验,实测读写都300MB+,爽的飞起,话说15年买的CZ80折腾到现在没有任何问题,年初还丢过一个CZ48,14年买的,心疼。华擎的B150M HDS,小板子,但不是ITX的,比ITX稍大一点,不过...