I'm trying to emulate a physical experiment that was performed in
which a flux meter was poked into a chamber and it measured the
irradiance at a series of points. My ultimate goal is to create a
virtual world that is a copy of the previously measured physical one
and compare the two environments' irradiance distributions.
The physical sensor's sensitivity was from all directions and in all
visible wavelengths (I've already added full spectrum lighting to my
version of pbrt). I've created a perfectly transparent sphere to
represent the sensing area of the flux meter. Whenever a ray strikes
the sphere's surface, the amount of light transmitted through it is
added to an irradiance counter. Once all the photons have been
collected then analysis occurs.
As for photon mapping being the best choice, I do not know for sure
that it is. I chose that since the rays originate from the light
source and intensities are deposited on geometry - it seemed like a
good match. For my purposes I'm not even interested in the final
rendered image per se, I'm just using it as an indirect indicator of
whether I've got the photon mapping parameters correct. Ultimately, I
just need to know how much irradiance is hanging around at Point in
Space X1, X2, X3, .... When I run my final experiments, I'll be
skipping the image rendering anyway.
I considered the path integrator and I see what you're saying in your
suggested approach. That very well might be a better approach.
However, photon mapping seems a bit easier to implement and I think it
should be functionally equivalent for my purposes. Is this assumption
correct? Considering my goals do you think the path integrator would
be a better choice than photon mapping?
Thank you very much for your advice.
dave
On Jun 1, 5:39 pm, Matt Pharr <
matt.ph...@gmail.com> wrote:
> I'm wondering if photon mapping is the best approach for this. What
> exactly do you want to measure? Total irradiance at a point, some
> sort of directional radiance distribution, or ... ?
>
> My suggestion might be to hack up the system so that it doesn't do all
> this 'render an image stuff', but instead you do a loop over all the
> points where you want to compute this measurement, call Scene::Li() in
> a bunch of directions at that point (maybe with the path integrator
> wired up to compute radiance along rays, or whatever), and then
> average/accumulate those values however is most useful. Does that
> seem like it'd solve the problem?
>
> Thanks,
> -matt
>
> On May 27, 2009, at 9:58 AM, Kevin Egan wrote:
>
>
>
> > You might be able to change the photon mapping code so that the filter
> > that tries to measure incoming irradiance is changed to simply count
> > the number of nearby photons within a certain radius. Usually the
> > filter will try to weight the photons by energy and distance. You
> > basically want to take all that out and just make a flat count.
>
> > Kevin
>