Disabled external gits
This commit is contained in:
85
cs440-acg/ext/openexr/Contrib/DtexToExr/README
Normal file
85
cs440-acg/ext/openexr/Contrib/DtexToExr/README
Normal file
@@ -0,0 +1,85 @@
|
||||
//-*****************************************************************************
|
||||
|
||||
Pixar's Dtex to Exr conversion utility
|
||||
Aug 1, 2012 - first checkin to OpenEXR 2.0 branch of OpenEXR git repository.
|
||||
|
||||
This utility converts a DTEX deep shadow file to an OpenEXR 2.0 deep exr file,
|
||||
formerly, ".odz" (or .dexr, or whatever extension your facility may use). As of
|
||||
the first checkin, the utility only supports 1, 3, or 4-channel dtex files,
|
||||
corresponding to deep alpha or deep RGBA only. The Nuke DTEX reader, which
|
||||
uses basically the same code, will support a more complete arbitrary channel
|
||||
set, and this utility may be upgraded as well. We also only support a single
|
||||
view for the time being.
|
||||
|
||||
DTEX has a complicated set of interpretations, which represent six separate
|
||||
code paths for conversion to the deep representation in OpenEXR 2.0. They
|
||||
represent the permutations of these exemplary Display Driver config strings
|
||||
to prman:
|
||||
|
||||
Display "+filename.dtex" "deepshad" "deepopacity" "string volumeinterpretation" "continuous"
|
||||
Display "+filename.dtex" "deepshad" "deepopacity" "string volumeinterpretation" "discrete"
|
||||
Display "+filename.dtex" "deepshad" "a" "string volumeinterpretation" "continuous"
|
||||
Display "+filename.dtex" "deepshad" "a" "string volumeinterpretation" "discrete"
|
||||
Display "+filename.dtex" "deepshad" "rgba" "string volumeinterpretation" "continuous"
|
||||
Display "+filename.dtex" "deepshad" "rgba" "string volumeinterpretation" "discrete"
|
||||
|
||||
In our terminology, these six options are called:
|
||||
|
||||
OneChanDeepOpacityContinuous
|
||||
OneChanDeepOpacityDiscrete
|
||||
OneChanDeepAlphaContinuous
|
||||
OneChanDeepAlphaDiscrete
|
||||
FourChanDeepRgbaContinuous
|
||||
FourChanDeepRgbaDiscrete
|
||||
|
||||
Renderman will write out both 1-channel and 3-channel opacity in the
|
||||
"deepopacity" case, which we currently only use the first channel of, as
|
||||
we are only targeting a single opacity curve in space. This may evolve in
|
||||
the future.
|
||||
|
||||
There are weird gotchas for each of these 6 cases, and they are documented
|
||||
in the PxDeepUtils.h file, along with specific comments in each of the six
|
||||
header files that correspond to each case:
|
||||
|
||||
PxOneChanDeepOpacityContinuous.h
|
||||
PxOneChanDeepOpacityDiscrete.h
|
||||
PxOneChanDeepAlphaContinuous.h
|
||||
PxOneChanDeepAlphaDiscrete.h
|
||||
PxFourChanDeepRgbaContinuous.h
|
||||
PxFourChanDeepRgbaDiscrete.h
|
||||
|
||||
The gotchas relate to several issues, mostly to do with coincident or
|
||||
out-of-order samples, precision issues, compression artifacts, and the
|
||||
differences between the "deepopacity" vs "deepalpha" interpretations.
|
||||
|
||||
With "deepopacity" (the pre-prman 16 usage), opacity values stored in
|
||||
dtex files were accumulated, so they were bounded between 0 and 1. The
|
||||
values stored are actually not opacities, but rather transmissivities
|
||||
(1-opacity), and monotonically decreased from fully transparent (1)
|
||||
to fully opaque (0). This representation is ideal for meaningful error
|
||||
minimization during compression, and also for usage as a shadow map
|
||||
by a renderer, because the extinction at a particular depth, at a
|
||||
particular pixel, can be evaluated with a single look-up. However,
|
||||
this representation is poor for deep compositing, because each of the
|
||||
samples includes data from smaller depth samples, and recombination is
|
||||
difficult. With these types of files, when using volumetric (continuous)
|
||||
interpretation, the samples represent the accumulated transmissivity at
|
||||
the NEAR SIDE of a depth span, and our code paths take this into account.
|
||||
|
||||
With all other usages - "a" and "rgba", the values represent filtered
|
||||
samples of the given field at that point in space. The alpha values
|
||||
will be between 0 and 1, but are not guaranteed to be increasing or
|
||||
decreasing. This presents a strange problem for volumetric interpretation,
|
||||
as what does it mean to describe the alpha of an infintesimally small
|
||||
region of space (point sample). The best interpretation of the data
|
||||
in this case uses the alpha to represent the accumulated opacity of
|
||||
the region of space nearer than the sample, and thus each sample
|
||||
represents the FAR SIDE of a depth span. Our code paths take this into
|
||||
account as well.
|
||||
|
||||
Please see the files for additional comments, and the command
|
||||
"dtexToExr" may be run with -h, --h, --help, or no arguments to
|
||||
print its usage.
|
||||
|
||||
-Christopher Horvath, Aug 2012, Pixar
|
||||
|
||||
Reference in New Issue
Block a user