Friday, July 2, 2010

Brigade path tracer comparison

The following screenshots are taken from the Brigade real-time path tracer demo, available at http://igad.nhtv.nl/~bikker/
Rendered with CPU only at resolution 832x512
Images with 100 and 800 spp were taken without frame averaging (only 1 iteration)
Images with 2, 8, 16, 32 spp taken with frame averaging (averaging samples of several frames)

2 spp


8 spp


16 spp


32 spp


100 spp


800 spp



To top it off, one big image comparing 800, 8, 16 and 32 spp. It amazes me that the quality of just 8 samples is already great and with some filtering it could rival the quality of the 800 spp image:

Thursday, July 1, 2010

Gaikai's cloud bussiness model: play games for free in your browser

Interview with Gaikai's Dave Perry on Joystiq:
http://www.joystiq.com/2010/06/30/dave-perry-on-the-innovation-of-gaikai/

Gaikai focuses on delivering game demo's, not complete games: you see an advertisement of a game on a website (could be Gamespot, EA.com, Eurogamer) or read a game review, and with just one click you can play a demo of that game in your browser without paying a cent. The game publisher pays for your playing time, 1 cent per minute per user.
This approach is economically safer, more practical and more retail/publisher/gamer friendly than what OnLive is doing. With the current network infrastructure of the internet and its bandwidth limitations, this is probably the most successful route for cloud gaming. Gaikai has already signed EA (http://games.venturebeat.com/2010/06/17/gaikai-signs-ea-as-digital-distribution-partner/), so I think cloud gaming is gonna get big pretty soon.

UPDATE: another video of OnLive, showing mouse latency in F.E.A.R. 2 behind a router: http://www.youtube.com/watch?v=Edf5xsqST90

Wednesday, June 30, 2010

Crytek aims for the cloud, sparse voxel octrees and sparse surfel octrees

Crytek's HPG 2010 presentation is available at http://www.crytek.com/fileadmin/user_upload/inside/presentations/2010_HPG_Keynotes/Notes.ppt According to the slides, Crytek is already using sparse voxel octree in the game asset pipeline. Because they are Crytek, they are also researching a variation on SVO, called the sparse surfel octree (I vaguely remember surfels from Michael Bunnell's point based ambient occlusion and indirect lighting technique in GPU Gems 2). I wonder what that is going to look like.

There are a few slides on server side rendering, which could "drastically change the direction" of the real-time rendering pipeline.

Other interesting tidbits:
- a configurable hardware scheduler which could make raytracing much faster
- Larrabee 2 still in the race for next-gen consoles?
- DX11 Compute Shaders suck
- Perception-driven graphics are the key to more efficient use of rendering resources (this is a very interesting future direction)

DysKinect

This one made me LOL:

Tuesday, June 29, 2010

Tom's Hardware review of OnLive

Tom's Hardware review: OnLive Cloud-Based Gaming: Is This the End of High-End PCs?
Interesting review, but the assumption in the article's title is already fundamentally flawed: high end PC gaming is already nearing it's end and it has nothing to do with cloud gaming, but everything with consoles. The article's conclusion is that OnLive doesn't come close to displace a high-end PC in gaming, but what the author seems to forget is that game publishers - not PC gamers - will ultimately decide if cloud gaming will succeed and they also have the power to kill off high-end PC gaming in no time (as they have been doing for the last 5 years).

Gone are the days when I was eagerly anticipating cutting-edge PC games like Doom III (before the name change to Doom 3), Half-Life 2 and Unreal 2. That was about 8 years ago. The last PC game worthy of being called cutting-edge was Crysis and that came out 3 years ago. Consoles have become the main focus of id Software, Epic games and now also Crytek. For a graphics enthusiast like myself, this is a very unfortunate trend, all dictated by economical laws.

So in essence, high-end PC gaming is already dead. Crysis still beats every other PC game (ported from consoles) in advanced effects. Cranking up resolution, AA, and AF settings in Modern Warfare 2 will not change the poor lighting and shadowing. I can't wait until the consoles, aka the high-end PC gaming killers, will be made obsolete themselves by cloud gaming. Considering the enthusiasm of game publishers and developers for the cloud (e.g. Crytek is a big proponent of server side rendering cfr. Yerli's presentation at HPG 2010), this might happen much sooner than thought, just like stereoscopic 3D is taking console gaming by storm.

UPDATE: CNET also has an excellent review of OnLive up, with an analysis of the benefits of cloud gaming for all actors in the playing field http://news.cnet.com/8301-17938_105-20009033-1.html

Monday, June 28, 2010

iray officially in the open with Bunkspeed Shot

Bunkspeed Shot (final version) was officially released last week. More importantly, it also means that the long awaited iray, which is powering SHOT, is finally available for everyone (it should have been here much earlier with 3ds max 2011, but was not integrated for some obscure reason).

Bunkspeed SHOT press release

You can download a 30-day trial demo at http://bunkspeed.com/shot/demo/index.html (Don't bother if you don't have a CUDA enabled card with at least 1GB of VRAM, else the software defaults to CPU only, totally retarded limitation if you ask me).

Funny enough, the press release makes it look like you'll need a Quadro or Tesla to run the software, but a Geforce should do fine and is probably faster. The amount of GPU memory will be the real decisive factor and Octane has shown that you can do a lot within a 1GB VRAM budget (it even has procedural textures now, which take up almost no memory).

Waiting for V-Ray GPU... hopefully another "Siggraph surprise" :-D

Saturday, June 26, 2010

Demo of Brigade real-time path tracer out!

Available at http://igad.nhtv.nl/~bikker/

Anyone (remotely) interested in real-time raytracing, owning a CUDA enabled GPU or a powerful CPU, must definitely try this excellent demo! It works with Geforce 8000 cards and upwards, but can also use the CPU only if you don't have a CUDA card. (UPDATE: some people on XP machines cannot run the program because of a msvcrt.dll error. Removing opengl32.dll from the Brigade folder seems to solve the problem). There are 4 different scenes to choose from, some are animated with "planes" flying around. You can simply edit "scene.txt" to change scene, resolution, samples per pixel and so on. This is a video of one of the scenes: http://www.youtube.com/watch?v=qC2zKIqttzk

It's an amazing piece of software with huge potential. Afaik, the CPU uses bidirectional path tracing while divergent rays are path traced on the GPU. Scenes and materials are very simple, but nevertheless I am still stunned that real-time path tracing with animated objects is possible today. (Bidirectional) path tracing solves most limitations encountered by other real-time GI methods which rely on image space techniques or can only be used in diffuse and semi-glossy scenes. Speed is the only limit. I can't wait to see Brigade run on a cluster of PC's each containing multiple Fermi's (as is suggested in the readme file). Looking very forward to the games that the Dutchies will produce with this technology ;-)

Thursday, June 24, 2010

Cloud gaming just works




The last couple of days, I have been reading a lot of impressions from gamers who have tried the OnLive service and I must say that I'm surprised at the amount of positive feedback. Many people don't seem to perceive any lag and the ones that do don't mind it too much and it never makes the games unplayable. I am stunned reading that OnLive works so well, I've been hoping that cloud gaming would work great, but this is even better than I had expected. I thought it would initially be plagued by major lag fluctuations, stuttering, connections shutting down when the service launched, but everything seems fine till now.

When cloud gaming really catches on and other services like OTOY and Gaikai will join the battlefield, these game clouds will have the capability to go beyond what consoles and even high-end PCs can offer in terms of graphics processing:

- insane geometrical detail with e.g. sparse voxel octree raycasting/-tracing for environments and characters
- advanced lighting and global illumination through GPU accelerated raytracing
- physics on every dynamic object
- procedural sound
- more human-like A.I. (just hook up the server to Blue Gene ;-))

This will be imo the ultimate argument to drop restricted console architecture in favor of cloud gaming.

Cloud gaming is also a great way for offering time-limited game demo's, which is Gaikai's main focus: play a demo of a soon to be released game right in your browser. How easy and customer friendly can it get? There are many other options beyond gaming, such as a Facebook-ish virtual reality world (LivePlace powered by OTOY), CAD programs, Photoshop, Matlab, anything compute intensive...

UPDATE: Two interesting short articles on Dave Perry's Gaikai:

http://www.nowgamer.com/news/3548/perry-big-3-will-embrace-cloud-gaming
http://www.nowgamer.com/news/3547/perry-gaikai-demo-surprised-publishers

Friday, June 18, 2010

Video review of OnLive

Cloud gaming, it's finally here: http://www.youtube.com/watch?v=Ir4B0rgta0Y

Two written reviews:

http://gizmodo.com/5567770/onlive-streaming-game-service-tested-at-home-finally

http://blog.wolfire.com/2010/06/Thoughts-on-OnLive

The reviews are surprisingly positive about the lag: some say it's noticeable, others say it isn't, but in either case it's not really an issue during gameplay, not even for "fast twitched" games like Unreal Tournament 3 and Batman Arkham Asylum. I(UPDATE: I have been watching 5 video reviews from casual gamers on YouTube, and every single one says that lag is unnoticeable, which is fuck awesome, I guess this settles anyones doubts about latency!). mage quality is a mixed bag: one reviewer says it looks almost identical to 720p local play, another says it's significantly worse. due to compression. I guess it depends on the bandwidth connection. Image quality is imo definitely not the biggest hurdle for cloud gaming, latency is much more important and apparently it's all very playable. Games are the most challenging software to make work through cloud computing and OnLive has apparently succeeded at this daunting task. OTOY and Gaikai will surely follow. When these services mature and gain popularity, consoles will face a difficult time. Ultimately, when every thinkable piece of software can be run on the cloud, who will still need Windows?

There's no doubt that cloud gaming is the future of games, the killer app for iPad and iPhone, probably sooner than most people think, and a serious problem for next-gen consoles. I think Larrabee/MIC/Knight's Corner might resurface in a cloud game server environment instead of being sold as a stand-alone PC card. I also think that at some point in the future, Nvidia and AMD will make hardware that is specifically aimed at game cloud servers and will be more efficient at memory use and power management in order to serve multiple users with the same hardware resources (like OTOY). A super beefed-up version of AMD Fusion for example.

Using the GPU for precomputing GI in game development

I just read on the Real-Time Rendering blog, that Ubi Montreal used GPUs to precompute ambient occlusion for Splinter Cell Conviction. The technique used was invented by Toshiya Hachisuka and described in GPU Gems 2 in the chapter "High-Quality Global Illumination Rendering Using Rasterization".

I also read that Bungie uses a GPU-accelerated photon mapping technique from the Siggraph 2009 paper "An Efficient GPU-based Approach for Interactive Global Illumination" by Rui Wang et al. to precompute GI in some of the Halo games (ODST?, Reach?).

It's nice to see that GPUs are actually used for precomputating lighting in games and movies (e.g. PantaRay in Avatar) and I believe this is a very interesting trend. On a PC stuffed with multiple Fermi's, some of these techniques might be close to real-time and achieve very high quality. With the latest breakthroughs in GPU-accelerated GI algorithms (path tracing, bidirectional path tracing (Brigade), soon realtime MLT?, (image space) GPU photon mapping, sppm) it should be possible to have movie-quality real-time GI on the next generation of consoles coming in 2012 (at the earliest). Or maybe not on consoles, but definitely on GPU clouds. :-).

Friday, June 11, 2010

Stochastic progressive photon mapping in Luxrender GPU

The guys behind Luxrender have released smallppmGPU and smallsppmgpu, two demos that incorporate ppm and sppm, which are very interesting unbiased algorithms that are much more efficient in rendering caustics than other unbiased methods (plain path tracing in particular) and which also offers nice DOF and motion blur. Link: http://www.luxrender.net/forum/viewtopic.php?f=34&t=4024 (registration is needed)

The next step for the GPU renderers which rely on brute force path tracing is to investigate more efficient and faster algorithms such as bidirectional path tracing and Metropolis light transport running entirely on the GPU. There is already research going on in this area e.g. "Path Regeneration for Interactive Path Tracing" by Novak, Havran and Dachsbacher describes an efficient bidirectional path tracer running on the GPU (http://www.vis.uni-stuttgart.de/~novakjn/paper/eg2010_pt.pdf).

Another logical evolution is getting biased algorithms (photon mapping, irradiance cache) to work efficiently on the GPU. This seems to be a much more difficult (but not impossible) task than having unbiased rendering on the GPU because these biased algo's are much more difficult to parallellize. Some recent papers in this area:

Morgan McGuire and David Luebke: Hardware-Accelerated Global Illumination by Image Space Photon Mapping

Bartosz Fabianowski and John Dingliana: Compact BVH Storage for Ray Tracing and Photon Mapping

Rui Wang et al.: An Efficient GPU-based Approach for Interactive Global Illumination

Maybe Chaos Group will stun us again at Siggraph 2010 with a biased GPU renderer, which renders 10 times faster than V-Ray GPU :-). Lots of interesting approaches to be explored and more exciting times ahead!

Thursday, May 27, 2010

1 more screen of Design Garage

There are lots of amazing screenshots from Nvidia's Design Garage demo for the new Fermi cards. I like this interior shot in particular, because it reminds me of the Cinema2.0/OTOY/Ruby demo:


From http://www.evga.com/forums/tm.aspx?m=289470&mpage=6

Wednesday, May 26, 2010

Intel pronounces Larrabee dead, how will this affect Unreal Engine 4?

You might remember this interview with Epic Games' ever so humble president Mike Capps from a few weeks ago, in which he said "if you look at what’s happening in the PC market – Larrabee and all that – it’s really taking off, and I think the jump to next generation’s going to be another really big one". Sadly, in an unexpected turn of events, Intel decided otherwise and decided to kill off the GPU that was partly Tim Sweeney's baby. In numerous occasions (e.g. Siggraph '09) Sweeney has stated that Epic's next-gen game technology Unreal Engine 4 was built specifically with Larrabee's multi-core architecture in mind.

Hopefully, this devastating revelation from Intel will not hinder Unreal Engine 4's supremacy in the next console generation, because I dare not imagine what console graphics would have looked like if it wasn't for UE3's anti-alias free dominance... oh the Humanity!

Thursday, May 20, 2010

V-Ray GPU news

Yesterday a new video of V-Ray's GPU renderer surfaced on the net: http://www.spot3d.com/vray/images/rt_movies/20100514_VRayRTGPU.wmv

The rendering speed and interactivity look phenomenal, but then again it's being rendered on 3 GTX480's so no real surprise there. It's also using OpenCL and Chaos Group is the first to deliver a working commercial GPU renderer that is not CUDA-only (LuxRender's smallLuxGPU was actually first with OpenCL but is open source).

Chaos Group started the whole GPU rendering revolution 9 months ago at Siggraph 2009 (mental images probably had a working implementation first with iray, but it was not shown in public until GTC 2009). Not only did they prove that path traced rendering with high-quality global illumination was possible on GPUs, but also that the GPU was an order of magnitude faster at this kind of rendering than the CPU. Both of these amazing feats were utterly unbelievable just 10 months ago for every one but the lucky few at Nvidia, Chaos Group and mental images.

The V-Ray GPU presentation on a simple affordable PC (quad core i7 with gtx285) has inspired many other developers to start working on a GPU renderer (in contrast to iray's GTC demonstration on a uber render server consisting of 15 Teslas). If it wasn't for Chaos Group, most people probably still wouldn't have the ability to render on the GPU or even know that it was actually possible.

Wednesday, May 19, 2010

Cloud gaming a hot topic at HPG2010 and Onlive coming to Belgium!

Woot! Onlive is coming to my small, governmental-crisis-prone country :-D. Yay! http://blog.onlive.com/2010/05/16/onlive-coming-to-belgium/
Belgacom, the largest broadband operator in Belgium, has made an investment in OnLive, and has partnered with us to deliver the OnLive® Game Service to their broadband customers. Belgacom has the exclusive right to bundle the OnLive Game Service in Belgium and Luxembourg with their other broadband services, but gamers in these countries also will have the option of ordering directly from OnLive through any Internet service provider.
Too bad I hate those soul-sucking fuckers from Belgacom and I refuse to pay them a cent. OnLive should have partnered with Telenet: much better broadband service (Telenet is on cable, which is on average 3x faster than Belgacom's ADSL network) and much more popular in general than the state owned monopoly of Belgacom.

In other news, HPG2010 will feature Turner Whitted (ray tracing pioneer) and Cevat Yerli (Crytek) as keynote speakers, and both will talk about server-side rendering http://www.highperformancegraphics.org/program.html

Tuesday, May 18, 2010

Watch the rendering equation being solved in real-time!

Video from the "Brigade" real-time path tracer:
http://www.youtube.com/watch?v=b7W4BQevKiM
It looks dreamy (because of the blur), and it fits the atmosphere perfectly because it fulfills a dream for many (including myself):



Watching path tracing in real-time is very satisfying imo, as it has been considered to be the most physically accurate but slowest solution to the rendering equation and it's real-time implementation has remained some kind of a holy grail for graphics researchers since it's conception in the 1980s. Now that this ultimate long sought after goal has (almost) been reached, I found it particularly pleasing to re-read the following overview of the history and principles of path tracing on Wikipedia:

Path tracing (shamelessly copied from wikipedia)

Path tracing is a computer graphics rendering technique that attempts to simulate the physical behaviour of light as closely as possible. It is a generalisation of conventional ray tracing, tracing rays from the virtual camera through several bounces on or through objects. The image quality provided by path tracing is usually superior to that of images produced using conventional rendering methods at the cost of much greater computation requirements.

Path tracing is the simplest, most physically-accurate and slowest rendering method. It naturally simulates many effects that have to be specifically added to other methods (ray tracing or scanline rendering), such as soft shadows, depth of field, motion blur, caustics, ambient occlusion, and indirect lighting. Implementation of a renderer including these effects is correspondingly simpler.

Due to its accuracy and unbiased nature, path tracing is used to generate reference images when testing the quality of other rendering algorithms. In order to get high quality images from path tracing, a very large number of rays need to be traced lest the image have lots of visible artefacts in the form of noise.

History


The rendering equation and its use in computer graphics was presented by James Kajiya in 1986.[1] This presentation contained what was probably the first description of the path tracing algorithm. Later that year, Lafortune suggested many refinements, including bidirectional path tracing.[2]

Metropolis light transport, a method of perturbing previously found paths in order to increase performance for difficult scenes, was introduced in 1997 by Eric Veach and Leonidas J. Guibas.

More recently, computers and GPUs have become powerful enough to render images more quickly, causing more widespread interest in path tracing algorithms. Tim Purcell first presented a global illumination algorithm running on a GPU in 2002.[3] In 2009, Vladimir Koylazov from Chaos Group demonstrated the first commercial implementation of a path tracer running on a GPU, and other implementations have followed.[4] This was aided by the maturing of GPGPU programming toolkits such as CUDA and OpenCL.

Description

In the real world, many small amounts of light are emitted from light sources, and travel in straight lines (rays) from object to object, changing colour and intensity, until they are absorbed (possibly by an eye or camera). This process is simulated by path tracing, except that the paths are traced backwards, from the camera to the light. The inefficiency arises in the random nature of the bounces from many surfaces, as it is usually quite unlikely that a path will intersect a light. As a result, most traced paths do not contribute to the final image.

This behaviour is described mathematically by the rendering equation, which is the equation that path tracing algorithms try to solve.

Path tracing is not simply ray tracing with infinite recursion depth. In conventional ray tracing, lights are sampled directly when a diffuse surface is hit by a ray. In path tracing, a new ray is randomly generated within the hemisphere of the object and then traced until it hits a light(possibly never). This type of path can hit many diffuse surfaces before interacting with a light.

Bidirectional path tracing

n order to accelerate the convergence of images, bidirectional algorithms trace paths in both directions. In the forward direction, rays are traced from light sources until they are too faint to be seen or strike the camera. In the reverse direction (the usual one), rays are traced from the camera until they strike a light or too many bounces ("depth") have occurred. This approach normally results in an image that converges much more quickly than using only one direction.

Veach and Guibas give a more accurate description[5]:

These methods generate one subpath starting at a light source and another starting at the lens, then they consider all the paths obtained by joining every prefix of one subpath to every suffix of the other. This leads to a family of different importance sampling techniques for paths, which are then combined to minimize variance.

Performance

A path tracer continuously samples pixels of an image. The image starts to become recognisable after only a few samples per pixel, perhaps 100. However, for the image to "converge" and reduce noise to acceptable levels usually takes around 5000 samples for most images, and many more for pathological cases. This can take hours or days depending on scene complexity and hardware and software performance. Newer GPU implementations are promising from 1-10 million samples per second on modern hardware, producing acceptably noise-free images in seconds or minutes.[citation needed] Noise is particularly a problem for animations, giving them a normally-unwanted "film-grain" quality of random speckling.

Metropolis light transport obtains more important samples first, by slightly modifying previously-traced successful paths. This can result in a lower-noise image with fewer samples.

Renderer performance is quite difficult to measure fairly. One approach is to measure "Samples per second", or the number of paths that can be traced and added to the image each second. This varies considerably between scenes and also depends on the "path depth", or how many times a ray is allowed to bounce before it is abandoned. It also depends heavily on the hardware used. Finally, one renderer may generate many low quality samples, while another may converge faster using fewer high-quality samples.

Scattering distribution functions

The reflective properties (amount, direction and colour) of surfaces are modelled using BRDFs. The equivalent for transmitted light (light that goes through the object) are BTDFs. A path tracer can take full advantage of complex, carefully modelled or measured distribution functions, which controls the appearance ("material", "texture" or "shading" in computer graphics terms) of an object.

Friday, May 7, 2010

Voxelstein3D progress

Since the Voxelstein3D guys implemented path tracing, the engine produces some really cool and natural looking images:



The realistic path traced lighting may not be that obvious from these shots, but if you would replace the path tracing with direct lighting you'll get the usual hard shadows and there won't be a gradual lighting fall off in indirectly lit areas. It's a little disheartening that the voxels still look quite rough and create a stair stepping effect. I hope we'll soon have a free polygon based game engine supporting path tracing, the Brigade engine (by Jacco Bikker and Dietger van Antwerpen, IGAD) and Nvidia's OptiX being two serious candidates. You could theoretically re-use the geometry of an existing game(let's say Half-Life 2), apply some realistic brdf materials and render a photorealistic scene with real-time (interactive) global illumination.

Saturday, May 1, 2010

Thea Render jumps on the GPU bandwagon

Thea Render is going to incorporate GPU rendering in v1.3 which will probably come before the end of the year http://www.thearender.com/downloads/TheaRenderRoadmap.pdf.

A list of released and announced GPU renderers:

1. V-Ray GPU (Chaos Group)
2. iray (mental images)
3. SmallLuxGPU (LuxRender)
4. Octane Render (Refractive Software)
5. Arion Render (Random Control/FryRender)
6. Thea Render
7. SHOT using iray (Bunkspeed)
8. RTT Powerhouse and RTT DeltaGen using iray (Realtime Technology)
UPDATE:
9. Indigo Render also announced plans for GPU acceleration
UPDATE 2 (Sep 29):
10. finalRender (cebas Visual Technology) http://www.cebas.com/?pid=hot_news&nid=378
11. Artisan using OptiX (LightWorks) http://architosh.com/2010/07/sig-lightworks-unveils-power-of-optix/
12. Zeany using OptiX (Works Zebra)

I bet Maxwell and Modo will quickly follow.

Thursday, April 29, 2010

Natal: some sick joke?


I usually keep away from forums where console wars are a daily matter, but the plans for Natal seem like total bullshit to me
Marc Whitten, general manager of Xbox 360, recently expressed similar sentiments in an interview with Fast Company.

"But Natal isn't just about gaming...It's about all living room experiences. Imagine a sporting event. Natal could know which team you're for because it sees your jersey, or knows you thought a bad call was made when you yell 'boo.' It learns about you and gets smarter to create a more tailored entertainment experience."