Portfolio

Publications and Talks

Pre-Integrated Skin Shading
Eric Penner
Siggraph 2011 – Advances in Real-Time Rendering
[Course Webpage] [Slides]

Pre-Integrated Skin Shading
Eric Penner, George Borshukov
GPU Pro 2 – Advanced Rendering Techniques, 2011
[Book Webpage]

Shader Amortization using Pixel Quad Message Passing
Eric Penner
GPU Pro 2 – Advanced Rendering Techniques, 2011
[Book Webpage]

Advanced Medical Volume Rendering and Segmentation on the GPU
Eric Penner, Mike Roberts, Ross Mitchell
GPU Technology Conference (GTC) 2010
[Watch] [Download]

Three-Dimensional Medical Image Visualization Techniques on Modern Graphics Processors
Eric Penner, Ross Mitchell , Sheelagh Carpendale
Masters Thesis, University of Calgary, 2009
[PDF]

Isosurface Ambient Occlusion and Soft Shadows with Filterable Occlusion Maps
Eric Penner, Ross Mitchell
IEEE/EG Symposium on Volume and Point-Based Graphics (2008) [PDF]

Improved Diagnostic Quality in 3D Medical Visualization Using the GPU
Eric Penner, Ross Mitchell
Society for Imaging Informatics in Medicine (SIIM) 2008

State Of The Art Interactive 3D Medical Visualization Using the GPU
Eric Penner, Sonny Chan, Ross Mitchell
Apple World Wide Developer Conference (WWDC) 2007
[PDF]

The GPU Cluster without the Clutter: A Drop-in Scalable Programmable-Pipeline with Several GPUs and Only One PC
Eric Penner, Ryan Schmidt, Sheelagh Carpendale
Symposium on Interactive 3D Graphics and Games (I3D) 2006 [PDF]

Reconfigurable Displays
Ryan Schmidt, Eric Penner, Sheelagh Carpendale
Workshop on Ubiquitous Display Environments at Ubiquitous Computing (UBICOMP) 2004
[PDF]

Fun Projects

GPU Belief Propagation Stereo (April 2006)
Eric Penner
As part of Jim Little’s graduate computer vision course at UBC, I implemented a GPU version of the belief propagation stereo algorithm. This was the state of the art stereo algorithm at the time and ran in real-time on the GPU.
[Binaries][Source]

Astroids 3D (Oct 2004)
Eric Penner, Maxwell Sayles
As part of the creative portion of the Calgary Technology Center annual programming competition, we created a 3D version of the arcade classic asteroids using C#. What made our game unique was the use of implicit surfaces to create the asteroids, realistic 3D physics, and numerous special effects. Billboarding was used for most of the effects which include volumetric lighting and particle explosions. This game won first place at the competition which paid for a one month trip to Thailand!
[Binaries][Source]

Multi-Monitor Direct3D (July 2004)
Eric Penner
As part of an NSERC USRA scholarship I developed a Multi-Monitor Direct3D library. This was a DLL replacement for Direct3D that allows existing applications to span an arbitrary number displays/GPUs. By simply adding the DLL to an application’s folder, it can run on 12+ displays. It works by hooking all of Direct3D’s COM interfaces and distributing the framebuffer and rendering calls over all the displays. Almost all Direct3D features are currently supported including pixel and vertex shaders. It also supports managed Direct3D applications, allowing for rapid development of applications for display walls. Please contact me if you are interested in using this library or want the source code.

Software Polygon Renderer (Pre 2004)
Eric Penner
While on my exchange at the University of Queensland, Australia I developed this software polygon renderer for an assignment. Clipping is implemented using Cohen-Sutherland and Liang-Barsky, a depth-buffer is used for hidden surface removal, Bresenham’s line drawing algorithm is used for lines. Lighting is implemented with gouraud and phong shading.
[Binaries][Source]

Rigid Body Physics (Pre 2004)
Eric Penner
While writing asteroids I developed a rigid body simulator complete with angular momentum and collision response. I ported this code to C++ while working on the Primetime driving engine. This seperated the rigid body simulator from the rest of the game (which was kind of a mess) and made a very simple OpenGL environment for testing it.
[Binaries][Source]

Primetime Driving Engine (Pre 2004)
Eric Penner
PrimeTime was developed as part the computer games course at the University of Calgary. Some of my primary goals for the game were to have a realistic 3D driving engine, stencil-buffer shadows and 3D terrain. The driving engine was developed from scratch by implementing a rigid body simulator and by modeling a 4-point suspension. The terrain is created from a height-map which is loaded from a grey-scale bitmap. Since most of the time was spent on the engine, it isn’t much of an actual game yet, per se.
[Binaries][Source]