Projects
VR - Oculus Game
- Role: Graphics programmer. Responsible for overall visual aspect of Oculus game.
- Implemented deferred rendering based graphics engine with post processing effects & game assets pipeline.
- Achieved GPU based pixel perfect object picking in 3D game world with gbuffer.
- Optimized transformation calculations and shader system to improve frame rate.
- Programmed shaders for cloud noise effect, lighting, edge highlights, lasers and particles.
- Collaborated with others on different disciplines for engine development and bug fixing.
- Successfully coped with: Maintaining 90 FPS for dual screen of Oculus, UI design, Simulation Sickness.
Ray Tracing
- Developed a Ray Tracer from scratch in C++.
- Implemented Full BRDF and BSDF for different material properties like Glass and Metal.
- Implemented Level Of Detail (LOD) feature for camera.
- Reflection and Refraction on material surface using Snell's Law and Beer's Law.
- Result images converged after 1000 passes.
Inverse Kinematics:
Nov 2015
Nov 2015
- Developed custom C++ framework to load 3D model, bones & animation key frame information.
- Implemented data structure for hierarchical representation utilizing quaternions & VQS structure.
- Wrote DFS algorithm for hierarchical transformation of bones with LERP & SLERP methods to achieve smooth animation between key frames.
- Achieved speed control using exponential ease-in ease-out.
- Using Adaptive approach I was able to achieve motion control along the curved path.
- Controlled skidding and sliding by finding the proper balance between animation speed and motion.
- Implemented Cyclic Coordinate Descent (CCD) algorithm with constrain satisfaction for Inverse Kinematics for object grabbing.
- Challenges I faced: Calculating angle between target object in world position and end effector in model space, Controlling motion along the path, transformation between world and model coordinates for IK, Orientation control and skinning.
Atmospheric Scattering Project:
July 2015 Note: Please put on the headphones for complete experience
July 2015 Note: Please put on the headphones for complete experience
Atmospheric Scattering projects was developed as final project for RealTime Rendering class.
Demo consist of two scene 1) Earth From Space 2) Earth (Sky) from atmosphere. Developed in C++ OpenGl Engine using GLSL shading. The project is based on Sean O'Neil article and Nishita et al. 1993 paper on Atmosphere Scattering. I implemented 4 shaders as follows:
Earth From Space: Earth(Sky) From Atmosphere:
i) SkyFromSpace i) SkyFRomAtmosphere
ii) GroundFromSpace ii) GroundFromAtmosphere
Demo consist of two scene 1) Earth From Space 2) Earth (Sky) from atmosphere. Developed in C++ OpenGl Engine using GLSL shading. The project is based on Sean O'Neil article and Nishita et al. 1993 paper on Atmosphere Scattering. I implemented 4 shaders as follows:
Earth From Space: Earth(Sky) From Atmosphere:
i) SkyFromSpace i) SkyFRomAtmosphere
ii) GroundFromSpace ii) GroundFromAtmosphere
Physically Based Shading:
June 2015
June 2015
Physically based shading technique developed as part of Advanced Realtime Rendering class project. PBS is the modern technique of approximating the realistic lighting. It takes into account the physical surrounding of the object while shading it. The whole equation forms the Bidirectional Reflectance Distribution Function model (BRDF) along with the diffused lighting. Various techniques used in this project are as follows:
|
|
Space Scene (Personal Project):
May 2015 Note: Please put on the headphones for complete experience
May 2015 Note: Please put on the headphones for complete experience
Personal Project developed in custom component based engine (C++) and OpenGl Graphics.
Shaders Developed are:
Shaders Developed are:
- EarthShader : Supports multi texturing for night lights, Rim lights for atmosphere, BRDF lights for day time, alpha channel for clouds and specular reflection for generating effect of water reflection.
- Moon Shader: Supports phong lighting.
- SunShader: It has crepuscular rays implementation, Fire effect is achieved with Gaussian noise.
- Post Processing Shader: Used for blurring, and crepuscular rays.
A Snowball's Chance (Student Project):
March 2015
March 2015
Snowball’s Chance is a 3D isometric territory control shooter, where players control a snowman who is tasked with establishing and maintaining a foothold in enemy snowman territory. In this project I worked as a graphics programmer and I was responsible for the overall look and aesthetic part of the game.
My contribution in this project are as follows:
My contribution in this project are as follows:
- Developed OpenGl graphics engine in the component based architecture.
- Wrote vertex and fragment shaders for the graphics engine in GLSL.
- Implemented BRDF lighting and Rim Lights.
- Implemented normal maps for terrains.
- Implemented debug draw for game objects with physical properties.
- Implemented particle system for effects like snowfall, snow breath, trail.
- Improved the particle system performance by 90% using instance based particle system.
- Implemented animation for rolling snowman, snow breath stance, death animation and resurrect animation.
- Implemented wrappers for graphics system to expose it to LUA scripting system.
- Created textures for trees, wood, igloo and some HUD elements using photoshop.
- Gameplay programming using LUA scripting.
Deferred Shading (Student Project):
June 2015
June 2015
Implemented deferred shading in OpenGl GLSL. Features include :
|
|
C++ Component based Game Engine (Student Project):
November 2014
November 2014
Developed a component based game engine for plat-former game. Some of the highlights are:
|
|
Bloop ( Personal Project )
July 2011
July 2011
3D WebSite ( Kratin )
December 2013
December 2013
Click on Image to view 3D website.