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 (33 years 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

# User Rev Content
1 greg 1.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 greg 1.2
57 greg 1.1 _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 greg 1.6 if ( $picture == $nofile && "$view" == "" ) then
66     echo "You must give a view if there is no picture"
67     exit 1
68     endif
69 greg 1.1 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 greg 1.3 set fgargs=(-r 250 $fgargs)
99 greg 1.1 endif
100 greg 1.4 echo -n "Are these sources relatively bright? "
101 greg 1.1 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 greg 1.2 xglaresrc $picture $glarefile >& /dev/null
139 greg 1.8 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 greg 1.1 endif
147     endif
148 greg 1.5 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 greg 1.7 set bcdlvl=(50 124 18.5)
151 greg 1.1 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 greg 1.2 if ( "$subtitle" == "" ) then
185     set subtitle="`getinfo < $glarefile | grep findglare`"
186     endif
187 greg 1.1 cat <<_EOF_ > $plotfile
188 greg 1.2 include=line.plt
189 greg 1.1 include=polar.plt
190     title="$ndxnam[$choice]"
191     subtitle="$subtitle"
192 greg 1.7 Bdata=
193     0 $bcdlvl[$choice]
194     360 $bcdlvl[$choice]
195     ;
196     Blabel="BCD level"
197 greg 1.1 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