Game Technology Research at Brown

[Introduction] [Projects & Publications] [Sponsors] [People] [Resources] [Contact Us]


Morgan McGuire is now a professor at Williams College (
Williams Graphics Group). These pages are all that remains of the Brown Games Group, which is now defunct; we've kept them here because several people point to these pages for various reasons. The group itself is no longer active.



The Brown "Games" Group investigates new algorithms for real-time interactive 3D environments. Video games are the cutting edge of consumer virtual reality and are our motivating application. Our work has further applications in simulation, training, scientific visualization, and computer assisted design.

Projects & Publications

Real-time Simulation and Stylized Rendering of Smoke
Morgan McGuire, Andi Fein, and Colin Hartnett
NPAR 2006; Tech Report 2006; SIGGRAPH 2004 Poster Session

A series of papers describing methods for adding plausible, interactive real-time smoke to video games. These include methods for extending Selle, Mohr, and Chenny's cartoon smoke algorithm to real-time performance; rendering with two-tone shading and self-shadowing styles; and a simple method for animating smoke using a rigid-body simulator.

The most sigificant contribution of this work may be extending shadow volumes to work with bump maps to produce detailed shadow silhouettes from low-polygon meshes, and idea not limited to smoke rendering.

Abstract Shade Trees
Morgan McGuire, George Stathis, Hanspeter Pfister, and Shriram Krishnamurthi
I3D 2006

Conventional shade trees allow data flow programming of graphical effects. They are similar to wiring schematics. Abstract shade trees use a new "semantic type system" to power an easier-to-use programming model by abstracting most of the wires, leaving only simple connections. This enables non-programmers to create new 3D effects, which we demonstrate running on graphics hardware with comparable efficiency to hand-written code.

The SuperShader
Morgan McGuire
in ShaderX4 (2005)

SuperShader renders surfaces with many of the effects used in next-generation game engines, and allows arbitrary combinations of those effects to be applied simultaneously. It uses run-time code generation to produce optimized shaders for each surface and a cache to re-use shaders from similar surfaces.

A Heightfield on an Isometric Grid
Morgan McGuire and Peter Sibley
SIGGRAPH 2004 Sketch; Brown University Tech Report

The isometric heightfield is built on a hexagonal (isometric) grid instead of a traditional rectangular grid. This gives more accurate surface and smoother shading, normals, and curvature. We describe an implementation appropriate for real-time rendering of large and dynamic heightfields on programmable hardware. We derive algorithms for: sampling elevations between vertices, creating triangle strips, subsampled LOD, paging and texturing of square tiles, fast shadow volumes, fast computation of vertex normals.

Steep Parallax Mapping
Morgan McGuire and Max McGuire (Iron Lore Enterainment)
I3D 2005 Poster

We propose a new bump mapping scheme that can produce parallax, self-occlusion, and self-shadowing for arbitrary bump maps yet is efficient enough for games when implemented in a pixel shader and uses existing data formats.

The key idea is replacing the offset computation from Parallax Mapping with a small, highly optimized ray-tracer. For the special (and important!) case of bump maps, this ray tracer fits in three lines of fragment shader code and uses fast tex2DLOD instructions instead of regular texture reads.

Real-time Collision Deformations
Pawel Wrotek, Alexander Rice, and Morgan McGuire
jgt 2005, SIGGRAPH 2004 Poster Session

We present a method for effiently generating plausible dents and scratches due to collisions using bump maps instead of mesh deformation. We use a rigid body simulator based on that of Guendelman et al. [2003], with collisions detected by interpenetration using the OPCODE and G3D libraries. When a collision occurs, we make multiple rendering passes to compute the bump map deformation on the GPU. Our method is limited by the dynamic range of the bump maps and will eventually saturate.

Observations on Silhouette Sizes
Morgan McGuire
jgt 2004

There are many algorithms for discovering and rendering silhouettes (contours). This paper gives theoretical and practical bounds on the number of contour edges as a function of the number of faces in a model: as a rule of thumb, s appears to be generally proportional to f 0.8. The lower, upper, expected, and practical bounds are useful to theoretical analysis and constant tuning of contour-based algorithms (e.g. fur, NPR, and shadows).

Hybrid Billboard Clouds for Model Simplication
Ethan Bromberg-Martin, Árni Már Jónsson, G. Elisabeta Marai, and Morgan McGuire
SIGGRAPH 2004 Poster Session

Level of detail schemes decrease the cost of rendering a model, measured in vertex and fill (pixel) rate, while increasing the resulting image error. Billboard Clouds were introduced at SIGGRAPH 2003 for trading extreme vertex rate savings against moderate image error, but substantially increased fill rate cost. We extend billboard clouds to a hybrid model that combines regular polygons with alpha-matted billboards to simultaneously reduce vertex and fill rate, and produce less image error than billboards alone.

Hardware Determined Edge Features
Morgan McGuire and John F. Hughes
NPAR 2004

We introduce the edge mesh, a data structure that packs adjacency information into the attributes of a vertex buffer. Using the edge mesh, we compute silhouettes, contours, creases, valleys, and boundaries entirely on the vertex processor. We create stylized NPR renderings by applying stroke textures to thick quad-lines with mitered joins. The edge mesh can also be used for hardware-only shadow volumes and fur rendering.

Effective Shadow Volume Rendering
Morgan McGuire
in GPU Gems, 2004

Thoroughly covers the popular stencil shadow volume technique for rendering real-time shadowsq. Stencil shadow volumes, although often simple to implement initially, are notoriously difficult to make robust and fast. This chapter focuses on getting the corner cases right, and reducing the geometry and fillrate costs of the technique. This is an implementation-oriented description of the "Fast, Practical, and Robust Shadows" method described below.

Using Graphics Hardware to Accelerate Progressive Refinement Radiosity
Benjamin R. Landon
2004 Brown Tech Report

This report describes a method for implementing the "shooting" step of progresive refiement radiosity on programmable hardware. The method uses one rendering pass per hemicube face.

Fast, Practical, and Robust Shadows
Morgan McGuire, John F. Hughes, Kevin T. Egan, Mark J. Kilgard, and Cass Everitt
2003 NVIDIA Tech Report

We present a set of algorithms for rendering shadows using the stencil buffer and shadow volume geometry. It can achieve greater performance than previous methods by applying a series of techniques for culling, clipping, and simplifying shadow volume geometry. The performance of many 3D games is currently limited by pixel fill rate and can be accelerated using clipping and culling techniques. Scientific and engineering 3D applications can instead be performance limited by the hardware vertex processing rate and can be accelerated using the simplification methods.

Brown Mesh Set Project
Morgan McGuire and Nick Musurca

The Brown Mesh Set is a library of 1,139 3D models downloaded from the internet. It is useful for testing the robustness of graphics algorithms and making generalizations about the models used in practice. The models are raw meshes with no animation or texture data that are stored in an easy-to-use indexed face set format (IFS).

The G3D Graphics Engine
I3D 2006 Poster, Software 2.0, C/C++ Users Journal

We maintain the G3D C++ library as our research code base. It provides the common code for 3D applications: window creation, 3D geometry, rendering, I/O, network discovery and messaging. G3D is lower level than a game engine but provides more flexibility.

G3D provides access to cutting edge graphics features like Vertex and Pixel shaders and AGP Vertex Buffer Objects within an easy-to-use framework. It runs on Windows, Linux, and OS X on any graphics card and is used regularly by researchers, students, and game developers.

Rendering Quake 3 Maps
Morgan McGuire

In order to accurately test new algorithms we work with data from actual games. Many commercial games are built on the the Quake 3 engine and geometry in that format is readily available on the internet, making a convenient test set.

This document describes how to render the basic geometry of a Quake 3 map using OpenGL. It describes how to texture and lightmap this geometry, but does not describe how to render shaders, effects, characters, or movers (elevators and doors).

We have written a number of articles related to games and games research:

Morgan McGuire, A Game Developer's Review of SIGGRAPH 2004. gamasutra, August 2004,

Morgan McGuire. Guide to Cg 1.1., Sept 10, 2003.

Morgan McGuire. A Game Developer's Review of SIGGRAPH 2003. flipcode, July 2003,

Morgan McGuire. Rendering Quake 3 Maps. July 2003,

Ben Landon. Pixel Shader 2.0 Example. flipcode, January 7, 2003,

Morgan McGuire. A Game Developer's Review of SIGGRAPH 2002: San Antonio. flipcode, July 2002,

Morgan McGuire. A Game Developer's Perspective of SIGGRAPH 2001. flipcode, July 2001,

Morgan McGuire. A Game Developer's Review of SIGGRAPH 2000: New Orleans. flipcode, July 2000,

Morgan McGuire. Guide to Cg Runtime 1.0., June 21, 2002.

You may also be interested in the Immune Attack and Borealis Game projects at Brown.

New Projects...

An ideal games project addresses a specific technology problem that game developers will encounter in the next five years. We focus on the problems that industry is unlikely to solve within the context of product development and that have impact outside the entertainment field. We limit our scope to 3D and modeling and rendering problems. There are other interesting mathematical and sociological research problems (gameplay, game balance, strategy, design, networking, untrusted clients, fun, physics, AI, to name a few!) that complement but are beyond our mandate.


Morgan McGuire is supported by an NVIDIA Ph.D. fellowship. The Games group uses GeForce and Radeon graphics cards donated by NVIDIA and ATI.


At Brown:
John F. Hughes
Morgan McGuire
Peter Sibley
Pawel Wrotek
Gabriel Taubman
Harishabd Khalsa
Alex Rice
Nick Musurca
Jordan Parker
Korhan Bircan
Kevin Egan, RPI
Andi Fein, Microsoft
Colin Hartnett


Appropriate venues for games research:

Other games research groups:

Handy Open Source libraries for building games:

Game related data formats:


Contact Us

For more information, please contact Morgan McGuire <>