ELECTRONIC ARTS
Below are brief examples of work I did @ EA Sports. Keep in mind many of these images were captured during development, so they are not the final product.
Photo Realistic Grass
In NCAA 13, our art director wanted to add close up low angle shots to the game. Doing this required creating a system to render photo realistic grass. I developed a procedural algorithm to generate camera-centric grass geometry at runtime. This produced believable occlusions at grazing angles. I also wrote an optimized shader to approximate realistic lighting taking into account blade translucency, bounce lighting, field degradation, paint lines, and weather. The entire system had a rendering budget of only 15ms.
Volume Lighting and Flares
As part of our efforts to improve the environments, I was tasked to enhance our stadium lighting. To do this I developed a system to render realistic light flares. These flares dynamically adjust their size, shape and orientation in response the camera's direction to the light. Attached to these flares was a set of customized camera facing geometry used to give weight to the lights. Lastly, I authored a post process shader was executed to produce dramatic volumetric shadows and light shafts.
3D User Interaface
One of big goals for our game was to improve the user experience. To do this, my team devised an idea to seamlessly integrate the user interface directly into the game environment. I was the lead of this project and the architect of the framework. The system used traditional Flash/Action Script to dynamically populate 3D objects used to control game flow. Part of this initiative also included pioneering technology for blending live video footage into our 3d environments. We were lucky to work with ESPN anchor Erin Andrews on this effort.
Cloth Simulation
One of my first tasks at EA was developing a real-time cloth simulator. This was designed to provide secondary motion for scenes involving cheerleader flags. Traditional joint based animation could not provide enough fidelity to look realistic. To accomplish this efficiently I devised a solution to exploit the topographical constraints of a flag. Knowing these limitations, I was able to eliminate the varlet integration typically used in cloth simulation. This allowed us to processes up to 20 flags in under 10ms. The simulation was performed in tangent space, making it robust for use on arbitrary shaped geometry.