ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/glare.csh
Revision: 2.4
Committed: Sat Feb 22 02:07:30 2003 UTC (21 years, 1 month ago) by greg
Content type: application/x-csh
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R5, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1, rad5R3, HEAD
Changes since 2.3: +1 -1 lines
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# User Rev Content
1 greg 1.1 #!/bin/csh -f
2 greg 2.4 # RCSid: $Id$
3 greg 1.1 #
4     # Interactive program for calculating glare values
5     #
6     set fgargs=(-v)
7     set nofile="none"
8     set octree=$nofile
9     set picture=$nofile
10 greg 2.2 set glarefile=$nofile
11 greg 1.1 if ($#argv >= 1) then
12     set glarefile=$argv[1]
13 greg 2.2 if ($#argv >= 2) then
14     set picture=$argv[2]
15     if ($#argv >= 3) then
16     set octree=$argv[3]
17     endif
18     endif
19 greg 1.1 endif
20     set rtargs=
21     set view=
22     set threshold=300
23     set maxangle=0
24     set stepangle=10
25    
26     set gndxfile="glr$$.ndx"
27     set plotfile="glr$$.plt"
28     set tempfiles=($gndxfile $plotfile)
29    
30     alias readvar 'echo -n Enter \!:1 "[$\!:1]: ";set ans="$<";if("$ans" != "")set \!:1="$ans"'
31    
32     onintr quit
33    
34     cat <<_EOF_
35     This script provides a convenient interface to the glare calculation
36     and analysis programs. It works on a single output file from findglare,
37     which you must either create here or have created already before.
38     _EOF_
39     while ( $glarefile == $nofile )
40     echo ""
41     echo "Please specify a glare file, or use ^C to exit."
42     readvar glarefile
43     end
44     if ( ! -f $glarefile ) then
45     echo ""
46     echo -n "The glare file '$glarefile' doesn't exist -- shall we create it? "
47     if ("$<" =~ [nN]*) exit 0
48     cat <<_EOF_
49    
50     A glare file can be created from a wide-angle Radiance picture (preferably
51     a fisheye view), an octree, or both. Computing glare source locations
52     from a finished image is faster, but using an octree is more reliable
53     since all of the scene information is there. Whenever it is possible,
54     you should use both a picture and an octree to compute the glare file.
55    
56     You must also have a viewpoint and direction for the glare calculation.
57     If the viewpoint is not the same as the picture, an error will result.
58     If no view is specified, the view parameters are taken from the picture,
59     so the view specification is optional unless you are starting from an
60     octree.
61 greg 1.2
62 greg 1.1 _EOF_
63 greg 2.2 if ( $picture == $nofile ) then
64     readvar picture
65     endif
66     if ( $octree == $nofile ) then
67     readvar octree
68     endif
69 greg 1.1 readvar view
70     if ( $picture == $nofile && $octree == $nofile ) then
71     echo "You must specify a picture or an octree"
72     exit 1
73     endif
74 greg 1.6 if ( $picture == $nofile && "$view" == "" ) then
75     echo "You must give a view if there is no picture"
76     exit 1
77     endif
78 greg 1.1 if ( $picture != $nofile ) then
79     if ( ! -r $picture ) then
80     echo "Cannot read $picture"
81     exit 1
82     endif
83 greg 1.11 set fgargs=($fgargs -p $picture)
84     if ( "$view" != "" ) then
85     set view=(-vf $picture $view)
86     endif
87 greg 1.1 endif
88     set fgargs=($fgargs $view)
89     if ( $octree != $nofile ) then
90     if ( ! -r $octree ) then
91     echo "Cannot read $octree"
92     exit 1
93     endif
94     cat <<_EOF_
95    
96     With an octree, you should give the same options for -av, -ab and
97     so forth as are used to render the scene. Please enter them below.
98    
99     _EOF_
100 greg 1.10 if ($picture != $nofile) then
101     echo "These are the parameters from the picture:"
102     getinfo $picture
103     endif
104 greg 1.1 readvar rtargs
105     set fgargs=($fgargs $rtargs $octree)
106     endif
107     echo ""
108     echo -n "Do you expect glare sources in the scene to be small? "
109     if ("$<" =~ [yY]) then
110     echo -n "Very small? "
111     if ("$<" =~ [yY]) then
112     set fgargs=(-r 400 $fgargs)
113     else
114 greg 1.3 set fgargs=(-r 250 $fgargs)
115 greg 1.1 endif
116 greg 1.4 echo -n "Are these sources relatively bright? "
117 greg 1.1 if ("$<" =~ [nN]*) then
118     set fgargs=(-c $fgargs)
119     endif
120     endif
121     cat <<_EOF_
122    
123     Glare sources are determined by a threshold level. Any part of the
124     view that is above this threshold is considered to be part of a glare
125     source. If you do not choose a threshold value, it will be set auto-
126     matically to 7 times the average field luminance (in candelas/sq.meter).
127    
128     _EOF_
129     echo -n "Do you wish to set the glare threshold manually? "
130     if ("$<" =~ [yY]) then
131     readvar threshold
132     set fgargs=(-t $threshold $fgargs)
133     endif
134     cat <<_EOF_
135    
136     It is often desirable to know how glare changes as a function of
137     viewing direction. If you like, you can compute glare for up
138     to 180 degrees to the left and right of the view center. Enter
139     the maximum angle that you would like to compute below.
140    
141     _EOF_
142     readvar maxangle
143     if ( $maxangle >= $stepangle ) then
144     set fgargs=(-ga $stepangle-$maxangle\:$stepangle $fgargs)
145     endif
146     echo ""
147     echo "Starting calculation..."
148     echo findglare $fgargs
149     findglare $fgargs > $glarefile
150 greg 1.11 if ($status) then
151     echo "Uh-oh. Something went wrong with findglare\!"
152     rm $glarefile
153     exit 1
154     endif
155 greg 1.1 endif
156     if ($?DISPLAY && $picture != $nofile) then
157     echo ""
158     echo "Displaying glare sources in '$picture'..."
159 greg 1.9 xglaresrc $picture $glarefile
160 greg 1.1 endif
161 greg 2.3 set ndxnam=("Guth Visual Comfort Probability" "Guth Disability Glare Ratio" "CIE Glare Index" "BRS Glare Index" "Unified Glare Rating" "Daylight Glare Index")
162     set ndxcom=("glarendx -t guth_vcp" "glarendx -t guth_dgr" "glarendx -t cie_cgi" "glarendx -t brs_gi" "glarendx -t ugr" "glarendx -t dgi")
163     set bcdlvl=(50 124 18.5 18.5 18.5 21.7)
164 greg 1.1 while ( 1 )
165     echo ""
166     echo " 0. Quit"
167     set i=1
168     while ($i <= $#ndxnam)
169     echo " $i. $ndxnam[$i]"
170     @ i++
171     end
172     echo ""
173     set choice=0
174     readvar choice
175     if ($choice < 1 || $choice > $#ndxcom) goto quit
176     $ndxcom[$choice] $glarefile > $gndxfile
177     echo ""
178     echo $ndxnam[$choice]
179     echo "Angle Value"
180     getinfo - < $gndxfile
181     echo ""
182     set save_file=$nofile
183     readvar save_file
184     if ($save_file != $nofile) then
185     cp -i $gndxfile $save_file
186     endif
187     if ( `getinfo - < $gndxfile | wc -l` > 4 ) then
188     echo ""
189     echo -n "Do you want to plot this data? "
190     if ( "$<" =~ [yY]* ) then
191     set subtitle="$view"
192     if ($picture != $nofile) then
193     set subtitle="$picture $subtitle"
194     else if ($octree != $nofile) then
195     set subtitle="$subtitle $octree"
196     endif
197 greg 1.2 if ( "$subtitle" == "" ) then
198     set subtitle="`getinfo < $glarefile | grep findglare`"
199     endif
200 greg 1.1 cat <<_EOF_ > $plotfile
201 greg 1.2 include=line.plt
202 greg 1.1 include=polar.plt
203     title="$ndxnam[$choice]"
204     subtitle="$subtitle"
205 greg 1.7 Bdata=
206     0 $bcdlvl[$choice]
207     360 $bcdlvl[$choice]
208     ;
209     Blabel="BCD level"
210 greg 1.1 Adata=
211     _EOF_
212     getinfo - < $gndxfile >> $plotfile
213     igraph $plotfile
214     endif
215     endif
216     end
217     quit:
218     rm -f $tempfiles
219     exit 0