Spatial hashing for raytraced ambient occlusion
- Auto-discovered
Kostas Anagnostou
Visit resource ↗Description
Spatial hashing for raytraced ambient occlusion is a November 2025 Interplay of Light post by Kostas Anagnostou on caching RTAO in a sparse spatial hash instead of dense 3D textures.
It covers nested pcg hashing of quantized position and normal, xxhash32 checksums, linear probing, packed hit and sample counts, distance-adaptive cell size, age-based eviction, early stop after enough samples, and optional tangent-plane jitter, with static-scene timing versus noisy RTAO.
It is for advanced real-time GI programmers comfortable with compute buffers and hemisphere sampling. Dynamic objects are left for later work.
The article is free WordPress HTML with diagrams and code. No separate download is required.
It is useful when RTAO is stable on static geometry but too noisy or expensive, and you want a practical hash-grid cache with LOD-aware cells.
Related resources
- Foundations of Game Engine Development Vol. 2 - Rendering
Second volume on real-time rendering for engine developers - color science, projections, lighting, shadows, fog, visibility, and advanced topics like volumetrics and ambient…
100% match · <advanced><ambient><early><light><normal><occlusion><tangent><textures> - Using grid to speed up dynamic collisions
The solver already handles velocity integration, static SDF colliders, iterative dynamic collisions, constraints, and invalid-position correction with Burst-compiled Unity Jobs.
100% match · <code><optimization><blog><cell><comfortable><dynamic><geometry><grid> - Water Shader Breakdown (Cyanilux)
Water Shader Breakdown on cyanilux.com is a free Unity URP Shader Graph tutorial by Cyanilux (updated 2023).
100% match · <blog><based><free><objects><position><sample><samples><scene> - Believable Caustics Reflections (Alan Zucconi)
Believable Caustics Reflections is Alan Zucconi's September 2019 Unity blog post on faking pool-style ripple caustics without ray tracing, sparked by Florian Gelzenleuchter's popular shader GIF. One tileable texture is sampled twice in a Surface shader at different scales and scroll speeds, combined with min(), then tinted onto albedo with slight RGB UV offsets for dispersion. The walkthrough covers _ST tiling, _Time animation, HDR albedo above 1.0, and Post Processing Stack v2 bloom.
100% match · <blog><article><free><post><programmers><real><size><time> - 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><advanced><blog><article><aware><covers><free><normal> - Constraint-Based Tile Generators (BorisTheBrave)
Constraint-Based Tile Generators is BorisTheBrave's October 2021 survey unifying WaveFunctionCollapse and Model Synthesis as constraint-based tile generators that fill a grid under hard local rules. Boris organizes variants by model (adjacency versus overlapping patches), constraint inference from samples, labels, or tile borders, solvers from arc consistency to Z3, cell and tile heuristics, contradiction handling, and non-square grids.
100% match · <blog><article><based><free><grid><practical><programmers><real> - 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 · <blog><advanced><article><comfortable><counts><post><real><sample> - Custom Post Processing in URP / Unity 2021.3 (Febucci)
Federico Bellucci's May 2022 Febucci article covers custom post-processing in Unity URP on Unity 2021.x (URP 12.1.5), when volume-backed custom effects lacked clear docs.
100% match · <code><blog><article><free><post><programmers><real><time> - Easing Functions
Easings.net is a free interactive cheat sheet by Andrey Sitnik and Ivan Solovev for choosing easing functions that control how a parameter changes over normalized animation time. The catalog lists quad, cubic, quart, quint, exponential, circular, elastic, and bounce curves in ease-in, ease-out, and ease-in-out forms.
100% match · <blog><after><article><free><objects><programmers><real><stop> - Edge detection outlines (Alexander Ameye)
Alexander Ameye's December 2024 note shows screen-space edge detection outlines for Unity 6 and Unity 2022.3+ on URP, citing stylized games such as Mars First Logistics and Rollerdrome. A ScriptableRendererFeature adds a full-screen pass (Execute on 2022, Render Graph on Unity 6) and a Hidden/Edge Detection HLSL shader.
100% match · <advanced><blog><after><article><based><free><post><programmers> - Half-Edge Data Structure
The flipcode archives article from August 2000 explains the half-edge b-rep for triangle meshes.
100% match · <blog><article><diagrams><geometry><html><linear><programmers><static> - Inresin
Louis Waloschek's WordPress technical art blog: a small set of long Unity Built-In Render Pipeline tutorials rather than a formal curriculum. Articles cover selective PPv2 effects by packing mask data into opaque shader alpha, stylized interior lighting faked with global position arrays and C# managers, and terrain-mesh blending through auxiliary cameras and replacement shaders.
100% match · <blog><article><covers><free><objects><position><post><programmers> - Rendering Realtime Caustics (Alexander Ameye)
Alexander Ameye documents a Unity real-time caustics approach using projected textures or light cookies combined with depth-aware sampling, building on his render-feature tutorials. Explains artist controls, performance pitfalls, and when to fake caustics versus offline path tracing.
100% match · <blog><article><free><position><programmers><real><scene><textures> - second post discussing 3D
BorisTheBrave’s 2018 post is the 3D installment of a marching-cubes series on smooth destructible terrain.
100% match · <blog><article><cell><free><grid><post><programmers><real> - Simon Trümpler / Simonschreibt
Simon Trümpler’s Simonschreibt.de is a long-running German/English technical art blog covering stylized environments, hand-painted texturing, Substance workflows, and shader-adjace
100% match · <blog><article><expensive><free><programmers><real><scene><time> - Twitter (Freya Holmér) > Lerp, Inverse Lerp & Remap
Freya Holmér’s Twitter thread explains lerp, inverse lerp, and remap with intuitive graphics metaphors for shader and gameplay math. Short social post format - best as a concept
100% match · <blog><article><based><free><post><programmers><real><time> - Occlusion-Point Reuse for Ray-Traced Ambient Occlusion and Shadow
Occlusion-Point Reuse for Ray-Traced Ambient Occlusion and Shadow is a paper by Haojie Jin, Fujia Su, Zehui Lin, Chenxiao Hu, Jierui Ren, Yuqing Yuan, Yanchen Zhang, Zhongtao…
100% match · <code><optimization><advanced><ambient><hit><light><occlusion><practical> - Generating Mipmaps // Vulkan For Beginners #31
Generating Mipmaps // Vulkan For Beginners #31 is a free YouTube video on the OGLDEV channel, an installment in the Vulkan For Beginners tutorial series. Episode 31 of OGLDEV’s…
100% match · <code><after><free><lod><practical><programmers><textures><useful> - MaterialX: The Past, Present and Future of Portable Materials
MaterialX: The Past, Present and Future of Portable Materials is a recorded talk by Alain Hostettler, presented at High-Performance Graphics (HPG). HPG talk by Alain Hostettler…
100% match · <based><free><light><practical><programmers><useful><want><work> - Adaptive Catmull-Clark Subdivision with Compute Tessellation
Filmic Worlds post by John Hable on adaptive Catmull-Clark subdivision for real-time rendering using compute tessellation instead of hardware tessellation alone.
100% match · <code><math><advanced><blog><adaptive><compute><covers><instead>