[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Openexr-devel] More documentation coming? Questioins on writingfi
From: |
Florian Kainz |
Subject: |
Re: [Openexr-devel] More documentation coming? Questioins on writingfiles etc... |
Date: |
Tue, 28 Jan 2003 10:06:06 -0800 |
Mr 'Zap' Andersson wrote:
>
> Other query: If I use the class for importing RGBA data, will that be
> confused if the file contains MORE than just RGBA?
>
No. The extra channels will just be ignored.
>
> Are there more "defined" OpenEXR channels?
>
> I'm planning to output as many channels that I can squeeze out of max,
> i.e. z, pixel velocity vectors, UVW, normals... the lot. But I see that
> only "R", "G", "B" and "A" is defined. Are there any preexisting "de
> facto" standards for channel names and their definition - if even within
> ILM - for stuff like UVW coordinates, surface normals, surface ID's, etc?
>
Here is what we do for additional channels in Renderman:
ILM's OpenEXR driver uses the name Z for the depth channel (usually stored
as 32-bit floats). For other channels, we let Renderman pick the names.
In versions 3.8 and later, Renderman supports "arbitrary output variables":
any kind of data computed by a shader can be stored in an image. For those
data, Renderman derives the channel names from the shader's variable names.
For example, for a variable, P, of type point, Renderman will generate
three channels, with names like P.001.x, P.001.y, P.001.z. ILM's OpenEXR
driver currently uses Renderman's channel names verbatim. Except for
R, G, B, A, and Z, the driver does not attempt to fit the names into
some standard scheme.
In order to standardize channel names other than R, G, B, and A, one also
has to define the exact meaning of each channel. For example, if we define
Z to mean "depth", is that "distance from the camera", or "z coordinate
in the camera's coordinate system"? Is the camera looking down the positive
or negative Z axis? Do the pixels contain depth, with infinity represented
as FLT_MAX or as an IEEE infinity, or 1/depth, with infinity represented as
zero?
Suggestions for standard channel names and their meanings are welcome.