Home   Resume   Projects   Publications   Courses  

This page is under constant development, but you will get an idea of the kind of projects I have been working on...

Background Replacement

Sashi Kumar Penta
Presented as poster at Siggraph 2008, Los Angelos.

Project page: Background Replacement

Fluid in Video: Augmenting Real Video with Simulated Fluids

Vivek Kwatra, Philippos Mordohai, Sashi Kumar Penta , Rahul Narain, Mark Carlson, Marc Pollefeys, and Ming Lin
To appear in Eurographics 2008.

Project page: Fluid in Video

Depth Images: Representations and Real-time Rendering

Pooja Verlani, Aditi Goswami, P. J. Narayanan, Shekhar Dwivedi and Sashi Kumar Penta

Appeared in symposium on 3D Data Processing, Visualization and Transmission, June 14-16, 2006 (3DPVT 2006)   [PDF]

Compression of Multiple Depth-Maps for IBR

Sashi Kumar Penta and P. J. Narayanan

Appeared in Pacific Conference on Computer Graphics and Applications, October, 2005 (PG 2005) [PDF]

[The original publication will be available at Springer - Special issue of The Visual Computer (TVC) ]

Depth+Texture Representation for Image Based Rendering

P. J. Narayanan, Sashi Kumar Penta and Sireesh Reddy K

Indian Conference on Computer Vision, Graphics and Image Processing, December 2004 (ICVGIP 2004)   [PDF]

Other Miscellaneous projects

  • Laparoscopic Surgery Training Simulator
    A training module for laparoscopic surgeons, being done with the Center for Artificial Intelligence and Robotics (CAIR), Bangalore - Finished as honours project in Fall, 2001
  • Image Mosaicing
    Multiple images of a rotated camera are converted into the reference view,aligned and stitched to obtain a High Resolution Panoramic Mosiac. - Spring, 2002.
  • Novel view synthesis
    Synthesizes a novel image from an arbitrary viewing position given two or three reference images of the 3D scene.-Spring, 2002
  • Truck backing
    Simulation of Truck backing using appropriate fuzzy methods-Fall, 2001
  • Image Manipulation Toolkit
    An image manipulation toolkit which allows manipulation of images and finds some features of the image. - Fall, 2001

    ReserveUpdateCheck Tool

    One of the key responsibilities of a graphics driver is maintaining the command buffer. As we go through various steps of executing the graphics application, we reserve the command buffer and then use it later (update part). There was no way to know if we are over reserving or under reserving the command buffer. This was a design choice, and is a problem in many cases. So, I come up with a framework which tracks how much command buffer we reserved and updated for each command. I also defined check points, where all the reserved command buffer should have used (updated). If at those check points, if we see any over reservations or under reservations, the tool prints out which commands are over or under reserved.

    Printing Command Buffer

    Many times, when we are debugging a graphics driver, we need to print the command buffer and verify if we are sending the correct commands. I wrote a tool that which allows printing the command buffer. Doing this is challenging mainly because, we could allocate part of a command buffer for one command, but update the command later on. We cannot print the contents of the commands as we allocate. I came up with PrintStore data structure, which stores the pointers to the commands as we allocate and then print all the commands at the end. This tool/framework is also useful in comparing the command buffers of two generations of the hardware.

    Marker Framework

    Designed a simple framework to track certain hardware commands. This framework allows simulation team to analyze how long a particular hardware command (draw call) is taking.


    Wrote a plugin that hijacks the device entry points to the driver, and logs the function names and parameter values. Basically when you run a 3D application, this plug in tells what calls and parameters a driver can expect. This tool is very useful for debugging, and also helps developing the driver in early phases. It is easier for the developer to know what kind of parameters to expect and in what order the functions are called by looking at the logs which were captured from a different system.


    Wrote a plugin that dumps render targets for each draw, present and SetRenderTargets. When debugging, it will be helpful to know which render target is not rendered properly. This is done by hijacking CreateResource*, Present, and Draw* Calls.

    Last updated: Aug 26, 2009 6:00 PST
    # Visits: