- your dataset is already an analytic representation of stretched spheres. Just assume that they are a hard shape of plasma with uniform density throughout the volume.
- for each pixel perform ray intersection against each spheroid, the thickness that the ray went through is precisely how much thickness the spheroid is contributing light to your pixel (obviously also multiplied by solid angle)
- since it’s light, there is no occlusion, so just stack the contribution from all the ellipsoids together and you’re done.
- since you are rendering a well-defined shape without self occlusion, there is no random popping in and out no matter the angle.
The computation is practically equivalent to rendering CSG shapes, except even easier since you only ever add and not occlude/subtract. It also scales with rat racing hardware directly.
since it’s light, there is no occlusion, so just stack the contribution from all the ellipsoids together and you’re done.
and then I scratched my head at how you can possibly do a credible rendering of any real scene without occlusion, contemplated that the images in the paper absolutely had occluded objects, and then read a bit more and figured it out:
Each ellipsoid has a “density,” which is a single number indicating the degree to which it absorbs light coming from behind it. And this formulation allows the integral along a path from infinity to the camera to be exactly evaluated. So there is occlusion! It just happens to work correctly even when ellipsoids overlap.
[0] It’s slightly more complicated, but not much. The raw density scales a term in the integral, but this results in a poorly behaved gradient, so the trained parameter is more or less the opacity when looking through the center of the ellipsoid through the shortest axis.
Comments
Neat, the concept is so elegantly obvious:
- your dataset is already an analytic representation of stretched spheres. Just assume that they are a hard shape of plasma with uniform density throughout the volume.
- for each pixel perform ray intersection against each spheroid, the thickness that the ray went through is precisely how much thickness the spheroid is contributing light to your pixel (obviously also multiplied by solid angle)
- since it’s light, there is no occlusion, so just stack the contribution from all the ellipsoids together and you’re done.
- since you are rendering a well-defined shape without self occlusion, there is no random popping in and out no matter the angle.
The computation is practically equivalent to rendering CSG shapes, except even easier since you only ever add and not occlude/subtract. It also scales with rat racing hardware directly.
I read this:
and then I scratched my head at how you can possibly do a credible rendering of any real scene without occlusion, contemplated that the images in the paper absolutely had occluded objects, and then read a bit more and figured it out:
Each ellipsoid has a “density,” which is a single number indicating the degree to which it absorbs light coming from behind it. And this formulation allows the integral along a path from infinity to the camera to be exactly evaluated. So there is occlusion! It just happens to work correctly even when ellipsoids overlap.
[0] It’s slightly more complicated, but not much. The raw density scales a term in the integral, but this results in a poorly behaved gradient, so the trained parameter is more or less the opacity when looking through the center of the ellipsoid through the shortest axis.
I'm actually in the market for some rat racing hardware. Anything you'd recommend that won't be obsolete in six months?