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

- (美)戴夫·斯赖纳著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121177095
- 出版时间:2012
- 标注页数:760页
- 文件大小:143MB
- 文件页数:776页
- 主题词:计算机图形学-高等学校-教材-英文
PDF下载
下载说明
交互式计算机图形学 基于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
热门推荐
- 3495889.html
- 3577078.html
- 1116768.html
- 585893.html
- 3856325.html
- 586441.html
- 2563085.html
- 1299651.html
- 321330.html
- 809406.html
- http://www.ickdjs.cc/book_2365823.html
- http://www.ickdjs.cc/book_3746565.html
- http://www.ickdjs.cc/book_2993413.html
- http://www.ickdjs.cc/book_3161741.html
- http://www.ickdjs.cc/book_3034503.html
- http://www.ickdjs.cc/book_1936933.html
- http://www.ickdjs.cc/book_1022940.html
- http://www.ickdjs.cc/book_2430806.html
- http://www.ickdjs.cc/book_986750.html
- http://www.ickdjs.cc/book_784361.html