Eric Chan
Eric Chan

I am a Principal Scientist at Adobe, where I conduct research and develop software for processing digital photographs. My primary interests include image processing, real-time rendering algorithms, and graphics architectures. I currently work on Camera Raw, Lightroom, and DNG.

Before joining Adobe, I was a Visiting Scientist at Mitsubishi Electric Research Laboratories, where I worked with Ron Perry on the Saffron Type System. Saffron has been licensed to Adobe and is shipping in several Flash-based products, including the Flash Player. If you've ever visited a web site that uses Flash, chances are you've seen Saffron in action!

In Spring 2007, I co-taught CSCI E-234 Introduction to Computer Graphics and GPU Programming with Hanspeter Pfister at the Harvard Extension School. I also helped teach this course in Fall 2005. It's part of the Extension School's Distance Education program; we had students from all over North America taking the class.

In the summer of 2005, I worked in the hardware verification group at ATI Research (now AMD), where I designed and implemented a randomized testing infrastructure for the R600 desktop chip (Radeon X2xxx series).

Frédo Durand and I developed a method for rendering fake soft shadows and a hybrid algorithm that combines shadow maps and shadow volumes. In August 2004 I taught in a SIGGRAPH course on real-time shadowing techniques. My presentation slides (on shadow silhouette maps and on the smoothie algorithm) are online.

Frédo and I also wrote a book chapter for GPU Gems 2; this chapter describes a technique for rendering prefiltered lines efficiently on graphics hardware. An earlier version of this article is available online.

Before coming to MIT, I worked in the Stanford Computer Graphics Lab under the supervision of Pat Hanrahan and Bill Mark. We extended the Real-Time Shading Language and wrote compiler back ends for the ATI R300 and NVIDIA NV30 architectures. We also developed a pass-decomposition algorithm to virtualize graphics hardware resources.

Links: S.M. thesis, papers, online articles, and SIGGRAPH course talks

Random Photo

Crater Lake National Park, Oregon


I enjoy nature photography and making prints. Here is a collection of recent images, updated every few weeks.

Early in 2007, I retired my aging Epson Stylus Photo 2200 and moved up to the Epson Stylus Pro 3800, which is fantastic. Several years later it's running as well as ever. I have put together some notes and a FAQ for this printer (and its successor, the Epson Stylus Pro 3880):

Here are some additional notes on Epson printer calibration and some general notes on profile making: I have written a Mac software utility to fix defective pixels (including columns/rows) in raw images captured with CCD sensors: Raw color image processing notes for Adobe Camera Raw (ACR) versions 4.5 and later (also applies to Lightroom 2.0 and later):

Raw color image processing notes for Adobe Camera Raw (ACR) prior to version 4.5:

For static subjects, stitching two or more images is a good way to gain additional resolution. Here are some tables that show how various stitching arrangements relate to print sizes:

Canon EOS 5D (180 ppi) Canon EOS 1D Mark II (180 ppi) Canon EOS 300D (180 ppi)
Canon EOS 5D (240 ppi) Canon EOS 1D Mark II (240 ppi) Canon EOS 300D (240 ppi)
Canon EOS 5D (300 ppi) Canon EOS 1D Mark II (300 ppi) Canon EOS 300D (300 ppi)
Canon EOS 5D (360 ppi) Canon EOS 1D Mark II (360 ppi) Canon EOS 300D (360 ppi)