コード例 #1
0
    def Render(self):
        # Loop trough all blender versions
        for (index, executable) in enumerate(self._executables):

            #Create a result container and create a new result set
            resultSet = ResultSet.ResultSetClass()

            # and get the build information
            resultSet.SetBuildInformation(
                BlenderUtils.GetBlenderVersionInformation(
                    self._executables[index]))

            # then render all files, one after another
            for renderTask in self._renderTasks:

                print(">> Rendering " + renderTask[0] +
                      " with Blender version " +
                      resultSet.BuildInformation["release"])

                # --engine CYCLES BLENDER_RENDER
                md5 = hashlib.md5(open(renderTask[0], 'rb').read()).hexdigest()
                imageoutput = "../images/results/" + md5 + "_" + resultSet.BuildInformation[
                    "hash"] + "_"

                for line in BlenderUtils.RunCommand(executable + " -b " +
                                                    renderTask[0] +
                                                    #" -o " + imageoutput +
                                                    " -F PNG  -x 1 -f " +
                                                    str(renderTask[1])):

                    #print(line.decode("utf-8"))

                    # And look if the result is available already
                    # btw. this is pretty weak - if "Saved:" is not recognized, the complete test result will vanish :(
                    if line.decode("utf-8").find('Saved: ') > -1:
                        consoleLine = line.decode("utf-8").split()
                        resultSet.AddResult({
                            "filename":
                            os.path.basename(renderTask[0]),
                            "rendertime":
                            consoleLine[3],
                            "savetime":
                            consoleLine[5].replace('(', '').replace(')', ''),
                            "md5":
                            md5,
                            "frame":
                            str(renderTask[1]).zfill(4)
                        })

            print(resultSet.Results)
コード例 #2
0
 def bonerot(bindentry):
     args = bindentry["bonerot"].split(":")
     scale = 1
     if ("scale" in bindentry):
         scale = bindentry["scale"]
     return lambda: BlenderUtils.get_bones_rotation_rad(*args) * scale
コード例 #3
0
 def childbones_rot(bindentry):
     armature, axis = bindentry["childbones_rot"].split(":")
     return lambda: [
         BlenderUtils.get_bones_rotation_rad(armature, bone, axis)
         for bone in bpy.data.objects[armature].pose.bones.keys()
     ]
コード例 #4
0
ファイル: ParametersOut.py プロジェクト: linas/robo_blender
 def bonerot(bindentry):
   args = bindentry["bonerot"].split(":")
   scale = 1
   if ("scale" in bindentry):
       scale = bindentry["scale"]
   return lambda: BlenderUtils.get_bones_rotation_rad(*args)*scale
コード例 #5
0
ファイル: ParametersOut.py プロジェクト: linas/robo_blender
 def childbones_rot(bindentry):
   armature, axis = bindentry["childbones_rot"].split(":")
   return lambda: [
     BlenderUtils.get_bones_rotation_rad(armature, bone, axis)
     for bone in bpy.data.objects[armature].pose.bones.keys()
   ]