[Radiance-general] Re: proposed feature: interpreting view names in
rad
Greg Ward
gward at lmi.net
Wed Jul 22 11:20:44 PDT 2009
Like so many other aspects of Radiance, the notion of view files has
evolved to where it is, and changing things at this point would
probably mean breaking a lot of scripts.
As Jack pointed out, rpict takes the LAST (not the first) view in a
view file as the valid one. Technically, it takes the accumulation
of view settings, so if for some reason a person had in their file:
VIEW= -vta -vh 180 -vv 150 -vp 10 5 3 -vd .1 .9 -.1
VIEW= -vtv -vh 50 -vv 35
The actual view used would be "-vtv -vh 50 -vv 35 -vp 10 5 3 -vd .1 .
9 -.1"
Since rvu appends to a view file a complete specification, the
earlier views are generally irrelevant. The reason rvu appends
rather than overwrites this file is two-fold:
1) It is often handy to edit the view file to get back to a previous
view that you realize you liked better than the final view you wrote
there.
2) You can use the append feature and the fact that anything
following the view file in the rvu "view" command is added at the end
of the line makes for a convenient way to store key frames and time
from the previous keyframe, which the spline.cal function can then
use to interpolate animated paths -- see footnote at the end of this
message.
Having rpict ignore all but the last view in a file was the most
convenient way to get the behavior I wanted. If your wish is to have
rpict render all views in the file instead, you can simply run it as:
rpict [options] -S 1 -o frame%02d.hdr octree < vlist.vf
Another nice thing about doing it this way is that you can start as
many rpict processes as you have processors and you get to run your
sequence in parallel. This is what rad does in fact, using also the -
PP option to share memory as well.
Getting back to your suggested modification to rad's behavior, I
expect it would cause some confusion and consternation for users who
create their view files with rvu and overwrite previous views if they
got multiple renderings they weren't expecting of views they didn't
want. Also, I'd have to think up yet another naming scheme for the
multiple output pictures, which I'm very reluctant to do.
-Greg
-Greg
Footnote:
=======
Using rvu to create key frame positions and interpolating these for a
walk-through animation path:
(in rvu): view key.vf -t 1.5
(in rvu): [some view changes to get to the next key frame position]
(in rvu): view key.vf -t 2.5
etc.
The view file can then be converted to something usable with:
rcalc -i key.fmt -e '$1=px;$2=py;$3=pz;$4=dx;$5=dy;$6=dz;$7=vh;$8=vv;
$9=t' \
| tabfunc Px Py Pz Dx Dy Dz Ah Av T > key.cal
Where "key.fmt" contains:
rvu -vtv -vp ${px} ${py} ${pz} -vd ${dx} ${dy} ${dz} -vu 0 0 1 -vh $
{vh} -vv ${vv} -vo 0 -va 0 -vs 0 -vl 0 -t ${t}
Interpolating a path of 1000 frames can be done with something like:
cnt 1000 | rcalc -f key.cal -f spline.cal -o view.fmt -e 't=Ttot/999*
$1' \
-s vt=v -e 'vux=0;vuy=0;vuz=1;vo=0;va=0;vs=0;vl=0' \
-e 'vpx=s(Px);vpy=s(Py);vpz=s(Pz);vh=s(Ah);vv=s(Av)' \
> animpath.vf
Both "spline.cal" and "view.fmt" are provided in ray/src/cal/cal/.
This path can then be handed to ranimate for a nice walk-through
sequence.
This is mostly from memory, so I may have messed up on a detail or
two...
More information about the Radiance-general
mailing list