The representation is not particularly weird – it's a big blob of math operations (ADD, SUB, DIV, etc) with x, y, z as inputs and a pseudo-distance* as an output.
It's closest to NERFS, but with heterogeneous math instead of a NN (and different inputs/outputs)
Like @aras said, the interesting part in the paper is rendering them efficiently on the GPU!
*the output must be >0 outside, <0 inside, and C0 continuous, but has no Lipshitz constraints
@mjk@aras Thx for the explainer (I might have to digest a bit on some of these terms), just want to finally say I learned a lot from your older post on contouring when I was prototyping runtime meshing of large terrains.
@bitinn@aras
SDF - a bunch of numbers in an array encoding euclidean distance from the surface
Implicit surfaces - a function that gives a number quantifying whether it's inside or outside the surface.
@ignaloidas@aras@bitinn an SDF doesn’t have to be stored, plenty are also functions. They’re implicit surface representations where the field represents the signed distance from the surface rather than arbitrary positive/negative. This lets you accelerate the surface finding nicely.
@aras I didn't know that signed distance fields are an actual render technique. I thought they are more for the ground work. I probably have to read into them then.
@Sythelux@aras oh yeah totally. In 2d you can use them to make vector graphics art if using a function, or nearly vector graphics type art if using an sdf in a texture.
In 3d you can ray march an SDF to find the solid surface and can use them for ad hoc raytracing or more sophisticated path tracing. Lots of neat techniques you can do with them too that give ambient occlusion, subsurface scattering, and more!
@demofox@aras I always thought of SDF as a purely raytracing topic for Light hitting meshes. I never thougt to use it for rendering objects direftly but it mskes sense.
Add comment