ENGLISH

OpenGL 4 Shading Language Cookbook

Book information

Publisher
Packt Publishing
Year
2018
ISBN
1789340667, 9781789342253, 9781789340662
Language
english
Format
EPUB
Filesize
30 MB (31782166 bytes)
Edition
3
Pages
472\0
Time added
2018-11-18 13:14:49

Description

OpenGL 4 Shading Language Cookbook, Third Edition provides easy-to-follow recipes that first walk you through the theory and background behind each technique, and then proceed to showcase and explain the GLSL and OpenGL code needed to implement them. The book begins by familiarizing you with beginner-level topics such as compiling and linking shader programs, saving and loading shader binaries (including SPIR-V), and using an OpenGL function loader library. We then proceed to cover basic lighting and shading effects. After that, you'll learn to use textures, produce shadows, and use geometry and tessellation shaders. Topics such as particle systems, screen-space ambient occlusion, deferred rendering, depth-based tessellation, and physically based rendering will help you tackle advanced topics. OpenGL 4 Shading Language Cookbook, Third Edition also covers advanced topics such as shadow techniques (including the two of the most common techniques: shadow maps and shadow volumes). You will learn how to use noise in shaders and how to use compute shaders. The book provides examples of modern shading techniques that can be used as a starting point for programmers to expand upon to produce modern, interactive, 3D computer-graphics applications. 1: Getting Started with GLSL Introduction Using a loading library to access the latest OpenGL functionality Using GLM for mathematics Determining the GLSL and OpenGL version Compiling a shader Linking a shader program Saving and loading a shader binary Loading a SPIR-V shader program 2: Working with GLSL Programs Introduction Sending data to a shader using vertex attributes and vertex buffer objects Getting a list of active vertex input attributes and locations Sending data to a shader using uniform variables Getting a list of active uniform variables Using uniform blocks and uniform buffer objects Using program pipelines Getting debug messages Building a C++ shader program class 3: The Basics of GLSL Shaders Introduction Diffuse and per-vertex shading with a single point light source Implementing the Phong reflection model Using functions in shaders Implementing two-sided shading Implementing flat shading Using subroutines to select shader functionality Discarding fragments to create a perforated look 4: Lighting and Shading Introduction Shading with multiple positional lights Shading with a directional light source Using per-fragment shading for improved realism The Blinn-Phong reflection model Simulating a spotlight Creating a cartoon shading effect Simulating fog A physically-based reflection model 5: Using Textures Introduction Applying a 2D texture Applying multiple textures Using alpha maps to discard pixels Using normal maps Parallax mapping Steep parallax mapping with self shadowing Simulating reflection with cube maps Simulating refraction with cube maps Applying a projected texture Rendering to a texture Using sampler objects Diffuse image-based lighting 6: Image Processing and Screen Space Techniques Introduction Applying an edge detection filter Applying a Gaussian blur filter Implementing HDR lighting with tone mapping Creating a bloom effect Using gamma correction to improve image quality Using multisample anti-aliasing Using deferred shading Screen space ambient occlusion Configuring the depth test Implementing order-independent transparency 7: Using Geometry and Tessellation Shaders Introduction Point sprites with the geometry shader Drawing a wireframe on top of a shaded mesh Drawing silhouette lines using the geometry shader Tessellating a curve Tessellating a 2D quad Tessellating a 3D surface Tessellating based on depth 8: Shadows Introduction Rendering shadows with shadow maps Anti-aliasing shadow edges with PCF Creating soft shadow edges with random sampling Creating shadows using shadow volumes and the geometry shader 9: Using Noise in Shaders Introduction Creating a noise texture using GLM Creating a seamless noise texture Creating a cloud-like effect Creating a wood-grain effect Creating a disintegration effect Creating a paint-spatter effect Creating a rusted metal effect Creating a night-vision effect 10: Particle Systems and Animation Introduction Animating a surface with vertex displacement Creating a particle fountain Creating a particle system using transform feedback Creating a particle system using instanced meshes Simulating fire with particles Simulating smoke with particles 11: Using Compute Shaders Introduction Implementing a particle simulation with the compute shader Creating a fractal texture using the compute shader Using the compute shader for cloth simulation Implementing an edge detection filter with the compute shader

Similar books