OpenGL的环境配置是最让初学者头疼的事情了,主要是一开始链接什么glfw、glad,不知道有什么用,什么链接库、包含目录很头大,有一步做错就可能一大堆报错。

本文对LearnOpenGL CN教程网站中出现的库文件配置进行了一次汇总,使用的是Microsoft Visual Studio 2019 IDE,帮助初学者解决入门配置问题。

目录

1. 基础环境配置

1.1 库文件下载

1.2 放文件到项目

1.3 配置GLFW(Graphics Library Framework(图形库框架))

1.4 GLAD(OpenGL Loading Library)

1.5 GLEW(OpenGL Extension Wrangler Library)

1.6 GLM(OpenGL Mathematics)

1.7 stb_image.h

2. 第一个三角形

创建窗口

VAO和VBO

着色器


1. 基础环境配置

基础配置包括glfw、glad、glew、glm,有这些配置,做出最基础的光照渲染模型没有问题。

1.1 库文件下载

全部的外部文件都在这里可以找到:(https://github.com/JoeyDeVries/LearnOpenGL)当然也可以在各自官网中找到,但是网站有时候打不开。。。

创建新项目

选择C++控制台即可

这里根据你的电脑选择,这里选择64位模式

1.2 放文件到项目

把includes,lib拖进来即可,dlls其实可以不要。

需要注意的是:lib是静态库,dll是动态链接库。lib是编译时需要,dll是运行时(发布)需要的。

lib是之前的开发者将一部分源文件预先编译成库文件当要使用其中的函数时,只需要链接lib文件就可以了,而不用再理会最初的源文件。我们要使用的话需要链接到我们的项目。

1.3 GLFW(Graphics Library Framework(图形库框架))

GLFW其实就是允许用户创建窗口、定义窗口参数以及处理用户输入。我们需要配置包含文件目录和链接静态库

配置包含文件:

项目右键属性 -> VC++目录 -> 包含目录

把includes文件引入过来,后面包含头文件时候可以直接根据子文件目录引入头文件了。

$Solution是当前项目路径。

这样写头文件就不会报错了,因为IDE会在设置的包含目录下面找你需要的头文件,写的时候改成自己的目录即可。

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <stb_image.h>#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

链接lib库文件:

项目右键属性 -> 连接器 -> 输入 -> 附加依赖项

这里的lib文件需要在之前的lib目录中,不然IDE可能找不到。

不建议把全部的glfw.lib文件都附加上来,会容易报错(不清楚什么原因)

1.4 配置GLAD(OpenGL Loading Library)

GLAD是用来管理OpenGL的函数指针的。

因为OpenGL只是一个标准/规范,具体的实现是驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。

配置GLAD注意需要把GLAD的头文件和c文件添加到项目中。

不然会出现下面的错误,就是找不到头文件了。

1.5 GLEW(OpenGL Extension Wrangler Library)

GLEW也是用来管理OpenGL的函数指针的。可以说GLAD是GLEW的升级版。

配置方法与GLAD同理。

1.6 GLM(OpenGL Mathematics

专门为OpenGL量身定做的数学库,内置了矩阵向量的各种类型和运算函数。光照计算会用的很频繁。

只有头文件的库,不用链接,只要放在之前的includes文件目录里面。

1.7 stb_image.h

用来导入纹理贴图。是Sean Barrett的一个非常流行的单头文件图像加载库,它能够加载大部分流行的文件格式,并且能够很简单得整合到你的工程之中。

只要引入头文件即可。

2. 第一个三角形

有了上面的配置,就可以绘制我们的第一个三角形了,这里只介绍简单的原理,代码在最后可以找到哈。

创建窗口

使用GLFW生成图形窗口,在窗口存在期间,对每一帧进行循环绘制。

VAO和VBO

VBO是顶点缓冲对象,是CPU和GPU传递信息的桥梁,数据自动送入GPU。

VAO是顶点数组对象,不同类的物体的VAO不同,向GPU描述VBO中的数据如何读取,比如顶点坐标、法线方向、纹理坐标等待。

着色器

着色器就是在GPU中运行的代码,告诉GPU对顶点如何处理,经过一系列处理生成为屏幕中的像素,使用GLSL编写。可以在主文件中用字符串表示,也可在其他文件中读取。

全部代码可以在这里找到:Code Viewer. Source code: src/1.getting_started/2.1.hello_triangle/hello_triangle.cpp

OpenGL 环境配置教程-库文件汇总【glfw/glew/glad/glm/std_img】相关推荐

  1. python基础环境配置教程

    python基础环境配置教程 下载vscode 1.输入网址:https://code.visualstudio.com/ 2.下载windows版vscode并安装. 下载慢的话在自己的浏览器中找到 ...

  2. python3.6安装教程-python3.6环境安装+pip环境配置教程图文详解

    1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们 ...

  3. python详细安装教程环境配置-python3.6环境安装+pip环境配置教程图文详解

    1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们 ...

  4. python3.6.0怎么安装pip_python3.6环境安装+pip环境配置教程图文详解

    1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们 ...

  5. eclipse下载,安装,JDk环境配置教程

    eclipse下载,安装,JDk环境配置教程(多图) 第一步:下载eclipse,并安装. 下载链接:http://www.eclipse.org/downloads/ 点击 Download Pac ...

  6. Java 开发环境配置教程

    Java 开发环境配置教程 前言: 想要在自己电脑上运行Java程序,就必须配置响应的Java运行环境,接下来就为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装 ...

  7. JDK1.8.0_181安装以及环境配置教程(Win10系统)

    JDK1.8.0_181安装以及环境配置教程(Win10系统) 前言 如果大家是刚开始学习编程的话,建议使用jdk1.8版本,博主之前下载没有老师指导,上官网下载的最新版本,结果到公司实习,发现jdk ...

  8. Linux环境配置Python库及常用库介绍

    Linux环境配置Python库 Python 的标准库包括了很多的模块, 从 Python 语言自身特定的类型和声明, 到一些只用于少数程序的不著名的模块.在 Linux环境 运行Python 经常 ...

  9. ubuntu16.04安装jdk以及详细jdk环境配置教程,亲测没毛病。

    ubuntu16.04安装jdk以及详细jdk环境配置教程 前言:此文章专为已经购买了云主机的朋友来进行ubuntu系统下的jdk配置教程.因此文中提到的xshell和xftp软件使用就直接跳过. 我 ...

最新文章

  1. Cs代码写在html页面哪里,当用于在details.cshtml页面上查看时,我用什么代码来查看模型中的项目列表?...
  2. RTSP鉴权认证之基础认证和摘要认证
  3. centos7 ifconfig命令找不到_Linux基础命令大全,你找不到的这都有
  4. 配置环境变量OpenJDK和OracleJDK区别
  5. node mysql和koa_node+koa2+mysql搭建博客后台
  6. yum 安装rabbitMQ
  7. 多字节编码与Unicode码的区别 内码
  8. 一维 cnn matlab,1D-CNN 一维信号的深度学习算法和例子包括CNN - 下载 - 搜珍网
  9. 微信公众号开发之微信模板消息推送
  10. 如何彻底删除adobe?adobe官方清理工具怎么用?
  11. 对称正定矩阵的Cholesky分解
  12. H3C的前世今生及它的基础配置
  13. 2022年可能会继续的一些品牌设计趋势
  14. mysql运维备份_MySQL运维经验
  15. 【T+】畅捷通T+选项设置界面没有“数据精度”调整项
  16. 单反毁三代,kindle富一生
  17. 基于深度强化学习的室内场景目标驱动视觉导航
  18. [加载XlUE组件失败,迅雷看看桌面图标已损坏,请重新安装。]问题处理
  19. 黑苹果开启核显加速_如何开启无核显的N卡黑苹果的硬件加速
  20. Linux命令查询服务器名称和型号

热门文章

  1. DHCP snooping详解
  2. USACO Training Section 3.2 Feed Ratios
  3. Android看韩漫软件,第一韩漫app-第一韩漫安卓版v1.0
  4. 关于\xEF\xBB\xBF的介绍
  5. 又一所985大学改考408!中国海洋大学计算机专硕
  6. 【第一章】浅谈游戏作弊类型与核心原理
  7. 安装 pulseaudio
  8. Seam - 无缝集成 JSF,第 2 部分: 借助 Seam 进行对话
  9. 程序员,如果性格内向要做些什么?
  10. NVIDIA GTC主题演讲内容学习<3>