Exploring an Alternative Diffuse Shading Model for Computer Graphics
By
ibobev
Slow-proofed and worth the wait. Worth its weight in flour.
Summary
This article presents a humorous, intentionally flawed diffuse shading model for computer graphics as a New Year's Eve thought experiment. The author critiques the standard Lambertian diffuse lighting model (max(0, L·N)) and proposes an alternative 'silly' model that uses the absolute value of the dot product (|L·N|) instead. The article explores the mathematical and visual implications of this alternative approach, discussing how it would affect lighting calculations, particularly for surfaces facing away from light sources, and serves as a playful exploration of graphics programming concepts.
Key quotes
· 5 pulledWe all know that the proper lighting factor (i.e. proportion of reflected incoming light) for a completely diffuse (aka Lambertian) surface is max(0, L·N).
What if we used the absolute value of the dot product instead? That is, what if we used |L·N| instead of max(0, L·N)?
This is a silly model because it doesn't make physical sense - surfaces facing away from the light source shouldn't be lit at all!
But it's interesting to think about what would happen if we used this model anyway.
Happy New Year for those who celebrate! Happy Arbitrarily Chosen Point in Earth's Orbit for those who don't!
You might also wanna read
Rendering Realistic Skies and Planetary Atmospheres in Real-Time with Shaders
This article explores the technical and visual process of rendering realistic skies, sunsets, and planetary atmospheres in real-time using b
Exploring surfel-based global illumination with WebGPU on the open web
A technical blog post exploring the use of WebGPU to compute real-time global illumination using surfels (surface patches). The author inves
Implementing Colored Penumbra Shadow Effects in Unreal Engine 5
This article describes a technique for implementing "Colored Penumbra" or "Colored Shadow Terminator" effects in Unreal Engine 5. The author
Experimental WebGPU Physics Engine Using AVBD Solver for Rigid-Body and Soft-Body Simulations
This article presents an experimental WebGPU physics engine called webphysics that implements an AVBD-style (Augmented Vertex Block Descent)
TrueType Font Contains 3D Raycasting Engine in Hinting Virtual Machine
A developer created a DOOM-style 3D raycasting engine that runs inside a TrueType font's hinting virtual machine. The project exploits the T
Slug Algorithm: 10 Years of GPU-Based Font Rendering Technology
Eric Lengyel reflects on the 10-year anniversary of the Slug Algorithm, a GPU-based font rendering technique he developed in 2016. The artic
