Introduction
  • Welcome
  • Join the H3D Student Community
  • FAQs
  • Help! Why can't I see my shaders correctly?
  • The Rendering Pipeline
  • Your First Surface Shader
  • Challenge
  • Crash Course in Vector Mathematics
Shader Essentials
  • Variables and Packed Arrays
  • The Anatomy of a Mesh and Shader Input
  • Shader Properties
  • Properties Challenge 1
  • Properties Challenge 2
  • Properties Challenge 3
  • Properties Challenge 4
Illuminating Surfaces
  • Lambert & Lighting
  • Normal Mapping
  • Bumped Diffuse Challenge
  • Visualising Normals
  • Illumination Models
  • Bumped Environments
  • Bumped Environments Challenge
  • Buffers and Queues
The Dot Product
  • The Dot Product
  • Quiz
  • Rim Lighting
  • Logical Cutoffs
  • Challenge
Lighting
  • Lighting Models
  • Blinn-Phong Lighting & Surface Output
  • Physically-Based Rendering
  • Challenge 1
  • Challenge 2
  • Writing Your Own Lighting Model
  • Challenge 3
  • Challenge 4
Passes & Blending
  • The Alpha Channel
  • Holograms
  • Blending
  • Leaves and Culling
  • Blending Two Images
  • Stencil Buffer
  • Advanced Stencils
Writing Vertex and Fragment Shaders
  • The Anatomy of a Vertex/Fragment Shader
  • Colouring by Vertices and Fragments
  • Material Use
  • Lighting
  • Shadows
  • Challenge 1
  • Challenge 2
Advanced Effects
  • Vertex Extruding
  • Outlining
  • Glass
  • Waves
  • Scrolling Textures
  • Challenge 1
  • Plasma
  • Challenge 2
Volumetric Rendering
  • Ray Marching
  • More on Ray Marching
  • Spherical Fog
  • Rendering Fog Density P1
  • Rendering Fog Density P2
  • Volumetric Clouds Value Noise
  • Programming Value Noise P1
  • Programming Value Noise P2
  • Programming Value Noise P3
  • Integrating Colours and Depth
  • Enhanced Noise
  • Clouds On Camera P1
  • Clouds On Camera P2
  • Clouds On Camera P3
  • Clouds On Camera P4
  • References
Final Words
  • Where to Now?
Appendices
  • Appendix A - CG Function List
  • Appendix B - Shader Cheat Sheet
  • Appendix C - Credits and Extra Resources