I am going to do millions of renderings and want to get around the IO overhead by directly storing the rendering results into Numpy arrays. To store the results into Numpy arrays, I am currently using the Viewer node to access bpy.data.images['Viewer Node'].pixels
to store the pixel values. For my application, I need to make sure that each pixel value is NOT quantized to integers of range [0, 255] and then normalized to [0, 1]. Does anyone know if it is possible to access RAW values of each pixel using viewer? Or suggest an analysis method so that I asses that myself.
If people here think that it not possible to get the raw values using the Viewer node, then I need to change my rendering pipeline and store the raw data in OpenEXR files.
Also, I noticed that the image in bpy.data.images['Viewer Node'].pixels
is an RGBA image although I have set bpy.context.scene.render.image_settings.color_mode
to RGB
. Why is that? I'm afraid the pixel values are also in 8-bit not 16-bit or 32-bit. Is there a way to make find out the number of bits used per pixel?