The Array element specifies an array of values for a LUT or matrix. When it is contained by a LUT3D element, the format of its contents is different than when it is contained by LUT1D or Matrix elements.
For a 3D LUT, each entry has three values specifying the separate R, G, and B output values. The entries are in order from minimum to maximum with the index of the last column changing fastest and the index of the first column changing slowest. For example, the order of entries for a 2×2×2 cube is:
| Entry | R | G | B | |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | |
| 2 | 0 | 0 | 1 | |
| 3 | 0 | 1 | 0 | |
| 4 | 0 | 1 | 1 | |
| 5 | 0 | 0 | 0 | |
| 6 | 0 | 0 | 1 | |
| 7 | 0 | 1 | 0 | |
| 8 | 0 | 1 | 1 |
Only 3D LUTs with the same dimension in all three channels are supported, so the first three values must be the same. The fourth value must be 3.
The dim attribute is required, and its value must match the number of entries actually present.
<ProcessList id="b5b90615-573b-4959-a838-f35e0e588ac2" version="1.2">
<LUT3D inBitDepth="32f" interpolation="tetrahedral" outBitDepth="32f">
<Array dim="48 48 48 3">
0.000669299 0.000704187 0.000766901
0.001848371 0.001297010 0.010368987
0.002599007 0.001144927 0.023227118
<!-- 48*48*48-3 lines omitted -->
</Array>
</LUT3D>
</ProcessList>