Live data from Hacker News

Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

mattkeeter.com

11–19 of 19 posts

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#11
Author here, I'm glad to have finally figured out why a bunch of people followed me on Twitter this morning!

If you enjoyed this paper, there's a companion blog post about the actual process of writing it: https://www.mattkeeter.com/projects/siggraph/

(and I'm happy to answer questions, of course)

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#12

Very very impressive work. I wonder if it would be feasible for vendors to implement the interpreter in hardware in future.

Being able to do very basic JITting on the GPU would be a great first step – load/store operations when evaluating the tapes are terrible for memory access, since they use global memory rather than registers.

In another project [1], I found a 2-6x speedup in going from an interpreter to a fully-compiled shader, so this can make a huge difference!

[1] https://www.mattkeeter.com/projects/rayray/

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#13
post #9
post #7

Fabulous work. The video presentation is only 18 minutes long, well organized, and very accessible -- the author does a great job of explaining how and why the rendering works so efficiently using a simple example in 2D: https://www.youtube.com/watch?v=_6CnaugAcCc Highly recommended.

The 2D part is well explained, however, I am interested in how they made it 3D. They have voxels, but the actual rendering is a bit unclear. I guess they simply didn't do much work on that part, using some bruteforce-ish raymarching technique, which their fast evaluation and nicely bound objects allows. They mention further work though, like sparse voxel octrees, improving culling, etc... So I guess that will be for…

Well in honesty it isn't that different for 3d. The beauty of raymarching would be that you could rewrite the raymarcher slightly to tag many "instructions" that are ambigiously within bounds when rendering one of their "Big-squares" and just let them remain within their described tape for all pixels within that screen-space square. Just skimmed the paper but having written a few raymarchers i see the pseudo-code (maybe not for all shapes/distortions but many in practice).

Same priciple should work for anything with decently good distance function, reifying a mesh or SVO could always be combined with rough culling of the "tapes" since it's all about the distances.

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#14
this isn't exactly the right place to ask but i'm betting people interested in graphics pipeline latency will visit this comment section:

how do people that absolutely need the lowest latency numbers make do with GPUs? i'm not in graphics but i'm in ML and lately i've been working on research to squeeze as much juice out GPUs as possible. my last project involved optimizing a pipeline that basically consisted of just a stack of filters and some min/max finding. the fastest i could get it to go after throwing everything i could at it and i only got it down to ~20ms. that's ~50Hz. admittedly it was a tall stack but still i don't understand how game devs (for example) get complex pipelines to finish within the 60Hz/16ms given you don't never have access to bare metal GPU.

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#15

this isn't exactly the right place to ask but i'm betting people interested in graphics pipeline latency will visit this comment section: how do people that absolutely need the lowest latency numbers make do with GPUs? i'm not in graphics but i'm in ML and lately i've been working on research to squeeze as much juice out GPUs as possible. my last project involved optimizing a pipeline that basically consisted of just…

I'm not an expert, but in my experience working with CUDA/OpenCL/OpenGL, GPU latency usually comes down to data transfer and reduction operations (like max or sum). If you are okay with some kind of double-buffering, you can usually "hide" those latencies.

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#16
post #11

Author here, I'm glad to have finally figured out why a bunch of people followed me on Twitter this morning! If you enjoyed this paper, there's a companion blog post about the actual process of writing it: https://www.mattkeeter.com/projects/siggraph/ (and I'm happy to answer questions, of course)

This certainly looks like a very interesting approach! As I'm not in the field of graphics would you be able to comment how this compares to cone marching and how well it can render fractal like surfaces?

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#17
post #11

Author here, I'm glad to have finally figured out why a bunch of people followed me on Twitter this morning! If you enjoyed this paper, there's a companion blog post about the actual process of writing it: https://www.mattkeeter.com/projects/siggraph/ (and I'm happy to answer questions, of course)

This certainly looks like a very interesting approach! As I'm not in the field of graphics would you be able to comment how this compares to cone marching and how well it can render fractal like surfaces?

I'm not familiar with cone tracing, but [1] indicates that it's a variation of sphere tracing.

The downside to sphere tracing and similar is that it limits the input model: you have to guarantee that evaluating the model at [x, y, z] gives you a result that's less-than-or-equal to the true (Euclidean) distance to the shape's surface.

(or a distance adjusted by some constant scaling factor, i.e. Lipshitz continuity [2])

This is a relatively fragile property, and really limits what kinds of shapes and transformations you can use when modeling.

Using interval arithmetic is more robust against arbitrary models, at the cost of being less efficient when models are well-behaved.

I don't know much about state-of-the-art fractal rendering! I'd imagine that the fixed (original) tape in MPR would be a limitation here, because you may want to terminate conditionally, rather than evaluating a fixed expression.

[1] http://www.fulcrum-demo.org/wp-content/uploads/2012/04/Cone_...

[2] https://en.wikipedia.org/wiki/Lipschitz_continuity

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#18
post #8
post #4

This is important for vision ML because sufficiently advanced simulations may comprise the real world as a special case: https://arxiv.org/abs/1703.06907 For example, gaming pixel maps have been used for semantic simulation, and have been rendered scenes: https://arxiv.org/abs/1608.02192 https://www.cv-foundation.org/openaccess/content_cvpr_2016/p... This concept has not (yet) been applied in audio ML. We have a pape…

How is it related to ML? Closed form implicit surfaces are actually one of the most difficult way to model the real world. They are neat because they are very compact and the creation process is close to modeling with (mathematical) clay. But they are hard to use if you want to model the real world with all its complexity, resulting of a variety of chemical and physical processes happening over time. There is a reaso…

Fast throughput rendering yields in-GPU larger datasets, which are useful for ML pretraining.

Re: Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces (2020)

#19
post #12

Very very impressive work. I wonder if it would be feasible for vendors to implement the interpreter in hardware in future.

Being able to do very basic JITting on the GPU would be a great first step – load/store operations when evaluating the tapes are terrible for memory access, since they use global memory rather than registers. In another project [1], I found a 2-6x speedup in going from an interpreter to a fully-compiled shader, so this can make a huge difference! [1] https://www.mattkeeter.com/projects/rayray/

That's a very cool project of yours I'm going to have to look at when I have the time.
Post reply on HN