Friday, April 23, 2010

Comparing path tracing image quality

After seeing the amazing videos of the "Brigade" engine", the realtime pathtracer developed by Jacco Bikker, I was wondering what would be the ideal parameters (resolution, framerate and samples/pixel) for a pathtraced game with today's hardware. I decided to do some simple experiments by comparing the image quality of a path traced scene in samples/pixel. I found two youtube videos of reasonable quality showing some moderately complex scenes rendered in Octane render and took some screensgrabs. The lighting and materials are very simple and the video and jpeg compression do not allow a good comparison, but anyway here's a rough idea:

Video 1: Porsche Carrera rendered with Octane

2 samples/pixel


6 samples/pixel


12 samples/pixel


24 samples/pixel


36 samples/pixel


1 sample/pixel


8 samples/pixel


16 samples/pixel


24 samples/pixel


40 samples/pixel


1 sample/pixel


8 samples/pixel


16 samples/pixel


32 samples/pixel


64 samples/pixel


96 samples/pixel



Video 2: Chalet/Hotel rendered with Octane

1 sample/pixel


8 samples/pixel


16 samples/pixel


32 samples/pixel



As these pictures show, the noise clears very fast at the beginning, but the image converging slows down rather quickly, following a saturation curve


8 samples/pixels is too noisy to see fine details, at 16 samples/pixels details start to appear and 32 samples/pixel gives sufficient quality for a game imo (compared to the horribly lowres shadow maps and normal maps in some of today's AAA games, like Modern Warfare 2). Unfortunately, the youtube video and subsequent jpeg compression makes the difference between 64 and 96 samples/pixel indiscernible. More than 100 samples/pixel would be ideal, but for now 32 will do. Hopefully the Fermi GPU (or multiple) will get us there soon.



UPDATE: I made a shitload of screengrabs (way too much) from this video (HD footage of the Brigade engine)


1 spp



4 spp


8 spp


17 spp


24 spp


33 spp


64 spp


129 spp


199 spp


301 spp


401 spp


500 spp


600 spp


6 spp


8 spp


15 spp


31 spp


48 spp


66 spp


94 spp


127 spp


200 spp


301 spp


402 spp

Thursday, April 15, 2010

Real-time pathtracing demo shows future of game graphics

Yessss!!! I've been anticipating this for a long time: real-time raytraced high-quality dynamic global illumination which is practical for games. Until now, the image quality of every real-time raytracing demo that I've seen in the context of a game was deeply disappointing:

- Quake 3 raytraced (http://www.youtube.com/watch?v=bpNZt3yDXno),
- Quake 4 raytraced (http://www.youtube.com/watch?v=Y5GteH4q47s),
- Quake Wars raytraced (http://www.youtube.com/watch?v=mtHDSG2wNho) (there's a pattern in there somewhere),
- Outbound (http://igad.nhtv.nl/~bikker/projects.htm),
- Let there be light (http://www.youtube.com/watch?v=33yrCV25A14,
- the last Larrabee demo showing an extremely dull Quake Wars scene (a raytraced floating boat in a mountainous landscape, with some flying vehicles roaring over, Intel just showed a completely motionless scene, too afraid of revealing the low framerate when navigating)http://www.youtube.com/watch?v=b5TGA-IE85o,
- the Nvidia demo of the Bugatti at Siggraph 2008 (http://www.youtube.com/watch?v=BAZQlQ86IB4)

All of these demo's lack one major feature: realtime dynamic global illumination. They just show Whitted raytracing, which makes the lighting look flat and dull and which quality-wise cannot seriously compete with rasterization (which uses many tricks to fake GI such as baked GI, SSAO, SSGI, instant radiosity, precomputed radiance transfer and sperical harmonics, Crytek's light propagation volumes, ...).

The above videos would make you believe that real-time high quality dynamic GI is still out for an undetermined amount of time. But as the following video shows, that time is much closer than you would think: http://www.youtube.com/watch?v=dKZIzcioKYQ

The technology demonstrated in the video is developed by Jacco Bikker (Phantom on ompf.org, who also developed the Arauna game engine which uses realtime raytracing) and shows a glimpse of the future of graphics: real-time dynamic global illumination through pathtracing (probably bidirectional), computed on a hybrid architecture (CPU and GPU) achieving ~40 Mrays/sec on a Core i7 + GTX260. There's a dynamic floating object and each frame accumulates 8 samples/pixel before being displayed. There's caustics from the reflective ring, cube and cylinder as well as motion blur. The beauty of path tracing is that it inherently provides photorealistic graphics: there's no extra coding effort required to have soft shadows, reflections, refractions and indirect lighting, it all works automagically (it also handles caustics, but not very efficiently though). The photorealism is already there, now it's just a matter of speeding it up through code optimization, new algorithms (stochastic progressive photon mapping, Metropolis Light Transport, ...) and of course better hardware (CPU and GPU).

The video is imo a proof of concept of the feasibility of realtime pathtraced games: despite the low resolution, low framerate, low geometric complexity and the noise there is an undeniable beauty about the unified global lighting for static and dynamic objects. I like it very, very much. I think a Myst or Outbound-like game would be ideally suited to this technology: it's slow paced and you often hold still for inspecting the scene looking for clues (so it's very tolerant to low framerates) and it contains only a few dynamic objects. I can't wait to see the kind of games built with this technology. Photorealistic game graphics with dynamic high-quality global illumination for everything are just a major step closer to becoming reality.

UPDATE: I've found a good mathematical explanation for the motion blur you're seeing in the video, that was achieved by averaging the samples of 4 frames (http://www.reddit.com/r/programming/comments/brsut/realtime_pathtracing_is_here/):
it is because there is too much variance in lighting in this scene for the numbers of samples the frames take to integrate the rendering equation (8; typically 'nice' results starts at 100+ samples/per pixel). Therefore you get noise which (if they implemented their pathtracer correctly) is unbiased. Which means in turn that the amount of noise is proportional to the inverse of the square of number of samples. By averaging over 4 frames, they half the noise as long as the camera is not moving.


UPDATE2: Jacco Bikker uploaded a new, even more amazing video to youtube showing a rotating light globally illuminating the scene with path tracing in real-time at 14-18 fps (frame time: 55-70 ms)!
http://www.youtube.com/watch?v=Jm6hz2-gxZ0&playnext_from=TL&videos=ZkGZWOIKQV8

The frame averaging trick must have been used here too, because 6 samples per pixel cannot possibly give such good quality.

Saturday, April 10, 2010

Design Garage: stunning Nvidia tech demo using raytracing ;-)

Very cool demo, I just can't get enough of it. It keeps amazing me that GPUs are capable of rendering cinema quality raytraced graphics. The image clears very fast on a GTX 480 at full screen resolution: http://www.youtube.com/watch?v=nEXeTXmCfdE

The OptiX team did a really great job with this. I hope they will build upon it, using more advanced algorithms like bidirectional pathtracing, Metropolis light transport or even stochastic progressive photon mapping, a combination of these three would probably be the ideal solution, which could handle 99.9% of lighting situations in a robust and efficient manner. The stochastic progressive photon mapping algorithm (SPPM), invented by Toshiya Hachisuka and Henrik Wann Jensen is ideally suited for GPU adaptation: it's progressive, consumes very little memory compared to normal photon mapping and can render effects like DOF and motion blur (and of course caustics). In fact there already is a working downloadable GPU version of it (not CUDA, but GLSL): available at http://graphics.ucsd.edu/~toshiya/gpusppm.zip, which hits 40 million photons per second on a HD4870. SPPM is also not biased in the way that photon mapping is, but it's more similar to unbiased algorithms: because SPPM is progressive, it will "eventually" converge to the correct solution (just like path tracing, bidirectional path tracing and Metropolis light transport).

Returning to the Design Garage demo, I can't wait to see what they're cooking for Fermi2/GTX500.

Saturday, April 3, 2010

Octane Render is de MAX

Voor één keertje in het Vlaamsch :-). Refractive Software is blijkbaar op zoek naar een nieuwe programmeur zoals staat te lezen op hun site (http://www.refractivesoftware.com/jobs.html). Een van de voorwaarden is dat je in België woont of bereid bent om naar België te verhuizen.
Persoonlijk vind ik Octane het meest opwindende en fascinerende stuk software dat ik de laatste tien jaar gezien/gebruikt heb en ik dacht, misschien kan ik de gasten van Refractive Software een beetje helpen door de weinige Vlamingen en Nederlanders die deze blog lezen (en dus waarschijnlijk net als mij geĂŻnteresseerd zijn in raytracing) naar deze vacature te verwijzen. Als ik zelf graphics kon programmeren, zou ik onmiddellijk solliciteren voor de job, omdat ik er van overtuigd ben dat deze lui geschiedenis gaan schrijven, maar helaas liggen mijn kwaliteiten op andere vlakken. Ik zou wel graag de promotie verzorgen ;-)

UPDATE: de vacature is ingevuld: http://www.refractivesoftware.com/forum/viewtopic.php?f=7&t=974

Friday, April 2, 2010

Gaiking, the first realtime raytraced game using OTOY

In September 09, during the launch of the HD5800 series from ATI, a short teaser of a anime like game/movie to be released in 2012 was shown by Jules Urbach (http://www.brightsideofnews.com/news/2009/9/21/worlds-first-ray-traced-pc-game-and-movie-to-arrive-in-2012.aspx). The game would use the same assets as the movie (produced by LightStage and Big Lazy Robot) and would be raytraced in realtime using OTOY technology.

A few days ago, a rather spectacular trailer of this game/movie surfaced: http://www.youtube.com/watch?v=v3tttKdhCYw.

More here: http://www.brightsideofnews.com/news/2010/3/29/is-gaiking-the-revolution-in-cinema-and-gaming.aspx

Saturday, March 27, 2010

Fermi: a raytracing BEAST!!! (and FYC: Fuck You Charlie :-)

Fermi launched yesterday and it redefined the meaning of realtime raytracing/pathtracing. Everyone knew it was going to excell at CUDA computing tasks such as raytracing, but this is really nuts: Anandtech benched Nvidia's latest Optix demo called Design Garage which features sports cars rendered with path tracing, and the benchmark results are totally off the charts: Anand measured an 870% improvement in pathtracing performance between the GTX480 and the GTX285. Damn...I bet it flies in voxel raycasting too.

This is excellent news for all the GPU based renderers.

"Design Garage" is a really cool app and remarkably complete for a tech demo. It's probably the coolest tech demo that I've seen since the ATI Ruby demo for the HD4800 series (only this time it's playable ;-). Congratz to Nvidia and the Optix team for innovating and pushing GPU technology to the limit (despite the problems)! And fuck you Charlie (ah it feels so good :-)! Now if someone could just make a simple low res interactively pathtraced game with Optix...

Thursday, March 11, 2010

SVO and path tracing update

A few months ago, I started thinking about an implementation of extending Sparse Voxel Octree raycasting with realtime GPU accelerated path tracing as a proof of concept. Well, no need for that anymore as the guys behind Voxelstein 3D have beaten me to it.

Hans Krieg, the (only?) programmer of the Voxelstein 3d engine incorporated a path tracing extension to the engine which uses SVO and BIH (bounding interval hierarchy) to render the voxels. The code runs on both CPU and GPU(CUDA) and the first images are rather crude, but have a warm and natural global illumination to them.

For pictures and details about the engine, visit http://www.jonof.id.au/forum/index.php?topic=1411.msg12406#msg12406

UPDATE: Samuli Laine has written an excellent paper entitled "Efficient Sparse Voxel Octrees" which uses a nifty trick to make the contours of the voxels much less blocky. On top of that, he posted a video and the complete open sourced CUDA code of his technique as well. All can be found, read, watched on http://code.google.com/p/efficient-sparse-voxel-octrees/ . Fantastic work and probably the most practical and "efficient" implementation of SVOs yet, ready to be abused by graphics engineers :-)

OTOY this summer?

Excellent must read article about OTOY:

http://games.venturebeat.com/2010/03/10/otoy-announces-supercomputer-will-enable-revolutionary-games-on-demand-service/

Apparently OTOY is building multiple supercomputers (Fusion Render Clouds) with AMD and Supermicro which are expected to launch this summer. Wooooot!!

The hardware itself is quite intimidating. A supercomputer will consist of 128 servers, with a total of 250 AMD “Mangy Cours” Opteron microprocessors and 500 graphics chips based on AMD’s Cypress designs. Each of those graphics chips can process 2.7 teraflops, or 2.7 trillion math operations per second. Each supercomputer could serve 3,000 high-definition users, or 12,000 standard-definition users. Otoy’s own software on a consumer’s own machine is tiny, taking up just four kilobytes of data.

Check out their revamped website as well: www.otoy.com Finally some action :-D !

This press release summarizes it all: http://www.otoy.com/media/press/launch.html

I'm just hoping that the awesome voxel raycasting technology first seen in the Cinema 2.0/Ruby demo for the HD4800 series in June 2008 (sheesh, that was 21 months ago!!!!), will be used as well on these cloud supercomputers, as it would be an ideal fit and instant justification for the concept of cloud rendering.

In other news, Onlive is also launching its cloud gaming service on June 17th! Are we going to have a cloudy summer?

Tuesday, March 2, 2010

OTOY teams up with SolidWorks

Nice bit of information about OTOY (finally). Thanks to the realtimerendering.com blog!

Otoy's cloud technology

Dassault Systems SolidWorks frustrated the media at SolidWorks World 2010 by being vague on the technical details of their cloud-based CAD, despite it apparently being under development for three years. So I was happy to speak with Jules Urbach of OTOY, the ceo of the company behind the curtain.

It was OTOY technology that powered the SolidWorks-in-the-cloud demo. OTOY uses a different approach from than of other technology providers, such as VisualTao (renamed PlanPlatform, renamed Autodesk Israel, recently acquired by Autodesk for its Project Butterfly for online co-editing of AutoCAD files).

The primary problem with running software on the cloud is latency -- the delay between the distant server and your computer. Latency is a function of bandwidth (how fast is the Internet connection?), distance (how far is the server from your computer?), resolution-quality of the screen images (how much data needs to be sent to your computer?), and the processing speed on the server (how quickly the data can be generated?).

Mr Urbach has been working on this problem for a decade, originally developing just such a system for playing video games over the Internet on behalf of entertainment companies like Nickelodeon. For the last couple of years, though, he's been working with AMD to deliver very high resolution images very quickly over even relatively slow connections -- which solves most of the problems associated with latency .

How OTOY Technology Works

The solutions are to (a) greatly compress images and (b) generate images at very high speeds on very low cost "computers." Compression is merely a software problem; the high-speed-but-cheap computing is made possible by AMD's new RV770 GPU with its 800 stream processing units and 2GB of 256-bit RAM boasting a bandwidth of 115GB/sec. "We're talking pennies per vector core doing parallel processing," Mr. Urbach told me.

The software-hardware combination can deliver real-time encoding of up to 3840x2160 resolution. For the more typical 1080p display, OTOY generates a frame every millisecond -- that's 1,000 frames per second. Indeed, he envisions running BluRay video from the cloud on iPhones and other devices, complete with all BluRay menuing systems.

The one problem he cannot completely solve is distance; it is desirable to keep latency under 16msec, for which the maximum distance should be about a thousand miles. But even with a server in San Francisco and the client in New York (3,000 miles), the delay is just 85msec; to Japan, about 100msec. He gets excited about the possibilities of applying his technology to ultrahigh bandwidth countries like Korea. (Companies like Akamai specialize in hosting replicated data in centers distributed around the world to cut latency for clients like CNN.)


more here: http://www.upfrontezine.com/2010/upf-635.htm

Tuesday, February 23, 2010

At last...

...something OTOY-related (http://games.venturebeat.com/2010/02/22/our-latest-gamesbestgdc-speakers-contest-deadline-approaches)

Disruptive companies are getting a lot of attention at our upcoming GamesBeat@GDC executive game conference. The event is set for March 10 in San Francisco at the Game Developers Conference in the Moscone Convention Center. Today we’re announcing the following speakers have been added to our lineup:

Jules Urbach, CEO of Otoy and Lightstage. Urbach will join our panel on Disruptive Innovation and talk about the latest efforts at Otoy to create a games-on demand service with partners such as Advanced Micro Devices. He made his first game, Hell Cab, at age 18. He was the co-founder of Groove Alliance, which pioneered making online Flash games on Shockwave.com such as Real Pool. At Lightstage, he is working on technology that could revolutionize 3-D rendering; the company worked on face-capture technologies that helped create Brad Pitt’s morphing face in the film The Curious Case of Benjamin Button. Like OnLive, Otoy is trying to create cloud-based gaming, which allows consumers to play games in their living room that are actually hosted on servers in a distant data center.




Friday, January 22, 2010

Fuck yeah!

Awesome times for RTRT!!! 2010 is definitely going to be a breakthrough year for GPU based raytracing. There's a sudden tsunami of GPU renderers coming from everywhere. It started with the announcement of V-Ray RT for CUDA by Chaos Group at Siggraph 2009, and was followed by the iray demonstration by mental images at Nvidia's GTC 2009. Then in December, LuxRender showed their experiments with an OpenCL accelerated version of their renderer. This month, a new renderer popped up, called Octane Render, which is being developed by the former lead developer of LuxRender. As a reaction to this newbie unbiased renderer, other render companies decided to unveil their GPU acceleration plans as well: Fryrender (Arion), Bunkspeed, Indigo Renderer. I'm sure Maxwell Render and Kerkythea (or Thea Render) will follow very soon.

I think that most render companies were impatiently waiting for Larrabee, because the idea of porting their render software to a many-core CPU/GPU hybrid sounds much more attractive than porting to the relatively inefficient and memory starved GPU architecture... at least that's what most programmers without GPGPU experience would think, and they needed proof (in the form of OptiX (NVIRT), V-Ray GPU, iray or even the raytraced Ruby demo by OTOY) to realize that GPUs were in fact incredibly fast at certain ray tracing algorithms such as ray casting and path tracing. When Intel announced in December that Larrabee was not going to see the light of day for at least another two years, these companies had the choice: remain competitive by incorporating GPU acceleration into their product as soon as possible, or stagnate as a CPU-only render company and loose marketshare to their GPU embracing competitors.

In short, my dream of realtime photorealistic graphics at playable framerates has come a huge step closer to reality. Realtime raytracing is not an academic PhD project any longer, but it has become big business, now that the big guys in hard- and software are playing with it. I'm sure that this trend of GPU accelerated final production rendering (not just for previz purposes) will spill over to Hollywood CG companies. I'm incredibly excited at this revolution and I'm eager to see what's going to happen next (GPU cloud ray tracing like RealityServer, Fusion Render Cloud???)

Friday, January 15, 2010

Arion Render, a hybrid GPU/CPU unbiased renderer

Amazing and extremely fast GPU/CPU raytracing from the maker of Fryrender:

Videos and info here http://www.randomcontrol.com/arion

The nice thing is that it's also a production renderer, just like Octane Render. There's no seperate render core for preview and final rendering, they are one and the same!

The race for realtime "production" rendering is definitely on...

Tuesday, January 12, 2010

Octane Render: a realtime GPU based unbiased renderer

The flood of realtime GPU path tracers and renderers keeps continuing and Octane Render is the latest newcomer. It's made by Terrence Vergauwen, a Belgian and compatriot of mine :-), who was the former lead of LuxRender. It's incredibly fast (currently CUDA only): www.refractivesoftware.com
Be sure to check out the video. It might not be as impressive as the iray video, but that was runnning on 15 Tesla GPU's, while the Octane video was recorded with 1 GTX 260!

The ever growing list of GPU renderers:

1 V-Ray RT GPU
2 iray (mental images)
3 LuxRender OpenCL (smallLuxGPU, David Bucciarelli)
4 Octane Render (Refractive Software)
5 BrazilRT (Caustic Graphics)
6 FryRender, Maxwell ????

Thursday, December 10, 2009

SVO path tracer WIP

Inspired by the recent flood of real-time path tracers (both commercial and non-commercial:

V-Ray RT,
mental images iray,
Nvidia Optix,
Caustic's Brazil RT,
David Bucciarelli's SmallptGPU OpenCL path tracer (http://davibu.interfree.it/opencl/smallptgpu/smallptGPU.html),
albertoven's Raydiant (albertoven.com),
mxadd CUDA path tracer (http://mxadd.org/CenterFrame.php?wherejump=projects),
javor's CUDA path tracer (http://javor.tech.officelive.com/tmp.aspx))

and the promise of infinite geometry by using voxel rendering, I decided to take the best of both worlds and write an SVO path tracer as a hobby project ;-). My goal is to make a very simple demo showing a Cornell box with a SVO voxelized Stanford Dragon in it, interactively path traced (brute force calculated unbiased indirect lighting) with CUDA (or OptiX, if it's easy enough to implement SVO raycasting). The whole scene must fit in video memory, no streaming (yet), because the path tracing algorithm would badly choke.

I also want to do a comparison between a polygon version and an SVO version of the aforementioned scene, hoping to demonstrate that path tracing voxels is much faster than path tracing polygons, due to the much simpler ray-voxel intersection calculation and automagic multiresolution benefits (see Cyril Crassin's "Beyond triangles: gigavoxels effects in videogames").

I'm still in the research phase, reading articles on (volume) path tracing and SVO (Cyril Crassin's Gigavoxels paper is extremely informative and I think you could just extend the raycasting to a path tracing approach). More to come soon.

Monday, November 30, 2009

Thursday, November 26, 2009

Soon...


I hope so goddammit ;-). Anything on the new Ruby, Fusion Render Cloud or that mysterious anime game would be more than fine.

In the meantime, there's an excellent article about cloud gaming in the November issue of Game Developer, written by Jake Cannell:

http://gamedeveloper.texterity.com/gamedeveloper/200911?pg=11#pg11
(you can read the last three pages without subscription)

Thursday, October 22, 2009

Nvidia's realtime ray tracing in the cloud: RealityServer and iray



mental images' RealityServer has now the option to render on a GPU cluster with CUDA based iray.

A very impressive interactive ray tracing demo, first shown publically at Nvidia's GPU Tech Conference: http://www.megaupload.com/?d=RCYDVG6S (H.264, 180 MB)

A video of iray integrated in Google SketchUp: http://www.youtube.com/watch?v=i6LBhws8l-A

RealityServer is sold in different configurations consisting of 8 up to 100+ Tesla GPU's. The biggest cluster configurations are targeted towards rendering of online virtual worlds and online entertainment, and can serve multiple concurrent users per GPU.




more info:

http://www.hpcwire.com/features/NVIDIA-Pitches-GPU-Computing-in-the-Cloud-65217572.html

http://brightsideofnews.com/news/2009/10/20/nvidia-launches-gpu-based-realityserver-30.aspx?pageid=0


Nvidia also showed a demo of an interactively raytraced Bugatti with global illumination running on OptiX at GTC:


video: http://www.megaupload.com/?d=YAOSYWK1 (H.264, 82 MB)

Wednesday, October 14, 2009

New CryENGINE3 trailer



in HD: http://www.youtube.com/watch?v=7tPfM1QnPlo&hd=1

Again the trailer explicitely mentions "Integrated Voxel Objects". I don't think it refers to the voxel sculpting tool for making things like caves in Sandbox Editor 2. I believe it is a reference to the SVO tech that I discussed in the previous post, because it is shown in the trailer among other features that are specific to CryENGINE3: procedural content, multi-core support, streaming infinite worlds, (advanced AI), deferred lighting, realtime global illumination, cryengine3 Live create (whatever that is).