OpenGL超级宝典7th简体中文-第一章:简介

NOTE

简书传送门

第一章

简介

我们从这章能学到什么

  • 什么是图形管线(Graphics Pipeline)以及OpenGL如何与它关联
  • OpenGL的起源以及它如何演变成现在的模样
  • 我们在全书中都会使用到的一些基本概念

OpenGL是一种接口,在我们的应用程序中可以用它来访问或者控制它所运行的设备的图形子系统。它所运行的设备可以从一个高端图形工作站到商用台式机、视频游戏主机甚至是一台智能手机。将这些设备的接口标准化到一个子系统可以增强移植性并且可以让软件开发者集中精力创作高品质的产品、制作更有有趣的内容以及关心他们的应用的整体效能,而不是陷于他们想要应用运行的平台的细节中。这些标准接口被称为Apllication Programming Interfaces(or APIs),OpenGL是其中之一。这一章简要介绍OpenGL,描述它如何与底层的图形子系统关联,并且提供一些OpenGL的起源和演化历史。

OpenGL和图形管线

生成一个高效能并且高容量的产品通常需要两个东西:可伸缩性(scalability)和并行性(parallelism)。在工厂中,这两个东西通过使用产品线(production lines)来达成。说来就是一个工人安装汽车的引擎,另一个安装车门,再另一个安装车轮。通过将产品的生产阶段进行重叠,每一个阶段都由一个专业的专家来专门完成这个任务,这样每一个阶段就变得更高效,然后整体生产效率就会提升。同样,通过在同一时间制作很多汽车,一个工厂可以让多个工人专门安装引擎,或者多个工人专门安装车轮,这样多辆汽车可以同时运作在产品线上,每辆车都处在完工的不同阶段。

计算机图形是同样的道理。我们的程序发送命令给OpenGL,然后OpenGL以一种尽可能高效的方式将命令发送给底层的图形硬件来产生预期的结果。在图形硬件上可能有很多命令排队等待执行(专业术语称为in flight),其中一些命令可能是完成了一部分的。一个处于后续阶段的命令可以和一个处于前期阶段的命令被并发执行,这样它们的执行就重叠了。此外,计算机图形通常由很多非常相似的重复性任务组成(例如计算一个像素该为什么颜色)并且这些任务都彼此独立–意即,一个像素的颜色与另外一个像素的颜色没有任何关系。就好像一个车间可以同时制造多个汽车,所以OpenGL可以把你给他的工作拆解开然后用它的基础元素并行完成。通过组合管线(pipelining)和并行(parallelism),现代图形处理器超乎想象的性能就被实现了。

OpenGL的目的是在我们的应用程序和底层的图形子系统中间提供一个抽象层(abstraction layer),图形子系统通常是一个硬件加速器(由一个或多个自定义的高性能处理器和专用内存、显示输出等等构成)。这个抽象层可以使我们的应用程序不必知晓谁是制造的图形处理器(或者叫GPU - 图形处理单元)、它如何工作、它工作得好不好

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介: 《OpenGL编程指南(原书第7版)》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。《OpenGL编程指南(原书第7版)》的上一个版本覆盖了到OpenGL 2.1版的内容。本版涵盖了OpenGL 3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3d模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。另外,本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、nurbs、图像处理子集等。此外,《OpenGL编程指南(原书第7版)》还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。本书内容详实,讲解生动,图文并茂,是OpenGL程序员的绝佳编程指南。 OpenGL是一种功能强大的软件接口,既可以用于生成高质量的计算机图像,也可以用于编写使用2d和3d物体、位图和彩色图像的交互式应用程序。 《OpenGL编程指南(原书第7版)》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。《OpenGL编程指南(原书第7版)》的上一个版本覆盖了截止OpenGL 2.1版的内容。这一版涵盖了OpenGL 3.0和3.1的最新特性。《OpenGL编程指南(原书第7版)》清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3d模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、nurbs、图像处理等。另外,《OpenGL编程指南(原书第7版)》还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。 《OpenGL编程指南(原书第7版)》进行了一些更新,涵盖了OpenGL 3.0和3.1的最新特性,包括: 使用帧缓冲区对象进行离屏渲染和纹理更新。 各种新的缓冲区对象类型的示例,包括uniform缓冲区对象、变换反馈缓冲区和顶点数组对象。 使用纹理数组提高使用众多纹理的性能。 使用图元重启和条件渲染来高效地进行渲染。 介绍OpenGL的废弃机制,以及如何针对OpenGL未来版本验证程序。 《OpenGL编程指南(原书第7版)》继续对OpenGL着色语言(glsl)展开讨论,并解释了使用这种语言创建复杂图形效果并提升OpenGL计算威力的机制。OpenGL技术资料库(OpenGL technical library)提供了大量的OpenGL教程和参考书籍,它可以帮助程序员深入理解OpenGL,完全释放OpenGL的潜力。这个资料库最初由sgi开发,目前由khronos OpenGL体系结构审核委员会(arb)工作组维护,这是负责指导OpenGL以及相关技术发展和演变的行业协会。 作者简介: Dave Shreiner是ARM公司的图形技术总监,长期担任SGI核心OpenGL组的成员。他首次开设了OpenGL的商业培训课程,拥有二十多年的计算机图形应用开发经验。Dava定期参加SIGGRAPH和其他全球性的图形工作会议。他是《OpenGL ES 2.0 Programming Guide》和《OpenGL Reference Manual》的作者,也是Addison-Wesley的OpenGL系列的编辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值