Menu

#412 EXR Display Driver Malfunction

non_fatal
open
5
2012-09-20
2011-04-18
Anonymous
No

The channel order of rendered EXR files is inverted. It is agbr rather than rgba. Setting the color channel names explicitly has absolutely no effect.

It seems to be impossible to render anything other than half-floats and that is probably not enough precision for Z channels, surface normals, point location data and possibly other potentially relevant AOV data.

The Aqsis documentation suggests that both the 'HALF" and the "FLOAT" data types are supported, but the Aqsis exr display driver doesn't seem to support the "UINT" data type. (That is less of an issue for me right now, but it seems that the type ought to be supported.


OS Information:
LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch:cxx-3.0-ia32:cxx-3.0-noarch:cxx-3.1-ia32:cxx-3.1-noarch:cxx-3.2-ia32:cxx-3.2-noarch:cxx-4.0-ia32:cxx-4.0-noarch:desktop-3.1-ia32:desktop-3.1-noarch:desktop-3.2-ia32:desktop-3.2-noarch:desktop-4.0-ia32:desktop-4.0-noarch:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch:graphics-3.1-ia32:graphics-3.1-noarch:graphics-3.2-ia32:graphics-3.2-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-3.2-ia32:printing-3.2-noarch:printing-4.0-ia32:printing-4.0-noarch:qt4-3.1-ia32:qt4-3.1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 10.04.2 LTS
Release: 10.04
Codename: lucid


Aqsis Version:

aqsis version 1.6.0 (revision 0)
compiled Jan 30 2010 22:01:19

Installed via apt-get from standard Ubuntu repositories.


exrheader output for exr_half-float_bug.exr as rendered from exr_half-float_bug.rib (attached):

exr_half-float_bug.exr:

file format version: 2, flags 0x0
channels (type chlist):
Color.A, 16-bit floating-point, sampling 1 1
Color.B, 16-bit floating-point, sampling 1 1
Color.G, 16-bit floating-point, sampling 1 1
Color.R, 16-bit floating-point, sampling 1 1
Depth.Z, 16-bit floating-point, sampling 1 1
Point_Location.X, 16-bit floating-point, sampling 1 1
Point_Location.Y, 16-bit floating-point, sampling 1 1
Point_Location.Z, 16-bit floating-point, sampling 1 1
chromaticities (type chromaticities):
red (0.64 0.33)
green (0.3 0.6)
blue (0.15 0.06)
white (0.3127 0.329)
clipFar (type float): 3.40282e+38
clipNear (type float): 1.19209e-07
compression (type compression): zip, multi-scanline blocks
dataWindow (type box2i): (0 0) - (639 479)
displayWindow (type box2i): (0 0) - (639 479)
lineOrder (type lineOrder): increasing y
pixelAspectRatio (type float): 0.9975
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 2.66
worldToCamera (type m44f):
(1 0 0 0
0 1 0 0
0 0 1 0
0 0 5 1)
worldToNDC (type m44f):
(0.75188 0 0 0
0 1 0 0
0 0 5.87747e-39 0
0 0 -1 1)


Rendering Instructions:

This is rendered with no command line options using the default plastic shader.

aqsis exr_half-float_bug.rib

Discussion

  • Nobody/Anonymous

    Simple rib file that illustrates the problem.

     
  • Paul Gregory

    Paul Gregory - 2011-08-13

    I have fixed the missing FLOAT support. Not sure at this point about the channel ordering. exrheader is showing the channels as A, B, G, R, whereas Aqsis is definitely sending them as A, R, G, B, so I suspect that it might be just that the EXR file stores the channels in arbitrary order, and it seems that exrheader is reporting them alphabetically. Needs more research.

     

Log in to post a comment.