循环遍历9000个单独的.pov文件,创建9000个单独的png

时间:2014-12-23 10:36:54

标签: loops batch-file povray

这个问题已经被问了很多,但没有解决方案似乎与提出的问题相符!

我有9000个pov光芒文件编号为frame0001.pov frame0002.pov frame0003.pov ... frame9000.pov

它们各自定义一个动画的框架(由生成的png文件和quicktime pro组合在一起)。目前我正在使用批量上传来渲染500“每个会话”,但这效率不高,因为每次我必须在批处理中添加500个(我在睡觉时不能这样做!)。

这个解决方案似乎是我需要的,但是我需要更多解释如何编写循环以分别渲染每个单独的.pov帧(它们彼此独立)

Render multiple files in POV-Ray (Windows)

Input_File_Name="frame0001.pov"
Width = 720

Height = 400
Antialias = On
Antialias_Threshold = 0.03
Output_File_Type = N

Initial_Frame = 1
Final_Frame = 9000

Subset_Start_Frame = 1
Subset_End_Frame = 10

#if(frame_number=1)
#include "frame0001.pov"
#end

#if(frame_number=2)
#include "frame0002.pov"
#end

#if(frame_number=3)
#include "frame0003.pov"
#end

#if(frame_number=4)
#include "frame0004.pov"
#end

etc...

我正把头撞在墙上,很快就没有墙了:(

1 个答案:

答案 0 :(得分:2)

敲打似乎是解决方案。解决方案找到了自己!

对于所有那些也不知道他们正在使用povray for windows做什么的人来说:

您遇到此问题:

你有.pov文件的thousaneds单独渲染,但批量上传只允许队列中的500个。您不希望每小时醒来添加更多文件,而您对批处理或ini文件一无所知。您的文件名为“yournameXXXX.pov”。其中XXXX是帧号

注意:对于第一帧,您的文件必须被称为“yourname0001.pov”而不仅仅是“yourname1.pov”注意到前导数字

<强>解决方案:

  1. 打开文本编辑并创建文件anyname.ini
  2. 写入该文本文件

    Input_File_Name="yourname.pov"
    Width = 720
    Height = 400
    Antialias = On
    Antialias_Threshold = 0.03
    Output_File_Type = N
    Initial_Frame = 1
    Final_Frame = 9000

  3. 当您运行此文件时,pov ray将使用您在此处为每个渲染场景提供的设置,因此您可以根据需要更改它们。您只需将Initial_Frame和Final_Frame设置为序列中第一个和最后一个的数字即可。如果您只想渲染一些文件(适合测试它),您也可以在此处设置子集。对于初始和最终之间的每一帧,povray将查找我们即将创建的“yourname.pov”文件。

    1. 创建名为“yourname.pov”的新文本编辑文件
    2. 写入“yourname.pov”文本文件:

      # include concat("yourname", str(frame_number, -4, 0) ".pov"

    3. 只需要一行!这是聪明的部分。 Povray将为初始和最终之间的每个场景调用此文件。它还带来一个frame_number。对于每个帧,concat将构造正确的文件以查找每个帧。 str(frame_number,-4,0)将创建正确的4位数文件。如果名称中的数字大于或等于4,则相应地更改-4。

      1. 将这两个文件保存在“yournameXXXX.pov”文件所在的文件夹中

      2. 使用povray打开anyname.ini并运行该文件

      3. 生成的png将与yournameXXXX.png

      4. 在同一目录中创建

        完成