Skip to: site menu | section menu | main content

Computer Graphics and Games

“Low-level programming is good for the programmer's soul.” --John Carmack

My Computer Graphics Work

Happy New Year 2012!

Ray Tracing

Here are some sample renders from my own ray tracer.

I wrote it entirely in C++. Features include:

  • Renders spheres, planes, and polygon meshes.
  • Oct-tree optimized rendering of high polygon meshes (1 million polygons rendered in seconds).
  • Lighting: Supports point and directional light sources, ambient light, and spotlights.
  • Shading: Supports lambert and blinn shading, shadows, texture mapping, bump mapping.
  • Ray Tracing: Accurately calculates reflections and refractions.
  • Adaptive multisampling based antialiasing.

It has been used to create effects for logos, intro animations, and other projects.

As of February 2013, a brand new version is actively under development. I've rewritten it from scratch, to add rendering layers, particles, multithreaded rendering, complex shaders including color, bump, specular, and reflection-mapping, stochastic multisampling for smooth shadows and blurred reflections, and hopefully focal and motion blur. Additionally, it will include several optimizations that will speed up rendering considerably. Finally, I'm looking into a game-engine mode, that will allow you to literally switch rendering between high-quality ray traced images to live hardware accelerated OpenGL. Stay tuned for more updates!

Game Development

I wrote a fully featured 3D game engine from scratch in C++, using OpenGL for rendering. It was developed while I was working for East Art Rainbow, a television broadcast company that creates game shows and video effects for live national and satellite television.

Some of the features of the engine include:

  • Full 2D and 3D views.
  • Lighting and material settings.
  • Cubic spline powered camera and object motion for extremely smooth movement.
  • Polygonal mesh importing from Maya and 3D Studio Max.
  • Fully featured particle system to support fire, smoke, explosions, fireworks, sparks, and glitter effects.
  • Active sky maps with moving clouds.
  • Numerous special effects for displaying and revealing images and logos on billboards, walls, in the sky, on waving flags, etc.
  • Integration with DirectShow to render videos onto OpenGL textures.
  • 2D (texture-based) and 3D Unicode font rendering with additional image processing effects such as glow.
  • Stereo sound mixing with configurable event-driven audio and background music.
  • Layers, HUD, transparency, and fading effects.
  • Multithreaded streaming of textures from disk.

Below are some screenshots from the award winning "Well Game" that I wrote for television:

Back to top