Fog rendering
- Auto-discovered
Nicholas Chapman
Visit resource ↗Description
Fog rendering is a March 2026 technical note by Nicholas Chapman on Forward Scattering deriving classic fog blending and exponential height fog from volumetric transport.
It starts from a participating-media integral with constant incoming radiance, shows how transmittance yields a lerp between fog color and surface color when the scattering-to-extinction ratio is constant, then derives optical depth for extinction that falls off exponentially with height, including the horizontal-ray case.
It is for intermediate to advanced graphics programmers implementing height fog or reviewing why simple fog lerps are justified under stated assumptions.
The page is a free self-contained math write-up with before/after fog images and closed-form expressions.
It is useful when you need exponential height-fog transmittance formulas without digging through engine source.
Related resources
- Blending Meshes into Terrain (Inresin)
Louis Waloschek's April 2020 Inresin tutorial blends static meshes into Unity Terrain using baked depth masks and Amplify surface shaders.
100% match · <code><shaders><advanced><blog><before><between><blending><free> - Creating a Volumetric Ray Marcher
The post builds a march loop along the camera ray inside a mesh volume, sampling tiled 2D slice atlases as pseudo-3D density, accumulating opacity, and clipping to a bounding box while supporting o…
100% match · <shaders><blog><advanced><engine><fog><including><march><math> - Drawing Thousands of Meshes with DrawMeshInstanced / Indirect (Toqoz)
Toqoz's November 2019 toqoz.fyi post walks through drawing very large mesh counts in Unity with Graphics.DrawMeshInstanced and Graphics.DrawMeshInstancedIndirect, with C# samples,
100% match · <code><shaders><advanced><blog><before><between><color><depth> - Effect Texture Maker
Official docs list sixty-eight templates, resolutions to 2048, animation and sprite sheets, three-way color balance, normal maps, and PNG alpha export.
100% match · <blending><color><free><images><intermediate><need><ray><source> - Freya Holmér's Math Visualizations
Topics include dot and cross products, lerp, radians, Bézier curves, point-in-triangle tests, curvature, Voronoi tessellation, and trochoidal waves - each clip emphasizes motion over notation.
100% match · <blog><before><engine><free><intermediate><math><media><need> - Half-Edge Data Structure
The flipcode archives article from August 2000 explains the half-edge b-rep for triangle meshes.
100% match · <blog><classic><constant><implementing><intermediate><page><programmers><technical> - My take on shaders : Parallax effect (part 1) (Harry Alisavakis)
Harry Alisavakis posted this in February 2019 as part one of a two-part Unity parallax tutorial.
100% match · <shaders><blog><after><before><depth><free><height><math> - Parallax Occlusion Mapping in GLSL
Archived Sun and Black Cat graphics tip #28 walks through parallax occlusion mapping with ray marching in tangent space, height texture sampling, and linear refinement between layer hits. Shows how to build a TBN matrix, step UVs along the view ray, and compare sampled height against ray depth until intersection - patterns echoed in many Unity HLSL ports on GitHub. Useful when you want a compact POM reference independent of engine-specific Shader Graph nodes.
100% match · <shaders><blog><before><between><contained><depth><height><need> - A silly diffuse shading model
A silly diffuse shading model is a December 2025 post on the lisyarus graphics blog about a one-liner alternative to classic Lambertian diffuse for tech demos and early…
100% match · <math><shaders><blog><before><classic><form><formulas><free> - Getting started with BGFX
[video] Getting started with BGFX is a YouTube playlist by Game Coder Nz that walks through the bgfx cross-platform rendering library from a blank project to basic 3D and UI…
100% match · <code><shaders><before><blending><color><depth><engine><free> - MeshSplatting: Differentiable Rendering with Opaque Meshes
MeshSplatting: Differentiable Rendering with Opaque Meshes presents a mesh-based novel view synthesis method by Jan Held and collaborators that jointly optimizes geometry and…
100% match · <code><math><advanced><engine><free><need><page><programmers> - Eliminate Slope Stretching - Terrain Shaders - Episode 8
Eliminate Slope Stretching is episode 8 of Ben Cloward's terrain shaders series.
100% match · <shaders><blending><color><engine><free><height><intermediate><math> - Implicit Position-Based Fluids (IPBF)
Implicit Position-Based Fluids (IPBF) presents a Utah Graphics Lab incompressible SPH method by Elie Diaz, Jerry Hsu, Eisen Montalvo-Ruiz, Chris Giles, and Cem Yuksel that uses…
100% match · <code><math><advanced><classic><forward><free><implementing><page> - Minimalist ray-tracing leveraging only acceleration structures
This is an AnKi 3D Engine blog post by Panagiotis Christopoulos Charitos on a lightweight potato-mode ray-tracing path using only acceleration structures and ray queries instead…
100% match · <code><shaders><advanced><blog><color><engine><form><free> - A series of tricks and techniques I learned doing tiny GLSL demos
A series of tricks and techniques I learned doing tiny GLSL demos is a December 2025 blog post by bµg about lessons from size-constrained GLSL demos after the earlier Red Alp…
100% match · <code><math><shaders><advanced><blog><after><free><intermediate> - Demystifying Vulkan Ray Tracing
Demystifying Vulkan Ray Tracing is a conference talk on the Conferenza Italiana sul Game Development YouTube channel that builds a mental model of ray tracing and a…
100% match · <code><shaders><before><case><free><intermediate><programmers><ray> - Coding Adventure: Simulating Smoke
This YouTube Coding Adventure video by Sebastian Lague builds a grid-based smoke simulation from first principles as one episode in the Coding Adventures series. It covers…
100% match · <code><math><free><need><programmers><useful><without><write> - Better sRGB to greyscale conversion
Better sRGB to greyscale conversion is an October 2025 technical blog post on 30fps.net about converting gamma-encoded sRGB to greyscale without misusing Rec.
100% match · <math><shaders><blog><between><color><formulas><free><images> - WebGPU and the price of compiling WGSL
WebGPU and the price of compiling WGSL is a blog post by Hugo Daniel introducing a WebGPU diagnostics and compilation-benchmark tool after earlier posts on WGSL limits. It…
100% match · <code><shaders><blog><after><before><depth><free><need> - Reinforcement Learning 04 : Motion Fields For Interactive Character Animation
Reinforcement Learning 04 : Motion Fields For Interactive Character Animation is a YouTube implementation talk on the Animation Tech channel where Jerome rebuilds ideas from the…
100% match · <code><math><advanced><between><blending><free><programmers><technical>