Hi Greg,

thank you so much - you solved the paradoxon of the solid angle ;-):-)! I was already doubting the first law of thermodynamics... I'm glad it is just a too small buffer setting in the pcomb-code.


Since several people experience actually discrepancies between measured illuminance and calculated from the image (and actually all of them have full frame cameras with a large resolution), it would be good to know WHEN you updated pcomb to the WINSIZ to 63. This might be an partial explanation for the problems they experienced. Many people work on windows and probably still use an old pcomb version and just downloaded the fisheye_corr.cal.

Also it would be good to know until which image size the current version works properly. For the 15000 image, it was not just at the border where the deviation occurred - also in the centre there was a deviation of the solid angle of more than 20%.

I will do a new test with several resolutions and different WINSIZ settings, as soon as I'm back from my mandatory safety training... and sure 2% deviation is totally fine.

Thanks again for the help!

Cheers
Jan


On 29/06/17 10:18, Gregory J.Ward wrote:
Hi Jan,

I spent some more time on this on my flight, and realized that the problem is with pcomb, not any of your calculations or assumptions.

Basically, pcomb operates by keeping a certain cache of scanline buffers above and below the current one, and is therefore limited as to how far it can reach up & down in y when using the offsets that fisheye_corr.cal relies on to distort the input image. I actually increased this buffer reach from whatever it was to +/- 63 scanlines. Unfortunately, this still isn't enough in your 15000x15000 image (or even the original 5000x5000 one). Our tests were not performed on such large images. I suppose I should increase src/px/pcomb.c's WINSIZ constant further, and just accept the memory cost. Originally, I was only thinking of local resampling kernels and the like.

What happens when you ask for a pixel that is too far up or down in y, it gives the closest scanline it has, which gives the wrong distortion in this case. If your sun were moving right-left instead of top-bottom, you wouldn't suffer this limitation of pcomb. I verified this by passing your image through protate prior to pcomb:

protate sk_$i.hdr | pcomb -f fisheye_corr.cal -o - | getinfo -a "VIEW= -vta -vh 180 -vv 180" >sk_$i"corr.hdr"

We then get good agreement using your comparison method, within a 2% or so, which is about what I would expect using an 8-bit mantissa allowing for cumulative error.

Cheers,
-Greg

*From: *Jan Wienold <[email protected] <mailto:[email protected]>>

*Date: *June 28, 2017 7:59:13 AM PDT

Hi Greg,

thanks for this - it helps a bit, but I think I'm still doing sth wrong.

Originally I wanted to know the influence of mapping, if there is a high intense glare source at the border. I wanted to know, how much the error is, when a equidsolid-angle image is treated as vta without mapping. Using gensky was just an easy way to create a "patch" at the border of an image. If the sun disk is represented correctly or not, does not matter to me, I just want to see how this patch is mapped.

Then in the next step I realized that the number of pixels (between original and mapped) did not change for the 5° position and then I wanted to investigate a bit more - that's where I'm still stuck.

Now I have re-run my script generating 15000x15000 images.

What I do now:

1. Original image (assumed as equisolidangle): I calculate the solid angle per pixel simply by 2*pi/no_pixel_hemisphere (for a 15000x15000 this is 176714668). Then I count the pixels in that image for the patch and multiply by this value. So I get as result the solid angle of the patch in the original image.

2. Mapped image: I calculate the solid angle of the patch by your pcomb command (I also verified it by evalglare and got the same value +-0.2%, it was just 10min slower per image using evalglare;-)). The mapped image has a valid -vta view heady entry.


Actually I expected them to be the same, but in my results they are not. I really don't know what I'm doing wrong. For the remapping, what does pcomb "expect" for the view entry in the header in the original image (which is equisolid)? I used -vta -vv 180 -vh 180. Maybe this is a mistake?

Below you see the result of the calculations in 5° steps (the angle is counted from the border to the center):

Graphically it looks like this:

In my opinion the curves should more or less match, the "dropping" is just related to my "lazy" generation of the patch by gensky, but this is not important.

Thx for the help.

Cheers

Jan



_______________________________________________
HDRI mailing list
[email protected]
https://www.radiance-online.org/mailman/listinfo/hdri

_______________________________________________
HDRI mailing list
[email protected]
https://www.radiance-online.org/mailman/listinfo/hdri

Reply via email to