图书介绍

交互式计算机图形学2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

交互式计算机图形学
  • (美)(安杰尔)EdwardAngel著 著
  • 出版社: 北京:高等教育出版社
  • ISBN:7040137240
  • 出版时间:2003
  • 标注页数:722页
  • 文件大小:151MB
  • 文件页数:755页
  • 主题词:图形软件,OpenGL-高等学校-教材-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

交互式计算机图形学PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

CHAPTER 1 Graphics Systems and Models1

1.1 Applications of Computer Graphics2

1.1.1 Display of Information2

1.1.2 Design3

1.1.3 Simulation and Animation3

1.1.4 User Interfaces4

1.2 A Graphics System5

1.2.1 Pixels and the Frame Buffer5

1.2.2 Output Devices7

1.2.3 Input Devices9

1.3 Images: Physical and Synthetic9

1.3.1 Objects and Viewers9

1.3.2 Light and Images11

1.3.3 Ray Tracing13

1.4 The Human Visual System15

1.5 The Pinhole Camera17

1.6 The Synthetic-Camera Model19

1.7 The Programmer's Interface21

1.7.1 Application Programmer's Interfaces22

1.7.2 The Pen-Plotter Model22

1.7.3 Three-Dimensional APIs24

1.7.4 A Sequence of Images26

1.7.5 The Modeling-Rendering Paradigm27

1.8 Graphics Architectures28

1.8.1 Display Processors29

1.8.2 Pipeline Architectures29

1.8.3 Transformations31

1.8.4 Clipping31

1.8.5 Projection32

1.8.6 Rasterization32

1.8.7 Performance Characteristics32

1.9 Summary and Notes33

1.10 Suggested Readings34

Exercises35

CHAPTER 2 Graphics Programming37

2.1 The Sierpinski Gasket37

2.2 Programming Two-Dimensional Applications39

2.2.1 Coordinate Systems44

2.3 The OpenGL API44

2.3.1 Graphics Functions44

2.3.2 The Graphics Pipeline and State Machines46

2.3.3 The OpenGL Interface46

2.4 Primitives and Attributes47

2.4.1 Polygon Basics50

2.4.2 Polygon Types in OpenGL51

2.4.3 Drawing a Sphere52

2.4.4 Text53

2.4.5 Curved Objects55

2.4.6 Attributes56

2.5 Color57

2.5.1 RGB Color61

2.5.2 Indexed Color63

2.5.3 Setting of Color Attributes64

2.6 Viewing65

2.6.1 Two-Dimensional Viewing66

2.6.2 The Orthographic View67

2.6.3 Matrix Modes68

2.7 Control Functions68

2.7.1 Interaction with the Window System69

2.7.2 Aspect Ratio and Viewports70

2.7.3 The main,display,and myinit Functions72

2.7.4 Program Structure73

2.8 The Gasket Program74

2.9 Polygons and Recursion75

2.10 The Three-Dimensional Gasket77

2.10.1 Use of Three-Dimensional Points78

2.10.2 Use of Polygons in Three Dimensions79

2.10.3 Hidden-Surface Removal81

2.11 Summary and Notes82

2.12 Suggested Readings84

Exercises85

CHAPTER 3 Input and Interaction89

3.1 Interaction89

3.2 Input Devices90

3.2.1 Physical Input Devices91

3.2.2 Logical Devices94

3.2.3 Measure and Trigger95

3.2.4 Input Modes95

3.3 Clients and Servers97

3.4 Display Lists98

3.4.1 Definition and Execution of Display Lists100

3.4.2 Text and Display Lists102

3.4.3 Fonts in GLUT105

3.5 Programming Event-Driven Input106

3.5.1 Using the Pointing Device106

3.5.2 Window Events110

3.5.3 Keyboard Events111

3.5.4 The Display and Idle Callbacks112

3.5.5 Window Management113

3.6 Menus113

3.7 Picking114

3.7.1 Picking and Selection Mode116

3.8 A Simple Paint Program121

3.9 Animating Interactive Programs127

3.9.1 The Rotating Square127

3.9.2 Double Buffering129

3.9.3 Other Buffering Problems130

3.10 Design of Interactive Programs132

3.10.1 Toolkits,Widgets,and the Frame Buffer132

3.11 Logic Operations133

3.11.1 Drawing Erasable Lines135

3.11.2 XORand Color137

3.11.3 Cursors and Overlay Planes137

3.12 Summary and Notes138

3.13 Suggested Readings139

Exercises140

CHAPTER 4 Geometric Objects and Transforrnations143

4.1 Scalars,Points,and Vectors144

4.1.1 The Geometric View144

4.1.2 Coordinate-Free Geometry146

4.1.3 The Mathematical View:Vector and Affine Spaces146

4.1.4 The Computer-Science View147

4.1.5 Geometric ADTs148

4.1.6 Lines149

4.1.7 Affine Sums149

4.1.8 Convexity150

4.1.9 Dot and Cross Products150

4.1.10 Planes151

4.2 Three-Dimensional Primitives152

4.3 Coordinate Systems and Frames154

4.3.1 Representations and N-tuples156

4.3.2 Changes of Coordinate Systems157

4.3.3 Example of Change of Representation159

4.3.4 Homogeneous Coordinates160

4.3.5 Example of Change in Frames163

4.3.6 Working with Representations165

4.3.7 Frames and ADTs166

4.3.8 Frames in OpenGL168

4.4 Modeling a Colored Cube171

4.4.1 Modeling of a Cube172

4.4.2 Inward- and Outward-Pointing Faces173

4.4.3 Data Structures for Object Representation173

4.4.4 The Color Cube174

4.4.5 Bilinear Interpolation175

4.4.6 Vertex Arrays176

4.5 Affine Transformations179

4.6 Translation,Rotation,and Scaling181

4.6.1 Translation182

4.6.2 Rotation182

4.6.3 Scaling184

4.7 Transformations in Homogeneous Coordinates184

4.7.1 Translation184

4.7.2 Scaling185

4.7.3 Rotation186

4.7.4 Shear188

4.8 Concatenation of Transformations189

4.8.1 Rotation About a Fixed Point190

4.8.2 General Rotation191

4.8.3 The Instance Transformation192

4.8.4 Rotation About an Arbitrary Axis193

4.9 OpenGL Transformation Matrices196

4.9.1 The Current Transformation Matrix197

4.9.2 Rotation,Translation,and Scaling198

4.9.3 Rotation About a Fixed Point in OpenGL199

4.9.4 Order of Transformations199

4.9.5 Spinning of the Cube200

4.9.6 Loading,Pushing,and Popping Matrices201

4.10 Interfaces to Three-Dimensional Applications202

4.10.1 UsingAreas of the Screen203

4.10.2 AVirtual Trackball203

4.10.3 Smooth Rotations206

4.10.4 Incremental Rotation207

4.11 Quaternions208

4.11.1 Complex Numbers and Quaternions208

4.11.2 Quaternions and Rotation209

4.12 Summary and Notes211

4.13 Suggested Readings212

Exercises213

CHAPTER 5 Viewing217

5.1 Classical and Computer Viewing217

5.1.1 Classical Viewing219

5.1.2 Orthographic Projections220

5.1.3 Axonometric Projections221

5.1.4 Oblique Projections222

5.1.5 Perspective Viewing223

5.2 Viewing with a Computer225

5.3 Positioning of the Camera226

5.3.1 Positioning of the Camera Frame226

5.3.2 Two Viewing APIs231

5.3.3 The Look-At Function234

5.3.4 Other Viewing APIs235

5.4 Simple Projections236

5.4.1 Perspective Projections236

5.4.2 Orthogonal Projections239

5.5 Projections in OpenGL240

5.5.1 Perspective in OpenGL241

5.5.2 Parallel Viewing in OpenGL243

5.6 Hidden-Surface Removal244

5.6.1 Culling246

5.7 Walking Through a Scene247

5.8 Parallel-Projection Matrices248

5.8.1 Projection Normalization249

5.8.2 Orthogonal-Projection Matrices249

5.8.3 Oblique Projections252

5.9 Perspective-Projection Matrices255

5.9.1 Perspective Normalization256

5.9.2 OpenGL Perspective Transformations259

5.10 Projections and Shadows261

5.11 Summary and Notes264

5.12 Suggested Readings265

Exercises265

CHAPTER 6 Shading267

6.1 Light and Matter267

6.2 Light Sources271

6.2.1 Color Sources272

6.2.2 Ambient Light272

6.2.3 Point Sources273

6.2.4 Spotlights274

6.2.5 Distant Light Sources274

6.3 The Phong Reflection Model275

6.3.1 Ambient Reflection277

6.3.2 Diffuse Reflection277

6.3.3 Specular Reflection278

6.4 Computation of Vectors280

6.4.1 Normal Vectors281

6.4.2 Angle of Reflection283

6.4.3 Use of the Halfway Vector284

6.4.4 Transmitted Light285

6.5 Polygonal Shading286

6.5.1 Flat Shading286

6.5.2 Interpolative and Gouraud Shading288

6.5.3 Phong Shading290

6.6 Approximation of a Sphere by Recursive Subdivision291

6.7 Light Sources in OpenGL294

6.8 Specification of Materials in OpenGL296

6.9 Shading of the Sphere Model298

6.10 Global Rendering299

6.11 Summary and Notes301

6.12 Suggested Readings302

Exercises302

CHAPTER 7 Discrete Techniques305

7.1 Buffers305

7.2 Digital Images307

7.3 Writing into Buffers310

7.3.1 Writing Modes311

7.3.2 Writing with XOR313

7.4 Bit and Pixel Operations in OpenGL314

7.4.1 OpenGL Buffers and the Pixel Pipeline314

7.4.2 Bitmaps316

7.4.3 Raster Fonts317

7.4.4 Pixels and Images318

7.4.5 Lookup Tables319

7.4.6 Buffers for Picking321

7.5 Mapping Methods321

7.6 Texture Mapping323

7.6.1 Two-Dimensional Texture Mapping323

7.6.2 Texture Mapping in OpenGL330

7.6.3 Texture Objects337

7.6.4 Multitexturing337

7.6.5 Texture Generation337

7.7 Environmental Maps338

7.8 Bump Maps341

7.9 Compositing Techniques343

7.9.1 Opacity and Blending343

7.9.2 Image Compositing345

7.9.3 Blending and Compositing in OpenGL345

7.9.4 Antialiasing346

7.9.5 Back-to-Front and Front-to-Back Rendering348

7.9.6 Depth Cueing and Fog349

7.10 Multirendering and the Accumulation Buffer350

7.10.1 Scene Antialiasing351

7.10.2 Bump Mapping and Embossing351

7.10.3 Image Processing352

7.10.4 Imaging Extensions353

7.10.5 Other Multipass Methods354

7.11 Sampling and Aliasing355

7.11.1 Sampling Theory355

7.11.2 Reconstruction360

7.11.3 Quantization362

7.12 Summary and Notes363

7.13 Suggested Readings363

Exercises364

CHAPTER 8 Implementation of a Renderer367

8.1 Basic Implementation Strategies367

8.2 Four Major Tasks370

8.2.1 Modeling370

8.2.2 Geometric Processing370

8.2.3 Rasterization371

8.2.4 Display372

8.3 Implementation of Transformations372

8.4 Line-Segment Clipping374

8.4.1 Cohen-Sutherland Clipping375

8.4.2 Liang-Barsky Clipping377

8.5 Polygon Clipping379

8.6 Clipping of Other Primitives382

8.6.1 Bounding Boxes and Volumes382

8.6.2 Curves,Surfaces,and Text383

8.6.3 Clipping in the Frame Buffer384

8.7 Clipping in Three Dimensions384

8.8 Hidden-Surface Removal388

8.8.1 Object-Space and Image-Space Approaches388

8.8.2 Sorting and Hidden-Surface Removal390

8.8.3 Back-Face Removal390

8.8.4 The z-Buffer Algorithm391

8.8.5 Depth Sort and the Painter's Algorithm393

8.8.6 The Scan-Line Algorithm396

8.9 Scan Conversion397

8.10 Bresenham's Algorithm399

8.11 Scan Conversion of Polygons401

8.11.1 Inside-Outside Testing401

8.11.2 OpenGL and Concave Polygons403

8.11.3 Scan Conversion with the z Buffer404

8.11.4 Fill and Sort405

8.11.5 Flood Fill406

8.11.6 Scan-Line Algorithms406

8.11.7 Singularities407

8.12 Antialiasing408

8.13 Display Considerations410

8.13.1 Color Systems410

8.13.2 The Color Matrix413

8.13.3 Gamma Correction414

8.13.4 Dithering and Halftoning415

8.14 Summary and Notes416

8.15 References417

Exercises418

CHAPTER 9 Hierarchical and Object-Oriented Modeling421

9.1 Symbols and Instances422

9.2 Hierarchical Models423

9.3 A Robot Arm425

9.4 Trees and Traversal428

9.4.1 A Stack-Based Traversal429

9.5 Use of Tree Data Structures431

9.6 Animation435

9.7 Graphical Objects437

9.7.1 Methods,Attributes,and Messages438

9.7.2 A Cube Object439

9.7.3 Implementing the Cube Object442

9.7.4 Objects and Hierarchy442

9.7.5 Geometric Objects443

9.8 Scene Graphs444

9.9 A Simple Scene Graph API446

9.9.1 The Node Class447

9.9.2 Geometry Nodes448

9.9.3 Camera Class451

9.9.4 Lights and Materials451

9.9.5 Transformations453

9.9.6 The Robot Figure454

9.9.7 Implementing the Viewer456

9.9.8 Implementing a Node459

9.10 Other Tree Structures463

9.10.1 CSG Trees463

9.10.2 Shade Trees464

9.10.3 BSP Trees466

9.10.4 Quadtrees and Octrees468

9.11 Graphics and the Web469

9.11.1 Networks and Protocols470

9.11.2 Hypermedia and HTML471

9.11.3 Databases and VRML472

9.11.4 Java and Applets473

9.12 Summary and Notes473

9.13 Suggested Readings474

Exercises474

CHAPTER 10 Curves and Surfaces477

10.1 Representation of Curves and Surfaces477

10.1.1 Explicit Representation477

10.1.2 Implicit Representations479

10.1.3 Parametric Form480

10.1.4 Parametric Polynomial Curves481

10.1.5 Parametric Polynomial Surfaces482

10.2 Design Criteria483

10.3 Parametric Cubic Polynomial Curves484

10.4 Interpolation485

10.4.1 Blending Functions487

10.4.2 The Cubic Interpolating Patch489

10.5 Hermite Curves and Surfaces491

10.5.1 The Hermite Form491

10.5.2 Geometric and Parametric Continuity493

10.6 Bezier Curves and Surfaces494

10.6.1 Bezier Curves494

10.6.2 Bezier Surface Patches497

10.7 Cubic B-Splines498

10.7.1 The Cubic B-Spline Curve498

10.7.2 B-Splines and Bases501

10.7.3 Spline Surfaces502

10.8 General B-Splines503

10.8.1 Recursively Defined B-Splines504

10.8.2 Uniform Splines505

10.8.3 Nonuniform B-Splines506

10.8.4 NURBS506

10.9 Rendering of Curves and Surfaces507

10.9.1 Polynomial Evaluation Methods508

10.9.2 Recursive Subdivision of Bezier Polynomials509

10.9.3 Rendering of Other Polynomial Curves by Subdivision512

10.9.4 Subdivision of Bezier Surfaces512

10.10 The Utah Teapot513

10.11 Algebraic Surfaces516

10.11.1 Quadrics516

10.11.2 Rendering of Surfaces by Ray Casting517

10.11.3 Subdivision Curves and Surfaces517

10.12 Curves and Surfaces in OpenGL520

10.12.1 Bezier Curves520

10.12.2 Bezier Surfaces521

10.12.3 Displaying the Teapot522

10.12.4 NURBS Functions524

10.12.5 Quadrics524

10.13 Summary and Notes525

10.14 References and Notes526

Exercises526

CHAPTER 11 Procedural Methods529

11.1 Reasons for Using Procedural Models529

11.2 Physically Based Models and Particle Systems531

11.3 Newtonian Particles532

11.3.1 Independent Particles534

11.3.2 Spring Forces534

11.3.3 Attractive and Repulsive Forces536

11.4 Solving Particle Systems537

11.5 Constraints540

11.5.1 Collisions540

11.5.2 Particles Inside a Sphere543

11.5.3 Soft Constraints544

11.6 Language-Based Models545

11.7 Recursive Methods and Fractals548

11.7.1 Rulers and Length549

11.7.2 Fractal Dimension550

11.7.3 Midpoint Division and Brownian Motion551

11.7.4 Fractal Mountains553

11.8 The Mandelbrot Set554

11.9 Summary and Notes556

11.10 Suggested Readings557

Exercises557

CHAPTER 12 Visualization559

12.1 Data+Geometry559

12.2 Height Fields and Contours560

12.2.1 Meshes561

12.2.2 Contour Plots563

12.2.3 Marching Squares564

12.3 Visualizing Surfaces and Scalar Fields570

12.3.1 Volumetric Data Sets571

12.3.2 Visualization of Implicit Functions572

12.4 Isosurfaces and Marching Cubes574

12.5 Mesh Simplification578

12.6 Direct Volume Rendering578

12.6.1 Assignment of Color and Opacity579

12.6.2 Splatting580

12.6.3 Volume Ray Tracing582

12.6.4 Texture Mapping of Volumes583

12.7 Vector-Field Visualization584

12.7.1 Hedgehogs584

12.7.2 Glyphs585

12.7.3 Color585

12.7.4 Particle Traces and Streamlines586

12.8 Tensor Visualization589

12.9 Summary and Notes591

12.10 Suggested Readings591

Exercises592

CHAPTER 13 Advanced Rendering595

13.1 Going Beyond Pipeline Rendering595

13.2 Ray Tracing596

13.3 Building a Simple Ray Tracer599

13.3.1 Recursive Ray Tracing600

13.3.2 Calculating Intersections601

13.3.3 Ray-Tracing Variations604

13.4 The Rendering Equation605

13.5 Radiosity607

13.5.1 The Radiosity Equation607

13.5.2 Solving the Radiosity Equation609

13.5.3 Computing Form Factors610

13.5.4 Carrying Out Radiosity613

13.6 RenderMan614

13.7 Large-Scale Rendering615

13.7.1 Sort-Middle Rendering616

13.7.2 Sort-Last Rendering617

13.7.3 Sort-First Rendering620

13.8 Image-Based Rendering621

13.8.1 A Simple Example622

13.9 Summary and Notes624

13.10 Suggested Readings625

Exercises625

APPENDIX A Sample Programs629

A.1 Sierpinski Gasket Program630

A.2 Recursive Generation of Sierpinski Gasket632

A.3 Three-Dimensional Sierpinski Gasket633

A.4 Recursive Three-Dimensional Sierpinski Gasket635

A.5 Square Drawing Program637

A.6 Paint Program640

A.7 Double-Buffering Example647

A.8 Selection-Mode Picking Program649

A.9 Rotating-Cube Program652

A.10 Rotating Cube Using Vertex Arrays655

A.11 Rotating Cube with a Virtual Trackball657

A.12 Moving Viewer661

A.13 Sphere Program664

A.14 Pixel-Reading Program668

A.15 Rotating Cube with Texture669

A.16 Scene-Graph Example672

A.17 Program for Drawing Bezier Curves677

APPENDIX B Spaces681

B.1 Scalars681

B.2 Vector Spaces682

B.3 Affine Spaces684

B.4 Euclidean Spaces685

B.5 Projections686

B.6 Gram-Schmidt Orthogonalization687

B.7 Suggested Readings688

Exercises688

APPENDIX C Matrices689

C.1 Definitions689

C.2 Matrix Operations690

C.3 Row and Column Matrices691

C.4 Rank692

C.5 Change of Representation693

C.6 The Cross Product695

C.7 Eigenvalues and Eigenvectors696

C.8 Suggested Readings697

Exercises698

References699

Function Index707

Subject Index709

热门推荐