OpenGL编程需要了解的一些概念

本博客的内容出自于https://learnopengl-cn.github.io/
仅根据自己的理解记录下对自己很有帮助的地方

OpenGL是什么?

OpenGL可以认为是一个API,但具体来说OpenGL值规定了函数如何执行和输出值,但没有定义如何实现,具体实现细节是由显卡的生产商完成的。所以有时候OpenGL的Bug可以通过升级驱动来解决。
OpenGL早期的使用立即渲染模式(Immediate mode,也就是固定渲染管线),这个模式下绘制图形很方便。但是OpenGL的大多数功能都被库隐藏起来,不够灵活。因此从OpenGL3.2开始,鼓励使用OpenGL核心模式
(Core-profile)
,他更加灵活,但是用也更复杂,要求使用者理解OpenGL和图形编程。

关于编程你需要了解的重要概念
  1. OpenGL本质是一个状态机,一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。
  2. OpenGL库用C语言写的,由于C的一些语言结构不易被翻译到其它的高级语言,因此OpenGL开发的时候引入了一些抽象层。**“对象(Object)”**就是其中一个。在OpenGL中对象可以认为是一个C风格的结构体(Struct)。
必须的库函数
  1. 在利用OpenGL绘图之前,首先需要创建一个OpenGL上下文(Context)和一个用于显示的窗口,这些操作在不同的操作系统中是不同的,OpenGL把这些操作抽象了出去,GLFW库就提供了这些功能,它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。除此之外还有GLUT,SDT, SFML等。
    编译安装步骤可以参考
    https://learnopengl-cn.github.io/01 Getting started/02 Creating a window/
  2. 前面已经说过OpenGL只提供了函数的标准或者说规范,而并未提供实现,这些是由驱动开发商完成的。那么在使用任何一个函数前首先需要找到函数实现的位置,然后才能使用,为了简化这个过程,可以使用GLAD来帮你进行这些工作。
OpenGL图形系统是一个软件接口 让程序员能够创建交互式程序 使用计算机图形学技术生成具有真实感的图像 本书是OpenGL ARB推荐的OpenGL 1 4版学习指南 本书首先阐述OpenGL的功能和计算机图形学基本知识 包括状态管理和几何体的绘制 模型变换 视点变换和投影变换 颜色和光照;然后深入探讨一些高级技术 包括反走样 雾阄 显示列表 图像处理 纹理映射 帧缓存 网格化 NURBS 选择和反馈等;同时讨论其他一些重要主题 像如何提高程序的性能 OpenGL扩展和跨平台技术等 本书只要求读者有一定的C语言基础和数学知识 适合所有对OpenGL编程感兴趣的读者阅读 OpenGL是一个功能强大的软件接口 用于绘制高质量的计算机图像 以及编写使用2D和3D几何物体及位图和图像的交互式应用程序 本书介绍OpenGLOpenGL实用库 内容全面 权威 被称为“OpenGL红宝书” 本书第三版针对的是OpenGL1.2版 而本版介绍了OpenGL1.3和1.4版新增的所有特性以及重要的OpenGL ARB OpenGL体系结构审核委员会 扩展 本书以清晰的语言阐述了OpenGL的功能以及众多计算机图形学基本技术 如构建和渲染3D模型 从不同的角度观察物体 使用着色 光照和纹理映射来提高图像的真实感;深入探讨了一些高级技术 其中包括纹理映射 反走样 雾效和大气效果 NURBS 图像处理等;讨论了其他一些重要主题 如提高性能 OpenGL扩展和跨平台技术等 ">OpenGL图形系统是一个软件接口 让程序员能够创建交互式程序 使用计算机图形学技术生成具有真实感的图像 本书是OpenGL ARB推荐的OpenGL 1 4版学习指南 本书首先阐述OpenGL的功能和计算机图形学基本知识 包括状态管理和几何 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值