没有合适的资源?快使用搜索试试~ 我知道了~
首页计算机图形学原理与实践第三版精华
"《Computer Graphics: Principles and Practice》是由James D.Foley、Andries van Dam、Steven K.Feiner和John F.Hughes等人编著的一本计算机图形学经典著作,首次出版于1990年,由Addison-Wesley出版。这本书被誉为计算机图形学的百科全书,涵盖了广泛的主题和深入的信息。"
《Computer Graphics: Principles and Practice》第三版详细阐述了计算机图形学的基础理论和实际应用,是学习和研究这一领域不可或缺的参考资料。书中包含了一系列来自不同作者的插图和示例,如Michael Kass、Pixar、Andrew Witkin、Greg Turk等人的作品,展示了计算机图形学在艺术和科学上的结合。
此书涉及的关键知识点包括但不限于以下几个方面:
1. **图形管线**:讲解了从几何形状的创建到最终像素显示在屏幕上的整个过程,包括模型构建、变换、投影、裁剪、扫描转换和光栅化等步骤。
2. **颜色理论**:探讨了颜色如何在数字系统中表示,以及颜色混合和光照模型,如Phong反射模型,对图像质量的影响。
3. **纹理映射**:介绍了如何将复杂的表面细节应用到简单的几何形状上,增强了视觉真实感,例如通过UV坐标系进行纹理坐标映射。
4. **光照和阴影**:讨论了如何模拟现实世界中的光源效果,包括环境光、直射光和阴影计算,以及各种光照模型如Blinn-Phong模型。
5. **抗锯齿技术**:讲述了如何减少图像边缘的锯齿现象,提高图像的平滑度,如多采样抗锯齿(MSAA)和超级采样抗锯齿(SSAA)。
6. **图形渲染**:涵盖了从基本的二维渲染到复杂的三维实时渲染算法,如光栅化和基于物理的渲染(PBR)。
7. **几何建模**:介绍了如何创建和操作几何对象,包括线性代数在图形中的应用,如向量、矩阵和四元数。
8. **图形用户界面**:讨论了交互式图形系统的设计和实现,包括输入设备的处理和用户交互的原理。
9. **计算机图形硬件**:讲解了图形处理器(GPU)的工作原理,以及如何利用OpenGL、DirectX等图形库进行程序设计。
10. **动画和运动**:涵盖了关键帧动画、物理模拟和骨骼绑定等技术,用于创造动态效果。
此外,书中还涉及了图像处理、计算机视觉、虚拟现实和增强现实等相关领域的交叉点,对于深入理解计算机图形学的原理和技术有极大的帮助。无论是初学者还是经验丰富的专业人士,都能从中受益匪浅。
ptg11539634
Contents xiii
7.1 Introduction................................................................................................................. 149
7.2 Notation
....................................................................................................................... 150
7.3 Sets
............................................................................................................................... 150
7.4 Functions
..................................................................................................................... 151
7.4.1 Inverse Tangent Functions
................................................................................. 152
7.5 Coordinates
.................................................................................................................. 153
7.6 Operations on Coordinates
.......................................................................................... 153
7.6.1 Vectors
............................................................................................................. 155
7.6.2 How to Think About Vectors
............................................................................. 156
7.6.3 Length of a Vector
............................................................................................ 157
7.6.4 Vector Operations
............................................................................................. 157
7.6.5 Matrix Multiplication
........................................................................................ 161
7.6.6 Other Kinds of Vectors
...................................................................................... 162
7.6.7 Implicit Lines
................................................................................................... 164
7.6.8 An Implicit Description of a Line in a Plane
...................................................... 164
7.6.9 What About y
= mx + b?.................................................................................. 165
7.7 Intersections of Lines
................................................................................................... 165
7.7.1 Parametric-Parametric Line Intersection
............................................................ 166
7.7.2 Parametric-Implicit Line Intersection
................................................................ 167
7.8 Intersections, More Generally
..................................................................................... 167
7.8.1 Ray-Plane Intersection
...................................................................................... 168
7.8.2 Ray-Sphere Intersection
.................................................................................... 170
7.9 Triangles
...................................................................................................................... 171
7.9.1 Barycentric Coordinates
.................................................................................... 172
7.9.2 Triangles in Space
............................................................................................. 173
7.9.3 Half-Planes and Triangles
................................................................................. 174
7.10 Polygons
....................................................................................................................... 175
7.10.1 Inside/Outside Testing
...................................................................................... 175
7.10.2 Interiors of Nonsimple Polygons
....................................................................... 177
7.10.3 The Signed Area of a Plane Polygon: Divide and Conquer
................................ 177
7.10.4 Normal to a Polygon in Space
........................................................................... 178
7.10.5 Signed Areas for More General Polygons
.......................................................... 179
7.10.6 The Tilting Principle
......................................................................................... 180
7.10.7 Analogs of Barycentric Coordinates
.................................................................. 182
7.11 Discussion
.................................................................................................................... 182
7.12 Exercises
...................................................................................................................... 182
8 A Simple Way to Describe Shape in 2D and 3D........................................................ 187
The triangle mesh is a fundamental structure in graphics, widely used for representing shape. We
describe 1D meshes (polylines) in 2D and generalize to 2D meshes in 3D. We discuss several rep-
resentations for triangle meshes, simple operations on meshes such as computing the boundary, and
determining whether a mesh is oriented.
8.1 Introduction................................................................................................................. 187
8.2 “Meshes” in 2D: Polylines
........................................................................................... 189
8.2.1 Boundaries
....................................................................................................... 190
8.2.2 A Data Structure for 1D Meshes
....................................................................... 191
8.3 Meshes in 3D
................................................................................................................ 192
ptg11539634
xiv Contents
8.3.1 Manifold Meshes .............................................................................................. 193
8.3.2 Nonmanifold Meshes
........................................................................................ 195
8.3.3 Memory Requirements for Mesh Structures
...................................................... 196
8.3.4 A Few Mesh Operations
.................................................................................... 197
8.3.5 Edge Collapse
................................................................................................... 197
8.3.6 Edge Swap
........................................................................................................ 197
8.4 Discussion and Further Reading
................................................................................. 198
8.5 Exercises
...................................................................................................................... 198
9 Functions on Meshes ........................................................................................................ 201
A real-valued function defined at the vertices of a mesh can be extended linearly across each face by
barycentric interpolation to define a function on the entire mesh. Such extensions are used in texture
mapping, for instance. By considering what happens when a single vertex value is 1, and all others
are 0, we see that all our piecewise-linear extensions are combinations of certain basic piecewise-
linear mesh functions; replacing these basis functions with other, smoother functions can lead to
smoother interpolation of values.
9.1 Introduction................................................................................................................. 201
9.2 Code for Barycentric Interpolation
............................................................................. 203
9.2.1 A Different View of Linear Interpolation
........................................................... 207
9.2.2 Scanline Interpolation
....................................................................................... 208
9.3 Limitations of Piecewise Linear Extension
................................................................. 210
9.3.1 Dependence on Mesh Structure
......................................................................... 211
9.4 Smoother Extensions
................................................................................................... 211
9.4.1 Nonconvex Spaces
............................................................................................ 211
9.4.2 Which Interpolation Method Should I Really Use?
............................................ 213
9.5 Functions Multiply Defined at Vertices
....................................................................... 213
9.6 Application: Texture Mapping
.................................................................................... 214
9.6.1 Assignment of Texture Coordinates
................................................................... 215
9.6.2 Details of Texture Mapping
............................................................................... 216
9.6.3 Texture-Mapping Problems
............................................................................... 216
9.7 Discussion
.................................................................................................................... 217
9.8 Exercises
...................................................................................................................... 217
10 Transformations in Two Dimensions ........................................................................... 221
Linear and affine transformations are the building blocks of graphics. They occur in modeling, in
rendering, in animation, and in just about every other context imaginable. They are the natural tools
for transforming objects represented as meshes, because they preserve the mesh structure perfectly.
We introduce linear and affine transformations in the plane, because most of the interesting phenom-
ena are present there, the exception being the behavior of rotations in three dimensions, which we
discuss in Chapter 11. We also discuss the relationship of transformations to matrices, the use of
homogeneous coordinates, the uses of hierarchies of transformations in modeling, and the idea of
coordinate “frames.”
10.1 Introduction................................................................................................................. 221
10.2 Five Examples
.............................................................................................................. 222
ptg11539634
Contents xv
10.3 Important Facts about Transformations..................................................................... 224
10.3.1 Multiplication by a Matrix Is a Linear Transformation
....................................... 224
10.3.2 Multiplication by a Matrix Is the Only Linear Transformation
........................... 224
10.3.3 Function Composition and Matrix Multiplication Are Related
........................... 225
10.3.4 Matrix Inverse and Inverse Functions Are Related
............................................. 225
10.3.5 Finding the Matrix for a Transformation
............................................................ 226
10.3.6 Transformations and Coordinate Systems
.......................................................... 229
10.3.7 Matrix Properties and the Singular Value Decomposition
.................................. 230
10.3.8 Computing the SVD
......................................................................................... 231
10.3.9 The SVD and Pseudoinverses
............................................................................ 231
10.4 Translation
................................................................................................................... 233
10.5 Points and Vectors Again
............................................................................................. 234
10.6 Why Use 3
× 3 Matrices Instead of a Matrix and a Vector?...................................... 235
10.7 Windowing Transformations
....................................................................................... 236
10.8 Building 3D Transformations
...................................................................................... 237
10.9 Another Example of Building a 2D Transformation
................................................... 238
10.10 Coordinate Frames
...................................................................................................... 240
10.11 Application: Rendering from a Scene Graph
.............................................................. 241
10.11.1 Coordinate Changes in Scene Graphs
................................................................ 248
10.12 Transforming Vectors and Covectors
.......................................................................... 250
10.12.1 Transforming Parametric Lines
......................................................................... 254
10.13 More General Transformations
................................................................................... 254
10.14 Transformations versus Interpolation
......................................................................... 259
10.15 Discussion and Further Reading
................................................................................. 259
10.16 Exercises
...................................................................................................................... 260
11 Transformations in Three Dimensions ........................................................................ 263
Transformations in 3-space are analogous to those in the plane, except for rotations: In the plane, we
can swap the order in which we perform two rotations about the origin without altering the result; in
3-space, we generally cannot. We discuss the group of rotations in 3-space, the use of quaternions to
represent rotations, interpolating between quaternions, and a more general technique for interpolating
among any sequence of transformations, provided they are “close enough” to one another. Some of
these techniques are applied to user-interface designs in Chapter 21.
11.1 Introduction................................................................................................................. 263
11.1.1 Projective Transformation Theorems
................................................................. 265
11.2 Rotations
...................................................................................................................... 266
11.2.1 Analogies between Two and Three Dimensions
................................................. 266
11.2.2 Euler Angles
..................................................................................................... 267
11.2.3 Axis-Angle Description of a Rotation
............................................................... 269
11.2.4 Finding an Axis and Angle from a Rotation Matrix
........................................... 270
11.2.5 Body-Centered Euler Angles
............................................................................. 272
11.2.6 Rotations and the 3-Sphere
............................................................................... 273
11.2.7 Stability of Computations
................................................................................. 278
11.3 Comparing Representations
........................................................................................ 278
11.4 Rotations versus Rotation Specifications
.................................................................... 279
11.5 Interpolating Matrix Transformations
........................................................................ 280
11.6 Virtual Trackball and Arcball
..................................................................................... 280
ptg11539634
xvi Contents
11.7 Discussion and Further Reading ................................................................................. 283
11.8 Exercises
...................................................................................................................... 284
12 A 2D and 3D Transformation Library for Graphics ............................................... 287
Because we represent so many things in graphics with arrays of three floating-point numbers (RGB
colors, locations in 3-space, vectors in 3-space, covectors in 3-space, etc.) it’s very easy to make
conceptual mistakes in code, performing operations (like adding the coordinates of two points) that
don’t make sense. We present a sample mathematics library that you can use to avoid such problems.
While such a library may have no place in high-performance graphics, where the overhead of type
checking would be unreasonable, it can be very useful in the development of programs in their early
stages.
12.1 Introduction................................................................................................................. 287
12.2 Points and Vectors
....................................................................................................... 288
12.3 Transformations
.......................................................................................................... 288
12.3.1 Efficiency
......................................................................................................... 289
12.4 Specification of Transformations
................................................................................. 290
12.5 Implementation
............................................................................................................ 290
12.5.1 Projective Transformations
................................................................................ 291
12.6 Three Dimensions
........................................................................................................ 293
12.7 Associated Transformations
........................................................................................ 294
12.8 Other Structures
.......................................................................................................... 294
12.9 Other Approaches
........................................................................................................ 295
12.10 Discussion
.................................................................................................................... 297
12.11 Exercises
...................................................................................................................... 297
13 Camera Specifications and Transformations............................................................. 299
To convert a model of a 3D scene to a 2D image seen from a particular point of view, we have to
specify the view precisely. The rendering process turns out to be particularly simple if the camera
is at the origin, looking along a coordinate axis, and if the field of view is 90
◦
in each direction.
We therefore transform the general problem to the more specific one. We discuss how the virtual
camera is specified, and how we transform any rendering problem to one in which the camera is
in a standard position with standard characteristics. We also discuss the specification of parallel (as
opposed to perspective) views.
13.1 Introduction................................................................................................................. 299
13.2 A 2D Example
.............................................................................................................. 300
13.3 Perspective Camera Specification
............................................................................... 301
13.4 Building Transformations from a View Specification
................................................. 303
13.5 Camera Transformations and the Rasterizing Renderer Pipeline
............................. 310
13.6 Perspective and z-values
.............................................................................................. 313
13.7 Camera Transformations and the Modeling Hierarchy
............................................. 313
13.8 Orthographic Cameras
................................................................................................ 315
13.8.1 Aspect Ratio and Field of View
......................................................................... 316
13.9 Discussion and Further Reading
................................................................................. 317
13.10 Exercises
...................................................................................................................... 318
ptg11539634
Contents xvii
14 Standard Approximations and Representations....................................................... 321
The real world contains too much detail to simulate efficiently from first principles of physics and
geometry. Models make graphics computationally tractable but introduce restrictions and errors.
We explore some pervasive approximations and their limitations. In many cases, we have a choice
between competing models with different properties.
14.1 Introduction................................................................................................................. 321
14.2 Evaluating Representations
......................................................................................... 322
14.2.1 The Value of Measurement
............................................................................... 323
14.2.2 Legacy Models
................................................................................................. 324
14.3 Real Numbers
.............................................................................................................. 324
14.3.1 Fixed Point
....................................................................................................... 325
14.3.2 Floating Point
................................................................................................... 326
14.3.3 Buffers
............................................................................................................. 327
14.4 Building Blocks of Ray Optics
..................................................................................... 330
14.4.1 Light
................................................................................................................ 330
14.4.2 Emitters
............................................................................................................ 334
14.4.3 Light Transport
................................................................................................. 335
14.4.4 Matter
............................................................................................................... 336
14.4.5 Cameras
........................................................................................................... 336
14.5 Large-Scale Object Geometry
..................................................................................... 337
14.5.1 Meshes
............................................................................................................. 338
14.5.2 Implicit Surfaces
............................................................................................... 341
14.5.3 Spline Patches and Subdivision Surfaces
........................................................... 343
14.5.4 Heightfields
...................................................................................................... 344
14.5.5 Point Sets
......................................................................................................... 345
14.6 Distant Objects
............................................................................................................ 346
14.6.1 Level of Detail
.................................................................................................. 347
14.6.2 Billboards and Impostors
.................................................................................. 347
14.6.3 Skyboxes
.......................................................................................................... 348
14.7 Volumetric Models
....................................................................................................... 349
14.7.1 Finite Element Models
...................................................................................... 349
14.7.2 Voxels
.............................................................................................................. 349
14.7.3 Particle Systems
................................................................................................ 350
14.7.4 Fog
................................................................................................................... 351
14.8 Scene Graphs
............................................................................................................... 351
14.9 Material Models
........................................................................................................... 353
14.9.1 Scattering Functions (BSDFs)
........................................................................... 354
14.9.2 Lambertian
....................................................................................................... 358
14.9.3 Normalized Blinn-Phong
.................................................................................. 359
14.10 Translucency and Blending
......................................................................................... 361
14.10.1 Blending
........................................................................................................... 362
14.10.2 Partial Coverage (
α).......................................................................................... 364
14.10.3 Transmission
.................................................................................................... 367
14.10.4 Emission
........................................................................................................... 369
14.10.5 Bloom and Lens Flare
....................................................................................... 369
14.11 Luminaire Models
....................................................................................................... 369
14.11.1 The Radiance Function
..................................................................................... 370
14.11.2 Direct and Indirect Light
................................................................................... 370
剩余1262页未读,继续阅读
2009-10-20 上传
2019-07-07 上传
2019-05-26 上传
2019-05-26 上传
2019-05-26 上传
2013-12-30 上传
2018-10-22 上传
tywhy123
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 新型智能电加热器:触摸感应与自动温控技术
- 社区物流信息管理系统的毕业设计实现
- VB门诊管理系统设计与实现(附论文与源代码)
- 剪叉式高空作业平台稳定性研究与创新设计
- DAMA CDGA考试必备:真题模拟及章节重点解析
- TaskExplorer:全新升级的系统监控与任务管理工具
- 新型碎纸机进纸间隙调整技术解析
- 有腿移动机器人动作教学与技术存储介质的研究
- 基于遗传算法优化的RBF神经网络分析工具
- Visual Basic入门教程完整版PDF下载
- 海洋岸滩保洁与垃圾清运服务招标文件公示
- 触摸屏测量仪器与粘度测定方法
- PSO多目标优化问题求解代码详解
- 有机硅组合物及差异剥离纸或膜技术分析
- Win10快速关机技巧:去除关机阻止功能
- 创新打印机设计:速释打印头与压纸辊安装拆卸便捷性
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功