Atnaujinkite slapukų nuostatas

El. knyga: OpenGL Superbible: Comprehensive Tutorial and Reference

4.21/5 (55 ratings by Goodreads)
  • Formatas: 880 pages
  • Serija: OpenGL
  • Išleidimo metai: 20-Jul-2015
  • Leidėjas: Addison-Wesley Educational Publishers Inc
  • Kalba: eng
  • ISBN-13: 9780134193113
Kitos knygos pagal šią temą:
  • Formatas: 880 pages
  • Serija: OpenGL
  • Išleidimo metai: 20-Jul-2015
  • Leidėjas: Addison-Wesley Educational Publishers Inc
  • Kalba: eng
  • ISBN-13: 9780134193113
Kitos knygos pagal šią temą:

DRM apribojimai

  • Kopijuoti:

    neleidžiama

  • Spausdinti:

    neleidžiama

  • El. knygos naudojimas:

    Skaitmeninių teisių valdymas (DRM)
    Leidykla pateikė šią knygą šifruota forma, o tai reiškia, kad norint ją atrakinti ir perskaityti reikia įdiegti nemokamą programinę įrangą. Norint skaityti šią el. knygą, turite susikurti Adobe ID . Daugiau informacijos  čia. El. knygą galima atsisiųsti į 6 įrenginius (vienas vartotojas su tuo pačiu Adobe ID).

    Reikalinga programinė įranga
    Norint skaityti šią el. knygą mobiliajame įrenginyje (telefone ar planšetiniame kompiuteryje), turite įdiegti šią nemokamą programėlę: PocketBook Reader (iOS / Android)

    Norint skaityti šią el. knygą asmeniniame arba „Mac“ kompiuteryje, Jums reikalinga  Adobe Digital Editions “ (tai nemokama programa, specialiai sukurta el. knygoms. Tai nėra tas pats, kas „Adobe Reader“, kurią tikriausiai jau turite savo kompiuteryje.)

    Negalite skaityti šios el. knygos naudodami „Amazon Kindle“.

OpenGL® SuperBible, Seventh Edition, is the definitive programmer’s guide, tutorial, and reference for OpenGL 4.5, the world’s leading 3D API for real-time computer graphics. The best introduction for any developer, it clearly explains OpenGL’s newest APIs; key extensions; shaders; and essential, related concepts. You’ll find up-to-date, hands-on guidance for all facets of modern OpenGL development—both desktop and mobile.

The authors explain what OpenGL does, how it connects to the graphics pipeline, and how it manages huge datasets to deliver compelling experiences. Step by step, they present increasingly sophisticated techniques, illuminating key concepts with worked examples. They introduce OpenGL on several popular platforms, and offer up-to-date best practices and performance advice.

This extensively updated edition introduces many new OpenGL 4.5/4.4 features, including important ARB and KHR extensions that are now part of the standard. It thoroughly covers the latest Approaching Zero Driver Overhead (AZDO) performance features, and demonstrates key enhancements with new example applications.

Coverage includes

  • A practical introduction to real-time 3D graphics, including foundational math
  • Core techniques for rendering, transformations, and texturing
  • Shaders and the OpenGL Shading Language (GLSL) in depth
  • Vertex processing, drawing commands, primitives, fragments, and framebuffers
  • Compute shaders: harnessing graphics cards for more than graphics
  • Pipeline monitoring and control
  • Managing, loading, and arbitrating access to data
  • Building larger applications and deploying them across platforms
  • Advanced rendering: light simulation, artistic and non-photorealistic effects, and more
  • Reducing CPU overhead and analyzing GPU behavior
  • Supercharging performance with AZDO-persistent maps and bindless textures
  • Preventing and debugging errors
  • New applications: texture compression, text drawing, font rendering with distance fields, high-quality texture filtering, and OpenMP

Bonus material and sample code will be made available.

Figures xv
Tables xxi
Listings xxiii
Foreword xxxi
Preface xxxiii
The Architecture of the Book
xxxiv
What's New in This Edition
xxxvi
How to Build the Examples
xxxvii
Errata
xxxviii
Note from the Publisher
xxxviii
Acknowledgments xxxix
About the Author xli
I Foundations 1(238)
1 Introduction
3(10)
OpenGL and the Graphics Pipeline
4(2)
The Origins and Evolution of OpenGL
6(4)
Core Profile OpenGL
8(2)
Primitives, Pipelines, and Pixels
10(1)
Summary
11(2)
2 Our First OpenGL Program
13(14)
Creating a Simple Application
14(3)
Using Shaders
17(7)
Drawing Our First Triangle
24(2)
Summary
26(1)
3 Following the Pipeline
27(28)
Passing Data to the Vertex Shader
28(2)
Vertex Attributes
28(2)
Passing Data from Stage to Stage
30(3)
Interface Blocks
31(2)
Tessellation
33(4)
Tessellation Control Shaders
33(2)
The Tessellation Engine
35(1)
Tessellation Evaluation Shaders
35(2)
Geometry Shaders
37(2)
Primitive Assembly, Clipping, and Rasterization
39(4)
Clipping
39(1)
Viewport Transformation
40(1)
Culling
41(2)
Rasterization
43(1)
Fragment Shaders
43(4)
Framebuffer Operations
47(1)
Pixel Operations
47(1)
Compute Shaders
48(1)
Using Extensions in OpenGL
49(5)
Enhancing OpenGL with Extensions
50(4)
Summary
54(1)
4 Math for 3D Graphics
55(44)
Is This the Dreaded Math
Chapter
56(1)
A Crash Course in 3D Graphics Math
57(12)
Vectors, or Which Way Is Which?
57(3)
Common Vector Operators
60(4)
Matrices
64(2)
Matrix Construction and Operators
66(3)
Understanding Transformations
69(20)
Coordinate Spaces in OpenGL
70(2)
Coordinate Transformations
72(8)
Concatenating Transformations
80(1)
Quaternions
81(2)
The Model-View Transform
83(3)
Projection Transformations
86(3)
Interpolation, Lines, Curves, and Splines
89(8)
Curves
91(3)
Splines
94(3)
Summary
97(2)
5 Data
99(106)
Buffers
100(17)
Creating Buffers and Allocating Memory
100(7)
Filling and Copying Data in Buffers
107(2)
Feeding Vertex Shaders from Buffers
109(8)
Uniforms
117(23)
Default Block Uniforms
117(4)
Uniform Blocks
121(14)
Using Uniforms to Transform Geometry
135(5)
Shader Storage Blocks
140(7)
Synchronizing Access to Memory
145(2)
Atomic Counters
147(5)
Synchronizing Access to Atomic Counters
151(1)
Textures
152(51)
Creating and Initialzing Textures
152(2)
Texture Targets and Types
154(2)
Reading from Textures in Shaders
156(4)
Loading Textures from Files
160(4)
Controlling How Texture Data Is Read
164(13)
Array Textures
177(5)
Writing to Textures in Shaders
182(12)
Synchronizing Access to Images
194(1)
Texture Compression
195(4)
Texture Views
199(4)
Summary
203(2)
6 Shaders and Programs
205(34)
Language Overview
206(13)
Data Types
206(7)
Built-In Functions
213(6)
Compiling, Linking, and Examining Programs
219(19)
Getting Information from the Compiler
219(4)
Getting Information from the Linker
223(2)
Separate Programs
225(6)
Shader Subroutines
231(4)
Program Binaries
235(3)
Summary
238(1)
II In Depth 239(326)
7 Vertex Processing and Drawing Commands
241(64)
Vertex Processing
242(7)
Vertex Shader Inputs
242(5)
Vertex Shader Outputs
247(2)
Drawing Commands
249(29)
Indexed Drawing Commands
249(6)
Instancing
255(14)
Indirect Draws
269(9)
Storing Transformed Vertices
278(18)
Using Transform Feedback
279(5)
Starting, Pausing, and Stopping Transform Feedback
284(2)
Ending the Pipeline with Transform Feedback
286(1)
Transform Feedback Example: Physical Simulation
286(10)
Clipping
296(7)
User-Defined Clipping
300(3)
Summary
303(2)
8 Primitive Processing
305(60)
Tessellation
306(27)
Tessellation Primitive Modes
307(9)
Tessellation Subdivision Modes
316(3)
Passing Data between Tessellation Shaders
319(3)
Communication between Shader Invocations
322(1)
Tessellation Example: Terrain Rendering
323(6)
Tessellation Example: Cubic Bezier Patches
329(4)
Geometry Shaders
333(31)
The Pass-Through Geometry Shader
334(2)
Using Geometry Shaders in an Application
336(5)
Discarding Geometry in the Geometry Shader
341(3)
Modifying Geometry in the Geometry Shader
344(2)
Generating Geometry in the Geometry Shader
346(3)
Changing the Primitive Type in the Geometry Shader
349(3)
Multiple Streams of Storage
352(1)
New Primitive Types Introduced by the Geometry Shader
353(8)
Multiple Viewport Transformations
361(3)
Summary
364(1)
9 Fragment Processing and the Framebuffer
365(102)
Fragment Shaders
366(3)
Interpolation and Storage Qualifiers
366(3)
Per-Fragment Tests
369(13)
Scissor Testing
369(3)
Stencil Testing
372(4)
Depth Testing
376(4)
Early Testing
380(2)
Color Output
382(8)
Blending
382(5)
Logical Operations
387(1)
Color Masking
388(2)
Off-Screen Rendering
390(22)
Multiple Framebuffer Attachments
395(2)
Layered Rendering
397(6)
Framebuffer Completeness
403(4)
Rendering in Stereo
407(5)
Antialiasing
412(16)
Antialiasing by Filtering
413(2)
Multi-Sample Antialiasing
415(2)
Multi-Sample Textures
417(4)
Sample Rate Shading
421(3)
Centroid Sampling
424(4)
Advanced Framebuffer Formats
428(20)
Rendering with No Attachments
428(2)
Floating-Point Framebuffers
430(14)
Integer Framebuffers
444(2)
The sRGB Color Space
446(2)
Point Sprites
448(10)
Texturing Points
449(1)
Rendering a Star Field
450(3)
Point Parameters
453(1)
Shaped Points
454(2)
Rotating Points
456(2)
Getting at Your Image
458(8)
Reading from a Framebuffer
458(3)
Copying Data between Framebuffers
461(3)
Reading Back Texture Data
464(2)
Summary
466(1)
10 Compute Shaders
467(36)
Using Compute Shaders
468(11)
Executing Compute Shaders
469(5)
Compute Shader Communication
474(5)
Examples
479(23)
Compute Shader Parallel Prefix Sum
479(13)
Compute Shader Flocking
492(10)
Summary
502(1)
11 Advanced Data Management
503(30)
Eliminating Binding
504(5)
Sparsely Populated Textures
509(7)
Texture Compression
516(9)
The RGTC Compression Scheme
516(3)
Generating Compressed Data
519(6)
Packed Data Formats
525(2)
High-Quality Texture Filtering
527(4)
Summary
531(2)
12 Controlling and Monitoring the Pipeline
533(32)
Queries
534(22)
Occlusion Queries
535(10)
Timer Queries
545(4)
Transform Feedback Queries
549(6)
Pipeline State Queries
555(1)
Synchronization in OpenGL
556(6)
Draining the Pipeline
557(1)
Synchronization and Fences
557(5)
Summary
562(3)
III In Practice 565(178)
13 Rendering Techniques
567(94)
Lighting Models
568(42)
The Phong Lighting Model
568(9)
Blinn-Phong Lighting
577(2)
Rim Lighting
579(3)
Normal Mapping
582(5)
Environment Mapping
587(10)
Material Properties
597(2)
Casting Shadows
599(6)
Atmospheric Effects
605(5)
Non-Photo-Realistic Rendering
610(3)
Cell Shading: Texels as Light
610(3)
Alternative Rendering Methods
613(34)
Deferred Shading
613(11)
Screen-Space Techniques
624(7)
Rendering without Triangles
631(16)
Two-Dimensional Graphics
647(12)
Distance Field Textures
647(9)
Bitmap Fonts
656(3)
Summary
659(2)
14 High-Performance OpenGL
661(68)
Optimizing CPU Performance
661(16)
Multi-Threading in OpenGL
662(6)
Packet Buffers
668(9)
Low-Overhead OpenGL
677(22)
Indirect Rendering
678(5)
GPU Work Generation
683(8)
Zero Copy
691(8)
Performance Analysis Tools
699(27)
Windows Performance Toolkit and GPUView
699(4)
GPU PerfStudio
703(3)
Tuning Your Application for Speed
706(20)
Summary
726(3)
15 Debugging and Stability
729(14)
Debugging Your Applications
730(7)
Debug Contexts
730(7)
Security and Robustness
737(5)
Graphics Reset
737(3)
Range-Checked Reads
740(2)
Summary
742(1)
A Further Reading 743(6)
B The SBM File Format 749(10)
C The SuperBible Tools 759(38)
Glossary 797(8)
Index 805
Graham Sellers, AMD Software Architect and Engineering Fellow, represents AMD at the OpenGL ARB. He has contributed to the core OpenGL specification and extensions, and holds several graphics and image processing patents.

 

Richard S. Wright, Jr., Senior Software Engineer for Software Bisque, developed multimedia astronomy and planetarium software using OpenGL. For more than a decade he taught OpenGL programming in Full Sail Universitys game development degree program.

 

Nicholas Haemel, Director of Camera Software at NVIDIA, has represented NVIDIA at the Khronos Group standards body and authored many OpenGL extensions.