OpenEXR, any implementation of sub-pixel sample location?


#1

OpenEXR is an open format that can be used in many different ways. However, there are still some general suggestions on how to use the format to facilitate inter-app compatibility, like this document describes:

OpenExr 2.0 with deep pixels allows multiple samples stored per pixel. However, the format only has guidelines to encode depth for multiple samples.

What it doesn’t natively support or suggest is how to store sub-pixel location of a sample.

Renderers like V-Ray allow to output all samples individually into a deep exr (as opposed as having them filtered together in the antialiasing process). However, it seems the exact subpixel location of the samples are lost in the process.

Now it would seem relatively trivial to store the subpixel location for each sample in two additional channels. For example a 32-bit float channel for exact location in image space. Or maybe 8-bit each for subpixel location (quantizing the area of each pixel into 256x256 possible sub-locations, which seems plentiful).

Since this seems like a somewhat obvious solution, I wonder whether there are any precedents for this and if so, how exactly they solved it (how did they name the layers and how did they encode the sample location)?

I want to add this feature to my own software and for the sake of future compatibility would like to solve it in the same way as other software did.