首页 > 其他分享 >OpenGL入门——配置环境

OpenGL入门——配置环境

时间:2023-08-05 12:11:59浏览次数:42  
标签:头文件 函数 OpenGL 配置 GLFW GL GLAD 入门

OpenGL有意将建一个上下文(Context)和一个用于显示的窗口的操作抽象出去,所以我们就得自己处理创建窗口,定义OpenGL上下文以及处理用户输入。

有一些特别针对OpenGL创建窗口和上下文用来渲染的库,比如GLUT,SDL,SFML和GLFW。

这里先选择使用跟主页 - LearnOpenGL CN (learnopengl-cn.github.io)官网上一样的GLFW。

下载地址:Download | GLFW,我的编译环境是VS2017,所以我下载的是glfw-3.3.8, 库是lib-vc2017

在配置GLFW之前,需要先做一件事

因为OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。

由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。比如:

// 定义函数原型
typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*);
// 找到正确的函数并赋值给函数指针
GL_GENBUFFERS glGenBuffers  = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
// 现在函数可以被正常调用了
GLuint buffer;
glGenBuffers(1, &buffer);

每个函数都要重复这个过程,非常繁琐复杂。有些库可以简化这个过程,GLAD是目前最新,也是最流行的库。GLAD可以根据我们需要的OpenGL版本加载所有相关的OpenGL函数。

GLAD下载地址:glad.dav1d.de,配置参考OpenGL:配置glad_六月的翅膀的博客-CSDN博客

 

 配置完GLAD就可以开始配置GLFW了

 

GLFW配置和使用:

1. 将下载的头文件目录和库目录添加到项目中

2. 链接glfw3.lib

 3. 添加头文件//

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

 GLAD的头文件包含了正确的OpenGL头文件(例如GL/gl.h),所以需要在其它依赖于OpenGL的头文件之前包含GLAD

 

后面就可以开始创建我们的渲染窗口啦~

标签:头文件,函数,OpenGL,配置,GLFW,GL,GLAD,入门
From: https://www.cnblogs.com/ping-code/p/17607302.html

相关文章

  • OpenGL之绘制矩形使用索引和glUniform4f
    glUniform更改一个uniform变量或数组的值。要更改的uniform变量的位置由location指定,location的值应该由glGetUniformLocation函数返回。通过调用glUseProgram,glUniform操作的程序对象将成为当前状态的一部分。glUniform{1|2|3|4}{f|i}使用传进来的实参,修改通过location指定的uni......
  • keil5中文乱码配置
    UTF-8好像没用了?这边用如图所示CHines的简体字。......
  • 动力节点|MyBatis从入门实战到深入源码
    MyBatis是一种简单易用、灵活性高且高性能的持久化框架,也是Java开发中不可或缺的一部分。动力节点老杜的MyBatis教程,上线后广受好评从零基础小白学习的角度出发,层层递进从简单到深入,从实战到源码一步一案例,一码一实操,嘴对嘴指导MyBatis重点、难点、考点一网打尽不管你是小白还是正......
  • C#数据库连接配置文件存放至App.Config
    目录使用VisualStudio使用Rider 安装Nuget包获取配置连接数据库使用VisualStudio在需要添加配置文件的类右键-添加-新建项 选择应用配置文件,注意名称有格式要求 使用vs生成的话初始化代码是有的,然后输入的时候是有提示的使用Rider右键需要添加配置文件的项目,Add-File 使用Ri......
  • OpenGL之绘制三角形使用顶点颜色
     ●VBO、VAO与EBO之间的联系与区别:⭐️⭐️  ①顶点缓冲对象VBO是在显卡存储空间中开辟出的一块内存缓存区,用于存储顶点的各类属性信息,如顶点坐标、顶点法向量、顶点颜色数据等。在渲染时,可以直接从VBO中取出顶点的各类属性数据,由于VBO在显存而不是在内存中,不需要从CP......
  • 【Spring Boot 丨类型安全配置属性 】
    本篇来讲一讲外部化配置类型安全属性(类型安全配置属性)类型安全配置属性  使用@Value("${property}")注释来注入配置属性有时可能很麻烦,尤其是处理多个属性或您的数据本质上是层次结构的情况下。SpringBoot提供了另一种使用属性的方法,让强类型bean管理和验证应用程......
  • 【数据结构 | 入门】堆栈与队列(问题引入&实现&算法优化)
    ......
  • vscode配置gitbash终端
    VSCode是一款微软出的轻量级编辑器,它本身只是一款文本编辑器而已,所有的功能都是以插件扩展的形式所存在,想用什么功能就安装对应的扩展即可,非常方便,同时也支持非常多的主题和图标,外观比较好看,重要的是VSCode支持各大主流操作系统,包括Windows、Linux和MacOS。所以就选择它作为自己的......
  • springboot 关于servlet容器配置修改 组件注册 容器切换 使用外部tomcat
    1.嵌入式Servlet容器配置修改1.通过全局配置文件修改可以通过server.xxx来进行web服务配置,没有带服务器名称的则是通用配置通过带了具体的服务器名称则是单独对该服务器进行设置,比如server.tomcat.xxx就是专门针对tomcat的配置2.通过WebServerFactoryCus......
  • 路由器简单配置及应用
    在数据链路层可以通过交换机进行vlan划分、中继链路、链路聚合的配置,达到组网的基本需求,但是无法将数据传输的更远,比如不同vlan的数据无法通信,所以需要借助网路层的功能实现更远端的通信(端--端的通信)网络层功能定义ip地址可以连接不同媒介的类型(不同范围网络、不同硬件、不同系......