图书介绍

交互式计算机图形学 基于OpenGL着色器的自顶向下方法 第6版 英文版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

交互式计算机图形学 基于OpenGL着色器的自顶向下方法 第6版 英文版
  • (美)戴夫·斯赖纳著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121177095
  • 出版时间:2012
  • 标注页数:760页
  • 文件大小:143MB
  • 文件页数:776页
  • 主题词:计算机图形学-高等学校-教材-英文

PDF下载


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

下载说明

交互式计算机图形学 基于OpenGL着色器的自顶向下方法 第6版 英文版PDF格式电子书版下载

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

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

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

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

图书目录

CHAPTER 1 GRAPHICS SYSTEMS AND MODELS31

1.1 Applications of Computer Graphics32

1.1.1 Display of Information32

1.1.2 Design33

1.1.3 Simulation and Animation33

1.1.4 User Interfaces34

1.2 A Graphics System35

1.2.1 Pixels and the Frame Buffer35

1.2.2 The CPU and the GPU36

1.2.3 Output Devices37

1.2.4 Input Devices39

1.2.5 Physical Input Devices40

1.2.6 Logical Devices42

1.2.7 Input Modes43

1.3 Images:Physical and Synthetic45

1.3.1 Objects and Viewers45

1.3.2 Light and Images46

1.3.3 Imaging Models48

1.4 Imaging Systems50

1.4.1 The Pinhole Camera50

1.4.2 The Human Visual System52

1.5 The Synthetic-Camera Model53

1.6 The Programmer's Interface55

1.6.1 The Pen-Plotter Model57

1.6.2 Three-Dimensional APIs58

1.6.3 A Sequence of Images61

1.6.4 The Modeling-Rendering Paradigm62

1.7 Graphics Architectures63

1.7.1 Display Processors64

1.7.2 Pipeline Architectures64

1.7.3 The Graphics Pipeline65

1.7.4 Vertex Processing66

1.7.5 Clipping and Primitive Assembly66

1.7.6 Rasterization67

1.7.7 Fragment Processing67

1.8 Programmable Pipelines67

1.9 Performance Characteristics68

Summary and Notes69

Suggested Readings70

Exercises71

CHPATER 2 GRAPHICS PROGRAMMING73

2.1 The Sierpinski Gasket73

2.2 Programming Two-Dimensional Applications76

2.3 The OpenGL Application Programming Interface80

2.3.1 Graphics Functions81

2.3.2 The Graphics Pipeline and State Machines83

2.3.3 The OpenGL Interface83

2.3.4 Coordinate Systems85

2.4 Primitives and Attributes86

2.4.1 Polygon Basics88

2.4.2 Polygons in OpenGL89

2.4.3 Approximating a Sphere90

2.4.4 Triangulation92

2.4.5 Text94

2.4.6 Curved Objects95

2.4.7 Attributes95

2.5 Color97

2.5.1 RGB Color99

2.5.2 Indexed Color101

2.5.3 Setting of Color Attributes102

2.6 Viewing103

2.6.1 The Orthographic View104

2.6.2 Two-Dimensional Viewing107

2.7 Control Functions108

2.7.1 Interaction with the Window System108

2.7.2 Aspect Ratio and Viewports109

2.7.3 The main,display,and init Functions110

2.7.4 Program Structure113

2.8 The Gasket Program113

2.8.1 Rendering the Points114

2.8.2 The Vertex Shader115

2.8.3 The Fragment Shader116

2.8.4 Combining the Parts116

2.8.5 The initShader Function116

2.9 Polygons and Recursion118

2.10 The Three-Dimensional Gasket121

2.10.1 Use of Three-Dimensional Points121

2.10.2 Use of Polygons in Three Dimensions122

2.10.3 Hidden-Surface Removal126

2.11 Adding Interaction128

2.11.1 Using the Pointing Device128

2.11.2 Window Events131

2.11.3 Keyboard Events132

2.11.4 The Idle Callback133

2.11.5 Double Buffering135

2.11.6 Window Management136

2.12 Menus136

Summary and Notes138

Suggested Readings139

Exercises140

CHAPTER 3 GEOMETRIC OBJECTS AND TRANSFORMATIONS145

3.1 Scalars,Points,and Vectors146

3.1.1 Geometric Objects146

3.1.2 Coordinate-Free Geometry147

3.1.3 The Mathematical View: Vector and Affine Spaces148

3.1.4 The Computer Science View149

3.1.5 Geometric ADTs149

3.1.6 Lines150

3.1.7 Affine Sums151

3.1.8 Convexity152

3.1.9 Dot and Cross Products152

3.1.10 Planes153

3.2 Three-Dimensional Primitives155

3.3 Coordinate Systems and Frames156

3.3.1 Representations and N-Tuples158

3.3.2 Change of Coordinate Systems159

3.3.3 Example Change of Representation162

3.3.4 Homogeneous Coordinates163

3.3.5 Example Change in Frames166

3.3.6 Working with Representations167

3.4 Frames in OpenGL169

3.5 Matrix and Vector Classes174

3.6 Modeling a Colored Cube176

3.6.1 Modeling the Faces176

3.6.2 Inward-and Outward-Pointing Faces176

3.6.3 Data Structures for Object Representation177

3.6.4 The Color Cube178

3.6.5 Interpolation180

3.6.6 Displaying the Cube181

3.7 Affine Transformations182

3.8 Translation,Rotation,and Scaling185

3.8.1 Translation185

3.8.2 Rotation186

3.8.3 Scaling188

3.9 Transformations in Homogeneous Coordinates189

3.9.1 Translation190

3.9.2 Scaling191

3.9.3 Rotation192

3.9.4 Shear193

3.10 Concatenation of Transformations194

3.10.1 Rotation About a Fixed Point195

3.10.2 General Rotation197

3.10.3 The Instance Transformation198

3.10.4 Rotation About an Arbitrary Axis199

3.11 Transformation Matrices in OpenGL202

3.11.1 Current Transformation Matrices203

3.11.2 Rotation,Translation,and Scaling204

3.11.3 Rotation About a Fixed Point205

3.11.4 Order of Transformations206

3.12 Spinning of the Cube206

3.12.1 Updating in the Display Callback207

3.12.2 Uniform Variables208

3.13 Interfaces to Three-Dimensional Applications210

3.13.1 Using Areas of the Screen210

3.13.2 A Virtual Trackball211

3.13.3 Smooth Rotations214

3.13.4 Incremental Rotation215

3.14 Quaternions216

3.14.1 Complex Numbers and Quaternions216

3.14.2 Quaternions and Rotation217

Summary and Notes220

Suggested Readings220

Exercises221

CHAPTER 4 VIEWING225

4.1 Classical and Computer Viewing225

4.1.1 Classical Viewing227

4.1.2 Orthographic Projections227

4.1.3 Axonometric Projections228

4.1.4 Oblique Projections230

4.1.5 Perspective Viewing231

4.2 Viewing with a Computer232

4.3 Positioning of the Camera234

4.3.1 Positioning of the Camera Frame234

4.3.2 Two Viewing APIs239

4.3.3 The Look-At Function242

4.3.4 Other Viewing APIs244

4.4 Parallel Projections245

4.4.1 Orthogonal Projections245

4.4.2 Parallel Viewing with OpenGL246

4.4.3 Projection Normalization247

4.4.4 Orthogonal-Projection Matrices249

4.4.5 Oblique Projections250

4.4.6 An Interactive Viewer254

4.5 Perspective Projections256

4.5.1 Simple Perspective Projections256

4.6 Perspective Projections with OpenGL259

4.6.1 Perspective Functions260

4.7 Perspective-Projection Matrices262

4.7.1 Perspective Normalization262

4.7.2 OpenGL Perspective Transformations266

4.7.3 Perspective Example268

4.8 Hidden-Surface Removal268

4.8.1 Culling271

4.9 Displaying Meshes271

4.9.1 Displaying Meshes as a Surface274

4.9.2 Polygon Offset276

4.9.3 Walking Through a Scene277

4.10 Projections and Shadows279

Summary and Notes283

Suggested Readings284

Exercises284

CHAPTER 5 LIGHTING AND SHADING287

5.1 Light and Matter288

5.2 Light Sources291

5.2.1 Color Sources292

5.2.2 Ambient Light292

5.2.3 Point Sources293

5.2.4 Spotlights294

5.2.5 Distant Light Sources294

5.3 The Phong Reflection Model295

5.3.1 Ambient Reflection297

5.3.2 Diffuse Reflection297

5.3.3 Specular Reflection299

5.3.4 The Modified Phong Model300

5.4 Computation of Vectors301

5.4.1 Normal Vectors302

5.4.2 Angle of Reflection304

5.5 Polygonal Shading305

5.5.1 Flat Shading306

5.5.2 Smooth and Gouraud Shading307

5.5.3 Phong Shading309

5.6 Approximation of a Sphere by Recursive Subdivision310

5.7 Specifying Lighting Parameters313

5.7.1 Light Sources313

5.7.2 Materials314

5.8 Implementing a Lighting Model316

5.8.1 Applying the Lighting Model in the Application316

5.8.2 Efficiency319

5.8.3 Lighting in the Vertex Shader320

5.9 Shading of the Sphere Model324

5.10 Per-Fragment Lighting325

5.10.1 Nonphotorealistic Shading327

5.11 Global Illumination327

Summary and Notes329

Suggested Readings330

Exercises330

CHAPTER 6 FROM VERTICES TO FRAGMENTS333

6.1 Basic Implementation Strategies334

6.2 Four Major Tasks336

6.2.1 Modeling336

6.2.2 Geometry Processing337

6.2.3 Rasterization338

6.2.4 Fragment Processing339

6.3 Clipping340

6.4 Line-Segment Clipping340

6.4.1 Cohen-Sutherland Clipping340

6.4.2 Liang-Barsky Clipping343

6.5 Polygon Clipping344

6.6 Clipping of Other Primitives347

6.6.1 Bounding Boxes and Volumes348

6.6.2 Curves,Surfaces,and Text349

6.6.3 Clipping in the Frame Buffer349

6.7 Clipping in Three Dimensions349

6.8 Rasterization353

6.9 Bresenham's Algorithm355

6.10 Polygon Rasterization357

6.10.1 Inside-Outside Testing357

6.10.2 OpenGL and Concave Polygons359

6.10.3 Fill and Sort359

6.10.4 Flood Fill360

6.10.5 Singularities360

6.11 Hidden-Surface Removal361

6.11.1 Object-Space and Image-Space Approaches361

6.11.2 Sorting and Hidden-Surface Removal362

6.11.3 ScanlineAlgorithms363

6.11.4 Back-Face Removal364

6.11.5 The z-Buffer Algorithm365

6.11.6 Scan Conversion with the z-Buffer368

6.11.7 Depth Sort and the Painter's Algorithm370

6.12 Antialiasing372

6.13 Display Considerations374

6.13.1 Color Systems375

6.13.2 The Color Matrix378

6.13.3 Gamma Correction379

6.13.4 Dithering and Halftoning379

Summary and Notes380

Suggested Readings382

Exercises382

CHAPTER 7 DISCRETE TECHNIQUES387

7.1 Buffers387

7.2 Digital Images389

7.3 Writing into Buffers392

7.3.1 Writing Modes393

7.3.2 Writing with XOR395

7.4 Mapping Methods396

7.5 Texture Mapping398

7.5.1 Two-Dimensional Texture Mapping398

7.6 Texture Mapping in OpenGL404

7.6.1 Two-Dimensional Texture Mapping405

7.6.2 Texture Objects405

7.6.3 The Texture Array406

7.6.4 Texture Coordinates and Samplers406

7.6.5 Texture Sampling412

7.6.6 Working with Texture Coordinates414

7.6.7 Multitexturing416

7.7 Texture Generation417

7.8 Environment Maps418

7.9 Reflection Map Example423

7.10 Bump Mapping426

7.10.1 Finding Bump Maps427

7.10.2 Bump Map Example430

7.11 Compositing Techniques434

7.11.1 Opacity and Blending434

7.11.2 Image Compositing436

7.11.3 Blending and Compositing in OpenGL436

7.11.4 Antialiasing Revisited437

7.11.5 Back-to-Front and Front-to-Back Rendering439

7.11.6 Scene Antialiasing and Multisampling440

7.11.7 Image Processing441

7.11.8 Other Multipass Methods442

7.12 Sampling and Aliasing443

7.12.1 Sampling Theory443

7.12.2 Reconstruction448

7.12.3 Quantization450

Summary and Notes451

Suggested Readings452

Exercises452

CHAPTER 8 MODELING AND HIERARCHY455

8.1 Symbols and Instances456

8.2 Hierarchical Models457

8.3 A Robot Arm459

8.4 Trees and Traversal462

8.4.1 A Stack-Based Traversal464

8.5 Use of Tree Data Structures467

8.6 Animation471

8.7 Graphical Objects473

8.7.1 Methods,Attributes,and Messages473

8.7.2 A Cube Object475

8.7.3 Implementing the Cube Object477

8.7.4 Objects and Hierarchy477

8.7.5 Geometric Objects478

8.8 Scene Graphs479

8.9 Open Scene Graph481

8.10 Graphics and the Internet483

8.10.1 Hypermedia and HTML483

8.10.2 Java and Applets484

8.10.3 Interactive Graphics and the Web484

8.10.4 WebGL485

8.11 Other Tree Structures485

8.11.1 CSG Trees485

8.11.2 BSP Trees487

8.11.3 Quadtrees and Octrees489

Summary and Notes491

Suggested Readings491

Exercises492

CHAPTER 9 PROCEDURAL METHODS495

9.1 Algorithmic Models495

9.2 Physically Based Models and Particle Systems497

9.3 Newtonian Particles498

9.3.1 Independent Particles500

9.3.2 Spring Forces501

9.3.3 Attractive and Repulsive Forces502

9.4 Solving Particle Systems503

9.5 Constraints506

9.5.1 Collisions506

9.5.2 Soft Constraints509

9.6 A Simple Particle System510

9.6.1 Displaying the Particles510

9.6.2 Updating Particle Positions511

9.6.3 Collisions512

9.6.4 Forces513

9.6.5 Flocking513

9.7 Language-Based Models514

9.8 Recursive Methods and Fractals517

9.8.1 Rulers and Length518

9.8.2 Fractal Dimension519

9.8.3 Midpoint Division and Brownian Motion520

9.8.4 Fractal Mountains522

9.8.5 The Mandelbrot Set523

9.9 Procedural Noise526

Summary and Notes530

Suggested Readings531

Exercises531

CHAPTER 10 CURVES AND SURFACES533

10.1 Representation of Curves and Surfaces533

10.1.1 Explicit Representation533

10.1.2 Implicit Representations535

10.1.3 Parametric Form536

10.1.4 Parametric Polynomial Curves537

10.1.5 Parametric Polynomial Surfaces538

10.2 Design Criteria539

10.3 Parametric Cubic Polynomial Curves540

10.4 Interpolation541

10.4.1 Blending Functions543

10.4.2 The Cubic Interpolating Patch545

10.5 Hermite Curves and Surfaces547

10.5.1 The Hermite Form547

10.5.2 Geometric and Parametric Continuity549

10.6 Bézier Curves and Surfaces550

10.6.1 Bézier Curves551

10.6.2 Bezier Surface Patches553

10.7 Cubic B-Splines554

10.7.1 The Cubic B-Spline Curve555

10.7.2 B-Splines and Basis558

10.7.3 Spline Surfaces558

10.8 General B-Splines559

10.8.1 Recursively Defined B-Splines560

10.8.2 Uniform Splines562

10.8.3 Nonuniform B-Splines562

10.8.4 NURBS562

10.8.5 Catmull-Rom Splines564

10.9 Rendering Curves and Surfaces565

10.9.1 Polynomial Evaluation Methods566

10.9.2 Recursive Subdivision of Bézier Polynomials567

10.9.3 Rendering Other Polynomial Curves by Subdivision570

10.9.4 Subdivision of Bézier Surfaces571

10.10 The Utah Teapot572

10.11 Algebraic Surfaces575

10.11.1 Quadrics575

10.11.2 Rendering of Surfaces by Ray Casting576

10.12 Subdivision Curves and Surfaces576

10.12.1 Mesh Subdivision577

10.13 Mesh Generation from Data580

10.13.1 Height Fields Revisited581

10.13.2 Delaunay Triangulation581

10.13.3 Point Clouds585

Summary and Notes586

Suggested Readings586

Exercises587

CHAPTER 11 ADVANCES RENDERING589

11.1 Going Beyond Pipeline Rendering589

11.2 Ray Tracing590

11.3 Building a Simple Ray Tracer594

11.3.1 Recursive Ray Tracing594

11.3.2 Calculating Intersections596

11.3.3 Ray-Tracing Variations598

11.4 The Rendering Equation599

11.5 Radiosity601

11.5.1 The Radiosity Equation602

11.5.2 Solving the Radiosity Equation604

11.5.3 Computing Form Factors605

11.5.4 Carrying Out Radiosity607

11.6 RenderMan608

11.7 Parallel Rendering609

11.7.1 Sort-Middle Rendering611

11.7.2 Sort-Last Rendering613

11.7.3 Sort-First Rendering616

11.8 Volume Rendering618

11.8.1 Volumetric Data Sets618

11.8.2 Visualization of Implicit Functions619

11.9 Isosurfaces and Marching Cubes621

11.10 Mesh Simplification624

11.11 Direct Volume Rendering625

11.11.1 Assignment of Color and Opacity626

11.11.2 Splatting626

11.11.3 Volume Ray Tracing628

11.11.4 Texture Mapping of Volumes629

11.12 Image-Based Rendering630

11.12.1 A Simple Example630

Summary and Notes632

Suggested Readings633

Exercises634

APPENDIX A SAMPLE PROGRAMS637

A.1 Shader Initialization Function638

A.1.1 Application Code638

A.2 Sierpinski Gasket Program640

A.2.1 Application Code640

A.2.2 Vertex Shader642

A.2.3 Fragment Shader642

A.3 Recursive Generation of Sierpinski Gasket643

A.3.1 Application Code643

A.3.2 Vertex Shader645

A.3.3 Fragment Shader645

A.4 Rotating Cube with Rotation in Shader645

A.4.1 Application Code645

A.4.2 Vertex Shader650

A.4.3 Fragment Shader650

A.5 Perspective Projection651

A.5.1 Application Code651

A.5.2 Vertex Shader655

A.5.3 Fragment Shader656

A.6 Rotating Shaded Cube656

A.6.1 Application Code656

A.6.2 Vertex Shader661

A.6.3 Fragment Shader662

A.7 Per-Fragment Lighting of Sphere Model662

A.7.1 Application Code662

A.7.2 Vertex Shader667

A.7.3 Fragment Shader668

A.8 Rotating Cube with Texture668

A.8.1 Application Code668

A.8.2 Vertex Shader674

A.8.3 Fragment Shader675

A.9 Figure with Tree Traversal676

A.9.1 Application Code676

A.9.2 Vertex Shader689

A.9.3 Fragment Shader689

A.10 Teapot Renderer689

A.10.1 Application Code689

A.10.2 Vertex Shader694

A.10.3 Fragment Shader694

APPENDIX B SPACES695

B.1 Scalars695

B.2 Vector Spaces696

B.3 Affine Spaces698

B.4 Euclidean Spaces699

B.5 Projections700

B.6 Gram-Schmidt Orthogonalization701

Suggested Readings702

Exercises703

APPENDIX C MATRICES705

C.1 Definitions705

C.2 Matrix Operations706

C.3 Row and Column Matrices707

C.4 Rank708

C.5 Change of Representation709

C.6 The Cross Product711

C.7 Eigenvalues and Eigenvectors712

C.8 Vector and Matrix Classes713

Suggested Readings714

Exercises714

APPENDIX D SYNOPSIS OF OPENGL FUNCTIONS717

D.1 Initialization and Window Functions717

D.2 Vertex Buffer Objects719

D.3 Interaction720

D.4 Setting Attributes and Enabling Features722

D.5 Texture and Image Functions723

D.6 State and Buffer Manipulation724

D.7 Query Functions724

D.8 GLSL Functions725

References729

OpenGL Function Index739

Subject Index741

热门推荐