搭建OpenGL环境

1.GLFW

GLFW是专门针对OpenGL的C语言库,提供一些渲染物体所需的最低限度的接口。允许用户创建OpenGL上下文、定义窗口参数以及处理用户输入。

GLFW可以从Download | GLFW官网下载,找到其源码文件。使用CMAKE编译GLFW源代码生成适合自己的库文件。CMAKE下载地址:Download | CMakehttp://www.cmake.org/cmake/resources/software.html下载安装好CMAKE后,启动CMAKE。选择GLFW源代码目录和存放编译结果文件的目录。

目录选择完成后,点击Configure,CMAKE自动读取设置和源代码,选取相应的visual Stduio版本。(PS:在这之前,首先需要保证电脑中已安装好相应版本的Visual Studio,否则无法Configure成功。)CMAKE会显示可选编译选项来配置最终生成的库,直接默认即可。再次点击Configure就会编译生成工程文件,工程文件保存在之前选择的目录中。

打开工程文件的本地目录,找到文件夹下的GLFW.sln文件,用visual studio打开,可按其默认配置编译生成库文件,点击生成解决方案即可。完成之后,便可以在src/Debug文件夹内看见相应的glfw3.lib文件。

在后面的使用过程中,需要用到的是目录下的include中的文件以及glfw3.lib文件。

在visual studio中,需要把GLFW库链接到工程中,可以通过连接器的设置指定要使用glfw3.lib来完成。同时将库的目录添加到设置中。

在VS中,选择自己创建的工程,右击工程进入工程属性,选择VC++ 目录选项:选择自己电脑中存放的include目录和library目录。

 在这里可以添加任意多个目录,IDE会从这些目录中寻找头文件,在此处只需要将GLFW的include文件夹添加进路径中。

最后,需要在Linker 连接器选项卡的Input 输入选项卡里添加glfw3.lib文件。将其添加到Additional Dependencies 附加依赖项字段中,便可以将GLFW链接进来。

此外,还需要连加一个链接条目到OpenGL库。

 Windows上的OpenGL库

如果是Windows平台,opengl32.lib已经包含在Microsoft SDK里了,安装visual studio的时候,已经默认安装。OpenGL库64位版本的文件名,任然是opengl32.lib。 

Linux上的OpenGL库 

在linux下需要链接libGL.so库文件,需要添加-lGL到链接器设置中,如果找不到这个文件,可能需要安装Mesa、NVidia或AMD的开发包。

在工程中添加GLFW的头文件即可。

 #include <GLFW\glfw3.h>

2.GLAD

OpenGL是一个标准/规范,具体的实现由驱动开发商针对特定显卡实现。开发者需要在运行时获取函数地址并将其保存在一个函数指针中。GLAD是一个开源库,能解决前面提到的问题。通过GLAD在线服务https://glad.dav1d.de/Web generator for the Glad toolicon-default.png?t=M276https://glad.dav1d.de/,能告诉GLAD需要定义的OpenGL版本,并根据相关信息加载所有相关的opengl函数。

最后点击Generate生成按钮来生成库文件。到此,GLAD提供了两个头文件目录和glad.c文件,将两个头文件目录拷贝到工程的头文件引用目录,且将glad.c添加到工程中

在文件中添加: 

#include <glad/glad.h>

3.stb_image.h图像加载库

stb_image.h是Sean Barrett的一个非常流行的单头文件图像加载库,能加载大部分流行的文件格式,且能整合到工程中。stb_image.h下载地址:https://github.com/nothings/stb/blob/master/stb_image.hicon-default.png?t=M276https://github.com/nothings/stb/blob/master/stb_image.h

将stb_image.h加入到工程中,并创建一个C++文件,输入以下代码:

#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"

通过定义STB_IMAGE_IMPLEMENTATION,预处理会修改头文件,让其只包含相关的函数定义源码,等于将这个头文件变成一个.cpp文件,在工程中使用stb_image.h加载图片并编译即可。按以下例子使用便可以加载制定图像:

int width, height, nrChannels;
unsigned char *data = stbi_load("picture.jpg", &width, &height, &nrChannels, 0);

 4.GLM

 GLM是OpenGL Mathematic的缩写,是一个只有头文件的库,使用时不需要链接和编译。GLM下载地址:

https://glm.g-truc.net/0.9.8/index.htmlicon-default.png?t=M276https://glm.g-truc.net/0.9.8/index.html 将头文件的目录复制到工程头文件引用目录下即可。GLM库从0.9.9起,默认将矩阵类型初始化为一个零矩阵,而不是单位矩阵。使用其以上版本,矩阵初始化应为:

glm::mat4 mat = glm::mat4(1.0f)

 在使用过程中,包含以下三个库便基本可以满足使用需求。

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

使用GLM已经能满足OpenGL的矩阵和向量的运算。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龋龋独行的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值