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)
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)
[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)
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
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
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
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.
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.