GPU Shader Experiments
Real-time procedural 3D scene generation using ray marching and distance field accelerated rendering techniques.
Water
Fresnel reflections, fractal noise animation and height maps, refraction and transparency.
Choppy Waves - improved sea water shading. High-resolution render with anti-aliasing.
Deep Sea Waves - sea water shading, fresnel reflections and attenuation. High-resolution render with anti-aliasing and distance blur effect.
Volumetic Clouds - volumetic clouds over deep sea water. Thanks to David Hoskins technique from shadertoy for the clouds magic.
Sandy Shore - sandy shoreline with water refraction. High-resolution render with anti-aliasing.
Ibiza Sunset - sunset shoreline with beach ball. This has multiple surface types and a simplified shadow test to keep the performance up. High-resolution render.
Simple Waves - first try at moving water surface - basic plane deformation, simple reflections.
Terrain
Fractal noise height maps, natural lighting, fogging.
Mountains (in the sunset) - several techniques combined and refined, including real-time fractal noise based terrain generation, natural lighting and height based fogging. Inspiration is again from IQ's amazing work. High-resolution render with anti-aliasing. Nice pink sunset version of same scene. Also a version with reflective water.
Mountains Terrain 1 - more real-time fractal noise based terrain generation, experimenting and learning new noise generation techniques. Trying to add detail to noise in interesting ways. High-resolution render with anti-aliasing.
Mountains Terrain 2 - noise based terrain generation - this one has nice valleys with sharp peaks, details are smoother. Learnt more noise techniques from this article. High-resolution render with anti-aliasing, and another.
Crater Terrain - advanced noise based crater terrain generation. This article has details on using the derivatives from perlin noise to improve the terrain. High-resolution render with anti-aliasing, and another.
Really enjoyed experimenting with this terrain, so tried adding reflective water etc. which looks nice but was no longer real-time! Here are a few renders of the lakes in the mountains: [1] [2] [3]
Circles of Hell - depth fogging and perlin noise based terrian marching. The fog and glowing rock colour creates quite a hellish atmosphere! High-resolution render with anti-aliasing.
Tried some experiments with real 3D noise fractal terrain - everything else above is made from simple 2D fractal height maps. This allows overhangs, caves and proper depth etc. in the surface but is definitely not real-time! Here are some of the rock surface results: [1] [2] [3] [4] [5]
Fractals
Mandel, Menger and Sierpinski fractals generated in real-time.
Fractal Tunnel - real-time 3D fractal tunnel with advanced texturing and reflections.
Fractal - real-time 3D Sierpinski triangle fractal formula from here. High-resolution render with anti-aliasing.
Mandelbulb - real-time 3D mandelbulb fractal - with cool animation of the fractal power factor - formula from here. High-resolution render with anti-aliasing.
Mandelbox - explore the strange world of the mandelbox! Another very cool 3D fractal in real-time, see this thread for more info. High-resolution render with depth-of-field effect.
Mandelcube - Borg Cube?! Outside a more solid looking version of the mandelbox fractal.
Mengersponge - Inside the menger sponge fractal - a three-dimensional analog of the Sierpinski carpet, apparently.
Mengersponge 2 - A modified menger sponge cube - idea and original formula from IQ. This one looks nice with anti-aliasing on - and isn't too slow considering it's real-time!
Shiny Things
Reflections, soft shadows, procedural surfaces.
Point Lighting - good quality shadows from a point light source, blinn specular highlights and textured marble surface.
Reflective Spheres - real-time reflections, shadows and general old-skool shinyness.
Reflections and liquid metal - reflections, shadows and some liquid metal "Terminator 2" effects on a classic marble floor.
Reflective materials over water - reflections, shadows and multiple material types.
Infinite shape field - randomly generated, highly reflective shapes over liquid metal surface.
Polyhedra & Knots
Shapes, folds and knots with formulas mainly from www.fractalforums.com.
Trefoil Knot 1 - a set of interesting knot shapes - play with the parameters to create different variations.
Trefoil Knot 2 - on a classic checkerboard floor material with noise texture on the knot surface, plus real-time depth-of-field effect when anti-aliasing is enabled.
Polyhedra Playground 1 - lots of shape possibilities using the 'cut and fold' icosahedral polyhedra generation technique.
Polyhedra Playground 2 - more advanced combination of 'cut and fold' - generates more elaborate shapes. High-resolution render with anti-aliasing and depth-of-field effect.
Polyhedra Playground 3 - textured polyhedra shapes shown as faces, vertices and segments.
Miscellaneous & Demos
Stuff that doesn't fit anywhere else, and early attempts at the technique.
Distance Field - Lighting, shadows, AO and camera animation. High-resolution render with anti-aliasing and depth-of-field effect.
Subsurface Hexfield - trying out sub-surface scattering glow effects. High-resolution render with anti-aliasing and depth-of-field effect.
Animated Hexfield - hemispherical AO from this article plus edge rendering.
Shaded Hexfield - hemispherical AO, texture bump mapping with simple environment mapping and edge rendering.
Glowing Columns - more sub-surface scattering glow effects on larger objects, with some wizzy camera animation.
Alien Lake - plane deformation with noise textures, reflections and post effects.
Animated CSG shape - animation of various cut out shapes.
Distance Field 1 - my first success once I got the technique working! Pretty basic compared to the others here, but you have to start somewhere right?
Resources
Lots of code/ideas for these demos come from reading and experimenting with techniques from the following resources:
http://www.iquilezles.org/www/material/nvscene2008/rwwtt.pdf
Ray Marching Toolbox thread (pouet.net)
Ray Marching Beginners thread (pouet.net)
http://iquilezles.org/www/articles/distfunctions/distfunctions.htm
The general technique is explained from page 21 onwards in the above PDF link. If you want to understand this stuff read through the PDF and pouet.net links above!