Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cedricguillemet/sdf
Collection of resources (papers, links, discussions, shadertoys,...) related to Signed Distance Field
https://github.com/cedricguillemet/sdf
demoscene games sdf tools
Last synced: about 1 month ago
JSON representation
Collection of resources (papers, links, discussions, shadertoys,...) related to Signed Distance Field
- Host: GitHub
- URL: https://github.com/cedricguillemet/sdf
- Owner: CedricGuillemet
- License: mit
- Created: 2021-07-18T16:16:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-12T13:36:09.000Z (7 months ago)
- Last Synced: 2024-10-27T19:44:02.112Z (3 months ago)
- Topics: demoscene, games, sdf, tools
- Homepage:
- Size: 54.7 KB
- Stars: 663
- Watchers: 25
- Forks: 25
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Signed Distance Field (SDF)
Resources, links, papers, discussions, ShaderToys on SDF and related algorithm.
Please contibute to this resource by sending your PRs!## Tutorials / introductions
Jamie Wong, Ray Marching and Signed Distance Functions
http://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/Alex Benton, Ray Marching and Signed Distance Fields
http://bentonian.com/Lectures/FGraphics1819/1.%20Ray%20Marching%20and%20Signed%20Distance%20Fields.pdfSungiant, Sphere tracing signed distance functions (Scala)
https://github.com/sungiant/sdfRendering Worlds with Two Triangles / with raytracing on the GPU in 4096 bytes
https://www.iquilezles.org/www/material/nvscene2008/rwwtt.pdfRaymarching Beginners' Thread
https://www.pouet.net/topic.php?which=7920&page=1Potatro, RayMarching and DistanceFields : a story of SphereTracing
https://xoofx.com/blog/2009/10/12/potatro-and-raymarching-story-of/Ray Marching for Dummies!
https://www.youtube.com/watch?v=PGtv-dBi2wEElectric Square, Raymarching Workshop
https://github.com/electricsquare/raymarching-workshop2D Distance fields with Unity and Unreal
https://joyrok.com/SDFs-Part-TwoSDF Decomposition
http://zone.dog/braindump/sdf_clustering/The smallest WebGL SDF raymarcher (135 bytes), with detailed source code and useful links
https://xem.github.io/articles/webgl_quest_2.htmlSDF Generator using Compute Shaders in Unity
https://mateigiurgiu.com/unity-sdf-generator-part-1/
https://mateigiurgiu.com/unity-sdf-generator-part-2/An Introduction to Raymarching
https://typhomnt.github.io/teaching/ray_tracing/raymarching_intro/Ray Marching Soft Shadows in 2D
https://www.rykap.com/2020/09/23/distance-fields/Ray Marching
https://michaelwalczyk.com/blog-ray-marching.htmlShape Lens Blur Effect with SDFs and WebGL
https://tympanus.net/codrops/2024/06/12/shape-lens-blur-effect-with-sdfs-and-webgl/## Games and tools
### Dreams
Alex Evans at Umbra Ignite 2015: Learning From Failure
Dreams tech from early prototypes to cloud point renderinghttps://www.youtube.com/watch?v=u9KNtnCZDMI
PDF: https://www.mediamolecule.com/blog/article/siggraph_2015
Dreams: Under the Hood with Alex Evans!
https://www.youtube.com/watch?v=1Gce4l5ortsAlex Evans (NVIDIA), Optimising for Artist Happiness
https://www.youtube.com/watch?v=eGfX1iWzkh0&t=1273s### MagicaCSG
Distance field editor with the same UI as MagicaVoxel by Epthtracy
https://ephtracy.github.io/index.html?page=magicacsg### https://slimery.art/
SDF editor on the web
https://slimery.art/
GIF here : https://twitter.com/DaniGatunes/status/1413388975713173506### Distance Field Modeler for Unreal Engine
https://twitter.com/SDFmodelerUE4
### Antimony
CSG (CAD) tool
https://www.mattkeeter.com/projects/antimony/3/
https://github.com/mkeeter/antimony### Clayxels
Clayxels is the volumetric toolkit for Unity
https://assetstore.unity.com/packages/tools/game-toolkits/clayxels-165312### unbound.io
Collaborative SDF editing
https://www.unbound.io/
https://twitter.com/unbound_io
https://on-demand.gputechconf.com/gtc/2017/presentation/s7777-florian-hoenig-a-road-to-3d-for-everyone.pdf### Claybook
"Claybook is a unique world made entirely of clay. Shape your character and the world around you to overcome challenging obstacles."
https://store.steampowered.com/app/661920/Claybook/### Signed
Signed is a Lua based 3D modeling and construction language and will be a unique way to create 3D content, objects as well as whole scenes, in high detail.
https://github.com/markusmoenig/Signed### SDF pathtracer on CPU
Pathtracer written on CPU which is capable of rendering both SDF as functions and as a volume grids. The application is written on top of Yocto/GL library.
https://github.com/edu-rinaldi/Volumetric-Path-Tracer## Demos
Bounding Volume Hierarchy (BVH) implementation for SDFs to reduce per ray distance measurements
https://youtu.be/2T2FqvtXqLwSDF / Ray Marching Prototypes. A collection of SDF related examples using fungi to handle the rendering.
https://sketchpunk.bitbucket.io/## Algorithms / Papers
Iq distance functions
https://iquilezles.untergrund.net/www/articles/distfunctions/distfunctions.htmJon Baker, The Distance Estimator Compendium (many distance distance functions with awesome Fractal primitives)
https://jbaker.graphics/writings/DEC.htmlMax Norm ellipsoid (sphere with transforms)
https://www.shadertoy.com/view/Mt2XWGEfficient Max-Norm Distance Computation and Reliable Voxelization PDF
http://gamma.cs.unc.edu/RECONS/maxnorm.pdfDistance to Quadratic Bezier
https://twitter.com/jbaker_graphics/status/1415767199382396940
3D: https://www.shadertoy.com/view/7dfGD2GPU-Driven Rendering Pipelines / Cluster rendering
https://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdfMaking Signed Distance Field Textures With Jump Flooding Algorithm (2D)
https://blog.demofox.org/2016/02/29/fast-voronoi-diagrams-and-distance-dield-textures-on-the-gpu-with-the-jump-flooding-algorithm/
https://blog.demofox.org/2016/03/02/actually-making-signed-distance-field-textures-with-jfa/Enhanced Sphere Tracing
https://erleuchtet.org/~cupe/permanent/enhanced_sphere_tracing.pdfCollection of smooth minimums, maximums, ramps, and absolutes.
https://www.shadertoy.com/view/ltf3W2Segment Tracing Using Local Lipschitz Bounds (improve the marching step computation and accelerate the overall process.)
https://diglib.eg.org/handle/10.1111/cgf13951Improved Alpha-Tested Magnification for Vector Textures and Special Effects (Valve 2007)
https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdfMassively Parallel Rendering of Complex Closed-Form Implicit Surfaces
https://www.mattkeeter.com/research/mpr/Tom Duff, Interval Arithmetic and Recursive Subdivision for Implicit Functions and Constructive Solid Geometry
http://fab.cba.mit.edu/classes/S62.12/docs/Duff_interval_CSG.pdfRaph Levien’s research on 2D blurred shapes
https://raphlinus.github.io/graphics/2020/04/21/blurred-rounded-rects.htmlInterval Raymarching
https://dercuano.github.io/notes/interval-raymarching.htmlGigaVoxels:A Voxel-Based Rendering Pipeline For Efficient Exploration Of Large And Detailed Scenes
http://maverick.inria.fr/Membres/Cyril.Crassin/thesis/CCrassinThesis_EN_Web.pdfAdaptively Sampled Distance Fields: A General Representation of Shape for Computer Graphics
_ *Frisken, Perry, Rockwood, and Jones - 2000*
https://www.merl.com/publications/docs/TR2000-15.pdfKizamu: A System for Sculpting Digital Characters - *Frisken and Perry - 2001*
https://dl.acm.org/doi/abs/10.1145/383259.383264Hierarchical hp-Adaptive Signed Distance Fields - *Koschier, Deul, and Bender - 2016*
http://interactive-graphics.de/index.php/research/98-hierarchical-hp-adaptive-signed-distance-fieldsGPU-Accelerated Adaptively Sampled Distance Fields - *Bastos and Celes - 2008*
https://www.researchgate.net/profile/Waldemar-Celes/publication/4344580_GPU-accelerated_Adaptively_Sampled_Distance_Fields/links/00b7d522f51ab59cc9000000/GPU-accelerated-Adaptively-Sampled-Distance-Fields.pdfSigned Distance Computation using the Angle Weighted Pseudo-normal - *Bærentzen and Aanæs - 2005*
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.107.9173&rep=rep1&type=pdfFast Winding Numbers for Soups and Clouds - *Barill, Dickson, Schmidt, Levin, and Jacobson - 2018*
https://www.dgp.toronto.edu/projects/fast-winding-numbers/Non-linear Sphere Tracing for Rendering Deformed Signed Distance Fields - *Seyb, Jacobson, Nowrouzezahrai, and Jarosz - 2019*
https://cs.dartmouth.edu/~wjarosz/publications/seyb19nonlinear.htmlConcurrent Binary Trees (with application to longest edge bisection)
https://onrendering.com/data/papers/cbt/ConcurrentBinaryTrees.pdfBounding Interval Hierarchies (BIH) - 2006
(for improved per Ray distance calculations)
https://people.cs.clemson.edu/~dhouse/courses/405/papers/bounding-interval-WK06.pdfGPU accelerated BIH Construction - 2014
https://www.uni-weimar.de/fileadmin/user/fak/medien/professuren/Virtual_Reality/documents/publications/2014.bih_construction_using_dynamic_parallelism.pdfSynchronized-tracing of implicit surfaces - 2023
https://arxiv.org/pdf/2304.09673.pdf## Talks
Dynamic Bounding Volume Hierarchies
(BVH methods applicable to BIH)
https://box2d.org/files/ErinCatto_DynamicBVH_GDC2019.pdfAdvanced-Procedural-Rendering-with-DirectX
https://www.gdcvault.com/play/1015726/Advanced-Procedural-Rendering-with-DirectXAdvanced Graphics Techniques Tutorial: GPU-Based Clay Simulation and Ray-Tracing Tech in 'Claybook'
https://www.gdcvault.com/play/1025030/Advanced-Graphics-Techniques-Tutorial-GPU
https://www.youtube.com/watch?v=Xpf7Ua3UqOARendering mandelbox fractals faster with cone marching
https://www.youtube.com/watch?v=4Q5sgNCN2Jw&t=530s
http://www.fulcrum-demo.org/wp-content/uploads/2012/04/Cone_Marching_Mandelbox_by_Seven_Fulcrum_LongVersion.pdf
https://www.pouet.net/prod.php?which=59072Conemarching in VR / Developing a Fractal experience at 90 FPS / Johannes Saam / Mariano Merchante / FRAMESTORE
https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2018/presentations/Saam_Johannes_Merchante_Mariano_Conemarching%20in%20VR.pdf
https://www.gdcvault.com/play/1025454/Cone-Marching-in-VR-DevelopingFluid and Particle Physics in PixelJunk Shooter. 2D fluids collision detection with SDF
https://www.gdcvault.com/play/1012447/Go-With-the-Flow-FluidRealtime sparse Distance Fields for game
https://gpuopen.com/gdc-presentations/2023/GDC-2023-Sparse-Distance-Fields-For-Games.pdf## Twitter/Reddit discussions
BVH with blending
https://twitter.com/TheKristofLovas/status/1415000116629495808fBM style displacement Inigo quilez @iquilezles
https://twitter.com/iquilezles/status/1414738043118899200
https://iquilezles.org/www/articles/fbmsdf/fbmsdf.htmHow is SDF stored in a octree?
https://www.reddit.com/r/VoxelGameDev/comments/ontjdf/how_is_sdf_stored_in_a_octree/h5vrbea/Using @SebAaltonen's eikonal solver (https://shadertoy.com/view/ltGGRw) to fix interior/exterior of SDF after add/cut.
https://twitter.com/Calneon/status/1422316033071882243Casey Muratori's helpful notes for Implicit Surfaces and Interval Arithmetic
https://hastebin.com/raw/orenawiwum"my best idea right now is to start in the middle of the ray/bounds intersection, and add new samples at the half way point of every unknown segment of the ray until you find a hit with no unknown space preceding it"
https://twitter.com/ladyaeva/status/1201770482766364672"the idea here is that you start at the graph leaves and work your way down to the graph root. leaves emit geometry for basic shapes. operators modify the mesh data, and so on."
https://twitter.com/ladyaeva/status/1410120245621239808## Code
hg_sdf A glsl library for building signed distance functions by Mercury
https://mercury.sexy/hg_sdf/Rust & Vulkan test projects. "The first test project renders 1 million cubes, each containing a 950 MB (uncompressed) distance field volume.
The second test project is going to be using sparse octree storing a hierarchy of distance field volume bricks."
https://github.com/sebbbi/rust_testlibfive is a software library and set of tools for solid modeling, especially suited for parametric and procedural design.
https://libfive.com/## Conversion to Polygonal Mesh
isosurface: A project testing and comparing various algorithms for creating isosurfaces
https://github.com/Lin20/isosurfaceManifold Dual Contouring - *Schaefer, Ju, and Warren - 2007*
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.9707&rep=rep1&type=pdfDual Contouring Tutorial
https://www.boristhebrave.com/2018/04/15/dual-contouring-tutorial/