openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-devel] Multi-layer multi-pass files


From: Ton Roosendaal
Subject: Re: [Openexr-devel] Multi-layer multi-pass files
Date: Tue, 19 Dec 2006 16:28:30 +0100

Hi Florian,

Increasing the maximum length of channel names does break backwards
compatibility.

Euh, I hope you mean upwards compatibility? :)

Currently there is no standard naming scheme for layers. Would you like
to suggest one?

While working on multilayer files I decided it would be very hard to get a generic parser for a multilayer formatted exr file. There are too many dependencies also with our internal conventions for reading and saving, so I've tied it more to what is possible now in Blender (i.e. the separation in "Layers", "Passes" and "Channels").

In short the parsing goes as follows;

- check for a comment in the file with string "Blender MultiChannel"

- read all channels from the file, and it put it in a list

- split up channel names, with the following assumptions:
    (reading string from right to left)
  - channel type identifier is the last character, preceded with a "."
  - search back to another "." to get the pass name
  - the remainder is the layer name.

- create a list of Layers, each with a list of Passes, with an array of Channels,
  and read everything.

This allows any "random" name, for as long it has three dots to separate :)
Examples:

Front Shot 21.01.Diffuse.R
Light.Group.Blue.Spec.R
Character John Hair.Speed.X

(Note that these names get close to the 32 character limit! I've hardcoded Layer names to a maximum of 19 chars now. Pass names are max 10).

As for a standard; our image system will show any named layer/pass combo. But for the Blender compositor UI I had to standardize pass names. Available now in Blender are:

"Combined" : RGBA (the default combined result of Passes in a Layer)
"Depth": Z.
"Vector": XYZW
"Normal": XYZ
"UV": UVA (we store alpha for UV pass, to allow antialising)
"Color": RGBA
"Diffuse": RGB
"Spec": RGB
"Shadow": RGB
"AO": Ambient occlusion, RGB
"Reflect": RGB
"Refract": RGB
"Radio": RGB
"IndexOB": X

That list is easy to extend of course.

-Ton-


Florian



Ton Roosendaal wrote:
Hi OpenEXR team,
I'm wrapping up work for our next Blender release, which supports multi-layer multi-pass rendering now. We will make use of openexr files for writing/reading an entire set of layers/passes in a single file. In May this year I've noticed a bug in the channel naming, which didn't suppport longer nested names than 32 characters in total. I didn't get an answer to that, is this fixed? Other question; is there a naming standard for layers/passes in files? Or, how can we make sure that such files open nicely in other applications that support openexr?
Thanks,
-Ton-
On 12 May, 2006, at 13:06, Ton Roosendaal wrote:
Hi,

It looks like channel names in files are truncated to be 31 chars (plus trailing zero) maximum. That seems to be defined in ImfName.h.

In Blender we make use of the features as described in ImfChannelList.h, for image files with many channels to group them into nested layers. Unfortunately the maximum of 32 chars seems to be for the total name, not for the individual nexted parts.

For example; in Blender you can define per render command:
- Layers (geometry based, like foreground/background)
  - Passes (shading based, like per Lamp or Combined)
    - Channels (R,G,B,A or X,Y,Z, etc)

I get errors reading back files with a channel named like:

Characters_and_platform.Combined.R

Which is just 34 characters...
So, is this limited naming behaviour as expected?

Thanks,

-Ton-
---------------------------------------------------------------------- -- -- Ton Roosendaal Blender Foundation address@hidden http://www.blender.org
_______________________________________________
Openexr-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/openexr-devel



------------------------------------------------------------------------ -- Ton Roosendaal Blender Foundation address@hidden http://www.blender.org





reply via email to

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