ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/man/man1/ranimate.1
Revision: 1.2
Committed: Tue Dec 9 15:59:06 2003 UTC (20 years, 5 months ago) by greg
Branch: MAIN
CVS Tags: rad3R6, rad3R6P1
Changes since 1.1: +1 -1 lines
Log Message:
Fixed RCSid specification

File Contents

# Content
1 .\" RCSid "$Id$"
2 .TH RANIMATE 1 6/24/98 RADIANCE
3 .SH NAME
4 ranimate - compute a RADIANCE animation
5 .SH SYNOPSIS
6 .B ranimate
7 [
8 .B \-s
9 ][
10 .B \-n
11 ][
12 .B \-e
13 ][
14 .B \-w
15 ]
16 .B ranfile
17 .SH DESCRIPTION
18 .I Ranimate
19 is an executive program that reads the given
20 .I ranfile
21 and makes appropriate calls to
22 .I rad(1),
23 .I rpict(1),
24 .I pinterp(1),
25 and/or
26 .I pfilt(1)
27 to render an animation.
28 Variables in
29 .I ranfile
30 indicate input files, process servers (execution hosts), output
31 directories and file names, and various other controls and options.
32 .PP
33 Normally, commands are echoed to the standard output as they are
34 executed.
35 The
36 .I \-s
37 option tells
38 .I ranimate
39 to do its work silently.
40 The
41 .I \-n
42 option tells
43 .I ranimate
44 not to take any action (ie. not to actually execute any commands).
45 The
46 .I \-e
47 option tells
48 .I ranimate
49 to explicate all variables used for the animation, including
50 default values not specified in the input file, and print them on
51 the standard output.
52 .PP
53 The
54 .I \-w
55 option turns off warnings about multiply and misassigned variables.
56 .PP
57 Normally,
58 .I ranimate
59 will produce one animation frame for each view given in the specified
60 view file.
61 If an animation has ended or been killed in an incomplete state, however,
62 .I ranimate
63 will attempt to pick up where the earlier process left off.
64 If the process is still running, or was started on another machine,
65 .I ranimate
66 will report this information and exit.
67 .PP
68 Animation variable assignments appear one per line in
69 .I ranfile.
70 The name of the variable is followed by an equals sign
71 ('=') and its value(s).
72 The end of line may be escaped with a backslash ('\\'), though it is
73 not usually necessary since additional variable values may be given
74 in multiple assignments.
75 Variables that should have only one value are given in upper case.
76 Variables that may have multiple values are given in lower case.
77 Variables may be abbreviated by their first three letters, except
78 for "host", which must have all four.
79 Comments in
80 .I ranfile
81 start with a pound sign ('#') and proceed to the end of line.
82 .PP
83 The animation variables, their interpretations and default values
84 are given below.
85 .TP 10n
86 .BR DIRECTORY
87 The name of the animation directory.
88 All temporary files generated during the animation will be placed in
89 this directory, which will be created by
90 .I ranimate
91 if it does not exist.
92 A file named "STATUS" will also be created there, and will contain current
93 information about the animation process.
94 This variable has no default value, and its setting is required.
95 .TP
96 .BR OCTREE
97 The name of the octree file for a static scene walk-through
98 animation.
99 There is no default value for this variable, and any
100 setting will be ignored if the
101 .I ANIMATE
102 variable is also set (see below).
103 .TP
104 .BR ANIMATE
105 The scene generation command for a dynamic animation.
106 This command, if given, will be executed with the frame number as the
107 final argument, and on its standard output it must produce
108 the complete octree for that frame.
109 Care must be taken that this command does not create any temporary files
110 that might collide with same-named files created by other
111 animation commands running in parallel.
112 Also, the command should produce no output to the standard error, unless
113 there is a fatal condition.
114 (I.e., switch all warnings off;
115 see the BUGS section, below.)\0
116 There is no default animation command, and either this variable or the
117 .I OCTREE
118 variable must be set.
119 .TP
120 .BR VIEWFILE
121 This variable names a file from which
122 .I ranimate
123 may extract the view for each frame in the animation.
124 This file should contain one valid view per frame, starting with
125 frame 1 on line 1, regardless of the setting of the
126 .I START
127 variable.
128 An exception is made for a view file with only a single view, which
129 is used for every frame of a dynamic scene animation.
130 This variable is required, and there is no default value.
131 .TP
132 .BR START
133 The initial frame number in this animation sequence.
134 The minimum value is 1, and if a later starting frame is given,
135 .I ranimate
136 assumes that the earlier frames are included in some other
137 .I ranfile,
138 which has been previously executed.
139 (See the
140 .I NEXTANIM
141 variable, below.)\0
142 The default value is 1.
143 .TP
144 .BR END
145 The final frame number in this sequence.
146 The minimum value is equal to the
147 .I START
148 frame,
149 and the default value is computed from the number of views in the
150 given
151 .I VIEWFILE.
152 .TP
153 .BR EXPOSURE
154 This variable tells
155 .I ranimate
156 how to adjust the exposure for each frame.
157 As in
158 .I pfilt,
159 the exposure setting may be given either as a multiplier or as a
160 number of f-stop adjustments (eg. +2 or -1.5).
161 Alternatively, a file name may be given, which
162 .I ranimate
163 will interpret as having one exposure value per line per frame,
164 beginning with frame 1 at line 1.
165 (See also the
166 .I VIEWFILE
167 variable, above.)\0
168 There is no default value for this variable.
169 If it is not given, an average level will be computed by
170 .I pfilt
171 for each frame.
172 .TP
173 .BR BASENAME
174 The base output file name for the final frames.
175 This string will be passed to the
176 .I \-o
177 and
178 .I \-z
179 options of rpict, along with appropriate suffixes,
180 and thus should contain a
181 .I printf(3)
182 style integer field to distinguish one frame number from another.
183 The final frames will use this name with a ".pic" suffix.
184 The default value is the assigned
185 .I DIRECTORY
186 followed by "/frame%03d".
187 .TP
188 .BR host
189 A host to use for command execution.
190 This variable may be assigned a host name, followed by an optional
191 number of parallel processes, followed by an optional
192 directory (relative to the user's home directory on that machine),
193 followed by an alternate user name.
194 Multiple
195 .I host
196 assignments may appear.
197 It is not advisable to specify more than one process on a single-CPU
198 host, as this just tends to slow things down.
199 The default value is "localhost", which starts a single process in
200 the current directory of the local machine.
201 .TP
202 .BR RIF
203 This variable specifies a
204 .I rad
205 input file to use as a source of rendering options and other
206 variable settings.
207 If given,
208 .I ranimate
209 will execute
210 .I rad
211 and create an options file to later pass to
212 .I rpict
213 or
214 .I rtrace.
215 Besides prepending the
216 .I render
217 variable,
218 .I ranimate
219 will also extract default settings for the common variables:
220 .I OCTREE,
221 .I RESOLUTION,
222 .I EXPOSURE
223 and
224 .I pfilt.
225 Following the file name, overriding variable settings may be given,
226 which will be passed to
227 .I rad
228 on the command line.
229 Settings with spaces in them should be enclosed in quotes.
230 The execution of
231 .I rad
232 will also update the contents of the octree, if necessary.
233 There is no default value for this variable.
234 .TP
235 .BR DISKSPACE
236 Specify the amount of disk space (in megabytes) available on the
237 destination file system for temporary file storage.
238 .I Ranimate
239 will coordinate its batch operations based on this amount of storage,
240 assuming that there is either enough additional space for all the
241 final frames, or that the given
242 .I TRANSFER
243 command will move the finished frames to some other location (see
244 below).
245 The default value is 100 megabytes.
246 .TP
247 .BR ARCHIVE
248 After each batch rendering is finished and checked for completeness,
249 .I ranimate
250 will execute the given command, passing the names of all the
251 original pictures and z-buffer files generated by
252 .I rpict.
253 (The command is executed in the destination directory, and file names
254 will be simple.)\0
255 Normally, the archive command copies the original files to a tape device
256 or somewhere that they can be retrieved in the event of failure in
257 the frame interpolation stages.
258 After the archive command has successfully completed, the original
259 renderings are removed.
260 There is no default value for this variable, meaning that the
261 original unfiltered frames will simply be removed.
262 Note that the last one or two rendered frames may not be copied, archived
263 or removed in case there is a another sequence picking up where this
264 one left off.
265 .TP
266 .BR TRANSFER
267 The command to transfer the completed animation frames.
268 The shell changes to the destination directory and appends
269 the names of all the finished frames to this command
270 before it is executed.
271 Normally, the transfer command does something such as convert the
272 frames to another format and/or copy them to tape or some other
273 destination device before removing them.
274 If this variable is not given, the final frames are left where they
275 are.
276 (See
277 .I BASENAME,
278 above.)\0
279 .TP
280 .BR RSH
281 The command to use instead of
282 .I rsh(1)
283 to execute commands remotely on another machine.
284 The arguments and behavior of this program must be identical to the UNIX
285 .I rsh
286 command, except that the
287 .I -l
288 option will always be used to specify an alternate user name rather than the
289 .I "user@host"
290 convention.
291 Th
292 .I -l
293 option may or may not appear, but the
294 .I -n
295 option will always be used, and the expected starting directory will
296 be that of the remote user, just as with
297 .I rsh.
298 .TP
299 .BR NEXTANIM
300 This variable specifies the next
301 .I ranfile
302 to use after this sequence is completed.
303 This offers a convenient means to continue an animation that
304 requires different control options in different segments.
305 It is important in this case to correctly set the
306 .I START
307 and
308 .I END
309 variables in each
310 .I ranfile
311 so that the segments do not overlap frames.
312 .TP
313 .BR OVERSAMPLE
314 This variable sets the multiplier of the original image size
315 relative to the final size given by the
316 .I RESOLUTION
317 variable.
318 This determines the quality of anti-aliasing in the final frames.
319 A value of 1 means no anti-aliasing, and a value of 3 produces very
320 good anti-aliasing.
321 The default value is 2.
322 (A fractional value may be used for previews, causing low
323 resolution frames with large, blocky pixels to be produced.)\0
324 .TP
325 .BR INTERPOLATE
326 This variable sets the number of frames to interpolate between each
327 rendered frame in a static scene walk-through.
328 Z-buffers for each rendered frame will be generated by
329 .I rpict,
330 and
331 .I pinterp
332 will be called to perform the actual "tweening."
333 This results in a potentially large savings in rendering time, but
334 should be used with caution since certain information may be lost or
335 inaccurate, such as specular highlights and reflections, and objects
336 may even break apart if too few renderings are used to interpolate
337 too much motion.
338 The default value for this variable is 0, meaning no interpolation.
339 Interpolation is also switched off if the
340 .I ANIMATE
341 variable is specified.
342 .TP
343 .BR MBLUR
344 This variable specifies the fraction of a frame time that the shutter
345 is simulated as being open for motion blur.
346 A number of samples may be given as a second argument, which
347 controls the number of additional frames computed and averaged
348 together by
349 .I pinterp.
350 If this number is less than 2, then bluring is performed by
351 .I rpict
352 only, resulting in greater noise than the combination of
353 .I rpict
354 and
355 .I pinterp used otherwise.
356 (The default value for number of samples is 5.)\0
357 The
358 .I pmblur(1)
359 command is used to generate the given number of additional views for
360 .I pinterp
361 to average together.
362 The default value is 0, meaning no motion blurring.
363 This option does not currently work with the
364 .I ANIMATE
365 variable, since pinterp only works for static environments.
366 .TP
367 .BR RTRACE
368 This boolean variable tells
369 .I ranimate
370 whether or not to employ
371 .I rtrace
372 during frame interpolation using the
373 .I \-fr
374 option to
375 .I pinterp.
376 If set to True, then the same rendering options and static octree
377 are passed to
378 .I rtrace
379 as are normally used by
380 .I rpict.
381 The default value is False.
382 Note that this variable only applies to static environment
383 walk-throughs (i.e., no
384 .I ANIMATE
385 command).
386 .TP
387 .BR RESOLUTION
388 This variable specifies the desired final picture resolution.
389 If only a single number is given, this value will be used for both
390 the horizontal and vertical picture dimensions.
391 If two numbers are given, the first is the horizontal resolution and
392 the second is the vertical resolution.
393 If three numbers are given, the third is taken as the pixel aspect
394 ratio for the final picture (a real value).
395 If the pixel aspect ratio is zero, the exact dimensions given will
396 be those produced.
397 Otherwise, they will be used as a frame in which the final image
398 must fit.
399 The default value for this variable is 640.
400 .TP
401 .BR render
402 This variable may be used to specify additional options to
403 .I rpict
404 or
405 .I rtrace.
406 These options will appear after the options set automatically by
407 .I rad,
408 and thus will override the default values.
409 .TP
410 .BR pinterp
411 This variable may be used to specify additional options to
412 .I pinterp,
413 which is used to interpolate frames for a static scene walk-through.
414 (See the
415 .I pinterp
416 man page, and the
417 .I INTERPOLATE
418 variable.)\0
419 Do not use this variable to set the
420 .I pinterp
421 .I \-fr
422 option, but use the
423 .I RTRACE
424 setting instead.
425 .TP
426 .BR pfilt
427 This variable may be used to specify additional options to
428 .I pfilt.
429 If this variable is given in the
430 .I ranfile,
431 then
432 .I pfilt
433 will always be used.
434 (Normally,
435 .I pfilt
436 is called only if
437 .I pinterp
438 is not needed or automatic exposure is required.)\0
439 See the
440 .I pfilt
441 manual page for details.
442 .SH EXAMPLES
443 A minimal input file for
444 .I ranimate
445 might look like this:
446 .IP "" .3i
447 .nf
448 ::::::::::
449 sample.ran
450 ::::::::::
451 # The rad input file for our static scene:
452 RIF= tutor.rif
453 # The spool directory:
454 DIRECTORY= anim1
455 # The view file containing one view per frame:
456 VIEWFILE= anim1.vf
457 # The amount of temporary disk space available:
458 DISKSPACE= 50 # megabytes
459 .fi
460 .PP
461 Note that most of the variables are not set in this file.
462 If we only want to see what default values
463 .I ranimate
464 would use without actually executing anything, we can invoke it
465 thus:
466 .IP "" .2i
467 ranimate -n -e sample.ran
468 .PP
469 This will print the variables we have given as well as default
470 values
471 .I ranimate
472 has assigned for us.
473 Also, we will see the list of commands that
474 .I ranimate
475 would have executed had the
476 .I \-n
477 option not been present.
478 .PP
479 Usually, we execute
480 .I ranimate
481 in the background, redirecting the standard output and standard
482 error to a file:
483 .IP "" .2i
484 ranimate sample.ran >& sample.err &
485 .PP
486 If we decide that the default values
487 .I ranimate
488 has chosen for our variables are not all appropriate, we can add
489 some more assignments to the file:
490 .IP "" .3i
491 .nf
492 host= rays 3 ~greg/obj/tutor ray # execute as ray on multi-host "rays"
493 host= thishost # execute one copy on this host also
494 INTERP= 3 # render every fourth frame
495 RES= 1024 # shoot for 1024x resolution
496 MBLUR= .25 # apply camera motion blur
497 EXP= anim1.exp # adjust exposure according to file
498 pfilt= -r .9 # use Gaussian filtering
499 ARCHIVE= tar cf /dev/nrtape # save original renderings to tape
500 .fi
501 .PP
502 Note the use of abbreviation for variable names.
503 .SH FILES
504 $(DIRECTORY)/STATUS animation status file
505 $(DIRECTORY)/* other temporary files
506 $(BASENAME).pic final animation frames
507 .SH AUTHOR
508 Greg Ward
509 .SH BUGS
510 Due to the difficulty of controlling processes on multiple execution
511 hosts, the
512 .I \-n
513 option of
514 .I ranimate
515 is not useful in the same way as
516 .I rad
517 for generating a script of executable commands to render the
518 sequence.
519 It may give an idea of the sequence of events, but certain temporary
520 files and so forth will not be in the correct state if the user
521 attempts to create a separate batch script.
522 .PP
523 If multiple processors are available on a given host and the
524 .I RTRACE
525 variable is set to True, then the
526 .I \-PP
527 option of
528 .I rtrace
529 should be employed, but it is not.
530 There is no easy way around this problem, but it has only minor
531 consequences in most cases.
532 (The
533 .I \-PP
534 option is used for
535 .I rpict,
536 however.)\0
537 .I
538 .PP
539 The current implementation of the remote shell does not return the
540 exit status of the remote process, which makes it difficult to
541 determine for sure if there has been a serious error or not.
542 Because of this,
543 .I ranimate
544 normally turns off warnings on all rendering processes, and takes
545 any output to standard error from a remote command as a sign that a
546 fatal error has occurred.
547 (This also precludes the use of the
548 .I \-t
549 option to report rendering progress.)\0
550 If the error was caused by a process server going down, the server
551 is removed from the active list and frame recovery takes place.
552 Otherwise,
553 .I ranimate
554 quits at that point in the animation.
555 .PP
556 The current execution environment, in particular the RAYPATH variable,
557 will not be passed during remote command execution, so it is necessary
558 to set whatever variables are important in the remote startup script
559 (e.g., ".cshrc" for the C-shell).
560 This requirement may be circumvented by substituting the
561 .I on(1)
562 command for
563 .I rsh(1)
564 using the
565 .I RSH
566 control variable, or by writing a custom remote execution script.
567 .PP
568 If a different remote user name is used,
569 .I ranimate
570 first attempts to change to the original user's directory with a
571 command of the form
572 .I "cd \~uname".
573 This works under
574 .I csh(1),
575 but may fail under other shells such as
576 .I sh(1).
577 .PP
578 If multiple hosts with different floating point formats are used,
579 .I pinterp
580 will fail because the Z-buffer files will be inconsistent.
581 (Recall that
582 .I pinterp
583 is called if INTERPOLATE > 0 and/or MBLUR is assigned.)\0
584 Since most modern machines use IEEE floating point, this is not
585 usually a problem, but it is something to keep in mind.
586 .SH "SEE ALSO"
587 pfilt(1), pinterp(1), pmblur(1), rad(1),
588 ranimove(1), rpict(1), rsh(1), rtrace(1)