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