好书推荐 好书速递 排行榜 读书文摘

交互式计算机图形学

交互式计算机图形学
作者:E.安杰尔 (Edward Ange) / D.斯赖纳 (Dave Shreiner)
译者:张荣华 / 姜丽梅
副标题:基于WebGL的自顶向下方法(第七版)
出版社:电子工业出版社
出版年:2016-04
ISBN:9787121276040
行业:计算机
浏览数:13

内容简介

本书是作者多年来教学与科研工作的总结,采用自顶向下的结构进行讲解,涵盖了基于WebGL编程工具的交互式图形编程、三维可编程绘制流水线、变换与观察、光照与明暗绘制、曲线曲面建模等基本的计算机图形学内容,以及离散技术、层级建模、过程建模、光线跟踪、并行绘制和体绘制等高级内容。并为读者进一步深入学习和研究,在每章后面提供了相关的建议阅读资料。

......(更多)

作者简介

Edward Angel是新墨西哥大学(UNM)计算机科学的退休教授,并担任过艺术、技术和科学实验室(ARTS Lab)的主任。直到2007年7月,他一直是UNM的计算机科学、电子与计算机工程、媒体艺术教授。Angel于1964年在加州理工大学获得学士学位,并于1968年在南加州大学获得博士学位。他曾任职于加州大学伯克利分校、南加州大学和罗切斯特大学。Angel目前的研究领域是计算机图形学及科学可视化、虚拟现实和大规模并行计算等。

......(更多)

目录

第1章图形系统和模型

1.1计算机图形学的应用

1.1.1信息的显示

1.1.2设计

1.1.3仿真和动画

1.1.4用户界面

1.2图形系统

1.2.1像素和帧缓存

1.2.2CPU与GPU

1.2.3输出设备

1.2.4输入设备

1.3物理图像与合成图像

1.3.1对象和观察者

1.3.2光和图像

1.3.3成像模型

1.4成像系统

1.4.1针孔照相机

1.4.2人类视觉系统

1.5虚拟照相机模型

1.6应用程序编程接口

1.6.1笔式绘图仪模型

1.6.2三维API

1.6.3使用WebGLAPI绘制的一系列图像

1.6.4建模—绘制模式

1.7图形绘制系统的体系结构

1.7.1显示处理器

1.7.2流水线体系结构

1.7.3图形绘制流水线

1.7.4顶点处理

1.7.5裁剪和图元组装

1.7.6光栅化

1.7.7片元处理

1.8可编程流水线

1.9性能特征

1.10OpenGL版本和WebGL

小结和注释

建议阅读资料

习题

第2章图形学编程

2.1Sierpinski镂垫

2.2编写二维图形应用程序

2.3WebGL应用程序编程接口

2.3.1图形函数

2.3.2图形绘制流水线和状态机

2.3.3OpenGL和WebGL

2.3.4WebGL接口

2.3.5坐标系

2.4图元和属性

2.4.1多边形的基本概念

2.4.2WebGL中的多边形

2.4.3利用多边形近似球面

2.4.4三角剖分

2.4.5文本

2.4.6曲线和曲面对象

2.4.7属性

2.5颜色

2.5.1RGB颜色

2.5.2索引颜色

2.5.3设置颜色属性

2.6观察

2.6.1正投影

2.6.2二维观察

2.7控制函数

2.7.1和窗口系统的交互

2.7.2宽高比和视口

2.7.3应用程序组织结构

2.8Sierpinski镂垫绘制程序

2.8.1向GPU发送数据

2.8.2绘制Sierpinski镂垫的点数据

2.8.3顶点着色器

2.8.4片元着色器

2.8.5组合代码段

2.8.6initShaders()函数

2.8.7init()函数

2.8.8从应用程序读入着色器

2.9多边形和递归

2.10三维Sierpinski镂垫

2.10.1使用三维点

2.10.2命名规范

2.10.3使用多边形的三维Sierpinski镂垫

2.10.4隐藏面消除

小结和注释

建议阅读资料

习题

第3章交互和动画

3.1动画

3.1.1旋转的正方形

3.1.2显示过程

3.1.3双缓存

3.1.4使用定时器

3.1.5使用requestAnimFrame

函数

3.2交互

3.3输入设备

3.4物理输入设备

3.4.1键盘码

3.4.2光笔

3.4.3鼠标和跟踪球

3.4.4数据板、触摸板和触摸屏

3.4.5操作杆

3.4.6多维输入设备

3.4.7逻辑设备

3.4.8输入模式

3.5客户和服务器

3.6事件驱动输入编程

3.6.1事件和事件监听器

3.6.2增加按钮

3.6.3菜单

3.6.4使用键码

3.6.5滑动条

3.7位置输入

3.8窗口事件

3.9拾取

3.10建立交互式模型

3.11交互式程序的设计

小结和注释

建议阅读资料

习题

第4章几何对象和变换

4.1标量、点和向量

4.1.1几何对象

4.1.2与坐标无关的几何

4.1.3数学的观点:向量空间和仿射空间

4.1.4计算机科学的观点

4.1.5几何ADT

4.1.6直线

4.1.7仿射加法

4.1.8凸性

4.1.9点积和叉积

4.1.10平面

4.2三维图元

4.3坐标系和标架

4.3.1向量的表示和n元组

4.3.2坐标系的变换

4.3.3举例:不同基下的表示之间的变换

4.3.4齐次坐标

4.3.5举例:标架变换

4.3.6对表示进行处理

4.4WebGL中的标架

4.5矩阵和向量类型

4.6建模一个彩色立方体

4.6.1建模立方体的面

4.6.2向内和向外的面

4.6.3表示对象的数据结构

4.6.4彩色立方体

4.6.5颜色插值

4.6.6显示立方体

4.6.7使用元素绘制网格

4.7仿射变换

4.8平移、旋转和缩放

4.8.1平移

4.8.2旋转

4.8.3缩放

4.9变换的齐次坐标表示

4.9.1平移

4.9.2缩放

4.9.3旋转

4.9.4错切

4.10变换的级联

4.10.1不动点在任意位置的旋转

4.10.2一般的旋转

4.10.3实例变换

4.10.4绕任意轴的旋转

4.11WebGL中的变换矩阵

4.11.1当前变换矩阵

4.11.2基本矩阵函数

4.11.3旋转、平移和缩放

4.11.4绕任意不动点的旋转

4.11.5变换的顺序

4.12使立方体旋转起来

4.13三维应用程序的接口

4.13.1使用屏幕区域

4.13.2虚拟跟踪球

4.13.3平滑的旋转

4.13.4增量式旋转

4.14四元数

4.14.1复数和四元数

4.14.2四元数和旋转

4.14.3四元数和万向节死锁

小结和注释

建议阅读资料

习题

第5章观察

5.1经典观察和计算机观察

5.1.1经典观察

5.1.2正投影

5.1.3轴测投影

5.1.4斜投影

5.1.5透视观察

5.2计算机观察

5.3定位照相机

5.3.1照相机标架的定位

5.3.2两个观察API

5.3.3lookAt函数

5.3.4其他观察API

5.4平行投影

5.4.1正投影

5.4.2WebGL中的平行投影

5.4.3投影的规范化

5.4.4正投影变换矩阵

5.4.5斜投影

5.4.6交互式观察立方体

5.5透视投影

5.6WebGL中的透视投影

5.7透视投影变换矩阵

5.7.1透视投影的规范化

5.7.2WebGL中的透视投影变换

5.7.3透视投影示例程序

5.8隐藏面消除

5.9显示网格

5.9.1显示网格曲面

5.9.2多边形偏移

5.9.3在场景中漫游

5.10投影和阴影

5.11阴影映射

小结和注释

建议阅读资料

习题

第6章光照和着色

6.1光线和材质

6.2光源

6.2.1彩色光源

6.2.2环境光

6.2.3点光源

6.2.4聚光灯

6.2.5远距离光源

6.3Phong反射模型

6.3.1环境光反射

6.3.2漫反射

6.3.3镜面反射

6.3.4改进的Phong模型

6.4计算向量

6.4.1法向量

6.4.2反射角

6.5多边形的着色

6.5.1均匀着色

6.5.2平滑着色

6.5.3Phong着色

6.6通过递归细分逼近球面

6.7指定光照参数

6.7.1光源

6.7.2材质

6.8实现光照模型

6.8.1在WebGL应用程序代码中应用光照模型

6.8.2绘制效率

6.8.3在顶点着色器中实现光照计算

6.9球面模型的着色

6.10基于每个片元的光照计算

6.11非真实感着色

6.12全局光照

小结和注释

建议阅读资料

习题

第7章离散技术

7.1缓存

7.2数字图像

7.3映射方法

7.4二维纹理映射

7.5WebGL的纹理映射

7.5.1纹理对象

7.5.2纹理图像数组

7.5.3纹理坐标和纹理采样器

7.5.4纹理采样

7.5.5使用纹理坐标

7.5.6多纹理映射

7.6纹理生成

7.7环境贴图

7.8反射贴图示例程序

7.9凹凸映射

7.9.1计算凹凸贴图

7.9.2凹凸贴图示例程序

7.10融合技术

7.10.1不透明度与融合

7.10.2图像融合

7.10.3WebGL中图像的融合

7.10.4再探反走样

7.10.5从后向前或从前向后绘制多边形

7.10.6场景反走样和多重采样

7.10.7图像处理

7.10.8其他的多通道绘制方法

7.11GPGPU

7.12帧缓存对象

7.13缓存交换

7.14拾取

小结和注释

建议阅读资料

习题

第8章从几何到像素

8.1图形绘制流水线的基本实现策略

8.2图形绘制系统的四个主要任务

8.2.1建模

8.2.2几何处理

8.2.3光栅化

8.2.4片元处理

8.3裁剪

8.4线段的裁剪

8.4.1Cohen—Sutherland裁剪算法

8.4.2Liang—Barsky裁剪算法

8.5多边形的裁剪

8.6其他图元的裁剪

8.6.1包围盒与包围体

8.6.2曲线、曲面和字符的裁剪

8.6.3帧缓存中的裁剪

8.7三维裁剪

8.8光栅化

8.9Bresenham算法

8.10多边形光栅化算法

8.10.1内外测试法

8.10.2WebGL与凹多边形

8.10.3填充与分类

8.10.4漫水填充算法

8.10.5处理奇点

8.11隐藏面消除

8.11.1对象空间和图像空间消隐算法

8.11.2排序与隐藏面消除

8.11.3扫描线填充算法

8.11.4背面剔除

8.11.5z缓存算法

8.11.6基于z缓存的扫描转换算法

8.11.7深度排序和画家算法

8.12反走样

8.13显示方面的问题

8.13.1颜色系统

8.13.2颜色矩阵

8.13.3γ校正

8.13.4抖动输出技术和半色调输出技术

小结和注释

建议阅读资料

习题

第9章层级建模方法

9.1图符和实例

9.2层级模型

9.3机器人手臂

9.4树与遍历

9.5使用树数据结构

9.6动画

9.7图形对象

9.7.1方法、属性和消息

9.7.2一个立方体对象

9.7.3对象与层级结构

9.7.4几何和非几何对象

9.8场景图

9.9实现场景图

9.10其他树结构

9.10.1CSG树

9.10.2BSP树

9.10.3四叉树和八叉树

小结和注释

建议阅读资料

习题

第10章过程建模方法

10.1基于算法的建模

10.2基于物理的建模和粒子系统

10.3牛顿粒子

10.3.1独立的粒子

10.3.2弹簧力

10.3.3吸引力与排斥力

10.4求解粒子系统方程

10.5约束条件

10.5.1碰撞

10.5.2软约束

10.6一个简单的粒子系统

10.6.1绘制粒子

10.6.2更新粒子的位置

10.6.3碰撞

10.6.4作用力

10.6.5群聚行为

10.7基于agent的建模

10.8基于语言的建模

10.9递归方法和分形

10.9.1标尺和长度

10.9.2分形维数

10.9.3中点划分及布朗运动

10.9.4分形山脉

10.9.5Mandelbrot集

10.9.6Mandelbrot片元着色器

10.10过程噪声

小结和注释

建议阅读资料

习题

第11章曲线和曲面

11.1曲线和曲面的表示形式

11.1.1显式表示形式

11.1.2隐式表示形式

11.1.3参数表示形式

11.1.4参数多项式曲线

11.1.5参数多项式曲面

11.2设计准则

11.3三次参数多项式曲线

11.4插值

11.4.1调和函数

11.4.2三次插值曲面片

11.5Hermite曲线和曲面

11.5.1Hermite形式

11.5.2几何与参数连续性

11.6Bzier曲线和曲面

11.6.1Bzier曲线

11.6.2Bzier曲面片

11.7三次B样条

11.7.1三次B样条曲线

11.7.2B样条和基函数

11.7.3样条曲面

11.8普通B样条

11.8.1B样条的递归定义

11.8.2均匀样条

11.8.3非均匀B样条

11.8.4NURBS

11.8.5Catmull—Rom样条

11.9曲线和曲面的绘制

11.9.1多项式求值方法

11.9.2递归细分Bzier多项式

11.9.3基于细分算法的其他多项式曲线的绘制

11.9.4细分Bzier曲面

11.10Utah茶壶模型

11.11代数曲面

11.11.1二次曲面

11.11.2使用光线跟踪绘制曲面

11.12曲线和曲面的细分

11.13从数据生成网格

11.13.1回顾高度场

11.13.2Delaunay三角剖分

11.13.3点云

11.14支持曲线和曲面的图形API

11.14.1曲面细分着色

11.14.2几何着色

小结和注释

建议阅读资料

习题

第12章高级绘制

12.1超越流水线绘制结构

12.2光线跟踪

12.3构建一个简单的光线跟踪器

12.3.1光线跟踪递归算法

12.3.2计算交点

12.3.3其他不同形式的光线跟踪

12.4绘制方程

12.5辐射度方法

12.5.1辐射度方程

12.5.2求解辐射度方程

12.5.3计算排列因子

12.5.4实现辐射度算法

12.6全局光照和路径跟踪

12.7RenderMan

12.8并行绘制

12.8.1sort—middle绘制方法

12.8.2sort—last绘制方法

12.8.3sort—first绘制方法

12.9GPU硬件实现

12.10隐函数和等高线图

12.10.1步进方格

12.10.2步进三角形

12.11体绘制

12.11.1体数据集

12.11.2隐函数的可视化

12.12等值面与步进立方体

12.13步进四面体

12.14网格简化

12.15直接体绘制

12.15.1指定颜色和透明度

12.15.2抛雪球算法

12.15.3体光线跟踪

12.15.4基于纹理映射的体绘制

12.16基于图像的绘制

小结和注释

建议阅读资料

习题

附录A初始化着色器

附录B空间

附录C矩阵

附录D采样与走样

参考文献

......(更多)

读书文摘

Clipping must be done on a primitive-by-primitive basis rather than on a vertexby-vertex basis

增加了对WebGL、Delaunay 三角剖分、体绘制、点云等内容的介绍

OpenGL中的6个标架(局部坐标系): 对象/Model 世界 眼/照相机 裁减 规范化的设备 窗口/屏幕

......(更多)

猜你喜欢

点击查看