~osomon/phatch/extract-all-metadata

« back to all changes in this revision

Viewing changes to data/blender/runner.py

  • Committer: spe.stani.be at gmail
  • Date: 2009-09-06 19:26:07 UTC
  • mfrom: (1176.1.31 phatch-blender)
  • Revision ID: spe.stani.be@gmail.com-20090906192607-yrr191rqqon5bz2k
blender juho

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
    def __init__(self):
25
25
        self.args = Arguments()
26
 
        self.args.parse_argv()
 
26
        self.render_path = os.path.splitext(self.args['render_path'])[0]
27
27
 
28
28
    def render(self):
 
29
        scene = Scene.GetCurrent()
 
30
 
29
31
        script = imp.load_source(self.args['script'], self.args['script_path'])
30
 
        script.set_up_render(self.args)
31
 
 
32
 
        scn = Scene.GetCurrent()
33
 
        ctx = scn.getRenderingContext()
34
 
 
35
 
        ctx.sFrame = 1
36
 
        ctx.eFrame = 1
37
 
 
38
 
        ctx.imageSizeX(int(self.args['render_width']))
39
 
        ctx.imageSizeY(int(self.args['render_height']))
40
 
 
41
 
        render_path = os.path.splitext(self.args['render_path'])[0]
42
 
        
43
 
        ctx.renderPath = render_path + os.path.sep
44
 
        ctx.renderAnim()
45
 
 
46
 
        render_result_path = os.path.join(render_path, '0001.png')
 
32
        blender_initializer = script.BlenderInitializer()
 
33
        blender_initializer.set_up_render(self.args, scene)
 
34
 
 
35
        self.set_up_render_context(scene)
 
36
 
 
37
        render_result_path = os.path.join(self.render_path, '0001.png')
47
38
        os.rename(render_result_path, self.args['render_path'])
48
39
 
 
40
        blender_initializer.clean_up()
 
41
 
 
42
    def set_up_render_context(self, scene):
 
43
        context = scene.getRenderingContext()
 
44
 
 
45
        context.sFrame = 1
 
46
        context.eFrame = 1
 
47
 
 
48
        context.imageSizeX(int(self.args['render_width']))
 
49
        context.imageSizeY(int(self.args['render_height']))
 
50
        context.setRenderWinSize(100)
 
51
 
 
52
        context.oversampling = True
 
53
        context.OSALevel = 5
 
54
 
 
55
        context.alphaMode = 0 # 0 for sky, 1 for premul, 2 for key
 
56
        context.enableRGBColor()
 
57
 
 
58
        context.renderPath = self.render_path + os.path.sep
 
59
        context.renderAnim()
49
60
 
50
61
class Arguments(dict):
51
62
 
52
 
    def parse_argv(self):
 
63
    def __init__(self):
53
64
        args = sys.argv[sys.argv.index('--') + 1:]
54
65
        for arg in args:
55
66
            key, value = arg.split(':', 1)
56
 
            self[key] = value
57
67
 
 
68
            if value.lower() in ('no', 'false'):
 
69
                self[key] = False
 
70
            else:
 
71
                try:
 
72
                    self[key] = float(value)
 
73
                except ValueError:
 
74
                    self[key] = value
58
75
 
59
76
script = BlenderScript()
60
77
script.render()