Continuity in values

Hi everyone,
I am rendering a very simple scene formed by a cylindrical reflective surface and a floor. For rendering it I have also used a simple code (I have not used photonmapping although it is specific for caustics because I had problems, that I commented in other post Photon Mapping differences between two images, with that module ):

gensky -ang $elevation $azimuth +s > 01A-Luz$n.rad
oconv 01A-Luz$n.rad 01B-Outside.rad 01C-Materiales.rad 00A-Fachada180.rad 00B-Suelo.rad > 02-Escena.oct
rpict -i -vf 03-Vista.vf -x 4096 -y 4096 02-Escena.oct > ./Render/04-IImagen$azimuth-$elevation.hdr

When I look at the falsecolor image, everything seems normal but when I have analyzed the values, I have realized that those values seem to be limited in a range of values instead of been continuous.

In this image the x-axis corresponds to the y-coordinate and the y-axis to the illuminance (all values below 100000 lux have been omitted).

If we zoom in on the graph, we can see that the jumps are about 10000 lux, except in some areas where intermediate values do appear. What could be the reason for this?

Thank you in advance.

If this came from an HDR image, the steps are easily explained by the roughly 1% precision of the RGBE data format. The in-between points may be different color values in that case.


Thank you very much for the explanation, I think I understand why this happens.
However, when I compare this image with another one in which I have varied the elevation 0.05 degrees, the steps also occur but they do not correspond exactly with those of the previous image. Is this also normal, why does it happen?

Well, the precision isn’t exactly 1% – like all floating-point representations, it varies in a sawtooth like pattern based on where you are in the mantissa’s range. The RGBE encoding is further complicated by the shared exponent, which means maximum precision is only maintained on the dominant primary. I don’t think this matters in your case, however.

If you want better accuracy, you can always use vwrays with rtrace and save floating-point output rather than RGBE images.