Games
Website
|
Warhammer Online: Age of Reckoning
EA Mythic, 2005-2008
From when I had graduated college in 2005 until the spring of 2008, I worked at EA Mythic (then Mythic Entertainment) on the MMO project Warhammer Online: Age of Reckoning. As part of the Tools and Technology, Combat and Careers, and Core Technology teams, I was responsible for maintaining, debugging, and extending the functionality of several important rendering sub-systems of the game including the water and ability effects systems, as well as many components of the monster/character figure generation systems. |
Publications
|
Download Paper (14MB) Presentation (12MB) Video (MPEG, 50MB)
|
Visualizing Competitive Behaviors in Multi-User Virtual Environments
Nathan Hoobler,
Greg Humphreys, and
Maneesh Agrawala
Published: Proceedings of IEEE Visualization 2004 Presented: IEEE Visualization Conference 2004, Austin, TX In the Fall of 2003, I began an independent study looking into enhancing the spectator experience in multi-player videogames (an extension of the architectural splitting work done by my advisors in 2002). To this end, I created a mod for the then newly released game Return to Castle Wolfenstein: Enemy Territory, which enabled me to get direct access to the internal game data structures and create a system which improved the spectator experience by helping an observer to identify interesting or important behaviors. More >>> |
Programming
|
Screenshot |
SDFText
Spring, 2008
SDFText is an OpenGL-based text rendering system which I wrote as part of a larger graphics project. It uses an implementation of the "Improved Alpha-Tested Magnification For Vector-Textures and Special Effects" paper presented by Valve Software, as well as (FreeType and OpenGL 2.0) to build an atlas of every renderable glyph in a given typeface inside a texture, then use that texture (along with a specialized GLSL fragment shader) to render arbitrary strings to the screen using that font. The interesting thing about this system is that the texture which is generated for the typeface is a "Signed Distance Field" representation of the font's characters, which (using the aforementioned fragment shader) can be used to trivially add drop-shadows, outlines or other effects to the characters, as well as scale the size of the glyphs up to several times the resolution of their texture representation without any visible aliasing artifacts. |
Older Work
|
Download Video (MPEG, 44MB)
|
Dynamic Duo
Final Project, Computer Graphics in Film Production -- Fall, 2004
In the Fall of 2004, I took a course entitled "Computer Graphics in Film Production". This course was an interdisciplinary collection of students experienced in 3D modeling, film production, studio art, and computer graphics, and was intended to allow these various groups to inter-mix and assemble the talents needed to design and create short computer-animated films. During the semester, students produced three films in groups of 4-5 students; Dynamic Duo is the final project for the group I worked with. My responsibilities for this project were mostly that of technical and rendering expert. Specifically, I was responsible for setting up the rendering modes, materials, lighting, and special effects seen in this film. This is of particular interest since we elected to do a mixture of live-action and computer-rendered animation. As a result, the lighting used to render the CG elements needed to be measured and set up specifically to match the live-action scene. Furthermore, in order to realistically incorporate an artificial object into a live-action scene, we must render shadows and reflections on applicable surfaces as well, which amplify the need for realistically modeled lighting and surfaces. In addition to the lighting, rendering, and compositing, I also created the central character model, and rigged it with an IK skeleton for my colleagues to use when animating their scenes. Finally, I helped to determine the score and edit it to match the shots. |
|
Inverse Kinematics
Class Project, Animation -- Fall, 2003
This is a simple inverse-kinematic solver written by me for my Animation class in 2003. It reads in a simple definition file that describes an armature, then allows the user to move an objective point around in 3-space as it solves inverse-kinematic matrices to connect the end-point of the armature to the goal. It supports joints which have one, two, or three axes of rotation as well as translational joints (like pistons), and can solve the iterative IK matrix using either the pseudo-inverse of the Jacobian or simply the transpose (which is less expensive to compute, but converges to the goal configuration more slowly). It also supports joints of varying stiffness. |
|
G-Tanks
Final project, Real-Time Rendering -- Fall, 2002
G-Tanks is a game engine written by two other students and myself as the final project for our Real-Time Rendering class. My responsibilities were to create the core engine layout, the Terrain LOD subsystem, the Particle Effects subsystem, the physics engine, and the video vertex memory manager. I also assisted in creating certain particle effects (such as the explosions seen in the screenshot). |