Tuesday, February 3, 2009

Project Proposal

Distributed Ray Tracing

I shall be extending my Ray tracer so as to be able to perform Distributed Ray Tracing as outlined by Cook et. al. in their paper by the same name.

The idea of Raytracing is to take point samples of all the pixels in the image and evaluate their color which results in images looking very sharp. 

Distributed Ray Tracing follows the principle of Supersampling and extends it in a way so as to be able to invoke penumbra shadows, depth of field, blurred reflection and blurred transparency. The paper also outlines a technique to perform motion blur, but as of now I can't see how to fit that into my framework. 

For my project I won't be writing any new intersection algorithms for primitive objects but rather will work with the spheres and plane intersection equations that are already built into my framework. 

Since it's too late now to give a plan for the project my next update will be the final one with the results.

Saturday, January 10, 2009

Project Proposal

Creating Dynamic Maps on the Valve Source Engine
Project Proposal for CG2
By
Pranabesh Sinha
In order to explain what I’d like to do for this project I need to give a brief overview of the project that I am doing in Computer Animation. Given below is the proposal for that project.

Learn to love Zombies
Project Proposal for Computer Animation
By
Abhishek Moothedath
Pranabesh Sinha

For this project we intend to use the same principles that have been applied to the Virtual Theatre pipeline i.e. Take motion capture data in real time, map it to a character and send it to a game engine which will render it in the Virtual Theatre environment. But there are several ideas that we intend to incorporate that will make the project more challenging. Some of those ideas are summarized below.

Sending motion capture data to a game engine isn’t a new concept, but we intend to use the Valve’s  Source engine which has hitherto not been used for this purpose.

Most people are familiar with the game Left 4 Dead, which has been created on the Source engine. The game pits the player against hordes of zombies, who come from every conceivable direction at a breakneck pace, while the player tries to get from one point to another. Our idea is to enjoy the game in a more realistic way rather than clicking on a mouse.

When finished, our game will enable the player to wear a motion capture suit and see an avatar of himself in the Left 4 Dead world. He will be attacked by zombies and to defend himself he’ll have to swing his arms or kick the zombies. The player’s avatar will mimic what the player does and should also be able to copy the force with which he hits the zombies. This force will decide how far the zombie gets hit back or if it is sufficient to destroy it.

The system will also recognize events like the character's hands holding the neck of the zombies. One interesting addition would be if we could reuse the script that we saw in Marla’s lab where some students wrote a script which enables the character Mia to develop a fire ball in her hands when she rubs her hands together and shoot that at the zombies.

Since the action on screen cannot be used to restrict movement of the motion captured user, the game will be made in such a way that the user is totally disastrous. If the user holds the necks of the zombies and closes his hands the zombie's head will burst. This 'reaction to events' might be dropped depending on time feasibility.

The game won’t be level based as the point of this project is not to make a complete game but to get a working model which can be built on to make cool storylines.

----------------------------------------------------------------------------------
One of the elements that will be required for the idea is a dynamic map. The idea is to make a map where the user is spawned and where the zombies will be spawned at random locations depending on the time and how well the user is playing. There will be some elements in the map that will be interactive, if a zombie is thrown at a box or a staircase with sufficient force then the element would break or just stop his motion.

Valve has released a Source SDK for map creation with which simple maps can be built. But to make the elements breakable some coding will probably be required. It is also planned at this stage to create some new entities not present in the toolbox.