ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/glare.csh
Revision: 1.8
Committed: Fri May 3 10:06:06 1991 UTC (32 years, 11 months ago) by greg
Content type: application/x-csh
Branch: MAIN
Changes since 1.7: +7 -4 lines
Log Message:
made xglaresrc work better with glare

File Contents

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