After creating Turtletoy, it was easy to create a second toy website: Oneshader. OneShader is an online tool for creating and sharing WebGL fragment shaders. You don’t have access to 3D models, textures, buffers, or any other (external) resources, so
This shader is a proof of concept to find out if I could create a “typical” Shadertoy shader, i.e. a shader that renders a non-trivial animated 3D scene, by using a ray tracer instead of the commonly used raymarching techniques.
Ray Tracing – Primitives
I created a reference shader with ray-primitive intersection routines on Shadertoy. A simple path tracer is used to visualize the scene.
Yet another Cornell Box
Yet another Cornell Box: a path tracer in a single fragment shader on Shadertoy. Direct light sampling is used to reduce noise. The scene is rendered using 12 samples per pixel.
Augmented Reality and Shadertoy
By combining the webcam texture and the WebVR functionality of Shadertoy, I was able to create two “Augmented Reality” fragment shaders.
Raytracing: the next week
It’s the next week so time for “Raytracing: the next week” by Peter Shirley. Again, I implemented some of the chapters of the book in four shaders on Shadertoy.
Raytracing in one weekend
I know I’m a bit late to the party, but I had a lot of fun reading “Ray tracing in one weekend” by Peter Shirley yesterday. I implemented some of the chapters of the book in four shaders on Shadertoy.
Old watch: a WebGL path tracer
A simple path tracer is used to render an old watch. The old watch scene is (almost) the same scene as rendered using image-based lighting in my Shadertoy shader “Old watch (IBL).”
A shader quine
I created a shader quine, a fragment shader without input (textures or models) that produces a copy of its own source code as its output, on Shadertoy.
An organic-looking SDF scene in a single, fully procedural, fragment shader. The scene is modelled for this specific camera viewpoint and lighting setup.
“Human Document” – my entry for the Shadertoy Competition 2018. A bit to my surprise, this shader turned out to be the winning entry :) You can find (the full source of) the fragment shader here: https://www.shadertoy.com/view/XtcyW4.
Paratrooper (playable DOS game in a shader)
Paratrooper, a playable DOS game in a fragment shader.
Volumetric clouds: Himalays
This is my first attempt to render volumetric clouds in a fragment shader. Initially, I started implementing the clouds of Horizon Zero Dawn, as described in “The real-time volumetric cloudscapes of Horizon Zero Dawn” by Andrew Schneider and Nathan Vos.
This shader uses Image-Based Lighting to render an old watch. The materials of the objects in the scene have physically-based properties.
Raymarching distance fields
This shader was created for the Shadertoy Competition 2017. The shader is a tutorial about raymarching distance fields (using a ray marcher in Shadertoy).
Shadertoy iOS app
In the first two weeks of September (2015) I created an app to view and run shaders of Shadertoy on my iPhone. After finishing the first version of this app I was very pleased that Pol Jeremias and Iñigo Quílez
Rendering a planet with two triangles
I wrote another WebGL fragment shader on Shadertoy. This shader renders a seamless space-to-surface flight in the browser using only two triangles. No textures or 3d-models are used. The procedural planet shown is rendered with only two triangles (a fullscreen
Just a repost of one of my first shaders on Shadertoy. This is a simple realtime path tracer, implemented in a WebGL fragment shader. The shader shows motion blur, depth of field and importance sampling.
Tokyo – breakdown of a webgl fragment shader
I have made another WebGL fragment shader on Shadertoy: Tokyo. This shader shows an abstract, procedural view of Tokyo by night in the rain. In this post, I will write up some notes about how this shader is made. (By
I made another shader in Shadertoy. Two triangles are rendered using a WebGL fragment shader showing an abandoned base. The scene is rendered by ray-marching a distance field and features dynamic lights, soft shadows, reflections and ambient occlusion.