OpenGL Programming Guide
Graham Sellers, Bill Licea-Kane, The Khronos OpenGL ARB Working Group
OpenGL Programming Guide
Graham Sellers, Bill Licea-Kane, The Khronos OpenGL ARB Working Group
- Producent: Prentice Hall
- Rok produkcji: 2013
- ISBN: 9780321773036
- Ilość stron: 984
- Oprawa: Miękka
Niedostępna
Opis: OpenGL Programming Guide - Graham Sellers, Bill Licea-Kane, The Khronos OpenGL ARB Working Group
Includes Complete Coverage of the OpenGL(R) Shading Language! Today's OpenGL software interface enables programmers to produce extraordinarily high-quality computer-generated images and interactive applications using 2D and 3D objects, color images, and programmable shaders. OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL(R), Version 4.3, Eighth Edition, has been almost completely rewritten and provides definitive, comprehensive information on OpenGL and the OpenGL Shading Language. This edition of the best-selling "Red Book" describes the features through OpenGL version 4.3. It also includes updated information and techniques formerly covered in OpenGL(R) Shading Language (the "Orange Book"). For the first time, this guide completely integrates shader techniques, alongside classic, functioncentric techniques. Extensive new text and code are presented, demonstrating the latest in OpenGL programming techniques. OpenGL(R) Programming Guide, Eighth Edition, provides clear explanations of OpenGL functionality and techniques, including processing geometric objects with vertex, tessellation, and geometry shaders using geometric transformations and viewing matrices; working with pixels and texture maps through fragment shaders; and advanced data techniques using framebuffer objects and compute shaders. New OpenGL features covered in this edition include * Best practices and sample code for taking full advantage of shaders and the entire shading pipeline (including geometry and tessellation shaders) * Integration of general computation into the rendering pipeline via compute shaders * Techniques for binding multiple shader programs at once during application execution * Latest GLSL features for doing advanced shading techniques * Additional new techniques for optimizing graphics program performance "Wow! This book is basically one-stop shopping for OpenGL information. It is the kind of book that I will be reaching for a lot. Thanks to Dave, Graham, John, and Bill for an amazing effort." -Mike Bailey, professor, Oregon State University "The most recent Red Book parallels the grand tradition of OpenGL; continuous evolution towards ever-greater power and efficiency. The eighth edition contains up-to-the minute information about the latest standard and new features, along with a solid grounding in modern OpenGL techniques that will work anywhere. The Red Book continues to be an essential reference for all new employees at my simulation company. What else can be said about this essential guide? I laughed, I cried, it was much better than Cats-I'll read it again and again." -Bob Kuehne, president, Blue Newt Software "OpenGL has undergone enormous changes since its inception twenty years ago. This new edition is your practical guide to using the OpenGL of today. Modern OpenGL is centered on the use of shaders, and this edition of the Programming Guide jumps right in, with shaders covered in depth in Chapter 2. It continues in later chapters with even more specifics on everything from texturing to compute shaders. No matter how well you know it or how long you've been doing it, if you are going to write an OpenGL program, you want to have a copy of the OpenGL(R) Programming Guide handy." -Marc Olano, associate professor, UMBC "If you are looking for the definitive guide to programming with the very latest version of OpenGL, look no further. The authors of this book have been deeply involved in the creation of OpenGL 4.3, and everything you need to know about the cutting edge of this industry-leading API is laid out here in a clear, logical, and insightful manner." -Neil Trevett, president, Khronos GroupFigures xxiii Tables xxix Examples xxxiii About This Guide xli Chapter 1: Introduction to OpenGL 1 What Is OpenGL? 2 Your First Look at an OpenGL Program 3 OpenGL Syntax 8 OpenGL's Rendering Pipeline 10 Our First Program: A Detailed Discussion 14 Chapter 2: Shader Fundamentals 33 Shaders and OpenGL 34 OpenGL's Programmable Pipeline 35 An Overview of the OpenGL Shading Language 37 Interface Blocks 60 Compiling Shaders 70 Shader Subroutines 76 Separate Shader Objects 81 Chapter 3: Drawing with OpenGL 85 OpenGL Graphics Primitives 86 Data in OpenGL Buffers 92 Vertex Specification 108 OpenGL Drawing Commands 115 Instanced Rendering 128 Chapter 4: Color, Pixels, and Framebuffers 141 Basic Color Theory 142 Buffers and Their Uses 144 Color and OpenGL 148 Multisampling 153 Testing and Operating on Fragments 156 Per-Primitive Antialiasing 178 Framebuffer Objects 180 Writing to Multiple Renderbuffers Simultaneously 193 Reading and Copying Pixel Data 200 Copying Pixel Rectangles 203 Chapter 5: Viewing Transformations, Clipping, and Feedback 205 Viewing 206 User Transformations 212 OpenGL Transformations 236 Transform Feedback 239 Chapter 6: Textures 259 Texture Mapping 261 Basic Texture Types 262 Creating and Initializing Textures 263 Proxy Textures 276 Specifying Texture Data 277 Sampler Objects 292 Using Textures 295 Complex Texture Types 306 Texture Views 321 Compressed Textures 326 Filtering 329 Advanced Texture Lookup Functions 340 Point Sprites 346 Rendering to Texture Maps 351 Chapter Summary 356 Chapter 7: Light and Shadow 359 Lighting Introduction 360 Classic Lighting Model 361 Advanced Lighting Models 384 Shadow Mapping 400 Chapter 8: Procedural Texturing 411 Procedural Texturing 412 Bump Mapping 433 Antialiasing Procedural Textures 442 Noise 460 Further Information 483 Chapter 9: Tessellation Shaders 485 Tessellation Shaders 486 Tessellation Patches 487 Tessellation Control Shaders 488 Tessellation Evaluation Shaders 496 A Tessellation Example: The Teapot 500 Additional Tessellation Techniques 504 Chapter 10: Geometry Shaders 509 Creating a Geometry Shader 510 Geometry Shader Inputs and Outputs 514 Producing Primitives 525 Advanced Transform Feedback 532 Geometry Shader Instancing 549 Multiple Viewports and Layered Rendering 550 Chapter Summary 559 Chapter 11: Memory 563 Using Textures for Generic Data Storage 564 Shader Storage Buffer Objects 576 Atomic Operations and Synchronization 578 Example 609 Chapter 12: Compute Shaders 623 Overview 624 Workgroups and Dispatch 625 Communication and Synchronization 632 Examples 636 Chapter Summary 647 Appendix A: Basics of GLUT: The OpenGL Utility Toolkit 651 Initializing and Creating a Window 652 Accessing Functions 654 Handling Window and Input Events 655 Managing a Background Process 658 Running the Program 658 Appendix B: OpenGL ES and WebGL 659 OpenGL ES 660 WebGL 662 Appendix C: Built-in GLSL Variables and Functions 673 Built-in Variables 674 Built-in Constants 684 Built-in Functions 686 Appendix D: State Variables 737 The Query Commands 738 OpenGL State Variables 745 Appendix E: Homogeneous Coordinates and Transformation Matrices 829 Homogeneous Coordinates 830 Transformation Matrices 831 Appendix F: OpenGL and Window Systems 835 Accessing New OpenGL Functions 836 GLX: OpenGL Extension for the X Window System 838 WGL: OpenGL Extensions for Microsoft Windows 845 OpenGL in MacOSX: The Core OpenGL (CGL) API and the NSOpenGL Mac OS X's Core OpenGL Library . 851 The NSOpenGL Classes 854 Appendix G: Floating-Point Formats for Textures, Framebuffers, and Renderbuffers 857 Reduced-Precision Floating-Point Values 858 16-bit Floating-Point Values 858 10- and 11-bit Unsigned Floating-Point Values 860 Appendix H: Debugging and Profiling OpenGL 865 Creating a Debug Context 866 Debug Output 868 Debug Groups 875 Profiling 879 Appendix I: Buffer Object Layouts 885 Using Standard Layout Qualifiers 886 The std140 Layout Rules. 886 The std430 Layout Rules 887 Glossary 889 Index 919
Szczegóły: OpenGL Programming Guide - Graham Sellers, Bill Licea-Kane, The Khronos OpenGL ARB Working Group
Tytuł: OpenGL Programming Guide
Autor: Graham Sellers, Bill Licea-Kane, The Khronos OpenGL ARB Working Group
Producent: Prentice Hall
ISBN: 9780321773036
Rok produkcji: 2013
Ilość stron: 984
Oprawa: Miękka
Waga: 1.54 kg