Why can't I catch the reflected light of curtainwall with point based simulation

Yay! Results any good? :wink:

–Roland

Hi,Roland

When I use very little phontons (20M phontons),I got very weak reflected light in the result.

And then I increased the number of phontons to 200M,I got a 8.5G photon map files.

Next,I use rcontrib to calculated the daylight coeffcients,An error occured and indicated that it cannot allocate the memory.

I guess this is because the space of my computer’s RAM is not enough,it 's 8G.Maybe I should upgrade my computer.

Hi Yongqing,

I’m not sure where the allocation is failing, but with 8Gb you’ll soon run into memory issues with the default in-core photon map and so many photons.

Since you appear to be on Ubuntu (yay!), I suggest you now try out the out-of-core photon map by recompiling with the following in ray/src/rt (including the previous options):

rmake clean
rmake OPT+="-DPMAP_OOC -DPMAP_PRIMARYDIR" install

You do not need to recompile the entire RADIANCE suite in this case. But you will need to rebuild the photon map, and will obtain an additional .leaf file; this is where the bulk of the photon map now resides, which is paged on demand when you run rcontrib. Note that you can now accommodate up to 4 billion photons with this data structure, though mkpmap may try your patience. :wink:

One more note: your bandwidth specified with -ap in rcontrib (80) is too low; since you’re using reinhart.cal with MF:1, you’ll need at least a multiple of 145 photons (say ~1500 for starters). There used to be a check which prevented you from using too few photons, but this was removed under the assumption the user know’s what he/she’s doing. Probably a bad idea in retrospect…

Good luck,

–Roland

I think this rtrace command would work if you changed the -dr to a non-zero number (1 for a single reflection if you aren’t looking for multiple mirror bounces). I would assume the rpict/rvu that gave you the image of the reflection has a non-zero -dr value.

Be careful with meshing of your curved mirror surfaces too. If this is a smooth curved surface, you would experience a full ‘fan’ of a reflection rather than the 11 or so stripes we see in your image (maybe photon map resolves this?). You may not be capturing the absolute maximum reflection power in your scenario.
Also if doing image based analysis, pixel size of the image is key as well (or zoomed in area of concern). Assume that rtrace is capturing this correctly (based on the geometry), but locating the focal point of the reflection can be tricky without having a a ton of points to calculate.

Hi,Roland

I have recompiled my photon map with out-of-core option and run the rcontrib command successfully with 200M photons and my bandwidth was 3000.But the result was not very good,excessive noise existed and the reflected light was not obvious.Below is my result at 9:00


image

My command:
mkpmap -t 5 -n 7 -apC contribN.pm 200m GlareImage.oct
rcontrib -I+ -ap contribN.pm 3000 -y 264060 -n 8 -dp 64 -ds 0.5 -ar 300 -aa 0.1 -ad 1000 -lw 1.0e-3 -dc 0.25 -faf -e MF:1 -f reinhart.cal -b rbin -bn Nrbins -m sky_mat GlareImage.oct < GlareStudy_0.pts > cds.mtx

Is it because my photon is not enough or my bandwidth is too low?

Hi,Chirs
Thanks for your reply!

I have tried your workaround to change the -dr to 4,but still no refleted light.
In addtion,my mirroir face is not a smooth curved face,it was a combination of many polygons.

Hi Yongqing,

some quick feedback from my side…

  • If you’re just interested in what’s reflected from your mirror façade, you can speed up mkpmap by defining the mirror material as a photon port and inverting the emitting direction with the -apo- option:
    mkpmap -apo- mirror_face ...
    Photons are then emitted towards the façade.
  • If your mirror façade geometry is faceted, this will be resolved by the photon map with sufficient photons, and lead to “fan” artefacts.
  • Judging from the sky definition you sent me, you’re not using a solar source, only a Reinhart MF:1 sky. As such, I would not expect a particularly pronounced focal point in the caustic.
  • That said, you can try increasing the overall number of photons, say to 1G; using the abovementioned port should then speed things up considerably. However, I wouldn’t increase the bandwidth significantly to limit bias (say up to ~5000 or so).
  • It’s not normal for rcontrib to run for 5 days on such a simple scene, as you reported (except maybe on a ZX81 :grinning:). If you’ve got 1G photons in the environment, try running it with -ab -1, specified after the -ap option. That way the photon map is rendered directly, skipping the ambient bounces.

Hope this helps,

–Roland

Hi,Roland
Thanks for your help and I am sorry for disturb you so many times.
However, I ecounted problems again when used phoron mapping.
When I used following command:
mkpmap -t 5 -n 8 -apC contr.cpm 1g -apo mirror_face GlareImage.oct
to generate photon map.
An error showed up:

Thanks
Yongqing

Hi Yongqing,

sorry for my late reply. I’ve never had this, and it’s not directly related to the scene complexity or number of photons. This is infact a system error. There are many reasons why fork() can fail (out of memory?), so I’ll may have to modify the source to dump the actual error code.

Will get back to you. Thx for reporting this & best regards,

–Roland

Dear Yongqing,

I’ve just uploaded a minor revision of oocsort.c to the CVS which outputs the system error if fork() fails. Could you recompile with that and let me know if you get a specific error this time?

Sorry I can’t reproduce it on my end. If it’s a memory issue we may indeed have run into a hard limit with 8Gb, or maybe you ran out of swap space (you might want to check the latter with swapon).
That said, I have generated 1G photons within 8Gb with far more complex geometry, so I’m surprised we’re getting this error.

Thanks and best regards,

–Roland

Hi,Roland

Sorry for delay.For some reason,I couldn’t sign in the forum for a long time.Until now I resolve the problem.

I recompiled the radiance using the revison source code and run mkpmap on my compter with 1G photons,the error showed that ‘cannot allocate memory’.

It seemed that my computer had not big enough memory capacity to generate so many photons(memory capacity: 8G).