openexr-devel
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]