
OpenGL 4.0 Shading Language Cookbook.
Title:
OpenGL 4.0 Shading Language Cookbook.
Author:
Wolff, David.
ISBN:
9781849514774
Personal Author:
Edition:
1st ed.
Physical Description:
1 online resource (412 pages)
Contents:
OpenGL 4.0 Shading Language Cookbook -- Table of Contents -- OpenGL 4.0 Shading Language Cookbook -- Credits -- About the Author -- About the Reviewers -- www.PacktPub.com -- Support files, eBooks, discount offers and more -- Why subscribe? -- Free access for Packt account holders -- Preface -- What this book covers -- What you need for this book -- Who this book is for -- Conventions -- Reader feedback -- Customer support -- Downloading the example code for this book -- Errata -- Piracy -- Questions -- 1. Getting Started with GLSL 4.0 -- Introduction -- The OpenGL Shading Language -- Profiles: Core vs. Compatibility -- Using the GLEW Library to access the latest OpenGL functionality -- Getting ready -- How to do it... -- How it works... -- There's more... -- GLEW visualinfo -- GLEW glewinfo -- Checking for extension availability at runtime -- See also -- Using the GLM library for mathematics -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using the GLM types as input to OpenGL -- See also -- Determining the GLSL and OpenGL version -- How to do it... -- How it works... -- There's more... -- See also -- Compiling a shader -- Getting ready -- How to do it... -- How it works... -- There's more... -- Deleting a shader object -- See also -- Linking a shader program -- Getting ready -- How to do it... -- How it works... -- There's more... -- Deleting a shader program -- See also -- Sending data to a shader using per-vertex attributes and vertex buffer objects -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using layout qualifiers -- Using element arrays -- Interleaved arrays -- See also -- Getting a list of active vertex input attributes and indices -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Sending data to a shader using uniform variables.
Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Getting a list of active uniform variables -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using uniform blocks and uniform buffer objects -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using an instance name with a uniform block -- Using layout qualifiers with uniform blocks -- See also -- Building a C++ shader program class -- Getting ready -- How to do it... -- How it works... -- See also -- 2. The Basics of GLSL Shaders -- Introduction -- Vertex and fragment shaders -- Replicating the old fixed functionality -- Implementing diffuse, per-vertex shading with a single point light source -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Implementing per-vertex ambient, diffuse, and specular (ADS) shading -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using a non-local viewer -- Per-vertex vs. Per-fragment -- Directional lights -- Light attenuation with distance -- See also -- Using functions in shaders -- Getting ready -- How to do it... -- How it works... -- There's more... -- The const qualifier -- Function overloading -- Passing arrays or structures to a function -- See also -- Implementing two-sided shading -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using two-sided rendering for debugging -- See also -- Implementing flat shading -- How to do it... -- How it works... -- See also -- Using subroutines to select shader functionality -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Discarding fragments to create a perforated look -- Getting ready -- How to do it... -- How it works... -- See also -- 3. Lighting, Shading Effects, and Optimizations.
Introduction -- Shading with multiple positional lights -- Getting ready -- How to do it... -- How it works... -- See also -- Shading with a directional light source -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using per-fragment shading for improved realism -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using the halfway vector for improved performance -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Simulating a spotlight -- Getting ready -- How to do it... -- How it works... -- See also -- Creating a cartoon shading effect -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Simulating fog -- Getting ready -- How to do it... -- How it works... -- There's more... -- Computing distance from the eye -- See also -- 4. Using Textures -- Introduction -- Applying a 2D texture -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Applying multiple textures -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using alpha maps to discard pixels -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using normal maps -- Getting ready -- How to do it... -- How it works... -- See also -- Simulating reflection with cube maps -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Simulating refraction with cube maps -- Getting ready -- How to do it... -- How it works... -- There's more... -- The Fresnel equations -- Chromatic aberration -- Both sides of the object? -- See also -- Image-based lighting -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Applying a projected texture -- Getting ready -- How to do it...
How it works... -- There's more... -- See also -- Rendering to a texture -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- 5. Image Processing and Screen Space Techniques -- Introduction -- Applying an edge detection filter -- Getting ready -- How to do it... -- How it works... -- There's more... -- Optimization techniques -- See also -- Applying a Gaussian blur filter -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating a "bloom" effect -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using low-res textures -- See also -- Using gamma correction to improve image quality -- How to do it... -- How it works... -- There's more... -- Using multisample anti-aliasing -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using deferred shading -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- 6. Using Geometry and Tessellation Shaders -- Introduction -- The shader pipeline extended -- The geometry shader -- The tessellation shaders -- Point sprites with the geometry shader -- Getting ready -- How to do it... -- How it works... -- There's more... -- Drawing a wireframe on top of a shaded mesh -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Drawing silhouette lines using the geometry shader -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Tessellating a curve -- Getting ready -- How to do it... -- How it works... -- There's more... -- Tessellating a 2D quad -- Getting ready -- How to do it... -- How it works... -- See also -- Tessellating a 3D surface -- Getting ready -- How to do it... -- How it works... -- See also -- Tessellating based on depth -- Getting ready -- How to do it... -- How it works...
There's more... -- See also -- 7. Shadows -- Introduction -- Rendering shadows with shadow maps -- Getting ready -- How to do it... -- How it works... -- There's more... -- Aliasing -- Rendering back faces only for the shadow map -- See also -- Anti-aliasing shadow edges with PCF -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating soft shadow edges with random sampling -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Improving realism with prebaked ambient occlusion -- Getting ready -- How to do it... -- How it works... -- There's more... -- Screen-space ambient occlusion -- Another technique for dynamic ambient occlusion -- 8. Using Noise in Shaders -- Introduction -- Creating a noise texture using libnoise -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating a seamless noise texture -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating a cloud-like effect -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating a wood grain effect -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating a disintegration effect -- Getting ready -- How to do it... -- How it works... -- See also -- Creating a paint-spatter effect -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating a night-vision effect -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- 9. Animation and Particles -- Introduction -- Animating a surface with vertex displacement -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Creating a particle fountain -- Getting ready -- How to do it... -- How it works... -- There's more...
See also.
Abstract:
Over 60 highly focused, practical recipes to maximize your OpenGL Shading language use.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Genre:
Electronic Access:
Click to View