Welcome to the Computer Graphics (GFX) Research Group at UMass!
This is the homepage of the Computer Graphics Research group at UMass Amherst.

Our research focuses on developing new algorithms and techniques in computer graphics and visual computing in general. Research topics include 3D content creation, global illumination algorithms, real-time rendering, graphics hardware based rendering, geometric acquisition of the real-world, geometric modeling, geometry processing, animation and simulation of physical phenomena.

Get to know our members here and publications here.

People

Faculty
Rui Wang
Evangelos Kalogerakis

Graduate Students
Yahan Zhou
Zhaoliang Lun
Haibin Huang
John C. Bowers

Former Graduate Students
Richard Blake Foster (United Technologies)
David Maletz (Independent Game Developer)
Hong Yuan (Disney Interactive Studio)
Oskar Akerlund (Wikinggruppen)
Mattias Unger (Electronic Arts)
Stephen Giguere (UMass Machine Learning Group)

Summer REUs
Stephen Giguere
William Stumpf
Jim Gummeson
Jonathan Leahey

Demos, Code and Data

NOTE: In order to run the real-time demos below, you need a decent desktop graphics card that supports at least OpenGL 2.0. All demos have been tested on NVIDIA GPUs. We cannot guarantee that they will run correctly on other types of cards. If a program reports missing .dll files, find them here.

All light probe images below are courtesy of Paul Debevec and USC ICT graphics lab.

Importance Point Projection for GPU-based Final Gathering
Executable
Source Code

This is a demo for our paper entitled "Importance Point Projection for GPU-based Final Gathering". It demonstrates a GPU-based global illumination algorithm which allows for editing of dynamic scenes, including view, primary light sources, materials, and geometry. Please refer to the README.pdf in the package for details.

Geometric Descriptors of Surface Points and Shape Segmentation
Source Code

This is source code from our paper entitled "Learning 3D Mesh Segmentation and Labeling, Siggraph 2010". This archive contains code for exporting the shape features included in x-tilde (see paper for details), an implementation of Joint Boosting and a Conditional Random Field for mesh segmentation. The code uses Trimesh2 (version 2.8), Matlab, LAPACK.

Deep Boltzmann Machine for Synthesizing Shapes
Source Code

This is source code from our paper entitled "Analysis and synthesis of 3D shape families via deep-learned generative models of surfaces, SGP 2015". This archive contains code for training and sampling a Deep Boltzmann Machine for synthesizing point-sampled surfaces (see paper for details).

Learning Style Similarity of Shapes
Source Code

This is source code from our paper entitled "Elements of Style: Learning Perceptual Shape Style Similarity, Siggraph 2015". This archive contains code for learning a style similarity measure between shapes (see paper and project page for more details).

Parallel Poisson Disk Sampling with Spectrum Analysis on Surfaces
Executable
Spectrum Analysis Tool

This is a demo for our paper entitled "Parallel Poisson Disk Sampling with Spectrum Analysis on Surfaces". It demonstrates the computation of Poisson Disk samples on arbitrary mesh surfaces in real-time on a modern GPU. Example models are included. Please refer to the README.txt in the package for details.

Due to the version of Thrust this program was compiled with, the executable currently only runs on CC 1.x hardware and will fail on CC 2.0 GPUs.

Reflectance Filtering for Interactive Global Illumination in Semi-Glossy Scenes
Executable + data + shader code
Required Qt dlls

This is a demo for our paper entitled "Reflectance Filtering for Interactive Global Illumination in Semi-Glossy Scenes" . It demonstrates the illumination integration from VPLs with reflectance filtering as explained in the paper. Example scenes and textures are provided. Please refer to the README.txt in the package for details on how to run and use the program.

Per-pixel Rendering with Nonlinear Cuts
Executable + data + shader code

This is a demo for our paper entitled "Fast, Realistic Lighting and Material Design using Nonlinear Cut Approximation" . It demonstrates relighting with dynamic BRDFs and lighting with arbitrary per-pixel shading effects such as bump mapping and spatially varying BRDFs. The GUI allows you to change BRDF parameters, per-pixel effects, switch environment (use number keys) , or rotate environments (ctrl+mouse). Example scenes and textures are provided. Please refer to the README.txt in the package.

Visibility cuts
Executable + data + shader code

This is a demo for our paper entitled "Precomputed Visibility Cuts for Interactive Relighting with Dynamic BRDFs" . It demonstrates relighting under dynamic envionrment maps and dynamic BRDFs. The GUI allows you to change material parameters, switch environment (use number keys) , and rotate environments (ctrl+mouse). Due to a glitch, please reduce the exposure to 0.0001 in order to see a properly exposed image. Refer to the paper website for our paper video and additional data.

Real-time Translucency
Executable + data + shader code

This is a demo for our paper entitled "Real-time Editing and Relighting of Homogeneous Translucent Materials" . It demonstrates relighting of translucent objects under dynamic point lights and BSSRDF parameters. The GUI allows you to change material parameters and direct lighting. Refer to the README.txt in the package for usage information. Also take a look at our paper video.

The David ply model is courtesy of Stanford 3D scanning repository.

Robust statistical estimation of curvature on meshes
Executable

This Windows demo executable program estimates curvature for triangle meshes based on the method presented in the paper entitled "Robust Statistical Estimation of Curvature on Surfaces". Within an M-estimation framework, the algorithm is able to reject noise and structured outliers by sampling normal variations in an adaptively reweighted neighborhood around each point.

Simulating the Appearance of Jade
Code (PBRT Plugin)

This is a PBRT plugin for simulating the appearance of jade. The original project page can be found here. The code and data are provided as is. It requires a sample point file (.ssp) which stores the illumination sample points. Unfortunately the program for generating the ssp files are no longer available, but hopefully the code for loading the file can help you figure out the file format.

The dragon ply model is courtesy of Stanford 3D scanning repository.

Courses in computer graphics

CMPSCI 373 - Introduction to Computer Graphics

This course teaches the fundamentals of 2D and 3D graphics. The topics we cover include image processing, curves and surfaces, standard graphics pipeline, transformation, shading, texture mapping, ray tracing and programmable shaders. Students will learn OpenGL and implement fundamental algorithms behind modern graphics techniques. At the end of the course we will cover a broader range of topics including photography basics, HDR imaging, interacting with the physical world, and global illumination.

CMPSCI 474 - Advanced Image Synthesis

This course provides a broad overview of the theory and practice of rendering. Classic rendering algorithms will be covered, however, most of the course will cover current results in physically-based rendering algorithms. Specific topics to be covered include: ray tracing, monte carlo techniques, physically-based reflection models, global illumination rendering, radiosity, path tracing, photon mapping, image and signal processing, textures and texture synthesis, lightfields, camera and film.

CMPSCI 590GC/690GC - 3D Modeling and Simulation

The course will teach advanced algorithms and techniques for 3D geometric modeling, animation and physics-based simulation, which are all fundamental components of content creation software. The course will start by covering the most commonly used digital representations of shapes, such as polygon meshes, point clouds, NURBS surfaces, and subdivision surfaces. Then it will cover algorithms for surface scanning, reconstruction, registration, differential geometry, re-meshing, smoothing, texturing, parameterization, and geometric deformations. The course will proceed with algorithms for sketch-based modeling and procedural modeling. Finally, the course will cover methods for character rigging and animation, physics-based simulation of rigid bodies, deformable solids, fluids and cloth.

CMPSCI 691AC - Graduate Seminar on Computational Photography

This course is a convergence between computer graphics, computer vision, image processing, and digital photography. It will discuss three main research areas in-depth: computational illumination, computational optics, and computational image/video processing. Specific topics include basic photography techniques, image-based lighting, high dynamic range imaging, structured lighting, coded aperture imaging, light field photography, image mosiacing, matting, super-resolution, time-lapse video etc.

CMPSCI 691AD - General Purpose Computation on the GPU

Graphics processors (GPUs) on today's commodity video cards have evolved into powerful engines capable of a variety of computations beyond computer graphics. This course takes a detailed look at both basic and advanced topics related to general-purpose computation on graphics hardware (GPGPU). The aim of the course is to provide students with knowledge and hand-on experience in developing applications on modern GPUs using NVIDIA's CUDA programming interface.

CMPSCI 690IV - Intelligent Visual Computing

Intelligent visual computing is an emerging new field that seeks to combine modern trends in machine learning, computer graphics, computer vision and human-computer interaction to intelligently process, analyze and synthesize 2D/3D visual data. The course will start by covering the most commonly used image and shape descriptors. The course will then provide an in-depth background on topics of object recognition in images, shape recognition, shape segmentation, shape and scene reconstruction, motion reconstruction, deep learning for analysis and synthesis of images and shapes, and convolutional neural networks. Students will read, present and critique state-of-the-art research papers on the above topics.

Research

Sort by: category | date

Sort by: category | date