People do not want to read lengthy documentation. So, for those who want
to get on with it, there is a quick start.
If you ever intend to use RendView, please read the quick start
carefully.
Because the online help (call rendview --help) will probably
not completely enlighten you without having read the docu.
You first have to understand the most basic working principle and structure
of RendView:
Basic structure
Rendering and/or filtering a frame is a task.
Tasks originate from a task source, are fed into the
task manager which has a task driver interface ("dif")
which uses a task driver to actually execute the render or
filter program (jobs). Once the task is done, it is given back to
the task source with success/failure information.
Furthermore there is a component data base which stores
information about renderers and filters.
Which task source and task driver interface are actually used depends
on the operation mode.
Operation modes
RendView currently knows 3 operation modes
(option -opmode=):
-opmode= |
task source |
driver interface | |
rendview |
local | local |
default; completely local |
ldrserver |
local | LDR |
server for local distributed rendering |
ldrclient |
LDR | local |
client for local distributed rendering |
As you probably guess, "LDR" means "local distributed rendering" and
means that tasks are processed by several clients in a local TCP/IP
network. RendView is a single executable and has all three opmodes
built in.
Calling RendView -- quick start
In order to launch RendView, you have to supply information for the
task source and the task driver which will get used as well as the
component data base.
Feeding the component data base
This is easiest done by creating two files, renderers.par and
filters.par (check your distribution, it includes sample files).
The file contents are self-explaining; here is an example for
renderers.par:
# renderers.par config file for RendView
*section povray3.1g
driver = povray
binpath = povray
req_args+= -J
inc_path= /usr/lib/povray/include
*end
*section "povray3.5"
driver = povray
binpath = /usr/src/povray/povray-3.5-build/src/povray
stopsig = SIGSTOP
req_args+= -J -display :0.0
inc_path= /usr/src/povray/povray-3.5/include/ /usr/lib/povray/include
*end
Note the name after *section, it is the name of the render
desc (description). There are two descs for different versions
of POVRay which both use the POVRay driver.
filters.par looks quite the same; but you don't need it for a
quick start.
(You don't want to filter frames at your first quick start, do you?)
To tell RendView about these files, pass the options
-rdfile=/path/to/renderers.par and
(if available)
-fdfile=/path/to/filters.par.
Feeding the local task source
This is necessary in any case because both LDR server and local RendView
use this task source. Important options (all begin with -l- for
local task source):
- -l-rd=DESC
-
MUST be specified, otherwise the frames do not get rendered.
DESC is the name of a render desc as defined in
renderers.par (in our example it would be povray3.1g
or povray3.5).
- -l-nframes=NUM
-
Specify the number of frames to be rendered (auto-detected).
- -l-size=WWWxHHH
-
Specify the size of the rendered frames (320x240).
- -l-r-ifpattern=PAT
-
Specify the file name pattern where PAT is something like
f%07d.pov for f0000000.pov, f0000001.pov,...
(following standard printf(3) syntax).
Further interesting options: -l-cont and
-l-rcont.
If you do not have a list of frames but rather want to animate
scene.pov using POVRay's animation clock,
then pass -l-r-ifpattern=scene.pov
and use the following:
- -l-r-fc
-
Switch on use of the frame clock (fc).
Beginning with RendView-0.7.0, frame clock support has changed.
You now no longer pass -l-r-fc0 and -l-r-fcdt
but instead just tell RendView that the frame clock is being used while
you give POVRay all information it needs to compute the clock value out
of the passed frame number. RendView will then use
+SFnnn and +EFnnn to
render (the single) frame nnn. Hence, you need to specify
+KFI, +KFF, +KI and
+KF for POVRay (as additional arg or in an .ini file or
by relaying on the defaults).
Note that RendView automatically passes +KFI0
to POVRay (as first arguments to allow for user-overriding). The reason
is that RendView defaults to starting with frame number 0 while POVRay
normally stats at 1.
Feeding the local task driver interface
In case you want to try and launch (local) RendView (i.e. execute
tasks on the local computer as done by the LDR client and plain RendView),
you may need to pass options to the local driver interface.
None are required, most important:
- -ld-r-quiet=NUM
-
Suppress output of renderer (not default but recommended).
- -ld-njobs=NUM
-
Number of processes to start and run in parallel (1).
Finally launching RendView
You can now finally launch RendView. Say you want to render
frame000.pov... frame239.pov locally with POVRay 3.5
at a size of 640x480, then you may call:
rendview -rdfile=/path/to/renderers.par -l-rd=povray3.5 -l-nframes=240
-l-size=640x480 -l-r-ifpattern="frame%03d.pov" -ld-r-quiet
Alternatively, you can put all the options in the environment variable
RENDVIEWARGS and simply launch RendView, e.g. for bash
(with bash> being the shell prompt):
bash> export RENDVIEWARGS="-rdfile=/path/to/renderers.par
-l-rd=povray3.5 -l-nframes=240 -l-size=640x480 -l-r-ifpattern=frame%03d.pov
-ld-r-quiet"
bash> rendview
If you want to animate the clock value of scene.pov in 25
frames from 0.0 to 3.0, you may call (using bash):
bash> export RENDVIEWARGS="-rdfile=/path/to/renderers.par
-l-rd=povray3.5 -l-size=640x480 -l-r-ifpattern=scene.pov
-ld-r-quiet -l-r-args+=\"+KFI0 +KFF24 +KI0.0 +KF3.0\""
bash> rendview -l-nframes=26 -l-r-fc
Read more about POVRay frame clock support
here.
Alternatively, you can put all the frame settings (and anti-aliasing
params or the like as well, if desired) into an .ini
file (which must have the extentsion .ini) and render
the .ini file. Make sure to include +Iscene.pov in
the .ini file somewhere and pass the scene.pov file as
additional file:
bash> export RENDVIEWARGS="-rdfile=/path/to/renderers.par
-l-rd=povray3.5 -l-size=640x480 -l-r-ifpattern=scene.ini
-ld-r-quiet -l-r-files+=\"scene.pov\" "
bash> rendview -l-nframes=26 -l-r-fc
Stopping RendView again
Okay, now as RendView is running, we may want to stop it again. The
easiest way is to send it a SIGINT by pressing ^C on
the terminal. Pressing it once will not start new tasks but wait for the
currently running tasks to finish, pressing it a second time will kill
the currently running tasks and exit then, pressing it for a third time
will abort RendView (do not do that unless it is not aviodable).
Using LDR
If you want to use LDR, please read the normal
documentation or have at least a look at the
examples.