i c the light
Distance Estimation / Ray Marching
The Science of Fractal Images, Heinz-Otto Peitgen and Dietmar Saupe, eds.
Fractal rendering algorithms.
Ray Tracing Deterministic 3-D Fractals by John C. Hart et. al (1989)
The first paper on distance-estimating 3d fractals as a ray-marching technique!
Distance Estimated 3D Fractals
Distance-estimated 3D fractals. This is what I really want to do, and the source that lead me to this.
Demoscene Presentation on Ray Marching
“Don’t define the surface first and then compute the distance field, but directly code a distance field and a surface will emerge.”
Unfortunately, a lot of the links in this presentation are dead.
Ray march shaders on Stack Exchange
A nice overview of what the algorithm is with unfortunately and understandably little on the specifics of applying it.
Sample functions for various primitive objects in a ShaderToy
Made by Iñigo Quilez, who seems to be very prominent in this scene.
More information here on his website.
Also shows how to calculate binary intersections (unions, subtractions, and intersections) of objects, repeat/rotate/translate/scale objects, displace and blend objects, and more. This is a gold mine.
Terrain Ray Marching
Also by Iñigo Quilez.
Ray marching soft shadows
Thanks Iñigo Quilez.
Ray marching with THREE.js
Open Source Ray Tracers And Guides
Introduction to Ray Tracing: a Simple Method for Creating 3D Images
A more conceptual overview of the topic.
Fuzzy Photon — How to write a Raytracer
Gets into details with specific problems and code examples.
UCI RayTracing Tutorial
Contains more information on depth of field, isosurfaces (blobs), and auto exposure.
Luminosity ray tracer written in Haskell
A lot of more mathematical language here, as should be expected from a Haskell project.
Purple Alien Planet Raytracer written in C
An open-source implementation containing lots of math and explanations for the underlying algorithms.
The Rendering Equation
The rendering equation describes the total amount of light emitted from a point x along a particular viewing direction, given a function for incoming light and a BRDF.
SDL Skeleton capable of drawing pixels to the screen
This may have saved me effort in writing boilerplate, although I had already done most of this earlier. It’s definitely good to have another reference, though.
Understanding Perlin Noise
Perlin noise for procedural textures, reads a lot on 2d noise (because of simplicity to explain and diagram) but still very digestible. A lot like the Eevee link.
Improved Noise reference implementation
A compact (3062-byte) Java implementation of Perlin noise, by Perlin himself. Not dynamic or 4-dimensional, and filled with many weird hacks, but a good starting point.