Wednesday, May 22, 2013

OpenGL Development Cookbook

Hi all,
  I have been extremely busy these couple of months with my book OpenGL Development Cookbook by Packt publishing. Its is a collection of recipes in OpenGL 3.3 core profile. The RAW form of the book is available here: http://www.packtpub.com/opengl-development-cookbook/book. I am already through with the final drafts.

All of the source code for the book will be hosted on github. Currently, I include visualstudio 2010 solution files and will be doing a premake version for other platforms. The detailed book contents are as follows:

Chapter 1 - Introduction to Modern OpenGL Development
   - Setting up OpenGL 3.3 core profile in VisualStudio 2010 with freeglut, glew and glm libs
   - Rendering a simple coloured triangles using shaders
   - Ripple deformer in vertex shader
   - Dynamic sub-division of a plane using geometry shader
   - Dynamic sub-division with geometry shader and instanced rendering
   - Drawing a 2D image using SOIL and fragment shader

Chapter 2 - 3D Viewing and Object Picking System Development 
   - A vector based camera model with FPS style input
   - Free Camera
   - Target Camera
   - View Frustum Culling
   - Object Picking using Depth Buffer
   - Object Picking using Colour Buffer
   - Object Picking using Scene Intersection Queries 

Chapter 3 - Offscreen Rendering and Environment Mapping
   - Twirl Filter using Fragment Shader
   - Skybox using Static Cube Mapping
   - Mirror using Render-to-Texture with FBO
   - Reflective Object using Dynamic Cube Mapping
   - Area Filtering (Sharpening/Blurring/Embossing) using Digital Convolution
   - Glow Effect

Chapter 4 - Lights and Shadows
   -  Per-vertex and Per-fragment Point Lighting
   -  Per-fragment Directional Light
   -  Per-fragment Point Light with Attenuation
   -  Per-fragment Spot Light
   -  Shadow Mapping with FBO
   -  Shadow Mapping with percentage closer filtering (PCF)
   -  Variance Shadow Mapping

Chapter 5 - Working with Mesh Model Formats and Simple Particle Systems
   -  Loading Terrains using Heightmaps
   -  3DS Model Loading using Separate Buffer Objects
   -  OBJ Model Loading using Interleaved Buffer Objects
   -  EZMesh Model Loading
   -  Simple Particle System

Chapter 6 - GPU-based Global Illumination and Alpha Blending Techniques
   -  Depth Peeling
   -  Dual Depth Peeling
   -  Screen Space Ambient Occlusion
   -  Spherical Harmonics
   -  GPU Ray Tracing
   -  GPU Path Tracing

Chapter 7 - GPU-based Volume Rendering Techniques
   -  Volume Rendering using 3D Texture Slicing
   -   Volume Rendering using Single-pass GPU Ray Casting
   -   Pseudo-isosurface Rendering in Single-pass GPU Ray Casting
   -   Volume Rendering using Splatting
   -   Transfer Function for Volume Classification
   -   Polygonal Isosurface Extraction using Marching Tetrahedra Algorithm
   -   Volumetric Lighting using Half Angle Slicing

Chapter 8 - Skeletal and Physically-based Simulation on the GPU
   -   Skeletal Animation using Matrix Palette Skinning
   -   Skeletal Animation using Dual Quaternion Skinning
   -   Modelling Cloth using Transform Feedback
   -   Collision Detection and Response on Transform Feedback Cloth
   -   Particle System using Transform Feedback


As you can see, there are plenty of techniques on offer. I do hope people find this book useful.
I will detail the github code repository soon.

Some sample Figures from the book.







Skeletal Animation using Matrix Palette Skinning












Ripple Deformer using Vertex Shader













Variance Shadow Mapping






Half Angle Slicing













 Dynamic Cube Mapping







 

I will update this post with more information soon.
Thanks,
Mobeen