Recent submissions

Comment · 4 years ago
Comment · 5 years ago
>In offline rendering we usually just have some primitive (sphere, cube etc) that acts as the boundary

Right, using a SDF as a boundary condition is to discretely check it as an indicator function (if negative do x else do y). You can use basically any SDF to bound your procedural medium, including a procedural boundary (via domain distortion).

You can also apply a continuous blend instead of the discrete check (smooth step the level curve). This is preferred since discrete checks will often result in popping.

Comment · 5 years ago
>SDF is still just a surface/boundary representation

Meshes and Bezier patches are parametric representations (defined over R^2, evaluated with vec2, output vec3). Implicit functions are volumetric representations of surfaces (defined over R^3, evaluated with vec3, output float). This is a key difference between parametric modelers like AutoCad and implicit modelers like nTopology.

>density grid instead of a SDF if you're dealing with anything volumetric, such as clouds or smoke.

These functions of time change every frame. In the implicit paradigm, it's not necessary to evaluate the smoke ahead of time since sphere tracing can reduce to marching adaptively when we are within smoke. Image quality will not be bound to any resource resolution other than the screen (a low res smoke grid would appear blocky).

I agree with you that the current triangle-based RT implementations have faster alternatives that accomplish similar things on the surface.

Thanks for the links!

Comment · 5 years ago
>Are there applications you have in mind where the distance to the nearest surface is actually useful, regardless of the surface representation?

Distance fields are a subset of implicit functions (see wikipedia). The use of level curves (which can be interpreted as "distance" for SDFs) is broad. You can dynamically and trivially thicken or shrink objects by adding or subtracting to the distance. Functions defined on the level curves output of an SDF can be used to map a volume to another implicit function (see nTopology). With implicit functions, the non-zero level sets are really just as important, but most focus on the zero level set in rendering.

>There's a subtle difference here because you actually need the closest point (not just the distance) so that you can look up a boundary condition.

Vector to Closest Point (VCP) is subtle but different in important ways. It is unsigned, and cannot indicate whether a position is inside or outside the object. Implicit modeling is not generally concerned with parameterizing the surface, since we can use volumetric, 3D procedural textures.

Comment · 5 years ago
This is a bit confused. Current RT implementations are faster at intersecting the mesh along the ray direction than sphere tracing (which require the expensive lookups or evaluations).

The distance to the surface is independent of direction, it is only a function of position (as all SDFs are).

The depth map is the distance from ray origin to intersection only, not how close that ray came to the surface at any point along it's segment.

Comment · 5 years ago
>Why are SDFs useful at all?

Meshes and bezier patches are boundary representations with no information of the volume they enclose. Imagine you'd like to cut an object out of smoke or clouds. SDFs enable you to cut out arbitrary volumes from any material. This is more realistic than skinning a mesh object with textures, especially with translucent objects.

> So why do we need neural nets to represent them?

You don't. I didn't notice render times, but "interactive frame rates" would be lacking.

Most SDF primitives and their compositions are not analytic (from use of abs, fract, etc). Differentiation by finite differences is most common. Few are using automatic differentiation. I don't quite follow how back prop would produce the surface gradient, but I doubt it would be faster than these methods.

Comment · 5 years ago
Memory savings are the main potential gain, since you won't need as deep a tree. This is not the main issue with this tech atm.

Also, their distance output will be an estimate, it won't be exact, which will cause render time to underperform vs exact representations. Worse, the NN could return a value greater than actual distance, which will cause artifacts.

Comment · 6 years ago
Comment · 6 years ago
Why reinvent the bed? All you need for a lay down desk is a 12 inch orthopedic foam wedge and a laptop tray. Both readily available in Amazon. I've been working this way for years.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton