Raymarching Distance Fields (2008-2020 compilation)
iquilezles.org
iquilezles.org
* https://web.archive.org/web/20160519071801/http://freespace....
The source is available here: https://github.com/mmp/pbrt-v3/
The latest text has an additional author: Wenzel Jakob
https://www.shadertoy.com/view/ldd3DX
// Created by inigo quilez - iq/2018
// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
// A surfer boy in the beach, disney/pixar style. I had to be very careful
// with the complexity, otherwise the browser would crash during shader
// compilation. I also had to split the boy in two layers because of that,
// see below (the single pass version is smaller of course but takes 3 extra
// seconds to compile, and renders a bit more slowly)
//
// This is totally painted to camera, it won't work from others perspectives.
//
// Common - contains some basic stuff
// Buffer A - renders the brackground - not super polished really
// Buffer B - blurs the background
// Buffer C - paints the boy, except the hand and the board
// Image - paints the hand and the board, and does some minimal postpro
//
// If you have a slow PC, you can watch it here:
https://www.youtube.com/watch?v=ya3FRzuozQ0And Happy Jumping:
https://www.shadertoy.com/view/3lsSzf
// Created by inigo quilez - iq/2019
// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
//
//
// An animation test - a happy and blobby creature jumping and
// looking around. It gets off-model very often, but it looks
// good enough I think.
//
// Making-of and related math/shader/art explanations (6 hours
// long): https://www.youtube.com/watch?v=Cfe5UQ-1L9Q
//
// Video capture:
https://www.youtube.com/watch?v=s_UOFo2IULQ //
// You can buy a metal print of this shader here:
https://www.redbubble.com/i/metal-print/Happy-Jumping-by-Ini...One of the best Siggraph papers from last year was Monte Carlo Geometry Processing http://www.cs.cmu.edu/~kmcrane/Projects/MonteCarloGeometryPr.... It doesn't introduce a new representation, but does introduce a new way to render various representations by sampling them in a unified way
Someone really needs to update this to work with current headsets and controllers: https://github.com/jimbo00000/RiftRay
(it works on the Rift last time I checked but uses the original 3DOF remove for interactions)
It was a specially optimized version to be able to run at full framerate on the hardware of that time. I have looked for it but it doesn't seem to be available anywhere.
There is a Shadertoy version but without the optimization and last time I tried I actually had to tweak it a little to make it compile.
API overhead caused by WebGL is absolutely minuscule.
Raymarching is heavily shader dependent which shouldn't be bottlenecked by webgl at all.
Some of the slides here seem to support this: https://www.khronos.org/assets/uploads/developers/library/20...