基本信息
- 作者: (美)金斯伯格(Ginsburg,D.)
- 译者: 姚军
- 丛书名: 华章程序员书库
- 出版社:机械工业出版社
- ISBN:9787111489153
- 上架时间:2017-9-18
- 出版日期:2015 年2月
- 开本:16开
- 页码:344
- 版次:1-1
- 所属分类:计算机 > 图形图像、多媒体、网页制作 > OpenGL

编辑推荐
《华章 OpenGL ES 3.0编程指南(原书第2版)》由资深OpenGL技术专家亲笔撰写,全面介绍OpenGL ES
3.0的各种特性及新增功能;
通过大量已经编译和测试过的实例,详细讲解OpenGL ES
3.0中的应用程序接口(API)和图形管线,既涵盖简单图形的渲染方法,又深入介绍逐像素照明和粒子系统等高级渲染技术,并且包含大量有效使用API和硬件的实用技巧,为手持设备的各种高性能3D应用开发提供翔实指导。
内容简介
计算机书籍
《华章 OpenGL ES 3.0编程指南(原书第2版)》由资深OpenGL技术专家亲笔撰写,全面介绍OpenGL ES 3.0的各种特性及新增功能,
,通过大量已经编译和测试过的实例,详细讲解OpenGL ES 3.0中的应用程序接口(API)和图形管线,既涵盖简单图形的渲染方法,又深入介绍逐像素照明和粒子系统等高级渲染技术,并且包含大量有效使用API和硬件的实用技巧,为手持设备的各种高性能3D应用开发提供翔实指导。
《华章 OpenGL ES 3.0编程指南(原书第2版)》共16章:第1章简单介绍OpenGL ES ,并概述OpenGL ES 3.0图形管线;第2章通过绘制一个三角形的简单OpenGL ES 3.0示例程序,讲解一些API概念,并说明如何构建和运行OpenGL ES示例程序;第3章讲述为OpenGL ES 3.0创建表面和渲染上下文的API——EGL;第4章讨论创建着色器对象、编译着色器和检查编译错误的方法;第5章讲解编写着色器所需的着色语言基本知识;第6章详细介绍几何形状输入图形管线的方法,包含对顶点属性、顶点数组和缓冲区对象的讨论;第7章讨论几何形状如何装配成图元,介绍OpenGL ES 3.0中所有可用图元类型,包括点精灵、直线、三角形、三角形条带和三角扇形;第8章概述顶点着色器如何融入管线,以及OpenGL ES 着色语言中可用于顶点着色器的特殊变量;第9章和第10章介绍片段着色器,包括多重纹理、雾化、Alpha测试和用户裁剪平面等;第11章讨论片段操作,包括剪裁测试、模板测试、深度测试、多重采样、混合和抖动;第12章介绍使用帧缓冲区对象渲染屏幕外表面;第13章讨论同步对象和栅栏的使用方法;第14章介绍OpenGL ES 3.0高级编程,包含使用法线贴图的逐像素照明、环境贴图、粒子系统、图像后处理、程序纹理、阴影贴图、地形渲染和投影纹理等渲染技术;第15章提供OpenGL ES 3.0中各种可用状态查询的参考;第16章讨论如何为iOS 7、Android 4.3 NDK、Android 4.3 SDK、Windows和Linux构建OpenGL ES样板代码。
作译者
Budirijanto Purnomo,AMD公司高级软件架构师,领导跨越多个AMD软件栈的GPU调试和剖析技术的软件实现工作。他与多位AMD的软件和硬件架构师协作,定义用于调试和剖析GPU应用的未来硬件架构。他曾在国际会议上发表过许多与计算机图形技术相关的论文。
Dave Shreiner,ARM公司图形与GPU计算部门主管,自从OpenGL诞生之日起就积极地参与到它的开发当中。他创建了OpenGL的第一个商业培训课程,并且拥有超过20年的OpenGL编程教学经验。
目录
本书赞誉
译者序
序
前言
致谢
第1章 OpenGL ES 3.0简介 1
1.1 OpenGL ES 3.0 2
1.1.1 顶点着色器 3
1.1.2 图元装配 5
1.1.3 光栅化 5
1.1.4 片段着色器 6
1.1.5 逐片段操作 7
1.2 OpenGL ES 3.0新功能 8
1.2.1 纹理 8
1.2.2 着色器 10
1.2.3 几何形状 11
1.2.4 缓冲区对象 11
1.2.5 帧缓冲区 12
1.3 OpenGL ES 3.0和向后兼容性 12
前言
目标读者
本书是为对学习OpenGL ES 3.0感兴趣的开发人员所写的,我们希望读者在计算机图形学领域有一定的基础。在正文部分我们解释了许多相关的图形学概念,因为它们与OpenGL ES 3.0的各个部分有关,但是我们期望读者理解基本的3D概念。本书中的代码示例都以C语言编写。我们假定读者熟悉C或者C++,并且只介绍与OpenGL ES 3.0相关的语言主题。
读者将学到有关图形管线各个方面的设置和编程的知识。本书详细介绍了如何编写顶点和片段着色器,以及如何实现逐像素照明和粒子系统等高级渲染技术。此外,书中还提供性能提示以及有效使用API和硬件的技巧。
完成本书的学习之后,读者就能为编写充分利用嵌入式图形硬件可编程能力的OpenGL ES 3.0应用做好准备。
本书的组织结构
本书将顺序介绍API,帮助你逐步形成对OpenGL ES 3.0的认识。
第1章——OpenGL ES 3.0简介
第1章简单介绍OpenGL ES,概述了OpenGL ES 3.0图形管线,讨论了OpenGL ES 3.0的设计理念和限制,最后介绍了OpenGL ES 3.0中使用的一些约定和类型。
第2章——你好,三角形:一个OpenGL ES 3.0示例
第2章介绍绘制三角形的一个简单OpenGL ES 3.0示例。我们的目的是说明OpenGL ES 3.0程序的样子,向读者介绍一些API概念,并说明如何构建和运行OpenGL ES 3.0示例程序。
第3章——EGL简介
第3章介绍EGL——为OpenGL ES 3.0创建表面和渲染上下文的API。我们说明与原生窗口系统通信、选择配置和创建EGL渲染上下文及表面的方法,传授足够多的EGL知识,你可以了解到启动OpenGL ES 3.0进行渲染所需的所有知识。
第4章——着色器和程序
着色器对象和程序对象是OpenGL ES 3.0中最基本的对象。第4章介绍创建着色器对象、编译着色器和检查编译错误的方法。这一章还说明如何创建程序对象、将着色器对象连接到程序对象以及链接最终程序对象的方法。我们讨论如何查询程序对象的信息以及加载统一变量(uniform)的方法。此外,你将学习有关源着色器和程序二进制代码之间的差别以及它们的使用方法。
第5章——OpenGL ES着色语言
第5章介绍编写着色器所需的着色语言的基础知识。这些着色语言基础知识包括变量和类型、构造器、结构、数组、统一变量、统一变量块(uniform block)和输入/输出变量。该章还描述着色语言的某些更细微的部分,例如精度限定符和不变性。
第6章——顶点属性、顶点数组和缓冲区对象
从第6章开始(到第11章为止),我们将详细介绍管线,教授设置和编程图形管线各个部分的方法。这一旅程从介绍几何形状输入图形管线的方法开始,包含了对顶点属性、顶点数组和缓冲区对象的讨论。
第7章——图元装配和光栅化
序言
如何充分利用GPU强大的性能呢?精心开发的驱动程序和API是其中的关键,有了它们,应用和游戏程序开发者才能够从繁琐的绘图实现中解放出来,将其才华应用到应用程序中真正闪光的创意上。在PC时代出现的众多API和程序库中,Khronos组织开发的OpenGL无疑是个中翘楚,它所提供的丰富功能、极佳的性能以及跨平台的特性得到了广大硬件供应商和编程开发人员的喜爱,很快成为最受欢迎的桌面图形API之一。
移动和嵌入式设备日益成为人们生活中不可或缺的一部分,受限于较低的性能和硬件规格以及平台供应商的多样性,这些设备上的图形编程多年来一直困扰着设备制造商和应用开发人员。人们自然地想到,如果在移动平台上有类似于桌面OpenGL那样的API,那该是多么令人期待的事情。Khronos不负众望,在OpenGL的基础上开发出了用于手持和嵌入式平台的OpenGL ES API及配套的着色语言。这个程序库不仅保留了OpenGL中丰富的功能,而且引入了许多根据目标设备特点优化的特性,为移动图形应用打开了一扇窗户,很快成为业界领先的图形API,为Apple、Google等移动平台供应商所采用和支持。
从1.0版本开始,随着硬件平台的发展以及桌面OpenGL的升级换代,OpenGL ES也推出了数个版本,OpenGL ES 3.0是其最新版本,它充分利用了硬件发展的最新成果,在性能上所做的妥协更少,对桌面版本功能的保留和兼容性更好,从而使更多的桌面图形开发人员投身于移动平台,大大推进了这些平台上图形应用的发展。
本书是由几位OpenGL ES专家合作编著,是适用于全面学习OpenGL ES规范的权威指南。在介绍OpenGL ES 2.0的第1版的基础上,现在的版本全面介绍了OpenGL ES 3.0的各种特性,尤其重点介绍了对2.0版本新增的功能。从OpenGL ES 3.0基本概念的介绍开始,通过大量详尽的示例,本书介绍了OpenGL ES可编程图形管线的全貌,既有简单图形的渲染方法,又深入介绍了粒子系统等高级特效。刚接触OpenGL ES的读者可以通过阅读本书对OpenGL ES有较为深入的了解,而对OpenGL ES编程有一定经验的读者可以从中得到高级技术的概述。书中所附的OpenGL ES参考卡片以及对各种函数、类型、接口的深入介绍,更可以长期作为开发人员的资料来源。
本书的翻译工作主要由姚军完成,徐锋、陈绍继、郑端、吴兰陟、施游、林起浪、陈志勇、刘建林、白龙、宁懿等也为本书的翻译工作做出了贡献,在此感谢华章公司的工作人员对本书翻译工作的帮助和支持,并希望广大读者多多指正。
5年以前,本书第1版介绍的OpenGL ES 2.0曾经警示开发人员,移动和嵌入式系统上的可编程3D图形还没有到来,但是值得期待。
5年之后,每天全球有超过10亿人使用OpenGL ES与他们的计算设备交互,以获得信息或者娱乐。智能手机屏幕上的每个像素几乎都是由这个无处不在的图形API生成、操纵或者组合的。
现在Khronos组织已经开发出了OpenGL ES 3.0,并随最新的移动设备发布,继续向世界各地的消费者提供高级图形功能——这些功能最初是为使用桌面OpenGL的高端系统开发的,并在这些系统上得到了证明。
实际上,OpenGL现在已经是最广泛部署的3D API家族,除了桌面OpenGL和OpenGL ES之外,WebGL的加入将OpenGL ES的能力带给了全球的Web内容。OpenGL ES 3.0将加快WebGL的革新,使HTML5开发人员能够直接从真正可移植的3D应用中利用最新GPU的能力。
OpenGL ES 3.0不仅将更多的图形功能提供给大量设备和平台的开发人员,还可以帮助他们更轻松地编写、移植和维护更快、更节约电力的3D应用——本书将会告诉你如何做到这一点。
对于3D开发人员来说,当今的时代是有史以来最激动人心的。我要感谢和祝贺本书的作者,他们继续作为OpenGL ES发展历程的重要部分,努力工作,用这本书帮助世界各地的开发人员更好地理解和利用OpenGL ES 3.0的全部能力。
——Neil Trevett,Khronos组织总裁,NVIDIA移动生态系统副总裁
媒体评论
——Rick Tewell,Freescale图形技术架构师“本书用清晰、全面的解释和大量示例介绍了OpenGL ES的最新版本。任何开发移动应用的人的案头都应该准备一本。”
——Dave Astle,高通公司图形工具主管,GameDev.net创始人“本书的第2版详细介绍了OpenGL ES 3.0规范,并用丰富的实用信息和示例帮助不同水平的开发者立即开始编程。针对用我们的PowerVR Rogue图形为各种移动和嵌入式产品创建应用的成千上万的开发人员,我们推荐将本书作为OpenGL ES 3.0的入门读物。”
——Kristof Beets,Imagination技术公司业务开发部“这是一本可靠的OpenGL ES 3.0参考书。它介绍了这一API的所有方面,帮助所有开发人员熟悉和理解API,并专门介绍了ES 3.0的新功能。”
——Jed Fisher,4D Pipeline执行合伙人“这是一本清晰且全面的OpenGL ES 3.0参考书,它出色地介绍了现代OpenGL编程中的所有概念。这是我在研究嵌入式OpenGL时希望带在身边的指南。”
——Todd Furlong,Inv3rsion公司总裁兼首席工程师