def view_update(self, context): global zmq_backend self.debug("VRayRendererRT::view_update()") exporter = context.scene.vray.Exporter self.zmq_should_start = exporter.backend == 'ZMQ' and exporter.backend_worker == 'LOCAL' if self.zmq_should_start and not zmq_backend or zmq_backend and zmq_backend.poll() is not None: executable_path = SysUtils.GetZmqPath() if not executable_path or not os.path.exists(executable_path): self.debug("Can't find V-Ray ZMQ Server!") else: port = str(context.scene.vray.Exporter.zmq_port) zmq_backend = subprocess.Popen([executable_path, "-p", port]) if not self.exporter: self.exporter = _vray_for_blender_rt.init(context.as_pointer(), self.as_pointer(), context.blend_data.as_pointer(), context.scene.as_pointer(), context.region.as_pointer(), context.space_data.as_pointer(), context.region_data.as_pointer() ) _vray_for_blender_rt.export(self.exporter) if self.exporter: _vray_for_blender_rt.update(self.exporter)
def view_update(self, context): self.debug("VRayRendererRT::view_update()") if not self.exporter: self.exporter = _vray_for_blender_rt.init(context.as_pointer(), self.as_pointer(), context.blend_data.as_pointer(), context.scene.as_pointer(), context.region.as_pointer(), context.space_data.as_pointer(), context.region_data.as_pointer() ) _vray_for_blender_rt.export(self.exporter) if self.exporter: _vray_for_blender_rt.update(self.exporter)
def update(self, data, scene): debug.Debug("update()") vrayExporter = self._get_settings() if vrayExporter.backend != 'STD': ZMQ.check_start() # Init ZMQ exporter if not self.renderer: arguments = { 'context': bpy.context.as_pointer(), 'engine': self.as_pointer(), 'data': data.as_pointer(), 'scene': scene.as_pointer(), } self.renderer = _vray_for_blender_rt.init(**arguments) if self.renderer: _vray_for_blender_rt.update(self.renderer)
def update(self, data, scene): if not self.doRender(): return debug.Debug("update()") vrayExporter = self.getExporter() if vrayExporter.backend != 'STD': ZMQ.check_start() # Init ZMQ exporter if not self.renderer: arguments = { 'context': bpy.context.as_pointer(), 'engine': self.as_pointer(), 'data': data.as_pointer(), 'scene': scene.as_pointer(), } self.renderer = _vray_for_blender_rt.init(**arguments) if self.renderer: _vray_for_blender_rt.update(self.renderer)
def ExportEx(bus): debug.Debug("ExportEx()") err = None scene = bus['scene'] engine = bus['engine'] o = bus['output'] VRayScene = scene.vray VRayExporter = VRayScene.Exporter VRayDR = VRayScene.VRayDR pm = VRayFilePaths() # Setting user defined value here # It could be overriden in 'initFromScene' # depending on VRayDR settings pm.setSeparateFiles(VRayExporter.useSeparateFiles) pm.initFromScene(engine, scene) pm.printInfo() fm = VRayExportFiles(pm) fm.setOverwriteGeometry(VRayExporter.auto_meshes) try: fm.init() except Exception as e: debug.ExceptionInfo(e) return "Error initing files!" o.setFileManager(fm) o.setPreview(engine.is_preview) bus['exporter'] = exp_init.InitExporter(bus) try: # We do everything here basically because we want to close files # if smth goes wrong... rtExporter = HAS_VB35 and engine.bl_idname == 'VRAY_RENDER_RT' if not rtExporter: err = Export(bus, scene, engine, engine.is_preview) else: if not VRayExporter.animation_mode in {'NONE', 'CAMERA_LOOP'}: o.setAnimation(True) o.setFrameStart(scene.frame_start) o.setFrameEnd(scene.frame_end) o.setFrameStep(scene.frame_step) elif VRayExporter.animation_mode == 'CAMERA_LOOP': cameraCount = len([ 1 for o in scene.objects if o.type == 'CAMERA' and o.data.vray.use_camera_loop ]) o.setAnimation(True) o.setFrameStart(1) o.setFrameEnd(cameraCount) o.setFrameStep(1) init = { 'context': bpy.context.as_pointer(), 'engine': engine.as_pointer(), 'data': bpy.data.as_pointer(), 'scene': scene.as_pointer(), 'mainFile': fm.getFileByPluginType('MAIN'), 'objectFile': fm.getFileByPluginType('OBJECT'), 'envFile': fm.getFileByPluginType('WORLD'), 'geometryFile': fm.getFileByPluginType('GEOMETRY'), 'lightsFile': fm.getFileByPluginType('LIGHT'), 'materialFile': fm.getFileByPluginType('MATERIAL'), 'textureFile': fm.getFileByPluginType('TEXTURE'), 'cameraFile': fm.getFileByPluginType('CAMERA'), } # Free anything we have if engine.renderer: del engine.renderer renderer = _vray_for_blender_rt.init(**init) if renderer: # Write settings for new exporter. # TODO: Move this to cpp. exp_settings.ExportSettings(bus) setattr(engine, 'renderer', renderer) _vray_for_blender_rt.render(renderer) except Exception as e: debug.ExceptionInfo(e) err = str(e) finally: exp_init.ShutdownExporter(bus) o.done() return err
def ExportEx(bus): debug.Debug("ExportEx()") err = None scene = bus['scene'] engine = bus['engine'] o = bus['output'] VRayScene = scene.vray VRayExporter = VRayScene.Exporter pm = VRayFilePaths() # Setting user defined value here # It could be overriden in 'initFromScene' # depending on VRayDR settings pm.setSeparateFiles(VRayExporter.useSeparateFiles) pm.initFromScene(engine, scene) pm.printInfo() fm = VRayExportFiles(pm) fm.setOverwriteGeometry(VRayExporter.auto_meshes) rtExporter = HAS_VB35 and engine.bl_idname == 'VRAY_RENDER_RT' try: fm.init(not rtExporter) except Exception as e: debug.ExceptionInfo(e) return "Error initing files!" o.setFileManager(fm) o.setPreview(engine.is_preview) if not rtExporter: bus['exporter'] = exp_init.InitExporter(bus) try: # We do everything here basically because we want to close files # if smth goes wrong... if not rtExporter: err = Export(bus, scene, engine, engine.is_preview) else: if not VRayExporter.animation_mode in {'NONE', 'CAMERA_LOOP'}: o.setAnimation(True) o.setFrameStart(scene.frame_start) o.setFrameEnd(scene.frame_end) o.setFrameStep(scene.frame_step) elif VRayExporter.animation_mode == 'CAMERA_LOOP': cameraCount = len([1 for o in scene.objects if o.type == 'CAMERA' and o.data.vray.use_camera_loop]) o.setAnimation(True) o.setFrameStart(1) o.setFrameEnd(cameraCount) o.setFrameStep(1) init = { 'context' : bpy.context.as_pointer(), 'engine' : engine.as_pointer(), 'data' : bpy.data.as_pointer(), 'scene' : scene.as_pointer(), 'mainFile' : fm.getFilePathByPluginType('MAIN'), 'objectFile' : fm.getFilePathByPluginType('OBJECT'), 'envFile' : fm.getFilePathByPluginType('WORLD'), 'geometryFile' : fm.getFilePathByPluginType('GEOMETRY'), 'lightsFile' : fm.getFilePathByPluginType('LIGHT'), 'materialFile' : fm.getFilePathByPluginType('MATERIAL'), 'textureFile' : fm.getFilePathByPluginType('TEXTURE'), 'cameraFile' : fm.getFilePathByPluginType('CAMERA'), } # Free anything we have if engine.renderer: del engine.renderer renderer = _vray_for_blender_rt.init(**init) if renderer: setattr(engine, 'renderer', renderer) _vray_for_blender_rt.render(renderer) except Exception as e: debug.ExceptionInfo(e) err = str(e) finally: exp_init.ShutdownExporter(bus) return err