Previous:External Animation Loop Main Index Next:Subsets of Animation Frames

#### Internal Animation Loop

`Initial_Frame=` n | Sets initial frame number to n
`Final_Frame=` n | Sets final frame number to n
`Initial_Clock=` n.n | Sets initial clock value to n.n
`Final_Clock=` n.n | Sets final clock value to n.n
`+KFI` n | Same as `Initial_Frame=`n
`+KFF` n | Same as `Final_Frame=`n
`+KI` n.n | Same as `Initial_Clock=`n.n
`+KF` n.n | Same as `Final_Clock=`n.n

The internal animation loop new to POV-Ray 3.0 relieves the user of the task of generating complicated sets of batch files to invoke POV-Ray multiple times with different settings. While the multitude of options may look intimidating, the clever set of default values means that you will probably only need to specify the `Final_Frame`=n or the `+KFF` n option to specify the number of frames. All other values may remain at their defaults.

Any `Final_Frame` setting other than -1 will trigger POV-Ray's internal animation loop. For example `Final_Frame=10` or `+KFF10` causes POV-Ray to render your scene 10 times. If you specified `Output_File_Name=file.tga` then each frame would be output as `file01.tga`, `file02.tga`, `file03.tga` etc. The number of zero-padded digits in the file name depends upon the final frame number. For example `+KFF100` would generate `file001.tga` through `file100.tga`. The frame number may encroach upon the file name. On MS-DOS with an eight character limit, `myscene.pov` would render to `mysce001.tga` through `mysce100.tga`.

The default `Initial_Frame=1` will probably never have to be changed. You would only change it if you were assembling a long animation sequence in pieces. One scene might run from frame 1 to 50 and the next from 51 to 100. The `Initial_Frame`=n or `+KFI` n option is for this purpose.

Note that if you wish to render a subset of frames such as 30 through 40 out of a 1 to 100 animation, you should not change `Frame_Initial` or `Frame_Final`. Instead you should use the subset commands described in section "Subsets of Animation Frames".

Unlike some animation packages, the action in POV-Ray animated scenes does not depend upon the integer frame numbers. Rather you should design your scenes based upon the float identifier `clock`. By default, the clock value is 0.0 for the initial frame and 1.0 for the final frame. All other frames are interpolated between these values. For example if your object is supposed to rotate one full turn over the course of the animation, you could specify `rotate 360*clock*y`. Then as clock runs from 0.0 to 1.0, the object rotates about the y-axis from 0 to 360 degrees.

The major advantage of this system is that you can render a 10 frame animation or a 100 frame or 500 frame or 329 frame animation yet you still get one full 360 degree rotation. Test renders of a few frames work exactly like final renders of many frames.

In effect you define the motion over a continuous float valued parameter (the clock) and you take discrete samples at some fixed intervals (the frames). If you take a movie or video tape of a real scene it works the same way. An object's actual motion depends only on time. It does not depend on the frame rate of your camera.

Many users have already created scenes for POV-Ray 2 that expect clock values over a range other than the default 0.0 to 1.0. For this reason we provide the `Initial_Clock`=n.n or `+KI` n.n and `Final_Clock`=n.n or `+KF` n.n options. For example to run the clock from 25.0 to 75.0 you would specify `Initial_Clock=25.0` and `Final_Clock=75.0`. Then the clock would be set to 25.0 for the initial frame and 75.0 for the final frame. In-between frames would have clock values interpolated from 25.0 through 75.0 proportionally.

Users who are accustomed to using frame numbers rather than clock values could specify `Initial_Clock=1.0` and `Final_Clock=10.0` and `Frame_Final=10` for a 10 frame animation.

For new scenes, we recommend you do not change the `Initial_Clock` or `Final_Clock` from their default 0.0 to 1.0 values. If you want the clock to vary over a different range than the default 0.0 to 1.0, we recommend you handle this inside your scene file as follows...

      #declare Start    = 25.0;

      #declare End      = 75.0;

      #declare My_Clock = Start+(End-Start)*clock;

Then use `My_Clock` in the scene description. This keeps the critical values 25.0 and 75.0 in your .pov file.

Note that more details concerning the inner workings of the animation loop are in the section on shell-out operating system commands in section "Shell-out to Operating System".

Previous:External Animation Loop Main Index Next:Subsets of Animation Frames