User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

resources:radiance [2012/10/23 17:55] (current)
Line 1: Line 1:
 +====== Radiance Tech Tips======
 +Sundry notes and tech tips on Radiance -- old and new.
 +====== Stencil Method ======
 +Scenario: ​ Creation of images showing the distribution of illuminance  ​
 +across a workplane from a high viewpoint and using the fore clipping  ​
 +plane to remove foreground objects.
 +Problem: With arbitrary shaped/​orientated workplanes it is generally  ​
 +not possible to avoid including adjacent spaces and wall voids etc.  ​
 +in the final image. I usually create a stencil rendering for the same  ​
 +view parameters showing just the workplane (now set to "​glow"​) and  ​
 +use those pixels to pick-out the pixels I want in the illuminance  ​
 +rendering (say, to profile the illuminance distribution across the  ​
 +workplane). ​ See the top two images here:
 +{{:​resources:​stencil.png?​nolink|}} ​ \\
 +{{:​resources:​stencil.pdf|PDF of figure}}.
 +This method works fine most of the time provided that you can  ​
 +crank-up the ambient parameters to avoid light leaks. ​ These can be  ​
 +fairly nasty when they do occur -- the pixels affected by a leak can  ​
 +have an illuminance much higher than nearby unaffected pixels. ​ In  ​
 +the example shown, the leaky pixels have a value >1000x that of  ​
 +their non-leaky neighbours. ​ Needless to say, these affected pixels  ​
 +play havoc with any numerical measure of illuminance that you might  ​
 +want to get from your image. ​ The computational cost of leak  ​
 +prevention can be expensive.
 +I've long had this hunch that the propensity for leaks might be  ​
 +reduced if we could prevent rpict from doing any initial sampling ​  
 +off the workplane, and so avoid populating the ambient file with  ​
 +outside and wall-void values at the zero level. ​ It turns out that it  ​
 +can't be done directly with rpict. ​ However there is a way using  ​
 +rtrace and potpourri of other Radiance programs. ​ I couldn'​t figure  ​
 +out how to do it.  Fortunately,​ Greg Ward could -- he came up with this  ​
 +Greg: "Rpict isn't very good about working on subimages, unless they'​re  ​
 +perfectly rectangular. ​ However, you can use rtrace to accomplish  ​
 +this, with a little effort. ​ Basically, you need to zero out the ray  ​
 +directions on all pixels you don't want computed. ​ Something like((Not that you are likely to be transcribing this code on an iPhone/​Touch,​ but you should know that the code blocks might not render correctly on these mobile devices.)):
 + vwrays -ff -x 512 -y 512 -vf best.vf \
 + | rlam -if6 - -if1 '​\!pvalue -h -H -df -b stencil.pic'​ \
 + | rcalc -if7 -of -e '​$1=$1;​$2=$2;​$3=$3'​ -e '​out(v)=if($7-.5,​v,​0)'​ \
 + -e '​$4=out($4);​$5=out($5);​$6=out($6)'​ \
 + | rtrace -ffc `vwrays -d -x 512 -y 512 -vf best.vf` -i scene.oct \
 + > stencilled_ill.pic
 +Irradiances should be calculated wherever the  ​
 +stencil pixels are greater than 0.5, and zeros will be written to the  ​
 +output picture everywhere else.  You can tweak the definition of the  ​
 +out(v) function to get a range of values, instead. The necessity of the '​\'​ (backslash) character to escape the '​!'  ​
 +depends on which shell you use.  The C-shell requires it, whereas  ​
 +most other shells don'​t."​
 +Which worked first time. The lower two images in the PDF show the "usual rpict  ​
 +method"​ and the "​stencil method"​ renderings set to the same  ​
 +falsecolor scale (in Photosphere). ​ In addition to preventing  ​
 +leaks, the stencil method was four times faster. ​ Both renderings were, of course,  ​
 +generated using the same ambient parameters -- in this case:
 +  -ab 2 -ad 2048 -ar 128 -aa 0.2 -as 512
 +These need to be included in the rtrace command for the stencil  ​
 +method. ​ The effectiveness in terms of leak prevention and increased  ​
 +speed will be highly dependent on the scene, the view and the ambient  ​
 +settings. ​ As ever, some testing is advised.
 +Original radiance-online posting [[http://​​pipermail/​radiance-general/​2007-March/​004214.html|here]].
 +See Thomas Bleicher'​s variant on the stencil method [[http://​​site/​tbleicher/​radiance/​stencil|here]].
 +====== Technical Notes on Radiance ======
 +  * {{:​tech_note_001.pdf|#​001 Irradiance Interpolation Artefacts (fixed in 3.5+)}}
 +  * {{:​tech_note_002.pdf|#​002 Arbitrary-Shaped Clipping Surfaces}}
 +  * {{:​tech_note_003.pdf|#​003 Genambpos: Generate Ambient Sampling Markers (genambpos script)}}
resources/radiance.txt ยท Last modified: 2012/10/23 17:55 (external edit)