Skip to content

Commit cd60fae

Browse files
authored
Document current standard optional attributes (AcademySoftwareFoundation#1092)
Signed-off-by: Cary Phillips <[email protected]>
1 parent c42bb20 commit cd60fae

File tree

2 files changed

+195
-3
lines changed

2 files changed

+195
-3
lines changed
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
Standard Optional Attributes
2+
############################
3+
4+
By default, OpenEXR files have the following attributes:
5+
6+
**chromaticities**
7+
For RGB images, specifies the CIE (x,y) chromaticities of the
8+
primaries and the white point.
9+
10+
**whiteLuminance**
11+
For RGB images, defines the luminance, in Nits (candelas per square
12+
meter) of the RGB value (1.0, 1.0, 1.0).
13+
14+
If the chromaticities and the whiteLuminance of an RGB image are
15+
known, then it is possible to convert the image's pixels from RGB to
16+
CIE XYZ tristimulus values.
17+
18+
**adoptedNeutral**
19+
Specifies the CIE (x,y) coordinates that should be considered
20+
neutral during color rendering. Pixels in the image file whose
21+
(x,y) coordinates match the adoptedNeutral value should be mapped to
22+
neutral values on the display.
23+
24+
25+
**renderingTransform**, lookModTransform
26+
Specify the names of the CTL functions that implements the intended
27+
color rendering and look modification transforms for this image.
28+
29+
**xDensity**
30+
Horizontal output density, in pixels per inch. The image's vertical
31+
output density is xDensity * pixelAspectRatio.
32+
33+
**owner**
34+
Name of the owner of the image.
35+
36+
**comments**
37+
Additional image information in human-readable form, for example a
38+
verbal description of the image.
39+
40+
**capDate**
41+
The date when the image was created or captured, in local time, and
42+
formatted as ``YYYY:MM:DD hh:mm:ss``, where ``YYYY`` is the year (4
43+
digits, e.g. 2003), ``MM`` is the month (2 digits, 01, 02, ... 12),
44+
``DD`` is the day of the month (2 digits, 01, 02, ... 31), hh is the
45+
hour (2 digits, 00, 01, ... 23), mm is the minute, and ss is the
46+
second (2 digits, 00, 01, ... 59).
47+
48+
**utcOffset**
49+
Universal Coordinated Time (UTC), in seconds: UTC == local time +
50+
utcOffset
51+
52+
**longitude**, **latitude**, **altitude**
53+
For images of real objects, the location where the image was
54+
recorded. Longitude and latitude are in degrees east of Greenwich
55+
and north of the equator. Altitude is in meters above sea level.
56+
For example, Kathmandu, Nepal is at longitude 85.317, latitude
57+
27.717, altitude 1305.
58+
59+
**focus**
60+
The camera's focus distance, in meters.
61+
62+
**exposure**
63+
Exposure time, in seconds.
64+
65+
**aperture**
66+
The camera's lens aperture, in f-stops (focal length of the lens
67+
divided by the diameter of the iris opening).
68+
69+
**isoSpeed**
70+
The ISO speed of the film or image sensor that was used to record
71+
the image.
72+
73+
**envmap**
74+
If this attribute is present, the image represents an environment
75+
map. The attribute's value defines how 3D directions are mapped to
76+
2D pixel locations.
77+
78+
**keyCode**
79+
For motion picture film frames. Identifies film manufacturer, film
80+
type, film roll and frame position within the roll.
81+
82+
**timeCode**
83+
Time and control code
84+
85+
**wrapmodes**
86+
Determines how texture map images are extrapolated. If an OpenEXR
87+
file is used as a texture map for 3D rendering, texture coordinates
88+
(0.0, 0.0) and (1.0, 1.0) correspond to the upper left and lower
89+
right corners of the data window. If the image is mapped onto a
90+
surface with texture coordinates outside the zero-to-one range, then
91+
the image must be extrapolated. This attribute tells the renderer
92+
how to do this extrapolation. The attribute contains either a pair
93+
of comma-separated keywords, to specify separate extrapolation modes
94+
for the horizontal and vertical directions; or a single keyword, to
95+
specify extrapolation in both directions (e.g. "clamp,periodic" or
96+
"clamp"). Extra white space surrounding the keywords is allowed,
97+
but should be ignored by the renderer ("clamp, black " is equivalent
98+
to "clamp,black"). The keywords listed below are predefined; some
99+
renderers may support additional extrapolation modes:
100+
101+
**black**
102+
pixels outside the zero-to-one range are black
103+
104+
**clamp**
105+
texture coordinates less than 0.0 and greater than 1.0 are clamped
106+
to 0.0 and 1.0 respectively.
107+
108+
**periodic**
109+
the texture image repeats periodically
110+
111+
**mirror**
112+
the texture image repeats periodically, but every other instance
113+
is mirrored
114+
115+
**framesPerSecond**
116+
Defines the nominal playback frame rate for image sequences, in
117+
frames per second. Every image in a sequence should have a
118+
framesPerSecond attribute, and the attribute value should be the
119+
same for all images in the sequence. If an image sequence has no
120+
framesPerSecond attribute, playback software should assume that the
121+
frame rate for the sequence is 24 frames per second.
122+
123+
In order to allow exact representation of NTSC frame and field
124+
rates, framesPerSecond is stored as a rational number. A rational
125+
number is a pair of integers, n and d, that represents the value
126+
n/d.
127+
128+
**multiView**
129+
Defines the view names for multi-view image files. A multi-view
130+
image contains two or more views of the same scene, as seen from
131+
different viewpoints, for example a left-eye and a right-eye view
132+
for stereo displays. The multiView attribute lists the names of the
133+
views in an image, and a naming convention identifies the channels
134+
that belong to each view.
135+
136+
**worldToCamera**
137+
For images generated by 3D computer graphics rendering, a matrix
138+
that transforms 3D points from the world to the camera coordinate
139+
space of the renderer.
140+
141+
The camera coordinate space is left-handed. Its origin indicates
142+
the location of the camera. The positive x and y axes correspond to
143+
the "right" and "up" directions in the rendered image. The positive
144+
z axis indicates the camera's viewing direction. (Objects in front
145+
of the camera have positive z coordinates.)
146+
147+
Camera coordinate space in OpenEXR is the same as in Pixar's
148+
Renderman.
149+
150+
**worldToNDC**
151+
For images generated by 3D computer graphics rendering, a matrix
152+
that transforms 3D points from the world to the Normalized Device
153+
Coordinate (NDC) space of the renderer.
154+
155+
NDC is a 2D coordinate space that corresponds to the image plane,
156+
with positive x and pointing to the right and y positive pointing
157+
down. The coordinates (0, 0) and (1, 1) correspond to the upper
158+
left and lower right corners of the OpenEXR display window.
159+
160+
To transform a 3D point in word space into a 2D point in NDC space,
161+
multiply the 3D point by the worldToNDC matrix and discard the z
162+
coordinate.
163+
164+
NDC space in OpenEXR is the same as in Pixar's Renderman.
165+
166+
**deepImageState**
167+
Specifies whether the pixels in a deep image are sorted and
168+
non-overlapping.
169+
170+
Note: this attribute can be set by application code that writes a
171+
file in order to tell applications that read the file whether the
172+
pixel data must be cleaned up prior to image processing operations
173+
such as flattening. The OpenEXR library does not verify that the
174+
attribute is consistent with the actual state of the pixels.
175+
Application software may assume that the attribute is valid, as long
176+
as the software will not crash or lock up if any pixels are
177+
inconsistent with the deepImageState attribute.
178+
179+
**originalDataWindow**
180+
If application software crops an image, then it should save the data
181+
window of the original, un-cropped image in the originalDataWindow
182+
attribute.
183+
184+
**dwaCompressionLevel**
185+
Sets the quality level for images compressed with the DWAA or DWAB
186+
method.
187+
188+
**ID Manifest**
189+
ID manifest.
190+
191+
192+

docs/index.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ Technical Documents
5959
OpenEXRFileLayout
6060
MultiViewOpenEXR
6161
InterpretingDeepPixels
62-
62+
StandardOptionalAttributes
63+
6364
* :ref:`genindex`
6465

6566
Resources
@@ -83,5 +84,4 @@ individuals have made contributions to the code base.
8384

8485
OpenEXR is included in the `VFX Reference Platform <https://vfxplatform.com>`_.
8586

86-
87-
87+

0 commit comments

Comments
 (0)