Foreword | p. xxiii |
Foreword to the First Edition | p. xxvii |
Preface | p. xxxi |
About the Author | p. xxxvii |
About the Contributors | p. xxxix |
Acknowledgments | p. xli |
Review of OpenGL Basics | p. 1 |
OpenGL History | p. 1 |
OpenGL Evolution | p. 3 |
Execution Mode | p. l4 |
The Frame Buffer | p. 5 |
State | p. 8 |
Processing Pipeline | p. 8 |
Drawing Geometry | p. 9 |
Geometry Specification | p. 9 |
Per-Vertex Operations | p. 12 |
Primitive Assembly | p. 14 |
Primitive Processing | p. 14 |
Rasterization | p. 15 |
Fragment Processing | p. 16 |
Per-Fragment Operations | p. 16 |
Frame Buffer Operations | p. 17 |
Drawing Images | p. 18 |
Pixel Unpacking | p. 19 |
Pixel Transfer | p. 19 |
Rasterization and Back-End Processing | p. 20 |
Read Control | p. 20 |
Coordinate Transforms | p. 21 |
Texturing | p. 26 |
Summary | p. 31 |
Further Information | p. 32 |
Basics | p. 35 |
Introduction to the OpenGL Shading Language | p. 35 |
Why Write Shaders? | p. 37 |
OpenGL Programmable Processors | p. 38 |
p. 40 | |
p. 43 | |
p. 47 | |
Language Design Considerations | p. 47 |
C Basis | p. 50 |
Additions to C | p. 50 |
Additions from C++ | p. 52 |
C Features Not Supported | p. 53 |
Other Differences | p. 53 |
System Overview | p. 54 |
Driver Model | p. 54 |
OpenGL Shading Language Compiler/Linker | p. 56 |
OpenGL Shading Language API | p. 57 |
Key Benefits | p. 59 |
Summary | p. 61 |
Further Information | p. 63 |
Language Definition | p. 65 |
Example Shader Pair | p. 65 |
Data Types | p. 67 |
Scalars | p. 67 |
Vectors | p. 69 |
Matrices | p. 70 |
Samplers | p. 71 |
Structures | p. 72 |
Arrays | p. 73 |
Void | p. 74 |
Declarations and Scope | p. 74 |
Type Matching and Promotion | p. 75 |
Initializers and Constructors | p. 75 |
Type Conversions | p. 77 |
Qualifiers and Interface to a Shader | p. 78 |
Attribute Qualifiers | p. 79 |
Uniform Qualifiers | p. 79 |
Varying Qualifiers | p. 79 |
Constant Qualifiers | p. 80 |
Absent Qualifier | p. 81 |
Flow Control | p. 82 |
Functions | p. 82 |
Calling Conventions | p. 83 |
Built-in Functions | p. 84 |
Operations | p. 85 |
Indexing | p. 86 |
Swizzling | p. 87 |
Component-wise Operation | p. 87 |
Preprocessor | p. 90 |
Preprocessor Expressions | p. 93 |
Error Handling | p. 94 |
Summary | p. 95 |
Further Information | p. 95 |
The OpenGL Programmable Pipeline | p. 97 |
The Vertex Processor | p. 98 |
Vertex Attributes | p. 99 |
Uniform Variables | p. 100 |
Special Output Variables | p. 101 |
Built-in Varying Variables | p. 102 |
User-Defined Varying Variables | p. 103 |
The Fragment Processor | p. 104 |
Varying Variables | p. 104 |
Uniform Variables | p. 105 |
Special Input Variables | p. 106 |
Special Output Variables | p. 107 |
Built-in Uniform Variables | p. 108 |
Built-in Constants | p. 113 |
Interaction with OpenGL Fixed Functionality | p. 114 |
Two-Sided Color Mode | p. 114 |
Point Size Mode | p. 115 |
Clipping | p. 116 |
Raster Position | p. 117 |
Position Invariance | p. 117 |
Texturing | p. 118 |
Summary | p. 120 |
Further Information | p. 120 |
Built-in Functions | p. 123 |
Angle and Trigonometry Functions | p. 124 |
Exponential Functions | p. 126 |
Common Functions | p. 126 |
Geometric Functions | p. 136 |
Matrix Functions | p. 138 |
Vector Relational Functions | p. 139 |
Texture Access Functions | p. 141 |
Fragment Processing Functions | p. 144 |
Noise Functions | p. 145 |
Summary | p. 147 |
Further Information | p. 147 |
Simple Shading Example | p. 149 |
Brick Shader Overvie | |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.