OpenGL shading language:
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ ; Munich [u.a.]
Addison-Wesley
2010
|
Ausgabe: | 3. ed. |
Schriftenreihe: | OpenGL library
[2] |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Includes index |
Beschreibung: | XLIII, 743 S. Faltblatt |
ISBN: | 9780321637635 0321637631 |
Internformat
MARC
LEADER | 00000nam a2200000 cb4500 | ||
---|---|---|---|
001 | BV035992123 | ||
003 | DE-604 | ||
005 | 20111014 | ||
007 | t | ||
008 | 100202s2010 |||| 00||| eng d | ||
020 | |a 9780321637635 |9 978-0-321-63763-5 | ||
020 | |a 0321637631 |9 0-321-63763-1 | ||
035 | |a (OCoLC)320953994 | ||
035 | |a (DE-599)BVBBV035992123 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-M347 | ||
050 | 0 | |a T385 | |
082 | 0 | |a 006.6/86 |2 22 | |
084 | |a ST 321 |0 (DE-625)143658: |2 rvk | ||
100 | 1 | |a Rost, Randi J. |d 1960- |e Verfasser |0 (DE-588)140194282 |4 aut | |
245 | 1 | 0 | |a OpenGL shading language |c Randi J. Rost ; Bill Licea-Kane |
250 | |a 3. ed. | ||
264 | 1 | |a Upper Saddle River, NJ ; Munich [u.a.] |b Addison-Wesley |c 2010 | |
300 | |a XLIII, 743 S. |e Faltblatt | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 1 | |a OpenGL library |v [2] | |
500 | |a Includes index | ||
650 | 4 | |a Computer graphics | |
650 | 0 | 7 | |a Computergrafik |0 (DE-588)4010450-3 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a OpenGL |0 (DE-588)4391716-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programm |0 (DE-588)4047394-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a OpenGL |0 (DE-588)4391716-1 |D s |
689 | 0 | 1 | |a Computergrafik |0 (DE-588)4010450-3 |D s |
689 | 0 | 2 | |a Programm |0 (DE-588)4047394-6 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Licea-Kane, Bill |e Verfasser |0 (DE-588)139425845 |4 aut | |
830 | 0 | |a OpenGL library |v [2] |w (DE-604)BV035968441 |9 2 | |
856 | 4 | 2 | |m SWB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018884810&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-018884810 |
Datensatz im Suchindex
_version_ | 1804141017376489472 |
---|---|
adam_text | IMAGE 1
CONTENTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . FOREWORD TO
THE SECOND EDITION XXI
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FOREWORD
TO THE FIRST EDITION XXV
PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . XXIX
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . ABOUT THE AUTHORS XXXV
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ABOUT
THE CONTRIBUTORS XXXVII
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . ACKNOWLEDGMENTS XXXIX
....................... CHAPTER 1 . REVIEW OF OPENGL BASICS 1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 1.1 OPENGL HISTORY 1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 1.2 OPENGL EVOLUTION 4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 1.3 EXECUTION MODEL 5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 1.4 THE FRAMEBUFFER 6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 1.5 STATE 9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6 PROCESSING PIPELINE 9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7 DRAWING GEOMETRY 11
. . . . . . . . . . . . . . . . . . . . . . . . . 1.7.1 GEOMETRY
SPECIFICATION 11
. . . . . . . . . . . . . . . . . . . . . . . . . . 1.7.2 PER-VERTEX
OPERATIONS 13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7.3
PRIMITIVE ASSEMBLY 15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7.4 PRIMITIVE
PROCESSING 15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7.5 RASTERIZATION 16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7.6 FRAGMENT
PROCESSING 17
. . . . . . . . . . . . . . . . . . . . . . . . 1.7.7 I ER-FRAGMENT
OPERATIONS 18
1.7.8 FRAMEBUFFER OPERATIONS . . . . . . . . . . . . . . . . . . . . . .
. . . 18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 1.8 DRAWING IMAGES 19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.1
PIXEL UNPACKING 20
IMAGE 2
X CONTENTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.2
PIXEL TRANSFER 20
. . . . . . . . . . . . . 1.8.3 RASTERIZATION AND BACK-END PROCESSING 21
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.4
READ CONTROL 22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.9
COORDINATE TRANSFORMS 22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 1.10 TEXTURING 27
1.11 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 33
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.12
FURTHER INFORMATION 33
CHAPTER2 . BASICS ....................................... 35
INTRODUCTION TO THE OPENGL SHADING LANGUAGE . . . . . . . . . . . . 35
WHY WRITE SHADERS? . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 37
. . . . . . . . . . . . . . . . . . . . . . . OPENGL PROGRAMMABLE
PROCESSORS 38
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1
VERTEX PROCESSOR 40
2.3.2 FRAGMENT PROCESSOR . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 43
LANGUAGE OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 47
2.4.1 LANGUAGE DESIGN CONSIDERATIONS . . . . . . . . . . . . . . . . .
47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 2.4.2 C BASIS 50
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3
ADDITIONS TO C 50
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.4 ADDITIONS
FROM C++ 52
2.4.5 C FEATURES NOT SUPPORTED . . . . . . . . . . . . . . . . . . . . .
. . 53
2.4.6 OTHER DIFFERENCES . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 53
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. SYSTEM OVERVIEW 54
2.5.1 DRIVER MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 54
2.5.2 OPENGL SHADING LANGUAGE COMPILERILINKER . . . . . . . . 56 2.5.3
OPENGL SHADING LANGUAGE API . . . . . . . . . . . . . . . . . . . 57
KEYBENEFITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 59
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . SUMMARY 61
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FURTHER INFORMATION 63
CHAPTER 3 . LANGUAGE DEFINITION ........................... 65
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1
EXAMPLE SHADER PAIR 65
3.2 DATAIYPES . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 67
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 3.2.1 SCALARS 68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 3.2.2 VECTORS 69
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 3.2.3 MATRICES 70
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 2 . 4 SAMPLERS 71
3.2.5 STRUCTURES . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 73
3.2.6 ARRAYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 74
3.2.7 VOID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 75
IMAGE 3
CONTENTS XI
. . . . . . . . . . . . . . . . . . . . . . . . . 3.2.8 DECLARATIONS AND
SCOPE 75
. . . . . . . . . . . . . . . . . . . 3.2.9 TYPE MATCHING AND PROMOTION
76
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 INITIALIZERS
AND CONSTRUCTORS 76
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 TYPE CONVERSIONS 78
. . . . . . . . . . . . . . . . . . . . . . 3.5 QUALIFIERS AND INTERFACE
TO A SHADER 79
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 UNIFORM
QUALIFIERS 80
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2
UNIFORM BLOCKS 81
. . . . . . . . . . . . . . . . . . . . . 3.5.3 IN QUALIFIERS (VERTEX
SHADER) 82
. . . . . . . . . . . . . . . . . . . . 3.5.4 OUT QUALIFIERS (VERTEX
SHADER) 82
. . . . . . . . . . . . . . . . . . . 3.5.5 IN QUALIFIERS (FRAGMENT
SHADER) 83
. . . . . . . . . . . . . . . . . 3.5.6 OUT QUALIFIERS (FRAGMENT SHADER)
83
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.7 CONSTANT
QUALIFIERS 83
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.8
ABSENT QUALIFIER 84
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 3.6 FLOW CONTROL 84
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 FUNCTIONS 85
. . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.2 CALLING
CONVENTIONS 86
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.3 BUILT-IN
FUNCTIONS 87
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 3.7 OPERATIONS 88
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 3.7.1 INDEXING 89
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.2 SWIZZLING 90
. . . . . . . . . . . . . . . . . . . . . 3.7.3 COMPONENT-WISE OPERATION
90
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 3.8 PREPROCESSOR 93
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9
PREPROCESSOR EXPRESSIONS 96
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 3.10 ERROR HANDLING 97
3.11 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 98
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12
FURTHER INFORMATION 98
............ CHAPTER 4 . THE OPENGL PROGRAMMABLE PIPELINE 101 . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 THE VERTEX
PROCESSOR 102
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 VERTEX
ATTRIBUTES 103
. . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 SPECIAL INPUT
VARIABLES 104
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3 UNIFORM
VARIABLES 104
. . . . . . . . . . . . . . . . . . . . . 4.1.4 USER-DEFINED OUT
VARIABLES 104
. . . . . . . . . . . . . . . . . . . . . . . 4.1 . 5 SPECIAL OUTPUT
VARIABLES 105
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 THE
FRAGMENT I ROCESSOR 106
. . . . . . . . . . . . . . . . . . . . . . 4.2.1 USER-DEFINED IN
VARIABLES 107
. . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 SPECIAL INPUT
VARIABLES 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 UNIFORM
VARIABLES 108
. . . . . . . . . . . . . . . . . . . . . 4.2.4 USER-DEFINED OUT
VARIABLES 108
. . . . . . . . . . . . . . . . . . . . . . . 4.2.5 SPECIAL OUTPUT
VARIABLES 109
IMAGE 4
XII CONTENTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 BUILT-IN
UNIFORM VARIABLES 110
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 BUILT-IN CONSTANTS 110
. . . . . . . . . . . . . 4.5 INTERACTION WITH OPENGL FIXED
FUNCTIONALITY 111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 POINT
SIZE MODE 111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.2 CLIPPING 112
. . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3 POSITION
INVARIANCE 113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.4 TEXTURING 113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 4.6 SUMMARY 115
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7
FURTHER INFORMATION 115
............................ CHAPTER 5 . BUILT-IN FUNCTIONS 117
. . . . . . . . . . . . . . . . . . . . . 5.1 ANGLE AND TRIGONOMETRY
FUNCTIONS 118
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2
EXPONENTIAL FUNCTIONS 121
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3
COMMON FUNCTIONS 122
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4
GEORNETRIC FUNCTIONS 134
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 MATRIX FUNCTIONS 136
. . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 VECTOR
RELATIONAL FUNCTIONS 138
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7 TEXTURE
ACCESS FUNCTIONS 140
. . . . . . . . . . . . . . . . . . . . . . . . . 5.8 FRAGMENT
PROCESSING FUNCTIONS 176
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 5.9 NOISE FUNCTIONS 177
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 5.10 SUMMARY 178
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 1
FURTHER INFORMATION 178
...................... CHAPTER 6 . SIMPLE SHADING EXAMPLE 181
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 BRICK
SHADER OVERVIEW 182
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 6.2 VERTEXSHADER 183
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 FRAGMENT SHADER 189
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 6.4 OBSERVATIONS 196
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 6.5 SUMMARY 197
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6
FURTHER INFORMATION 197
CHAPTER 7 . OPENGL SHADING LANGUAGE API ................ 199
. . . . . . . . . . . . . . . . . . . . . . . . 7.1 OBTAINING VERSION
INFORMATION 200
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 CREATING
SHADER OBJECTS 203
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 COMPILING
SHADER OBJECTS 204
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 LINKING AND
USING SHADERS 205
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 7.5 CLEANING UP 210
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6 QUERY FUNCTIONS 211
. . . . . . . . . . . . . . . . . . . . . . . . . . . 7.7 SPECIFYING
VERTEX ATTRIBUTES 217
IMAGE 5
CONTENTS XIII
. . . . . . . . . . . . . . . . . . . . . . . . . . 7.8 SPECIFYING
UNIFORM VARIABLES 226
. . . . . . . . . . . . . . . . . . . . . . . . . 7.8.1 DEFAULT UNIFORM
BLOCK 227
. . . . . . . . . . . . . . . . . . . . . . . . 7.8.2 NAMED UNIFORM
BLOCKS 234
7.9 SAMPLERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 238
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.10
MULTIPLE RENDER TARGETS 239
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.11
DEVELOPMENT AIDS 240
. . . . . . . . . . . . . . . . . 7.12 IMPLEMENTATION-DEPENDENT API
VALUES 241
. . . . . . . . . . . . . . . . . . . . 7.13 APPLICATION CODE FOR BRICK
SHADERS 242
7.14 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 247
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.15
FURTHER INFORMATION 248
.......................... CHAPTER 8 . SHADER DEVELOPMENT 251
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1 GENERAL PRINCIPLES 251
. . . . . . . . . . . . . . . . . . . . . . . 8.1.1 UNDERSTAND THE
PROBLEM 252
. . . . . . . . . . . . . . . . . . . 8.1.2 ADD COMPLEXITY PROGRESSIVELY
252
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.3 TEST
AND ITERATE 253
. . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.4 STRIVE FOR
SIMPLICITY 253
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.5 EXPLOIT
MODULARITY 253
. . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 PERFORMANCE
CONSIDERATIONS 254
. . . . . . . . . . . . . . 8.2.1 CONSIDER COMPUTATIONAL FREQUENCY 254
. . . . . . . . . . . . . . . . . . . . . . . 8.2.2 ANALYZE YOUR
ALGORITHM 255
. . . . . . . . . . . . . . . . . . . . . . 8.2.3 USE THE BUILT-IN
FUNCTIONS 255
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.4 USE VECTORS 255
. . . . . . . . 8.2.5 USE TEXTURES TO ENCODE COMPLEX FUNCTIONS 256 . . .
. . . . . . . . . . . . . . . . . 8.2.6 REVIEW THE INFORMATION LOGS 256
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3 SHADERDEBUGGING 256
. . . . . . . . . . . . . . . . . . . 8.3.1 USE THE VERTEX SHADER OUTPUT
256
. . . . . . . . . . . . . . . . 8.3.2 USE THE FRAGMENT SHADER OUTPUT 257
. . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.3 USE SIMPLE
GEOMETRY 258
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4 SHADER
DEVELOPRNENT TOOLS 258
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.1
RENDERMONKEY 258
. . . . . . . . . . . . . . . . . . . . . . . 8.4.2 APPLE
GLSLEDITORSAMPLE 261
. . . . . . . . . . . . . . . . . . . . 8.4.3 GRAPHIC REMEDY GDEBUGGER
261
. . . . 8.4.4 OPENGL SHADING LANGUAGE COMPILER FRONT END 261 . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5
SCENEGRAPHS 263
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 8.6 SUMMARY 266
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.7
FURTHER INFORMATION 266
IMAGE 6
X ~ V CONTENTS
.......... CHAPTER 9 . EMULATING OPENGL FIXED FUNCTIONALITY 269 . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1
TRANSFORMATION 270
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 9.2 LIGHT SOURCES 273
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1
DIRECTIONAL LIGHTS 273
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.2
POINT LIGHTS 274
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.3 SPOTLIGHTS 276
. . . . . . . . . . . . . . . . . . . . . . . 9.3 MATERIAL PROPERTIES
AND LIGHTING 277
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4
TWO-SIDED LIGHTING 279
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 9.5 NO LIGHTING 280
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 9.6 FOG 281
. . . . . . . . . . . . . . . . . . . . . . . . 9.7 TEXTURE COORDINATE
GENERATION 283
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 9.8 USER CLIPPING 286
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9
TEXTURE APPLICATION 286
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 9.10 MATRICES 288
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.10.1
IDENTITY MATRIX 288
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 9.10.2 SCALE 288
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.10.3 TRANSLATE 289
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 9.10.4 ROTATE 289
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 9.10.5 ORTHO 290
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.10.6 FRUSTUM 290
. . . . . . . . . . . . . . . . . . . . . 9.1 1 OPERATING ON THE CURRENT
MATRICES 291
. . . . . . . . 9.11.1 A SIMPLE MATRIX TRANSFORMATION EXAMPLE 293 . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 9.12 SUMMARY 294
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.13
FURTHER INFORMATION 294
...................... CHAPTER 10 . STORED TEXTURE SHADERS 297
. . . . . . . . . . . . . . . . . . 10.1 ACCESS TO TEXTURE MAPS FROM A
SHADER 298
. . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 SIMPLE
TEXTURING EXAMPLE 300
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1
APPLICATION SETUP 301
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.2
VERTEX SHADER 302
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.3 FRAGMENT
SHADER 303
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3
MULTITEXTURING EXAMPLE 303
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.1
APPLICATION SETUP 305
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2
VERTEX SHADER 306
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.3 FRAGMENT
SHADER 307
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 CUBE
MAPPING EXAMPLE 309
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.1
APPLICATION SETUP 310
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.2
VERTEX SHADER 310
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.3 FRAGMENT
SHADER 311
IMAGE 7
CONTENTS XV
. . . . . . . . . . . . . . . . 10.5 ANOTHER ENVIRONMENT MAPPING EXAMPLE
312
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.1
VERTEX SHADER 313
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.2 FRAGMENT
SHADER 314
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.6 GLYPH BOMBING 316
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.1
APPLICATION SETUP 317
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.2
VERTEX SHADER 321
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.3 FRAGMENT
SHADER 322
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 10.7 SUMMARY 326
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8
FURTHER INFORMATION 326
................... CHAPTER 11 . PROCEDURAL TEXTURE SHADERS 329
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1.1 REGULAR PATTERNS 331
. . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 STRIPES VERTEX
SHADER 333
. . . . . . . . . . . . . . . . . . . . . . . 11.1.2 STRIPES FRAGMENT
SHADER 334
11.2 TOYBALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 336
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1
APPLICATION SETUP 337
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2
VERTEX SHADER 338
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.3 FRAGMENT
SHADER 339
11.3 LATTICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 344
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4 BUMP MAPPING 345
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.1
APPLICATION SETUP 348
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.2
VERTEX SHADER 350
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.3 FRAGMENT
SHADER 351
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.4
NORMAL MAPS 353
11.5 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 354
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6
FURTHER INFORMATION 354
................................... . CHAPTER 12 LIGHTING 357
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HEMISPHERE LIGHTING 357
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IMAGE-BASED LIGHTING 361
. . . . . . . . . . . . . . . . . . . . LIGHTING WITH SPHERICAL
HARMONICS 365
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . THE
UEBERLIGHT SHADER 369
. . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.1 UEBERLIGHT
CONTROLS 369
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.2
VERTEX SHADER 372
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.3 FRAGMENT
SHADER 373
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 12.5 SUMMARY 376
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6
FURTHER INFORMATION 376
IMAGE 8
X V ~ CONTENTS
................................... CHAPTER 13 . SHADOWS 379
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1
AMBIENT OCCLUSION 380
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 13.2 SHADOWMAPS 385
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.1
APPLICATION SETUP 387
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.2
VERTEX SHADER 388
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.3 FRAGMENT
SHADER 389
. . . . . . . . . . . . . . . . . 13.3 DEFERRED SHADING FOR VOLUME
SHADOWS 392
. . . . . . . . . . . . . . . . . . . . . . . . . 13.3.1 SHADERS FOR
FIRST PASS 395
. . . . . . . . . . . . . . . . . . . . . . . 13.3.2 SHADERS FOR SECOND
PASS 396
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 13.4 SUMMARY 400
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.5
FURTHER INFORMATION 400
...................... CHAPTER 14 . SURFACE CHARACTERISTICS 403
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 14.1 REFRACTION 404
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 14.2 DIFFRACTION 410
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 14.3 BRDF MODELS 415
. . . . . . . . . . . . 14.4 POLYNOMIAL TEXTURE MAPPING WITH BRDF DATA
422 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4.1
APPLICATION SETUP 425
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4.2
VERTEX SHADER 426
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4.3 FRAGMENT
SHADER 429
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 14.5 SUMMARY 431
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.6
FURTHER INFORMATION 432
...................................... CHAPTER 15 . NOISE 435
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 15.1 NOISE DEFINED 436
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.1.1 2DNOISE 442
. . . . . . . . . . . . . . . . . . . 15.1.2 HIGHER DIMENSIONS OF NOISE
443
. . . . . . . . . . . . . . . . 15.1.3 USING NOISE IN OPENGL SHADERS 443
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 15.2 NOISE TEXTURES 444
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 15.3 TRADE.OFFS 447
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4 A
SIMPLE NOISE SHADER 448
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1
APPLICATION SETUP 448
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.2
VERTEX SHADER 448
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.3 FRAGMENT
SHADER 449
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 15.5 TURBULERICE 451
. . . . . . . . . . . . . . . . . . . . . . . . . . . 15.5.1 SUN SURFACE
SHADER 451
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.5.2 MARBLE 452
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 15.6 GRANITE 453
IMAGE 9
CONTENTS XVII
15.7 WOOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 454
15.7.1 APPLICATION SETUP . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 454
15.7.2 FRAGMENT SHADER . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 455
15.8 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 457
15.9 FURTHER INFORMATION . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 458
CHAPTER 16 . ANIMATION .................................. 461
16.1 ONIOFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 462
16.2 THRESHOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 463
16.3 TRANSLATION . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 463
16.4 MORPHING . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 464
16.4.1 SPHERE MORPH VERTEX SHADER . . . . . . . . . . . . . . . . . . .
466
16.5 OTHER BLENDING EFFECTS . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 467
16.6 VERTEX NOISE . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 468
16.7 PARTICLE SYSTEMS . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 469
16.7.1 APPLICATION SETUP . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 470
16.7.2 CONFETTI CANNON VERTEX SHADER . . . . . . . . . . . . . . . . 473
16.7.3 FURTHER ENHANCEMENTS . . . . . . . . . . . . . . . . . . . . . .
. . 476
16.8 WOBBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 476
16.9 ANIMATING ONCE PER FRAME . . . . . . . . . . . . . . . . . . . . .
. . . . . . 480
16.9.1 APPLICATION SETUP . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 481
. . . . . . . . . . . . . . 16.9.2 UPDATING MATRICES ONCE PER FRAME 482
16.10 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 483
16.11 FURTHER INFORMATION . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 484
CHAPTER 17 . ANTIALIASING PROCEDURAL TEXTURES ............... 487
17.1 SOURCES OF ALIASING . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 487
17.2 AVOIDING ALIASING . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 489
17.3 INCREASING RESOLUTION . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 490
17.4 ANTIALIASED STRIPE EXAMPLE . . . . . . . . . . . . . . . . . . . .
. . . . . . . 491
17.4.1 GENERATING STRIPES . . . . . . . . . . . . . . . . . . . . . . .
. . . . 491
17.4.2 ANALYTIC PREFILTERING . . . . . . . . . . . . . . . . . . . . . .
. . . . 493
17.4.3 ADAPTIVE ANALYTIC PREFILTERING . . . . . . . . . . . . . . . . .
. 494
17.4.4 ANALYTIC INTEGRATION . . . . . . . . . . . . . . . . . . . . . .
. . . . 498
17.4.5 ANTIALIASED BRICK FRAGMENT SHADER . . . . . . . . . . . . . . 501
17.5 FREQUENCY CLAMPING . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 502
17.5.1 ANTIALIASED CHECKERBOARD FRAGMENT SHADER . . . . . . . 502 17.6
SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 504
17.7 FURTHER INFORMATION . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 504
IMAGE 10
XVIII CONTENTS
................... CHAPTER 18 . NON-PHOTOREALISTIC SHADERS 507
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1
HATCHING EXAMPLE 508
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.1
APPLICATION SETUP 508
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.2
VERTEX SHADER 509
. . . . . . . . . . . . . . . . . . . 18.1.3 GENERATING HATCHING STROKES
510
. . . . . . . . . . . . . . . 18.1.4 OBTAINING UNIFORM LINE DENSITY 511
. . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.5 SIMULATING
LIGHTING 513
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.6 ADDING
CHARACTER 513
. . . . . . . . . . . . . . . . . . . . 18.1.7 HATCHING FRAGMENT SHADER
515
. . . . . . . . . . . . . . . . . . . . . . . . 18.2 TECHNICAL
ILLUSTRATION EXAMPLE 516
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2.1
APPLICATION SETUP 520
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2.2
VERTEX SHADER 520
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2.3 FRAGMENT
SHADER 521
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3
MANDELBROT EXAMPLE 521
. . . . . . . . . . . . . . . . . . . . . 18.3.1 ABOUT THE MANDELBROT
SET 522
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3.2
VERTEX SHADER 525
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3.3 FRAGMENT
SHADER 526
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.3.4 JULIA SETS 529
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 18.4 SUMMARY 529
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.5
FURTHER INFORMATION 530
......................... CHAPTER 19 . SHADERS FOR IMAGING 533
. . . . . . . . . . . . . . . . . . . . . . . . . 19.1 GEOMETRIC IMAGE
TRANSFORMS 534
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.2
MATHEMATICAL MAPPINGS 534
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.3 LOOKUP
TABLE OPERATIONS 535
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.4 COLOR
SPACE CONVERSIONS 536
. . . . . . . . . . . . . . . . . 19.5 IMAGE INTERPOLATION AND
EXTRAPOLATION 537
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.5.1 BRIGHTNESS 537
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.5.2 CONTRAST 538
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.5.3 SATURATION 538
19.5.4 SHARPNESS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 539
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 19.6 BLEND MODES 540
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.1 NORMAL 541
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.2 AVERAGE 541
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.3 DISSOLVE 542
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.4 BEHIND 542
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 19.6.5 CLEAR 542
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.6 DARKEN 542
19.6.7 LIGHTEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 543
IMAGE 11
CONTENTS X ~ X
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.8 MULTIPLY 543
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 19.6.9 SCREEN 543
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.6.10
COLOR BURN 543
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.6.11
COLOR DODGE 544
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.12 OVERLAY 544
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.13 SOFT LIGHT 544
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.6.14
HARD LIGHT 545
19.6.15 ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 545
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.16 SUBTRACT 545
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.17 DIFFERENCE 545
. . . . . . . . . . . . . . . . . . . . . . . . . . 19.6.18 INVERSE
DIFFERENCE 546
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.19 EXCLUSION 546
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6.20 OPACITY 546
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 19.7 CONVOLUTION 546
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.7.1
SMOOTHING 549
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.7.2 EDGE
DETECTION 552
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.7.3
SHARPENING 553
19.8 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 555
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.9
FURTHER INFORMATION 555
....................... CHAPTER 20 . LANGUAGE COMPARISON 559
. . . . . . . . . . . . . . . . . . . . . 20.1 CHRONOLOGY OF SHADING
LANGUAGES 559
20.2 RENDERMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 560
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3
OPENGL SHADER (ISL) 563
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 20.4 HLSL 565
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 20.5 CG 568
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 20.6 SUMMARY 570
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.7
FURTHER INFORMATION 570
......................... APPENDIX A . LANGUAGE GRAMMAR 573
..................... APPENDIX B . API FUNCTION REFERENCE 589
. . . . . . . . . . . . . . IMPLEMENTATION-DEPENDENT API VALUES FOR CL.
SL 590 . . . . . . . . . . . . . . . . . . . . . . . . . . . OTHER
QUERIABLE VALUES FOR GI. SL 591
GLATTACHSHADER . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 592
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. GLBINDATTRIBLOCATION 594
GLCOMPILESHADER . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 597
GLCREATEPROGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 599
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . GLCREATESHADER 601
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . GLDELETEPROGRAM 603
IMAGE 12
XX CONTENTS
GLDELETESHADER . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 605
GLDETACHSHADER . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 607
GLDRAWBUFFERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 609
GLENABLEVERTEXATTRIBARRAY . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 612
GLGETACTIVEATTRIB . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 614
GLGETACTIVEUNIFORM . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 617
GLGETATTACHEDSHADERS . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 621
GLGETATTRIBLOCATION . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 623
GLGETPROGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 625
GLGETPROGRAMINFOLOG . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 628
GLGETSHADER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 630
GLGETSHADERINFOLOG . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 632
GLGETSHADERSOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 634
GLGETUNIFORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 636
GLGETUNIFORMLOCATION . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 638
GLGETVERTEXATTRIB . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 640
GLGETVERTEXATTRIBPOINTER . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 643
GLISPROGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 645
GLISSHADER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 647
GLLINKPROGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 648
GLSHADERSOURCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 652
GLUNIFORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 654
GLUSEPROGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 661
GLVALIDATEPROGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 665
GLVERTEXATTRIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 667
GLVERTEXATTRIBPOINTER . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 673
OPENGL 1.5 TO OPENGL 2.0 GLSL MIGRATION GUIDE . . . . . . . . . . . . .
676
GLOSSARY .............................................. 685
INDEX ................................................. 721
|
any_adam_object | 1 |
author | Rost, Randi J. 1960- Licea-Kane, Bill |
author_GND | (DE-588)140194282 (DE-588)139425845 |
author_facet | Rost, Randi J. 1960- Licea-Kane, Bill |
author_role | aut aut |
author_sort | Rost, Randi J. 1960- |
author_variant | r j r rj rjr b l k blk |
building | Verbundindex |
bvnumber | BV035992123 |
callnumber-first | T - Technology |
callnumber-label | T385 |
callnumber-raw | T385 |
callnumber-search | T385 |
callnumber-sort | T 3385 |
callnumber-subject | T - General Technology |
classification_rvk | ST 321 |
ctrlnum | (OCoLC)320953994 (DE-599)BVBBV035992123 |
dewey-full | 006.6/86 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 006 - Special computer methods |
dewey-raw | 006.6/86 |
dewey-search | 006.6/86 |
dewey-sort | 16.6 286 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 3. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01756nam a2200469 cb4500</leader><controlfield tag="001">BV035992123</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20111014 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">100202s2010 |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780321637635</subfield><subfield code="9">978-0-321-63763-5</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0321637631</subfield><subfield code="9">0-321-63763-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)320953994</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035992123</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-M347</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">T385</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">006.6/86</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 321</subfield><subfield code="0">(DE-625)143658:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Rost, Randi J.</subfield><subfield code="d">1960-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)140194282</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">OpenGL shading language</subfield><subfield code="c">Randi J. Rost ; Bill Licea-Kane</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ ; Munich [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2010</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XLIII, 743 S.</subfield><subfield code="e">Faltblatt</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="1" ind2=" "><subfield code="a">OpenGL library</subfield><subfield code="v">[2]</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes index</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer graphics</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Computergrafik</subfield><subfield code="0">(DE-588)4010450-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">OpenGL</subfield><subfield code="0">(DE-588)4391716-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programm</subfield><subfield code="0">(DE-588)4047394-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">OpenGL</subfield><subfield code="0">(DE-588)4391716-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Computergrafik</subfield><subfield code="0">(DE-588)4010450-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Programm</subfield><subfield code="0">(DE-588)4047394-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Licea-Kane, Bill</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)139425845</subfield><subfield code="4">aut</subfield></datafield><datafield tag="830" ind1=" " ind2="0"><subfield code="a">OpenGL library</subfield><subfield code="v">[2]</subfield><subfield code="w">(DE-604)BV035968441</subfield><subfield code="9">2</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">SWB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018884810&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-018884810</subfield></datafield></record></collection> |
id | DE-604.BV035992123 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T22:09:11Z |
institution | BVB |
isbn | 9780321637635 0321637631 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-018884810 |
oclc_num | 320953994 |
open_access_boolean | |
owner | DE-M347 |
owner_facet | DE-M347 |
physical | XLIII, 743 S. Faltblatt |
publishDate | 2010 |
publishDateSearch | 2010 |
publishDateSort | 2010 |
publisher | Addison-Wesley |
record_format | marc |
series | OpenGL library |
series2 | OpenGL library |
spelling | Rost, Randi J. 1960- Verfasser (DE-588)140194282 aut OpenGL shading language Randi J. Rost ; Bill Licea-Kane 3. ed. Upper Saddle River, NJ ; Munich [u.a.] Addison-Wesley 2010 XLIII, 743 S. Faltblatt txt rdacontent n rdamedia nc rdacarrier OpenGL library [2] Includes index Computer graphics Computergrafik (DE-588)4010450-3 gnd rswk-swf OpenGL (DE-588)4391716-1 gnd rswk-swf Programm (DE-588)4047394-6 gnd rswk-swf OpenGL (DE-588)4391716-1 s Computergrafik (DE-588)4010450-3 s Programm (DE-588)4047394-6 s DE-604 Licea-Kane, Bill Verfasser (DE-588)139425845 aut OpenGL library [2] (DE-604)BV035968441 2 SWB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018884810&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Rost, Randi J. 1960- Licea-Kane, Bill OpenGL shading language OpenGL library Computer graphics Computergrafik (DE-588)4010450-3 gnd OpenGL (DE-588)4391716-1 gnd Programm (DE-588)4047394-6 gnd |
subject_GND | (DE-588)4010450-3 (DE-588)4391716-1 (DE-588)4047394-6 |
title | OpenGL shading language |
title_auth | OpenGL shading language |
title_exact_search | OpenGL shading language |
title_full | OpenGL shading language Randi J. Rost ; Bill Licea-Kane |
title_fullStr | OpenGL shading language Randi J. Rost ; Bill Licea-Kane |
title_full_unstemmed | OpenGL shading language Randi J. Rost ; Bill Licea-Kane |
title_short | OpenGL shading language |
title_sort | opengl shading language |
topic | Computer graphics Computergrafik (DE-588)4010450-3 gnd OpenGL (DE-588)4391716-1 gnd Programm (DE-588)4047394-6 gnd |
topic_facet | Computer graphics Computergrafik OpenGL Programm |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018884810&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
volume_link | (DE-604)BV035968441 |
work_keys_str_mv | AT rostrandij openglshadinglanguage AT liceakanebill openglshadinglanguage |