Location:   Home  >> Projects  >> ToneMapper

ToneMapper

Other related links
in this section:

Ray Tracer
Tone Mapper
Stereograms




Email: penny@penny.id.au


What is Tone Mapping?


The short answer to this question is that Tone Mapping is the process of manipulating the output of a ray tracer, in order to compress the colour values into a certain dynamic range.

The long answer is that a ray tracer is a computer program that takes a model of a world (which may be as simple as a sphere sitting on a flat surface) and produces an image of how it ought to look. It does this by analysing every part of the world that you can see from the camera, and calculating all the light rays that would hit that particular point. It then calculates the brightness of that point and uses these values to generate a realistic image of the world.

Since the ray tracer is adding up light from several different sources to calculate the brightness, there is no real limit to the brightness values that could be produced. However, there is a physical limit to how bright a point can be on your screen (for example, you could never display anything on your computer screen that looked like a light was shining directly at you). For this reason, graphical file formats - GIF, JPG, BMP etc - only store brightnesses between 0 and 255.

This means that there is a need for some sort of program to take the output of the ray tracer and reduce the brightess of each pixel to be no larger than 255. This is what a Tone Mapper does. Some Tone Mappers only perform simple operations such as trimming the overflowing values, or scaling all the values down. Others use complex algorithms to produce the best output for the input picture.

Background

Back to Top
In 2001, when I was in my first year of university at UTS, I heard about the Apple University Consortium's (AUC) seeding grant program. They were asking for students of AUC universities to propose programming projects for the Mac. They would then choose the most interesting projects and "seed" those students with a new iMac for at least a year.

After several discussions with Dr. Kevin Suffern - a graphics lecturer and AUC representative at UTS - I wrote a proposal for developing a simple Tone Mapper and submitted it. The AUC selected me as a seeding grant recipient and I was soon sitting at my brand new iMac, learning to program in Java/Cocoa.

In 2002 and 2003, the AUC very kindly sent me to Apple's WorldWide Developers' Conference in San Jose and San Francisco, respectively. At these conferences, I acquired a large amount of programming knowledge that I then applied to my ToneMapping project and other Mac development.

The Program

Back to Top
Version 1.0 of the software is now available for download. The server on which these files are hosted is not the same one as the one on which this page is hosted, and it is unfortunately unreliable. If you have trouble downloading the files, please try again later or contact me.

Compiled and tested in Java/Cocoa under OS 10.2 using Apple's Project and Interface Builders. An XCode version may be coming soon.

Download (with source code and sample images): - ToneMapper.dmg (1.34MB)

Here are some screenshots of the program. Click the images to view them full-size.


Links

Back to Top
Apple University Consortium - The organisation responsible for my Mac software development experiences.
Apple Student Developers - A forum for student software developers for the Mac.
Radiance - Ray tracing software for Unix/Windows.