Sunday, January 23, 2011

Update 2 on real-time path traced Cornell Box Pong

I have made a simulation of the gameplay of Cornell Box Pong, running at a (simulated) 9 fps (click here or on the animation to see the whole thing instead of only the left half):



This is the quality that could be expected in real-time (10 fps) when running on a high-end Fermi card (GTX 480, 570, 580). Notice the color bleeding from the green and red wall on the white spheres, the yellow ball is reflected in the paddles and refracted in the glass sphere in front. I could also animate the spheres in the background to show off the color bleeding even better and the side or back walls could change color during gameplay to add a nice visual effect (e.g. when the pong ball hits one of the side walls), the paddles could emit light when bouncing the ball back, etc... The goal is to make a very simple game, with simple geometry but with real-time, fully dynamic, photorealistic lighting demonstrating ultrahigh-quality dynamic GI effects only possible with real-time path tracing.

These are the frames making up the animation in full "simulated real-time"quality (rendered for about 3 seconds on my laptop with GeForce 8600GT M, should render in less then 100 milliseconds on a GTX580):
















New scene can be downloaded from http://www.2shared.com/file/xiJ1VeSl/pongscene2.html (needs tokaspt, the extremely fast CUDA path tracer). Still thinking on how to progam the gameplay. Stay tuned!

2 comments:

Kerrash said...

I'd probably agree that axis aligned plane intersections would likely be quicker than sphere-ray intersections. I've seen the difference myself in my own physics routines.

Perhaps a combination of both, planes for the walls balls for the paddles (and ball :) ). I Kinda of like the look of the round paddles.

Typically the old game deflects the ball differently based on the position it hits the paddle, spheres would help to show this better.

Sam Lapere said...

Thanks for the comment, I also think that spherical paddles are easier to predict in which direction the ball will bounce back. I hope I can develop this further, but I have a lot of work with my totally unrelated PhD right now ;)