《计算机图形学原理及实践 基础篇 原书第3版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)约翰·F.休斯(JOHNF.HUGHES),安德里斯·范·达姆(ANDRIESVANDAM),摩根·麦奎尔(MORGANMEGUIRE),戴维·F.斯克拉(DAVIDF.SKLAR)等著;彭群生,刘新国,苗兰芳,吴鸿智等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:7111611806
  • 页数:386 页
图书介绍:

第1章 绪论 1

1.1计算机图形学简介 1

1.1.1计算机图形学的世界 3

1.1.2应用领域的现状与前景 3

1.1.3关于用户界面的思考 5

1.2简要历史 6

1.3一个光照的例子 7

1.4目标、资源和适度的抽象 8

1.4.1深度理解与常见的做法 9

1.5图形学中的常数和一些参数值的量级 9

1.5.1光能量和光子到达率 9

1.5.2显示器的特性和眼睛的分辨率 10

1.5.3数码相机的特性 10

1.5.4复杂应用的处理需求 10

1.6图形管线 11

1.6.1纹理映射与近似 12

1.6.2更为详细的图形管线 13

1.7图形学与艺术、设计、感知的关系 14

1.8基本图形系统 16

1.8.1图形数据 16

1.9视为黑盒的多边形绘制 18

1.10图形系统中的交互 18

1.11不同类型的图形应用 18

1.12不同类型的图形包 19

1.13构建真实感绘制模块:概述 20

1.13.1光线 20

1.13.2物体和材料 21

1.13.3接收来自场景中的光线 22

1.13.4图像显示 22

1.13.5人类视觉系统 23

1.13.6数学运算 23

1.13.7积分和采样 24

1.14学习计算机图形学 24

第2章2D图形学简介——基于WPF 26

2.1引言 26

2.2 2D图形流水线概述 26

2.3 2D图形平台的演变 27

2.3.1从整数坐标到浮点数坐标 27

2.3.2即时模式与保留模式 29

2.3.3过程语言与描述性语言 30

2.4使用WPF定义2D场景 31

2.4.1 XAML应用程序结构 31

2.4.2采用抽象坐标系定义场景 31

2.4.3坐标系的选择范围 33

2.4.4 WPF画布坐标系 34

2.4.5使用显示变换 35

2.4.6构造并使用模块化模板 37

2.5用WPF实现的2D图形动态显示 42

2.5.1基于描述性动画的动态显示 42

2.5.2基于过程代码的动态显示 44

2.6支持各种形状系数 45

2.7讨论和延伸阅读 46

第3章 一个古老的绘制器 47

3.1一幅丢勒的木刻画 47

3.2可见性 49

3.3实现 49

3.3.1绘图 52

3.4程序 55

3.5局限性 57

3.6讨论和延伸阅读 59

3.7练习 60

第4章2D图形测试平台 62

4.1引言 62

4.2测试平台的细节 63

4.2.1使用2D测试平台 63

4.2.2割角 63

4.2.3基于测试平台的程序的结构 64

4.3 C#代码 68

4.3.1坐标系 70

4.3.2 WPF数据依赖 71

4.3.3事件处理 71

4.3.4其他几何物体 73

4.4动画 73

4.5交互 74

4.6测试平台的一个应用程序 74

4.7讨论 77

4.8练习 77

第5章 人类视觉感知简介 78

5.1引言 78

5.2视觉系统 79

5.3眼睛 82

5.3.1眼睛的生理机能 82

5.3.2眼睛中的光感受器 83

5.4恒常性及其影响 85

5.5延续性 87

5.6阴影 88

5.7讨论和延伸阅读 89

5.8练习 90

第6章 固定功能的3D图形平台和层次建模简介 92

6.1引言 92

6.1.1 WPF 3D部分的设计 92

6.1.2对光与物体交互的物理过程的近似 93

6.1.3 WPF 3D概述 93

6.2网格和光照属性 94

6.2.1场景设计 94

6.2.2生成更真实的光照 98

6.2.3固定功能绘制中的“光照”与“着色” 101

6.3曲面表示和绘制 102

6.3.1基于插值的着色处理(Gouraud着色) 102

6.3.2将表面设置为多面体表面和平滑表面 104

6.4 WPF中的表面纹理 105

6.4.1基于分片拼接的纹理映射 106

6.4.2基于拉伸的纹理映射 107

6.5 WPF反射模型 107

6.5.1颜色设置 107

6.5.2光源几何 108

6.5.3反射率 108

6.6基于场景图进行层次建模 112

6.6.1模块化建模的动因 112

6.6.2自顶向下的部件层次结构设计 113

6.6.3自下而上的构建和组合 114

6.6.4构件的重用 118

6.7讨论 120

第7章2D和3D空间中的基础数学与几何 121

7.1引言 121

7.2记号 121

7.3集合 121

7.4函数 122

7.4.1反正切函数 123

7.5坐标 124

7.6坐标运算 124

7.6.1向量 126

7.6.2如何理解向量 127

7.6.3向量长度 127

7.6.4向量运算 127

7.6.5矩阵乘法 130

7.6.6其他类型的向量 131

7.6.7隐式直线 132

7.6.8平面直线的隐式描述 133

7.6.9能否采用y=mx+b 134

7.7直线求交 134

7.7.1参数化-参数化直线求交 134

7.7.2参数化-隐式直线求交 135

7.8更一般的求交计算 135

7.8.1光线-平面求交 136

7.8.2光线-球求交 137

7.9三角形 138

7.9.1重心坐标 138

7.9.2空间三角形 139

7.9.3半平面和三角形 140

7.10多边形 141

7.10.1内/外测试 141

7.10.2非简单多边形的内部 143

7.10.3平面多边形的符号面积:分而治之 143

7.10.4空间多边形的法向量 144

7.10.5更一般多边形的符号面积 145

7.10.6倾斜原理 145

7.10.7重心坐标的模拟 146

7.11讨论 147

7.12练习 147

第8章2D和3D形状的简单表示 150

8.1引言 150

8.2 2D空间中的“网格”:折线 151

8.2.1边界 151

8.2.2 1D网格的数据结构 153

8.3 3D网格 154

8.3.1流形网格 154

8.3.2非流形网格 156

8.3.3网格结构的存储要求 157

8.3.4网格操作 158

8.3.5边折叠 158

8.3.6边交换 159

8.4讨论和延伸阅读 159

8.5练习 160

第9章 网格函数 161

9.1引言 161

9.2重心坐标插值代码 163

9.2.1另一视角下的线性插值 166

9.2.2扫描线插值 167

9.3分段线性扩展的局限 168

9.3.1依赖网格结构 169

9.4更平滑扩展 169

9.4.1非凸空间 169

9.4.2使用哪一种插值方法好 170

9.5顶点处定义函数乘 171

9.6应用:纹理映射 172

9.6.1纹理坐标赋值 172

9.6.2纹理映射细节 173

9.6.3纹理映射问题 173

9.7讨论 173

9.8练习 174

第10章2D变换 177

10.1引言 177

10.2 5个实例 177

10.3关于变换的重要事实 180

10.3.1与矩阵相乘为线性变换 180

10.3.2与矩阵相乘为唯一的线性变换 180

10.3.3函数组合和矩阵乘法的关系 181

10.3.4矩阵的逆和反函数的关系 181

10.3.5求解变换的关联矩阵 182

10.3.6变换和坐标系 184

10.3.7矩阵性质和奇异值分解 185

10.3.8计算SVD 186

10.3.9 SVD和伪逆 186

10.4平移 188

10.5再谈点和向量 188

10.6为什么使用3×3矩阵而不是一个矩阵和一个向量 189

10.7窗口变换 189

10.8构建3D变换 190

10.9另一个构造2D变换的实例 191

10.10坐标系 193

10.11应用:绘制场景图 194

10.11.1场景图中的坐标改变 200

10.12变换向量和余向量 202

10.12.1对参数化直线进行变换 204

10.13更一般的变换 205

10.14变换与插值 209

10.15讨论和延伸阅读 209

10.16练习 210

第11章3D变换 212

11.1引言 212

11.1.1投影变换理论 213

11.2旋转 214

11.2.1 2D和3D情形的类比 214

11.2.2欧拉角 215

11.2.3旋转轴和旋转角的描述 216

11.2.4从旋转矩阵中寻找旋转轴和旋转角 217

11.2.5以物体为中心的欧拉角 219

11.2.6旋转和3D球 219

11.2.7计算稳定性 224

11.3旋转表示间的比较 224

11.4旋转与旋转参数的指定 225

11.5对矩阵变换进行插值 226

11.6虚拟跟踪球和弧球 226

11.7讨论和延伸阅读 228

11.8练习 228

第12章2D和3D图形变换库 230

12.1引言 230

12.2点和向量 230

12.3变换 231

12.3.1效率 231

12.4变换的参数 232

12.5实现 232

12.5.1投影变换 233

12.6 3D空间 235

12.7相关变换 235

12.8其他结构 235

12.9其他方法 235

12.10讨论 238

12.11练习 238

第13章 相机设定及变换 239

13.1引言 239

13.2一个2D的示例 239

13.3透视型相机设定 240

13.4基于相机设定构建变换 242

13.5相机变换和光栅化绘制流水线 248

13.6透视变换和z值 250

13.7相机变换和层次化建模 251

13.8正交相机 252

13.8.1宽高比和视域 253

13.9讨论和延伸阅读 253

13.10练习 254

第14章 标准化近似和表示 256

14.1引言 256

14.2评价各种表示方法 256

14.2.1测量值 258

14.2.2历史上的模型 258

14.3实数 258

14.3.1定点数 259

14.3.2浮点数 260

14.3.3缓冲区 260

14.4建立光线光学模块 263

14.4.1光 264

14.4.2光源 267

14.4.3光传输 267

14.4.4材质 268

14.4.5相机 268

14.5大尺度物体几何 269

14.5.1网格 270

14.5.2隐式曲面 273

14.5.3样条曲面和细分曲面 274

14.5.4高度场 275

14.5.5点集 276

14.6远距离物体 277

14.6.1层次细节 277

14.6.2贴图板和Imposter技术 277

14.6.3天空立方盒 278

14.7体模 278

14.7.1有限元模型 278

14.7.2体素 279

14.7.3粒子系统 280

14.7.4雾 280

14.8场景图 281

14.9材质模型 282

14.9.1散射函数 283

14.9.2朗伯反射 286

14.9.3归一化Blinn-Phong反射函数 287

14.10半透明和颜色混合 289

14.10.1混合 290

14.10.2局部覆盖率(α) 291

14.10.3透射 293

14.10.4自发光 295

14.10.5光晕和镜头眩光 295

14.11光源模型 295

14.11.1辐射度函数 295

14.11.2直接光和间接光 296

14.11.3实用和艺术考虑 296

14.11.4矩形面光源 301

14.11.5半球面光源 303

14.11.6全向光源 303

14.11.7平行光源 304

14.11.8聚光灯 305

14.11.9统一的点光源模型 306

14.12讨论 308

14.13练习 308

第15章 光线投射与光栅化 309

15.1引言 309

15.2顶层设计概述 310

15.2.1散射 310

15.2.2可见点 311

15.2.3光线投射:像素优先 312

15.2.4光栅化:三角形优先 312

15.3实现平台 313

15.3.1选择标准 313

15.3.2工具类 315

15.3.3场景表示 319

15.3.4测试场景 321

15.4光线投射绘制程序 321

15.4.1生成视线 323

15.4.2采样框架:求交和着色 325

15.4.3光线-三角形求交 326

15.4.4调试 328

15.4.5着色 329

15.4.6朗伯散射 330

15.4.7光泽型散射 331

15.4.8阴影 331

15.4.9更复杂的场景 334

15.5间奏曲 334

15.6光栅化 335

15.6.1交换循环次序 335

15.6.2包围盒优化 336

15.6.3近平面裁剪 338

15.6.4提升效率 338

15.6.5光栅化阴影区域 343

15.6.6包围盒算法之外 345

15.7使用光栅化API进行绘制 347

15.7.1图形流水线 347

15.7.2接口 348

15.8性能和优化 357

15.8.1关于抽象的思考 357

15.8.2关于架构的思考 358

15.8.3提前深度测试的例子 359

15.8.4什么情况下需进行早期优化 359

15.8.5改进性能估计界限 360

15.9讨论 360

15.10练习 361

第16章 实时3D图形平台综述 363

16.1引言 363

16.1.1从固定功能流水线到可编程的绘制流水线 364

16.2编程模型:OpenGL兼容(固定功能)配置文件 365

16.2.1 OpenGL程序结构 366

16.2.2初始化和主循环 367

16.2.3光照与材质 368

16.2.4几何处理 368

16.2.5相机设置 370

16.2.6绘制图元 371

16.2.7组装:静态帧 372

16.2.8组装:动态效果 372

16.2.9层次建模 372

16.2.10拾取关联 373

16.3编程模型:OpenGL可编程流水线 373

16.3.1可编程流水线的抽象 373

16.3.2核心API的本性 375

16.4图形应用程序的架构 375

16.4.1应用程序模型 375

16.4.2从应用程序模型到IM平台的流水线 376

16.4.3场景图中间件 381

16.4.4图形应用程序平台 383

16.5其他平台上的3D应用 384

16.5.1移动设备上的3D应用 384

16.5.2浏览器中的3D应用 384

16.6讨论 385