rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780321637635

Opengl Shading Language

by ; ; ; ; ; ;
  • ISBN13:

    9780321637635

  • ISBN10:

    0321637631

  • Edition: 3rd
  • Format: Paperback
  • Copyright: 2009-07-20
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $64.99
  • Digital
    $69.59
    Add to Cart

    DURATION
    PRICE

Summary

The definitive OpenGL Shading Language reference AND tutorial - now fully updated and revised for the latest version- Includes extensive new coverage, including a thorough discussion of GLSL for OpenGL ES, the emerging standard for handheld media devices. Clear, approachable, and relevant examples that help programmers quickly address the challenges they're most likely to encounter. Authored by experts who have been intimately involved in the design and evolution of the OpenGL Shading Language. OpenGL Shading Language, 3/e is the definitive guide to creating graphics applications with the newest version of the OpenGL Shading Language. Using this book, graphics programmers will learn how to exploit the full performance and flexibility of modern GPU hardware to create stunningly realistic and creative effects. One part reference, one part tutorial, this will be their go-to source from the moment they begin learning the language until they've become seasoned experts. This book's content has become ever more important to a wider spectrum of graphics programmers. For years, programmers treated graphics hardware as 'state machines' whose behavior could only be modified by changing bits of state. This severely limited the effects they could realistically achieve. The OpenGL Shading Language puts control of graphics hardware squarely in the programmer's hands: key stages of the graphics pipeline are now completely programmable. With this new freedom, of course, the programmer also gains new responsibilities. It's a fundamental paradigm shift -- and this book will help programmers make the leap. This edition covers significant enhancements in the new version of OpenGL Shading Language, including the latest version of GLSL for OpenGL ES, the emerging standard for handheld media devices. As in previous editions, however, it relies throughout on clear, approachable code samples that address the specific tasks and skills graphics programmers are most likely to need.

Author Biography

Randi J. Rost was a core contributor to the development of the OpenGL Shading Language and the OpenGL API that supports it, as well as one of the first programmers to design and implement shaders using this technology. Randi works at Intel.

 

Bill Licea-Kane is chair of the ARB OpenGL Shading Language workgroup. Bill is a principal member of technical staff at AMD.

Table of 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.8 Drawing Images 19

1.9 Coordinate Transforms 22

1.10 Texturing 27

1.11 Summary 33

1.12 Further Information 33

 

Chapter 2: Basics 35

2.1 Introduction to the OpenGL Shading Language 35

2.2 Why Write Shaders? 37

2.3 OpenGL Programmable Processors 38

2.4 Language Overview 47

2.5 System Overview 54

2.6 Key Benefits 59

2.7 Summary 61

2.8 Further Information 63

 

Chapter 3: Language Definition 65

3.1 Example Shader Pair 65

3.2 Data Types 67

3.3 Initializers and Constructors 76

3.4 Type Conversions 78

3.5 Qualifiers and Interface to a Shader 79

3.6 Flow Control 84

3.7 Operations 88

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.2 The Fragment Processor 106

4.3 Built-in Uniform Variables 110

4.4 Built-in Constants 110

4.5 Interaction with OpenGL Fixed Functionality 111

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 Geometric 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.11 Further Information 178

 

Chapter 6: Simple Shading Example 181

6.1 Brick Shader Overview 182

6.2 Vertex Shader 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

7.8 Specifying Uniform Variables 226

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.2 Performance Considerations 254

8.3 Shader Debugging 256

8.4 Shader Development Tools 258

8.5 Scene Graphs 263

8.6 Summary 266

8.7 Further Information 266

 

Chapter 9: Emulating OpenGL Fixed Functionality 269

9.1 Transformation 270

9.2 Light Sources 273

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.11 Operating on the Current Matrices 291

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.3 Multitexturing Example 303

10.4 Cube Mapping Example 309

10.5 Another Environment Mapping Example 312

10.6 Glyph Bombing 316

10.7 Summary 326

10.8 Further Information 326

 

Chapter 11: Procedural Texture Shaders 329

11.1 Regular Patterns 331

11.2 Toy Ball 336

11.3 Lattice 344

11.4 Bump Mapping 345

11.5 Summary 354

11.6 Further Information 354

 

Chapter 12: Lighting 357

12.1 Hemisphere Lighting 357

12.2 Image-Based Lighting 361

12.3 Lighting with Spherical Harmonics 365

12.4 The Überlight Shader 369

12.5 Summary 376

12.6 Further Information 376

 

Chapter 13: Shadows 379

13.1 Ambient Occlusion 380

13.2 Shadow Maps 385

13.3 Deferred Shading for Volume Shadows 392

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.5 Summary 431

14.6 Further Information 432

 

Chapter 15: Noise 435

15.1 Noise Defined 436

15.2 Noise Textures 444

15.3 Trade-offs 447

15.4 A Simple Noise Shader 448

15.5 Turbulence 451

15.6 Granite 453

15.7 Wood 454

15.8 Summary 457

15.9 Further Information 458

 

Chapter 16: Animation 461

16.1 On/Off 462

16.2 Threshold 463

16.3 Translation 463

16.4 Morphing 464

16.5 Other Blending Effects 467

16.6 Vertex Noise 468

16.7 Particle Systems 469

16.8 Wobble 476

16.9 Animating Once per Frame 480

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.5 Frequency Clamping 502

17.6 Summary 504

17.7 Further Information 504

 

Chapter 18: Non-photorealistic Shaders 507

18.1 Hatching Example 508

18.2 Technical Illustration Example 516

18.3 Mandelbrot Example 521

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.6 Blend Modes 540

19.7 Convolution 546

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 GLSL 590

Other Queriable Values for GLSL 591

glAttachShader 592

glBindAttribLocation 594

glCompileShader 597

glCreateProgram 599

glCreateShader 601

glDeleteProgram 603

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

 

Afterword 681

Glossary 685

Further Reading 705

Index 721

Supplemental Materials

What is included with this book?

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.

Rewards Program