ABOUT THE OPENEXR LIBRARIES ---------------------------- Half is a class that encapsulates our 16-bit floating-point format. IlmThread is a thread abstraction library for use with IlmImf. It currently supports pthreads and Windows threads. IlmImf is our "EXR" file format for storing 16-bit FP images. Imath is a math library. IlmImf only uses a subset of it, but we're releasing the full library because it's easier for us to maintain, and we think it'll be useful to others. Iex is an exception-handling library. See the IlmImfExamples directory for some code that demonstrates how to use the IlmImf library to read and write OpenEXR files. The doc directory contains some high-level documentation and history about the OpenEXR format. If you have questions about using the OpenEXR libraries, you may want to join our developer mailing list. See http://www.openexr.com for details. LICENSE ------- The OpenEXR source code distribution is free software. See the file named COPYING (included in this distribution) for details. WHAT'S INCLUDED --------------- Besides the core OpenEXR libraries, the release includes several utilities for reading, writing, viewing, and manipulating OpenEXR images. These include: * exrdisplay, an image viewer. * exrheader, a utility for dumping header information. * exrstdattr, a utility for modifying OpenEXR standard attributes. * exrmaketiled, for generating tiled and rip/mipmapped images. * exrenvmap, for creating OpenEXR environment maps. * exrmakepreview, for creating preview images for OpenEXR files. exrdisplay requires FLTK 1.1 or greater and OpenGL. exrdisplay supports fragment shaders if you have the Nvidia Cg SDK and a graphics card capable of running fp30 profile fragment shaders. See exrdisplay/README for details. We have also released an OpenEXR display driver for Renderman, a file I/O plugin for Shake, and a file I/O plugin for Adobe Photoshop (on both Windows and MacOS). These are packaged separately. Go to http://www.openexr.com to download them. NOTE: the most recent versions of these applications now have native support for OpenEXR, so you should only use our open-source versions of the plugins if you have an older version of the application. BUILDING OPENEXR ---------------- Building OpenEXR requires the zlib library. If you want to build the 'exrdisplay' image viewer, you'll also need FLTK 1.1, but this program is not required to use OpenEXR's libraries in your application. exrdisplay can also accelerate the display of OpenEXR images if you have the NVIDIA Cg SDK. Your OS distribution may already include these libraries, or supply packages for them. That is the preferred way to obtain them for use with OpenEXR. If not, you can obtain the source code for zlib and FLTK from: http://www.zlib.net http://www.fltk.org and you can download the NVIDIA Cg SDK from http://developer.nvidia.com. If you're building OpenEXR on a Windows platform, see README.win32 for instructions on how to build OpenEXR. The remainder of this file applies only to GNU/Linux or other UNIX-like systems. After installing the required libraries, to build OpenEXR on GNU/Linux or other UNIX-like systems, do this: ./configure make make install unless you obtained OpenEXR directly from CVS, in which case you should first read README.CVS. If you have the Nvidia Cg SDK and you want to build support for fragment shaders into exrdisplay, specify the path to the SDK using the "--with-cg-prefix" flag. There are some additional compile-time configuration options available; type `./configure --help` for more information. See README.OSX for details on building OpenEXR in MacOS X. Do `make check` to run the OpenEXR confidence tests. They should all pass; if you find a test that does not pass on your system, please let us know. Other UNIX variants haven't been tested, but should be easy to build. Let us know if you're having problems porting OpenEXR to a particular platform. All include files needed to use the OpenEXR libraries are installed in the OpenEXR subdirectory of the install prefix, e.g. /usr/local/include/OpenEXR. USING OPENEXR IN YOUR APPLICATIONS ---------------------------------- On systems with support for pkg-config, use `pkg-config --cflags OpenEXR` for the C++ flags required to compile against OpenEXR headers; and `pkg-config --libs OpenEXR` for the linker flags required to link against OpenEXR libraries.