Hi Greg,
I tested now again for 5000x5000 and 15000x15000 two WINSIZ setting (127
and 1027):
for 127 I get a max deviation of the patch solid angle of 11% for the
5000x5000 and 18% for the 15000x15000.
for the 1027 : 8% for the 5000x5000 and 5% 15000x15000. The memory usage
was in both case not really big - never more than 900kB (compared to
evalglare this is nothing... the 15000x15000 resulted in 14GB..)
I think this is fine now... for many angles the error is also much
smaller. I'm glad we solved this problem - thanks again!
I have to say that my previous table was generated with a pcomb version
from the 5.0 release, using a setting of 64 for WINSIZ...
I was not aware of the needed update of pcomb when using the
fisheye_corr.cal. I'm usually running the official release on our server
for "production" for all users and not the head release - but maybe I
should change this philosophy.
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