I always loved this technique for 3D graphics. Given enough primitives and combining functions, you could have something akin to an old-school “PPU” but for 3D graphics if you realized it in silicon.
What exactly do you propose to implement in hardware? A lot of what’s interesting about signed distance functions as a technique for representing surfaces is that they can be arbitrary functions, performing arbitrarily complex computation. Hence: general-purpose hardware; and we have a lot of great general-purpose hardware already.
something akin to an old-school “PPU” but for 3D graphics if you realized it in silicon
That description seems much closer to a fixed-function rasteriser than an SDF evaluator or raymarcher. (We had fixed-function rasterisers, for many years; they worked well.)
Distance functions can be arbitrarily combined together using a variety of CSG-like operations. Therefore, you could get away with storing the parameters for those primitives and combinations, sending them to this hypothetical chip for rendering.
The idea is that SDFs are computationally expensive and “general purpose hardware” still can’t handle complex scenes very well the same way it can push triangles. So, if you focus on a single set of primitives with a set of modifiers/combinations, you can codify the logic for rendering those in silicon.
Yes, we’ve had fixed function pipelines before. This isn’t fixed function, more like a scene graph.
I always loved this technique for 3D graphics. Given enough primitives and combining functions, you could have something akin to an old-school “PPU” but for 3D graphics if you realized it in silicon.
What exactly do you propose to implement in hardware? A lot of what’s interesting about signed distance functions as a technique for representing surfaces is that they can be arbitrary functions, performing arbitrarily complex computation. Hence: general-purpose hardware; and we have a lot of great general-purpose hardware already.
That description seems much closer to a fixed-function rasteriser than an SDF evaluator or raymarcher. (We had fixed-function rasterisers, for many years; they worked well.)
Distance functions can be arbitrarily combined together using a variety of CSG-like operations. Therefore, you could get away with storing the parameters for those primitives and combinations, sending them to this hypothetical chip for rendering.
The idea is that SDFs are computationally expensive and “general purpose hardware” still can’t handle complex scenes very well the same way it can push triangles. So, if you focus on a single set of primitives with a set of modifiers/combinations, you can codify the logic for rendering those in silicon.
Yes, we’ve had fixed function pipelines before. This isn’t fixed function, more like a scene graph.