The exrdisplay program supports Nvidia Cg fragment shaders on hardware that supports the fp30 fragment shader profile. The fragment shader is used to convert the raw half data from an OpenEXR image to displayable 8-bit values in the framebuffer. The built-in fragment shader was generated by running: cgc -profile fp30 -o exrdisplay.fp30 exrdisplay.cg exrdisplay.cg and exrdisplay.fp30 are included for reference. You can write your own fragment shader for exrdisplay as long as your shader takes as input the required parameters. exrdisplay sets the following parameters as input to the fragment shader: name type ---------- ------ "exposure" float "defog" float3 "gamma" float "grayTarget" half "kneeLow" half "kneeF" half See ImagView.cpp and ImageViewFragShader.cpp for details on how exrdisplay uses these parameters. To make exrdisplay use your fragment shader, compile it for an fp30 profile as above, and then pass the compiled shader to exrdisplay like so: exrdisplay -f myfragshader.fp30 exrdisplay will warn you if there's a problem with your shader and fall back to software in that case. Credits ------- Thanks to Nvidia, especially Simon Green and Pat Brown , for their assistance. Simon wrote the bulk of the Cg OpenGL glue and provided a first pass at the fragment shader. Pat Brown provided technical assistance.