基本信息
- 原书名:WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL)
- 原出版社: Addison-Wesley Professional
- 作者: (美)Kouichi Matsuda Rodger Lea(松田浩一,罗杰.李)
- 译者: 谢光磊
- 出版社:电子工业出版社
- ISBN:9787121229428
- 上架时间:2014-6-11
- 出版日期:2014 年6月
- 开本:16开
- 页码:470
- 版次:1-1
- 所属分类:计算机 > 计算机网络 > Web Server > WebServer
编辑推荐
使用WebGL,你可以在浏览器中,不依赖任何插件创建出精美的可交互三维图形。WebGL技术使得创建新一代3D网页游戏、用户界面、数据可视化方案成为可能,这些程序能够运行任何支持标准浏览器的PC、智能手机、平板电脑、家用游戏机或其他设备上。《WebGL编程指南》将会帮助你快速入门学习可交互的WebGL 3D编程,即使你还不了解HTML5、JavaScript、三维图形学理论、数学基础和OpenGL也没有关系。
你将会一步一步地学习真实的示例程序。随着示例程序从简单变复杂,你也将逐渐掌握使用WebGL开发虚拟逼真的网页和三维图形的技能。多媒体、三维图形学和WebGL领域的先驱者Kouichi Matsuda博士和Rodger Lea博士在这本书中提供了易于上手、重点清晰的WebGL教程,以及共计100个可下载的示例程序,每个程序都讨论了一个具体的WebGL话题。
你将从最基本的技术比如渲染、动画、为三角形贴上纹理开始,一路学习到高级的WebGL技术,比如雾化、阴影、切换着色器、显示由Blender等建模工具创建的三维模型。这本书并不仅仅向你传授最佳的实践方法,同时也会向你提供一个小型的代码库,方便你在学习完本书后,开始编写自己的程序。
本书的内容包括:
√ WebGL的起源、核心概念、特性、优势以及与其他Web标准的结合;
√ canvas和基本的WebGL函数如何协作以显示三维图形;
√ 使用OpenGL ES着色器语言(GLSL ES)编写着色器代码;
√ 三维场景渲染:表示用户视野、控制可视空间、裁剪、三维对象创建、透视;
√ 通过光照和层次结构模型产生更真实的效果;
√ 高级技巧:对象操作,HUD、混合、着色器切换等等;
√ 极具价值的附录,涵盖了从坐标系统到矩阵、从着色器加载到浏览器设置等诸多关键知识点。
内容简介
作译者
Rodger Lea 博士是卑诗大学媒体与图像跨学科中心的兼职教授,对多媒体和分布式计算等领域很感兴趣。他和他带领的研究小组在学术和工业领域耕耘超过20 年,参与制定了VRML97 标准,开发了多媒体操作系统、可交互数字电视原型,并领导了家用多媒体网络标准的制定工作。他发表了60 多篇学术论文,著有3 本技术书籍,并拥有12 项专利。目前,他的研究集中在探索发展中的互联网,但他仍然对有关多媒体和图形学的一切抱有热情。
谢光磊,毕业于南京大学,目前为中科院在读硕士,即将成为淘宝UED 的一名前端工程师。因一次偶然的机会接触WebGL 而对其萌生兴趣,并愿意持久深入地研究这项技术。个人站点为 www.xieguanglei.com。
目录
第1 章 WebGL 概述 1
WebGL 的优势 3
使用文本编辑器开发三维应用 3
轻松发布三维图形程序 4
充分利用浏览器的功能 5
学习和使用WebGL 很简单 5
WebGL 的起源 5
WebGL 程序的结构 6
总结 7
第2 章 WebGL 入门 9
Canvas 是什么? 10
使用<canvas> 标签 11
DrawRectangle.js 13
最短的WebGL 程序:清空绘图区 16
HTML 文件(HelloCanvas.html) 16
JavaScript 程序(HelloCanvas.js) 17
用示例程序做实验 22
绘制一个点(版本1) 22
HelloPoint1.html 24
前言
本书的读者群
在写本书时,我希望本书的读者群主要由两类人构成:希望在网页中加入三维图形的Web 开发者,以及希望将三维图形搬上网页环境的三维图形开发者。如果你是前一类读者,即Web 开发者,你可能对标准的Web 技术,如HTML 和JavaScript,已经很熟悉了,你希望知道如何向网页或Web 程序中插入三维图形,那么WebGL 将会向你提供简单且强大的解决方案,你可以使用三维图形来增强Web 程序的用户界面(UI),或者开发更复杂的三维程序,比如运行在浏览器中的三维网页游戏。
如果你是第二类目标读者群中的一员,你可能已经具有使用主流三维应用程序接口(API),如Direct3D 或OpenGL 进行开发的经验,你希望知道如何在网页环境中应用这些知识。我想你一定对开发出能够在现代浏览器中运行的复杂三维程序更感兴趣。
然而,这本书也适用于更加广泛的读者群。因为本书假定读者不具有任何关于二维或三维图形编程的背景,所以几乎是手把手地向读者传授WebGL 的特性。因此,我想以下读者可能也会对本书感兴趣:
y 所有希望了解网页技术与图形技术交集的程序员;
y 学习二维或三维图形学的学生,因为WebGL 只需要一个浏览器即可上手,无须
安装一整套开发环境。
y 探索最前沿技术,试图在安卓手机、iPhone 等移动设备的最新版浏览器中有所作
为的Web 开发者。
本书涵盖的内容
本书涵盖了WebGL 1.0 API 包含的几乎所有的JavaScript 方法,你可以学到WebGL、HTML、JavaScript 是如何联系的,如何建立和运行WebGL 程序,如何使用JavaScript 控制复杂的三维“着色器”程序。本书详细讲述了如何编写顶点着色器和片元着色器,如何实现该机的渲染技术,如逐顶点光照、阴影、基本的交互操作(如选中三维物体)等。
本书的每一章将开发若干个可用的,具有一定功能的WebGL 示例程序,并通过这些示例程序介绍WebGL 的关键特性。在读完本书之后,你就能够编写出能够充分利用浏览器的编程能力和图形硬件的WebGL 程序。
本书的结构
本书一步一步地介绍了WebGL API 以及相关的Web API,以帮助你建立起关于WebGL 的知识结构。
第1 章——WebGL 概述
这一章简要介绍了WebGL,讨论了WebGL 的历史起源,概括了它的一些关键特性和优点。这一章还介绍了WebGL 与HTML5 以及 JavaScript 的关系,介绍了我们可以使用哪些浏览器开始探索WebGL。
第2 章——WebGL 入门
这一章通过建立几个示例程序,依次介绍了<canvas> 元素和WebGL 的核心函数。每个示例都是用JavaScript 编写的,并使用WebGL 在网页上绘制一个简单的形状。示例程序突出了以下几点:(1)WebGL 如何使用<canvas> 元素并在其上绘图;(2)HTML 文件和用JavaScript 编写的WebGL 代码文件的连接;(3) 简单的WebGL 绘图函数;(4) 着色器程序在WebGL 中的地位。
第3 章——绘制和变换三角形
媒体评论
——Dave Shreiner
《OpenGL 编程指南》( 第8 版) 的作者,Addison Wesley 出版社OpenGL 系列丛书编辑
“HTML5 使Web 成为了高度可用的应用平台,使精致优美的Web 应用能够运行在多种不同的系统中。WebGL 是HTML5 的一个重要组成部分,它允许Web 开发者充分利用硬件的性能渲染三维图形。WebGL 被设计出来的目的就是为了安全地运行在任何支持Web 的系统中,这项技术将在三维Web 内容和应用、用户界面等领域引发新一轮的技术
革命。这本书将帮助Web 开发者完全理解WebGL 技术的功能,并牢牢抓住这项技术带来的机遇。”
——Neil Trevett
NVIDIA 移动部门副总裁,Khronos 小组主席
“通过优美的三维渲染和清晰的讲解,这本书将WebGL 这样一个复杂晦涩的问题变得亲切有趣。不可否认的是,WebGL 确实非常复杂,但这本书已经足够畅达,初学者应该毫不犹豫地利用它开始学习。”
——Evan Burchard
Web Game Developer's Cookbook (Addison Wesley) 的作者
“本书的两位作者都具有深厚的OpenGL 背景,并将此背景恰到好处地用在了WebGL 上,写出了这本优秀的,即适合新手也适合老鸟的教材。”
——Daniel Heahn
波士顿儿童医院的软件工程师
“《WebGL 编程指南》以一种即直接又通俗易懂的方式,讲解了如何不依赖笨重的函数库或插件来构建三维应用。对希望了解最前沿的三维Web 开发领域的工程师来说,这是一本不可多得的好书。”
——Brandon Jones
Google 的软件工程师
“这是一部出自杰出科学家之手的伟大作品。Kouichi Matsuda 清晰简洁地向初学者指明了理解WebGL 所需经历的道路。这是一个复杂的话题,使得每一个刚开始使用这项新技术的人都能够理解。这本书包括了很多三维的基本概念,以帮助读者理解后面的知识。对任何一个web 开发者来说,这本书都值得收藏。”
——Chris Marrin
WebGL Spec 编辑
“学习《WebGL 编程指南》是从WebGL 菜鸟到WebGL 专家的绝佳途径。WebGL 虽然概念上很简单,但真正使用它需要大量3D 数学知识,《WebGL 编程指南》系统地帮你总结了这些知识,你只需要好好理解它们并运用到实际开发中去。即使你最后还是选择使用WebGL 3D 库,《WebGL 编程指南》里学到的知识也会帮助你理解那些库究竟在做些什么,并允许你将它们进行改造,以适应你的应用的特殊要求。真见鬼,你最终还是坚持使用OpenGL 和/ 或DirectX 编写桌面程序?即使这样,《WebGL 编程指南》也是一本不错的入门书,因为市面上大多关于3D 的书籍,与目前的3D 技术相比都已经过时了。总之,《WebGL 编程指南》将帮助你完整理解关于现代3D 图形学的基础知识。”