Previous:String Substitution in Shell Commands Main Index Next:Shell Command Return Actions
Here is the sequence of events in an animation loop. Non-animated scenes work the exact same way except there is no loop.
1) Process all INI file keywords and command line switches just once.
2) Open any text output streams and do Create_INI
if any.
3) Execute Pre_Scene_Command
if any.
4) Loop through frames (or just do once on non-animation).
a) Execute Pre_Frame_Command
if any.
b) Parse entire scene file, open output file and read settings, turn on display, render the frame, destroy all objects, textures etc., close output file, close display.
c) Execute Post_Frame_Command
if any.
d) Go back to (4a) until all frames are done.
5) Execute Post_Scene_Command
if any.
6) Exit POV-Ray.
If the user interrupts processing the User_Abort_Command
, if any, is executed. User aborts can only occur during the parsing and rendering parts of step (4b) above.
If a fatal error occurs that POV-Ray notices the Fatal_Error_Command
, if any, is executed. Sometimes an unforeseen bug or memory error could cause a total crash of the program in which case there is no chance to shell out. Fatal errors can occur just about anywhere including during the processing of switches or INI files. If a fatal error occurs before POV-Ray has read the Fatal_Error_Command
string then obviously no shell can occur.
Note that the entire scene is re-parsed for every frame. Future versions of POV-Ray may allow you to hold over parts of a scene from one frame to the next but for now it starts from scratch every time. Note also that the Pre_Frame_Command
occurs before the scene is parsed. You might use this to call some custom scene generation utility before each frame. This utility could rewrite your .pov
or .inc
files if needed. Perhaps you will want to generate new .gif
or .tga
files for image maps or height fields on each frame.
Previous:String Substitution in Shell Commands Main Index Next:Shell Command Return Actions