Project: Mesh Rendering
To render a given mesh input as OBJ file by setting the camera transformations to follow mouse input, set up correct perspective, lighting, properties of material, generate a new mesh for the animated water pool and finally render the whole scene.
Motion Blur:
Project: Non-Photorealistic Shading
To do NPR (Non-Photorealistic Rendering) of a given model input as OBJ file by writing vertex and fragment shaders in GLSL. In addition, we also had to implement motion blur for whenever we moved the scene. You can see the results in the screenshots below:
Project: Mesh Subdivision
To apply loop subdivision algorithm to sub-divide any mesh (check for both textured & untextured mesh and subdivide (accordingly) given as an input to the program. For loop subdivision algorithm, it was essential to design our own data structure to store the adjacency triangular mesh information. As additional work to make the project better, I optimized the subdivision to work far more efficiently.
Optimization Results (for subdivision of stegosaurus model seen below):
Without Optimization: 5th iteration - 12 min
With Optimization: 5th iteration - 0.8 sec
6th iteration - 3 sec
7th iteration - 10 sec
Project: Physics Simulation
To create physics simulations demonstrating physical phenomenas and forces such as collisions, gravity, spring forces, linear forces and torque etc.
Computer Graphics
OpenGL and C++ Graphics Programming
In Spring 2013 Semester, I worked in OpenGL in Computer Graphics at Carnegie Mellon.
Highlights: My Ray Tracer project won gold in class. My overall rank was 2nd in class.
Project: Ray Tracer
To create a Ray Tracer by implementing algorithms how rays of light hit physical objects and illuminate them. Simulate effects such as reflection, refraction, fresnel effect. Advanced lighting effects: Softer shadows, Glossy Reflections, Anti Aliasing, Depth of Field.