Tuesday, April 12, 2011

CentiLeo: a brand new interactive out-of-core CUDA path tracer for massive models

Wow, the real-time GPU path tracing goodness just keeps on coming! I've barely recovered from the fantastic real-time path traced Kajiya scene by Jacco Bikker and Jeroen van Schijndel, and now I stumbled upon another hugely impressive interactive GPU path tracer, called CentiLeo, which is able to render massive models (such as a stripped down Boeing 777 model containing 370 million polygons) interactively with global illumination on just 1 GTX 480 using out-of-core GPU path tracing (3-10 frames per second at 1024x768, 1 sample per pixel with 1 GI bounce from an HDR image).

A twelve-minute video in HD of this amazing renderer in action:


Some screengrabs of the video with more info:

The planned features sound extremely exciting and seem to be aimed at production rendering with among other things bidirectional path tracing, Metropolis light transport, hair and displacement mapping:

All these features will be CUDA based according to the author of the video (see youtube comments):
"the target is CUDA implementation because it is fast and flexible enough. BDPT, MLT, tesselation, displacement mapping, hair/fur, texture filtering - sure, will be CUDA-based.

Programmable materials can be done in CUDA. But an additional idea would be to port some existing CPU/C++ material shaders to work with our GPU compute building blocks. Voxels are not yet planned. But they can be potentially implemented.

Our goal is to finish the TODO feature list by September 2011. The concepts are pretty simple, but all the devil is in details. The future work is engineering. Almost all research was already done.
The website will be created this or next week. This demo shows what we can do now."

The holy grail for game graphics:

This tech would be an ideal fit for rendering huge voxel data sets stored in a sparse voxel octree at interactive rates with high-quality global illumination. Definitely something to keep an eye on in the future.


Anonymous said...

Bad russians, bad-bad russians...

Sam Lapere said...

??? I know it's made by a Russian developer, but what does that have to do with it? Unless of course the KGB is involved somehow, stealing Boeing 777 blueprints while pretending to make a GPU path tracer ;)

RogueFrog said...

Damn, that's a pretty awesome demo. Didn't know a GTX480 was capable of this.

Anonymous said...

They promise a lot of cool features. And the one, they published, is very promising!


Sam Lapere said...

Indeed! I'm very curious to see how they're going to handle raytraced displacement mapping on the GPU. Could be something like in "Micropolygon Ray Tracing With Defocus and Motion Blur" (http://www.kunzhou.net/2010/mptracing.pdf).

Anonymous said...

apparently programming the MLT algorithms is a total bitch to implement in GPU ray tracey, it slows the speed down and such.

Sam Lapere said...

@Anonymous: implementing MLT on GPU doesn't have to be a total bitch per se, look at what Dietger van Antwerpen did (search for "Kelemen-style Metropolis Light Transport on the GPU" on Youtube) or more recently Dade from the Luxrender team with MLT implemented in PathGPU. It's certainly not impossible, and I'm sure that it will appear in other GPU renderers soon.

Anonymous said...

Even what they have done is a bitch, but this bitch works great

Sam Lapere said...

Yup, it does work great and it looks fantastic.