Previous:String Substitution in Shell Commands Main Index Next:Shell Command Return Actions

#### Shell Command Sequencing

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