NVScene 2015 Session: How to Create Content with Signed Distance Functions (Johann Korndörfer)
NVScene3 HN recommenders · recommended in 3 months, 2017–2018
talk · intermediate · evergreen · 2017–2018 on HN
Johann Korndorfer's NVScene 2015 talk on building content with signed distance functions. It focuses on patterns that make SDF modelling more structured, arguing that SDFs capture a shape's essence like vector graphics do compared with polygons or voxels.
Recommended as an excellent talk from a demoscene practitioner on how to build sophisticated scenes from distance functions.
Up next
3 mo on HNPRACTICE 2018: Joseph White
NYU Game Center
2 HN recommender · 2018–2022
7 mo on HNExploring the Tech and Design of Noita
GDC Festival of Gaming
7 HN recommender · 2020–2026
6 mo on HNAlex Evans at Umbra Ignite 2015: Learning From Failure
Media Molecule
7 HN recommender · 2017–2026
9 mo on HNMindfulness with Jon Kabat-Zinn
Google
11 HN recommender · 2009–2017
5 mo on HNLibreSSL with Bob Beck
Jason Tubnor
6 HN recommender · 2014–2025
7 mo on HNEp. 1 - Awakening from the Meaning Crisis - Introduction
John Vervaeke’s Lectern
6 HN recommender · 2019–2022
13 mo on HNThe Beauty of Bézier Curves
Freya Holmér
16 HN recommender · 2021–2026
11 mo on HNThe Continuity of Splines
Freya Holmér
10 HN recommender · 2022–2026
10 mo on HNelevated by Rgba & TBC | 4k intro (FullHD 1080p demoscene demo)
Demoscene High-Quality Videos (Annikras)
7 HN recommender · 2013–2025
10 mo on HNPainting a Character with Maths
Inigo Quilez
13 HN recommender · 2021–2025
10 mo on HNThe Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)
Mladen Mijatov
13 HN recommender · 2013–2026
9 mo on HNA Deep Dive into Nanite Virtualized Geometry
SIGGRAPH Advances in Real-Time Rendering
7 HN recommender · 2021–2026
3 comments from Hacker News
I think that's a pretty nice overview you have. One thing I would clarify is about how the objects in the scene are represented mathematically: it's done using 'signed distance functions' so every object you have in the scene is actually created through one of these functions which takes a point in 3D space and returns the distance to the nearest point on the object's surface to that point—which does, as you say, make the object/ray intersection testing trivial (the return value of this function is the radius of the sphere used to step along the ray). The other basic components when creating scenes to be raymarched are distance functions which combine other distance functions together. The simplest cases are just union and intersection, but it's easy to get more interesting things like smoothly blending objects together. This page is a nice reference of these 'combining' functions as well as distance functions for geometric primitives: link I think that combining power is one of the main reasons to use raymarching/distance functions: building procedural content this way is faaar easier than trying to knit triangle meshes together. Additionally, if anyone wants to go a little further on the subject of building up sophisticated content by raymarching distance functions, this is an excellent talk on the subject: ▶ this video
Here's a presentation from one of the mercury guys explaining how to do that kind of thing: ▶ this video Also, elevated from RGBA should probably be mentioned since iq ( link ) is the guy behind Shadertoy. (Also because it's pretty.) link
Hg ( link ) is a great resource. I'm not a fan of the non-commercial license. The intro on the top of the site has a lot of great links to resources outside of iq, including the pouet.net thread on Raymarching, John Hart's original sphere tracing paper, and enhanced sphere tracing, as well as the author's original talk from NVScene 2015 ( ▶ this video ). Definitely check out all of these resources. If you're more interested in signed distance fields outside of the shadertoy\demo scene use cases there are a lot of interesting resources out there written by people using them in more complex contexts. Alex Evans (Media Molecule) Dreams talk is awesome. You can see the talk here ( link ) and read the slides here ( link ). link covers how to generate meshes. With modern hardware with ballot\shuffle there are probably more efficient ways to do this in a compute shader now, but the talk is still good. Epic games siggraph presentation ( link ) is a good explanation of how UE4 uses signed distance fields for ambient occlusion and shadows. Q-Games presentation ( link ) on how the now defunct Game Tomorrow Children uses signed distance fields for dynamic world space reflections. Voxel Quest ( link ), a "failed" kickstarter project, has some good write ups of how he's built the engine over the years as well as source code. Unbound.io gave a talk at GTC 2017 ( link ) that goes into some detail on their signed distance field VR sculpting app. There are of course more resources t