I implement HDR in my graphics engine (deferred rendering) and I need to calculate an average luminance of the image (RGBA16F). I generate mipmaps and then I read the smallest mipmap (1x1).
glBindTexture(GL_TEXTURE_2D, hdrTex);
glGenerateMipmap(GL_TEXTURE_2D);
glGetTexImage(GL_TEXTURE_2D, level, GL_RGBA, GL_FLOAT, data);
glBindTexture(GL_TEXTURE_2D, 0);
glm::vec3 color = glm::vec3(data[0], data[1], data[2]);
float avgLum = glm::dot(color, glm::vec3(0.2125, 0.7154, 0.0721));
I noticed that sometimes (when I move a camera) data[0], data[1] and data[2] contain 1.#QNAN. Why ? How to fix that ?