Fast and Gorgeous Erosion Filter
- Auto-discovered
Rune Skovbo Johansen
Visit resource ↗Description
Fast and Gorgeous Erosion Filter is a technical blog article by Rune Skovbo Johansen.
Blog post on a GPU-friendly procedural erosion filter that adds branching gullies and ridges by evaluating points independently instead of simulating rainfall. Explains gradient-aligned stripe octaves, cell-based rotation to avoid chaos, and how the filter layers onto any height function, with Shadertoy links. Aimed at graphics and procedural-terrain developers seeking fast eroded looks.
It is aimed at intermediate graphics programmers and matches the audience implied by Rune Skovbo Johansen's other work.
The article is a free HTML blog post meant to be read in one sitting, with diagrams or code snippets embedded in the page.
It is useful when you want practical detail beyond a title or store listing and prefer primary-source explanation from the author or maintainer.
Related resources
- Custom Renderer Features (Cyanilux)
Long-form Cyanilux guide to URP ScriptableRendererFeature and ScriptableRenderPass code: example effects, RTHandle setup, blit paths, and Unity 6 Render Graph notes.
100% match · <code><shaders><blog><any><explains><free><one><programmers> - Dissolve Shader Breakdown (Cyanilux)
URP Shader Graph breakdown by Cyanilux on dissolve effects: Step and noise clip fragments with glowing edges, height-axis variants, and view-space UVs to reduce seam artifacts.
100% match · <shaders><intermediate><blog><avoid><based><developers><free><height> - A gentle introduction to shaders (Alan Zucconi)
Alan Zucconi's A gentle introduction to shaders in Unity3D (June 2015) is part one of his Gentle Introduction series on alanzucconi.com, aimed at Unity developers new to GPU programs. It connects vertices, materials, and shaders in Unity's pipeline, covering ShaderLab Properties and SubShader layout, inspector uniforms, Queue tags, ZTest, and the surface-versus-vertex/fragment split for lighting versus effects. Little prior shader knowledge is assumed; fixed-function shaders are skipped as obsolete.
100% match · <shaders><blog><article><developers><free><gpu><programmers><source> - 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 · <shaders><intermediate><blog><article><free><friendly><one><post> - 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><blog><any><article><free><one><programmers> - Blur Renderer Feature Example/Template for URP / Unity 2021.2 (Alexander Ameye)
Custom Render Passes in Unity is Alexander Ameye's July 2021 ameye.dev note on URP ScriptableRendererFeature and ScriptableRenderPass boilerplate, heavily commented where Unity SRP documentation still feels sparse. The sample applies a two-pass box blur: blit camera color to a temporary buffer, blur vertically then horizontally, with adjustable strength and downsampling.
100% match · <code><shaders><intermediate><blog><article><free><function><programmers> - BruteForceGame
Matthieu Houllier's Brute Force studio blog documenting Crumble, a Unity physics platformer released on Steam in late 2020. Devlogs walk through shipped shaders: shell grass ben
100% match · <shaders><intermediate><blog><article><developers><free><practical><technical> - 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 · <intermediate><blog><article><based><free><practical><procedural><programmers> - The Perlin Problem: Moving Past Square Noise (NoisePosti.ng)
NoisePosti.ng article “The Perlin Problem” analyzes directional square artifacts in classic Perlin noise and motivates alternative gradient noise formulations for modern procedural
100% match · <intermediate><blog><article><free><one><practical><procedural><programmers> - Stylized GGX shading — toon specular highlights
Technical blog post by Alexandre Lamure on stylized GGX shading that mixes toon-like specular highlights with physically based GGX.
100% match · <math><shaders><intermediate><blog><based><post><programmers><seeking> - 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><intermediate><blog><article><author><free><html> - An Experimental Approach to printf in HLSL
An Experimental Approach to printf in HLSL is a December 2025 technical post by Chris Bieneman describing a holiday prototype for GPU-side printf in HLSL. It covers GPU string…
100% match · <code><shaders><blog><article><author><based><free><gpu> - Realtime Raytracing in Bevy 0.18 (Solari)
Realtime Raytracing in Bevy 0.18 (Solari) is a December 2025 development post by jms55 on quality and performance work for Solari, Bevy's dynamic ray-traced lighting path planned…
100% match · <code><shaders><blog><article><evaluating><free><html><intermediate> - OpenUSD Core Spec 1.0 is Here: Now We Need You
OpenUSD Core Spec 1.0 is Here: Now We Need You is an Alliance for OpenUSD blog post by Aaron Luk and Nick Porcino announcing ratification of the OpenUSD Core Specification…
100% match · <code><intermediate><blog><article><fast><free><listing><one> - Around The World, Part 28: Scaling up
This is part 28 of Thomas ten Cate's Around The World development blog about an early-stage sea exploration game in Godot.
100% match · <code><intermediate><blog><article><based><developers><diagrams><free> - Eliminate Slope Stretching - Terrain Shaders - Episode 8
Eliminate Slope Stretching is episode 8 of Ben Cloward's terrain shaders series.
100% match · <shaders><intermediate><free><height><layers><one><technical><terrain> - 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><aimed><based><fast><free><page><programmers> - Focus on Your Algorithm—NVIDIA CUDA Tile Handles the Hardware
This is an NVIDIA developer blog by Jonathan Bentz and Tony Scudiero introducing CUDA Tile in CUDA 13.1 as a virtual instruction set for tile-based GPU programming that abstracts…
100% match · <code><intermediate><blog><based><detail><developers><diagrams><free> - 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><intermediate><aimed><aligned><based><cell><free> - 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><intermediate><blog><article><free><post><programmers>