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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值