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

OpenGL(一)

admin4年前 (2020-09-19)6837

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

早期的OpenGL使用立即渲染模式,也就是固定渲染管线,此模式下绘图方便,但是缺乏灵活性,效率还低,于是在OpenGL3.2开始,规范废弃了立即渲染模式,并鼓励使用核心模式下开发。

OpenGL可以描述为一个巨大的状态机(state machine):通过一系列的变量描述来告诉OpenGL当前改如何运行。OpenGL状态通常被称为OpenGL上下文(Context)。通常通过以下方式来更改状态:设置选项、操作缓冲,最后使用当前OpenGL上下文来渲染。

OpenGL库是C语言写的,同时也支持多种语言的派生,但其内核仍是一个C库。由于C的一些语言结构不易被翻译到其它的高级语言,因此OpenGL开发的时候引入了一些抽象层。“对象(Object)”就是其中一个。

在OpenGL中一个对象是指一些选项的集合,它代表OpenGL状态的一个子集。比如,我们可以用一个对象来代表绘图窗口的设置,之后我们就可以设置它的大小、支持的颜色位数等等。可以把对象看做一个C风格的结构体(Struct):

struct object_name {
    float  option1;
    int    option2;
    char[] name;
};

 

 来自于此网站https://learnopengl-cn.github.io/01%20Getting%20started/01%20OpenGL/

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

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

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

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

上一篇:齐次坐标

下一篇:OpenGL(二)

“OpenGL(一)” 的相关文章

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

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

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

ArcMap中的融合工具

ArcMap中的融合工具

接上篇文章,提取出属于山东省的县级市后,需要对属于同一个地级市的县级市进行合并,可以使用工具箱下的 数据管理工具--制图综合--融合按照地级市的名字进行融合,确定后字段中名字相同的会进行合并。融合前后如下图:end. . ....

Windows远程桌面隐藏标题栏

Windows远程桌面隐藏标题栏

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

VS Code C/C++环境安装配置

VS Code C/C++环境安装配置

最近重温C/C++,感觉拿visual studio写太浪费了,就练习写写,没必要整这宇宙最强IDE了,换VS Code吧,轻量级说不是IDE但装上插件比某些IDE都好用,现在记录一下配置过程。这实际上是编辑器+编译器,所以除了下载VS Code之外还要下载编译器 ,这里使用Mingw。VS Cod...

OpenGL(二)

OpenGL(二)

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

OpenGL(三)

以下内容均来自此网站:https://learnopengl-cn.github.io/01%20Getting%20started/03%20Hello%20Window/ 1、GLFW的初始化与配置初始化GLFW,利用 glfwInit函数对GLFW进行初始化,然后使用glfwWind...