Пример #1
0
def dropActive():

    if currentRender == 'arnold':
        if cmds.arnoldIpr(q=1, mode='start'):
            cmds.arnoldIpr(mode='stop')

    #if currentRender == 'mentalRay':
    #iprRender()

    cmds.setAttr(camera0 + '.preScale', 1)
    cmds.setAttr(camera0 + '.filmTranslateH', 0)
    cmds.setAttr(camera0 + '.filmTranslateV', 0)

    # center of interest
    camPivot = cmds.getAttr('Viewport_RenderShape.centerOfInterest')
    cmds.setAttr(camera0 + '.centerOfInterest', camPivot)

    cmds.parent(camera1, w=True)
    cmds.delete('Viewport_Render')
    cmds.select(clear=True)

    mel.eval('lookThroughModelPanel ' + camera1 + ' ' + newPanel + ';')

    if cmds.camera(camera1, q=1, o=1):
        cmds.delete("vprexpression")

    cmds.delete("OverScanExpression")
Пример #2
0
 def stop(self):
     if self.timeChange != None:
         OM.MEventMessage.removeCallback(self.timeChange)
         self.timeChange = None
     try:
         cmds.arnoldIpr(mode='stop')
         sys.stdout.write("// Info: Aton - Render stopped.\n")
     except RuntimeError:
         pass
Пример #3
0
 def stop(self):
     if self.timeChange != None:
         OM.MEventMessage.removeCallback(self.timeChange)
         self.timeChange = None
     try:
         cmds.arnoldIpr(mode='stop')
         sys.stdout.write("// Info: Aton - Render stopped.\n")
     except RuntimeError:
         pass
Пример #4
0
    def render(self):
        """ Starts the render """
        try:  # If MtoA was not found
            defaultTranslator = cmds.getAttr("defaultArnoldDisplayDriver.aiTranslator")
        except ValueError:
            cmds.warning("Current renderer is not set to Arnold.")
            return

        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", "aton", type="string")

        # Updating the port from UI
        if self.defaultPort != 0:
            port = self.portSpinBox.value()
            cmds.setAttr("defaultArnoldDisplayDriver.port", port)
        else:
            cmds.warning("Current renderer is not set to Arnold or Aton driver is not loaded.")
            return

        # Adding time changed callback
        if self.timeChangedCB == None:
            self.timeChangedCB = OM.MEventMessage.addEventCallback("timeChanged", self.timeChnaged)

        # Adding selection changed callback
        if self.selectionChangedCB == None:
            self.selectionChangedCB = OM.MEventMessage.addEventCallback("SelectionChanged", self.selectionChanged)

        try:  # If render session is not started yet
            cmds.arnoldIpr(mode="stop")
        except RuntimeError:
            pass

        # Temporary makeing hidden cameras visible before scene export
        hCams = [
            x
            for x in cmds.listCameras()
            if not cmds.getAttr("%s.visibility" % x)
            or not cmds.getAttr("%s.visibility" % cmds.listRelatives(x, s=1)[0])
        ]
        for i in hCams:
            cmds.showHidden(i)

        try:  # Start IPR
            camera = self.getCamera()
            cmds.arnoldIpr(cam=camera, mode="start")
        except RuntimeError:
            cmds.warning("Current renderer is not set to Arnold.")

        # Update IPR
        self.IPRUpdate()
        sys.stdout.write("// Info: Aton - Render started.\n")

        # Setting back to default
        for i in hCams:
            cmds.hide(i)
        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", defaultTranslator, type="string")
        cmds.setAttr("defaultArnoldDisplayDriver.port", self.defaultPort)
Пример #5
0
	def render(self):
		try:
			cmds.arnoldIpr(mode='stop')
		except RuntimeError:
			pass

		defaultTranslator = cmds.getAttr("defaultArnoldDisplayDriver.aiTranslator")

		try:
			cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", "aton", type="string")
		except RuntimeError:
			cmds.warning("Aton driver for Arnold is not installed")
			return

		if self.cameraComboBox.currentIndex() == 0:
			camera = self.getSceneOptions()["camera"]
		else:
			camera = cmds.listRelatives(self.cameraComboBoxDict[self.cameraComboBox.currentIndex()], s=1)[0]

		width = self.getSceneOptions()["width"] * self.resolutionSpinBox.value() / 100
		height = self.getSceneOptions()["height"] * self.resolutionSpinBox.value() / 100
		AASamples = self.cameraAaSpinBox.value()
		motionBlur = not self.motionBlurCheckBox.isChecked()
		subdivs = not self.subdivsCheckBox.isChecked()
		displace = not self.displaceCheckBox.isChecked()
		bump = not self.bumpCheckBox.isChecked()
		sss = not self.sssCheckBox.isChecked()

		rMinX = self.renderRegionXSpinBox.value()
		rMinY = height - self.renderRegionTSpinBox.value()
		rMaxX = self.renderRegionRSpinBox.value() -1
		rMaxY = (height - self.renderRegionYSpinBox.value()) - 1
		print rMinX, rMinY, rMaxX, rMaxY
		core.createOptions()
		cmds.arnoldIpr(cam=camera, width=width, height=height, mode='start')
		nodeIter = AiUniverseGetNodeIterator(AI_NODE_ALL)

		while not AiNodeIteratorFinished(nodeIter):
			node = AiNodeIteratorGetNext(nodeIter)
			AiNodeSetInt(node, "AA_samples", AASamples)
			if rMinX >= 0 and rMinY>=0 and rMaxX<=width and rMaxY<=height:
				AiNodeSetInt(node, "region_min_x", rMinX)
				AiNodeSetInt(node, "region_min_y", rMinY)
				AiNodeSetInt(node, "region_max_x", rMaxX)
				AiNodeSetInt(node, "region_max_y", rMaxY)
			AiNodeSetBool(node, "ignore_motion_blur", motionBlur)
			AiNodeSetBool(node, "ignore_subdivision", subdivs)
			AiNodeSetBool(node, "ignore_displacement ", displace)
			AiNodeSetBool(node, "ignore_bump", bump)
			AiNodeSetBool(node, "ignore_sss", sss)

		# Temp trigger in order to start IPR immediately
		cmds.setAttr("%s.bestFitClippingPlanes"%camera, True)

		cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", defaultTranslator, type="string")
Пример #6
0
def dropTool(*args):

    cmds.undoInfo(swf=False)

    if currentRender == 'arnold':
        if cmds.arnoldIpr(q=1, mode='start'):
            cmds.arnoldIpr(mode='stop')

    #if currentRender == 'mentalRay':
    #iprRender()

    cmds.layout('scrollBarForm', e=1, vis=1)

    cmds.deleteUI('vpRenderWindow')

    cmds.optionVar(iv=('renderViewDisplayToolbar', 1))
    cmds.scriptedPanel(renderViews, e=True, mbv=1)

    cmds.setAttr(camera0 + '.preScale', 1)
    cmds.setAttr(camera0 + '.filmTranslateH', 0)
    cmds.setAttr(camera0 + '.filmTranslateV', 0)

    # center of interest
    camPivot = cmds.getAttr('Viewport_RenderShape.centerOfInterest')
    cmds.setAttr(camera0 + '.centerOfInterest', camPivot)

    cmds.parent(camera1, w=True)
    cmds.delete('Viewport_Render')
    cmds.select(clear=True)

    mel.eval('lookThroughModelPanel ' + camera1 + ' ' + currentPanel + ';')

    # delete expression if exists
    if cmds.camera(camera1, q=1, o=1):
        cmds.delete("vprexpression")

    cmds.delete("OverScanExpression")

    if oldRez != []:
        cmds.setAttr('defaultResolution.width', oldRez[0])
        cmds.setAttr('defaultResolution.height', oldRez[1])
        cmds.setAttr('defaultResolution.deviceAspectRatio', oldRez[2])

    if currentRender == 'vray':
        cmds.setAttr('vraySettings.width', oldRez[0])
        cmds.setAttr('vraySettings.height', oldRez[1])
        mel.eval('vraySetPixelDeviceAspect();')

        cmds.setAttr(camera0 + '.cameraScale', 1)
        cmds.setAttr(camera0 + ".horizontalFilmOffset", 0)
        cmds.setAttr(camera0 + ".verticalFilmOffset", 0)

    cmds.undoInfo(swf=True)
Пример #7
0
    def stop(self):
        """ Stops the render session and removes the callbacks """
        if self.timeChangedCB != None:
            OM.MEventMessage.removeCallback(self.timeChangedCB)
            self.timeChangedCB = None

        if self.selectionChangedCB != None:
            OM.MEventMessage.removeCallback(self.selectionChangedCB)
            self.selectionChangedCB = None

        try:
            cmds.arnoldIpr(mode="stop")
            sys.stdout.write("// Info: Aton - Render stopped.\n")
        except (AttributeError, RuntimeError):
            return
Пример #8
0
    def stop(self):
        ''' Stops the render session and removes the callbacks '''
        if self.timeChangedCB != None:
            OM.MEventMessage.removeCallback(self.timeChangedCB)
            self.timeChangedCB = None

        if self.selectionChangedCB != None:
            OM.MEventMessage.removeCallback(self.selectionChangedCB)
            self.selectionChangedCB = None

        try:
            cmds.arnoldIpr(mode='stop')
            sys.stdout.write("// Info: Aton - Render stopped.\n")
        except (AttributeError, RuntimeError):
            return

        self.frame_sequence.stop()
Пример #9
0
def arnoldIprChangeRegion(renderPanel):
    cmds.arnoldIpr(mode="region")
Пример #10
0
	def stop(self):
		cmds.arnoldIpr(mode='stop')
Пример #11
0
    def render(self, *args, **kwargs):

        if self.cameraComboBox.currentIndex() == 0:
            camera = self.getSceneOptions()["camera"]
        else:
            try:
                camera = cmds.listRelatives(self.cameraComboBoxDict[self.cameraComboBox.currentIndex()], s=1)[0]
            except TypeError:
                camera = self.cameraComboBoxDict[self.cameraComboBox.currentIndex()]

        if camera == None:
            cmds.warning("Camera is not selected!")
            return

        try:
            defaultTranslator = cmds.getAttr("defaultArnoldDisplayDriver.aiTranslator")
        except:
            cmds.warning("MtoA was not found.")
            return

        try:
            cmds.arnoldIpr(mode='stop')
        except RuntimeError:
            pass

        try:
            cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", "aton", type="string")
        except RuntimeError:
            cmds.warning("Aton driver for Arnold is not installed")
            return

        port = self.portSpinBox.value()
        width = self.getSceneOptions()["width"] * self.resolutionSpinBox.value() / 100
        height = self.getSceneOptions()["height"] * self.resolutionSpinBox.value() / 100
        AASamples = self.cameraAaSpinBox.value()
        motionBlur = self.motionBlurCheckBox.isChecked()
        subdivs = self.subdivsCheckBox.isChecked()
        displace = self.displaceCheckBox.isChecked()
        bump = self.bumpCheckBox.isChecked()
        sss = self.sssCheckBox.isChecked()

        rMinX = self.renderRegionXSpinBox.value()
        rMinY = height - self.renderRegionTSpinBox.value()
        rMaxX = self.renderRegionRSpinBox.value() -1
        rMaxY = (height - self.renderRegionYSpinBox.value()) - 1

        cmds.setAttr("defaultArnoldDisplayDriver.port", port)

        # Adding time changed callback
        if self.timeChange == None:
            self.timeChange = OM.MEventMessage.addEventCallback( "timeChanged", self.updateFrame )

        cmds.arnoldIpr(cam=camera, width=width, height=height, mode='start')

        options = AiUniverseGetOptions()

        AiNodeSetInt(options, "AA_samples", AASamples)
        if rMinX >= 0 and rMinY>=0 and rMaxX<=width and rMaxY<=height:
            AiNodeSetInt(options, "region_min_x", rMinX)
            AiNodeSetInt(options, "region_min_y", rMinY)
            AiNodeSetInt(options, "region_max_x", rMaxX)
            AiNodeSetInt(options, "region_max_y", rMaxY)
        AiNodeSetBool(options, "ignore_motion_blur", motionBlur)
        AiNodeSetBool(options, "ignore_subdivision", subdivs)
        AiNodeSetBool(options, "ignore_displacement", displace)
        AiNodeSetBool(options, "ignore_bump", bump)
        AiNodeSetBool(options, "ignore_sss", sss)

        # Temp trigger in order to start IPR
        time = cmds.currentTime(q=1)
        cmds.currentTime(time, e=1)

        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", defaultTranslator, type="string")
        cmds.setAttr("defaultArnoldDisplayDriver.port", self.defaultPort)
        sys.stdout.write("// Info: Aton - Render started.\n")
Пример #12
0
def arnoldIprStart(editor, resolutionX, resolutionY, camera):
    # Make sure the aiOptions node exists
    core.createOptions()
    cmds.arnoldIpr(cam=camera, w=resolutionX, h=resolutionY, mode="start")
Пример #13
0
    def render(self):
        ''' Starts the render '''
        try:  # If MtoA was not found
            defaultTranslator = cmds.getAttr(
                "defaultArnoldDisplayDriver.aiTranslator")
        except ValueError:
            cmds.warning("Current renderer is not set to Arnold.")
            return

        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator",
                     "aton",
                     type="string")

        # Updating extraHost and port from UI
        if self.defaultPort != 0:
            extraHost = self.extraHostLineEdit.text()
            port = self.portSpinBox.value()
            cmds.setAttr("defaultArnoldDisplayDriver.extraHost",
                         extraHost,
                         type="string")
            cmds.setAttr("defaultArnoldDisplayDriver.port", port)
        else:
            cmds.warning(
                "Current renderer is not set to Arnold or Aton driver is not loaded."
            )
            return

        # Adding time changed callback
        if self.timeChangedCB == None:
            self.timeChangedCB = OM.MEventMessage.addEventCallback(
                "timeChanged", self.timeChnaged)

        # Adding selection changed callback
        if self.selectionChangedCB == None:
            self.selectionChangedCB = OM.MEventMessage.addEventCallback(
                'SelectionChanged', self.selectionChanged)

        try:  # If render session is not started yet
            cmds.arnoldIpr(mode='stop')
        except RuntimeError:
            pass

        # Temporary makeing hidden cameras visible before scene export
        hCams = []
        for x in cmds.listCameras():
            vis_shape = cmds.getAttr("%s.visibility" % x)
            vis_parent = None
            parent = cmds.listRelatives(x, s=1)
            if parent:
                vis_parent = cmds.getAttr("%s.visibility" % parent[0])
            if not vis_shape or not vis_parent:
                hCams.append(x)

        for i in hCams:
            cmds.showHidden(i)

        if self.sequence_enabled:
            # Set Progressive refinement to off
            cmds.setAttr("defaultArnoldRenderOptions.progressive_rendering",
                         False)

        try:  # Start IPR
            cmds.arnoldIpr(cam=self.getCamera(), mode='start')
            sys.stdout.write("// Info: Aton - Render started.\n")
        except RuntimeError:
            cmds.warning("Current renderer is not set to Arnold.")

        # Sequence Rendering
        if self.sequence_enabled:
            self.frame_sequence.start()

        # Update IPR
        self.IPRUpdate()

        # Setting back to default
        for i in hCams:
            cmds.hide(i)
        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator",
                     defaultTranslator,
                     type="string")
        cmds.setAttr("defaultArnoldDisplayDriver.port", self.defaultPort)
Пример #14
0
def arnoldIprRender(width, height, doShadows, doGlowPass, camera):
    cmds.arnoldIpr(cam=camera, w=width, h=height, mode=render)
Пример #15
0
def arnoldIprStop():
    cmds.arnoldIpr(mode="stop")
Пример #16
0
def iprRender(*args):

    if currentRender == 'arnold':
        if cmds.arnoldIpr(q=1, mode='start'):
            cmds.arnoldIpr(mode='stop')
        else:
            cmds.arnoldIpr(cam=camera1, mode='start')
            cmds.arnoldIpr(mode='refresh')

    elif currentRender == 'vray':

        statusRT = mel.eval('vrayIsRunningIpr();')

        if statusRT == 0:

            if cmds.camera(camera1, q=1, o=1):
                cmds.warning('ortographic views not supported by vrayRT')
            else:
                preScale = cmds.getAttr(camera0 + '.preScale')
                preScale = float(1) / float(preScale)

                ftrh = cmds.getAttr(camera0 + '.filmTranslateH')
                ftrv = cmds.getAttr(camera0 + '.filmTranslateV')

                unitfIxed = 0.709

                cmds.setAttr(camera0 + '.cameraScale', preScale)

                cmds.setAttr(camera0 + ".horizontalFilmOffset",
                             ftrh * unitfIxed)
                cmds.setAttr(camera0 + ".verticalFilmOffset", ftrv * unitfIxed)

                mel.eval("vrend -ipr true -cam " + camera0 + ";")

        else:
            mel.eval("vrend -ipr false;")

    elif currentRender == 'mentalRay':

        if cmds.Mayatomr(q=1, imr=True):
            cmds.Mayatomr(imr=False)
            cmds.setAttr(camera0 + ".shakeEnabled", 0)

            for x in jobList[:]:
                cmds.scriptJob(kill=x, force=True)
                jobList.remove(x)

        else:

            if cmds.camera(camera1, q=1, o=1):
                jobIprMr = cmds.scriptJob(
                    attributeChange=['Viewport_Render.translate', forceIpr])
                jobIprMr2 = cmds.scriptJob(attributeChange=[
                    'Viewport_Render.orthographicWidth', forceIpr
                ])

                jobList.append(jobIprMr)
                jobList.append(jobIprMr2)

            else:
                jobIprMr = cmds.scriptJob(
                    attributeChange=['Viewport_Render.translate', forceIpr])
                jobList.append(jobIprMr)

            cmds.Mayatomr(imr=True, cam=camera0)

    else:
        cmds.warning(
            'Render engine not supported. Rendering using Maya Software renderer.'
        )
        cmds.render(camera1)
Пример #17
0
def stopRender():
    if core.ACTIVE_CAMERA != None:
        cmds.arnoldIpr(cam=core.ACTIVE_CAMERA, m='stop')
Пример #18
0
    def render(self):
        ''' Starts the render '''
        try:  # If MtoA was not found
            self.defaultMergeAOVs = cmds.getAttr(
                "defaultArnoldDriver.mergeAOVs")
            self.defaultAiTranslator = cmds.getAttr(
                "defaultArnoldDisplayDriver.aiTranslator")
        except ValueError:
            cmds.warning("Current renderer is not set to Arnold.")
            return

        # Setting necessary options
        cmds.setAttr("defaultArnoldDriver.mergeAOVs", True)
        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator",
                     "aton",
                     type="string")

        # Updating host and port from UI
        if self.defaultPort != 0:
            if self.hostCheckBox.isChecked():
                host = self.hostLineEdit.text()
                cmds.setAttr("defaultArnoldDisplayDriver.host",
                             host,
                             type="string")
            if self.portCheckBox.isChecked():
                port = self.portSlider.value()
                cmds.setAttr("defaultArnoldDisplayDriver.port", port)
        else:
            cmds.warning(
                "Current renderer is not set to Arnold or Aton driver is not loaded."
            )
            return

        # Set RenderLayer
        currentRenderLayer = cmds.editRenderLayerGlobals(q=1, crl=1)
        cmds.setAttr("defaultArnoldDisplayDriver.output",
                     currentRenderLayer,
                     type="string")

        # Adding time changed callback
        if self.timeChangedCB == None:
            self.timeChangedCB = OM.MEventMessage.addEventCallback(
                "timeChanged", self.timeChnaged)

        # Adding selection changed callback
        if self.selectionChangedCB == None:
            self.selectionChangedCB = OM.MEventMessage.addEventCallback(
                'SelectionChanged', self.selectionChanged)

        try:  # If render session is not started yet
            cmds.arnoldIpr(mode='stop')
        except RuntimeError:
            pass

        # Temporary makeing hidden cameras visible before scene export
        hCams = []
        for i in cmds.listCameras():
            if not cmds.getAttr(i + ".visibility"):
                hCams.append(i)
            sl = cmds.listRelatives(i, s=1)
            if sl and not cmds.getAttr(sl[0] + ".visibility"):
                hCams.append(sl[0])

        for i in hCams:
            cmds.showHidden(i)

        # Set Progressive refinement to off
        if self.sequence_enabled:
            self.defaultRefinement = getSceneOption(13)
            cmds.setAttr("defaultArnoldRenderOptions.progressive_rendering",
                         False)

        try:  # Start IPR
            cmds.arnoldIpr(cam=self.getCamera(), mode='start')
            sys.stdout.write("// Info: Aton - Render started.\n")
        except RuntimeError:
            cmds.warning("Current renderer is not set to Arnold.")

        # Sequence Rendering
        if self.sequence_enabled:
            self.frame_sequence.start()

        # Update IPR
        self.IPRUpdate()

        # Setting back to default
        for i in hCams:
            cmds.hide(i)
        cmds.setAttr("defaultArnoldDriver.mergeAOVs", self.defaultMergeAOVs)
        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator",
                     self.defaultAiTranslator,
                     type="string")

        if self.hostCheckBox.isChecked():
            cmds.setAttr("defaultArnoldDisplayDriver.host",
                         host,
                         type="string")
        if self.portCheckBox.isChecked():
            cmds.setAttr("defaultArnoldDisplayDriver.port", self.defaultPort)
Пример #19
0
def refreshRender():
    if core.ACTIVE_CAMERA != None:
        cmds.arnoldIpr(cam=core.ACTIVE_CAMERA, m='refresh')
Пример #20
0
def startIpr():
    if core.ACTIVE_CAMERA != None:
        cmds.arnoldIpr(cam=core.ACTIVE_CAMERA, m='start')
Пример #21
0
    def render(self):
        ''' Starts the render '''
        try: # If MtoA was not found
            defaultTranslator = cmds.getAttr("defaultArnoldDisplayDriver.aiTranslator")
        except ValueError:
            cmds.warning("Current renderer is not set to Arnold.")
            return

        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", "aton", type="string")

        # Updating the port from UI
        if self.defaultPort != 0:
            port = self.portSpinBox.value()
            cmds.setAttr("defaultArnoldDisplayDriver.port", port)
        else:
            cmds.warning("Current renderer is not set to Arnold or Aton driver is not loaded.")
            return

        # Adding time changed callback
        if self.timeChangedCB == None:
            self.timeChangedCB = OM.MEventMessage.addEventCallback("timeChanged", self.timeChnaged)

        # Adding selection changed callback
        if self.selectionChangedCB == None:
            self.selectionChangedCB = OM.MEventMessage.addEventCallback('SelectionChanged', self.selectionChanged)

        try: # If render session is not started yet
            cmds.arnoldIpr(mode='stop')
        except RuntimeError:
            pass

        # Temporary makeing hidden cameras visible before scene export
        hCams = [x for x in cmds.listCameras() if not cmds.getAttr("%s.visibility"%x) or
                                                  not cmds.getAttr("%s.visibility"%cmds.listRelatives(x, s=1)[0])]
        for i in hCams: cmds.showHidden(i)

        if self.sequence_enabled: # set level to 2 before ipr starts
            # Store progressive_inital_level
            # Set it to 2 so we run only 1 iteration per frame
            level = 'defaultArnoldRenderOptions.progressive_initial_level'
            self.default_level = cmds.getAttr(level)
            cmds.setAttr(level, 2)

        try: # Start IPR
            camera = self.getCamera()
            cmds.arnoldIpr(cam=camera, mode='start')
        except RuntimeError:
            cmds.warning("Current renderer is not set to Arnold.")

        # Sequence Rendering
        if self.sequence_enabled:
            self.frame_sequence.start()

        # Update IPR
        self.IPRUpdate()
        sys.stdout.write("// Info: Aton - Render started.\n")

        # Setting back to default
        for i in hCams: cmds.hide(i)
        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", defaultTranslator, type="string")
        cmds.setAttr("defaultArnoldDisplayDriver.port", self.defaultPort)
Пример #22
0
def arnoldIprPause(editor, pause):
    if pause:
        cmds.arnoldIpr(mode="pause")
    else:
        cmds.arnoldIpr(mode="unpause")
Пример #23
0
def startIpr():
    if core.ACTIVE_CAMERA != None:
        cmds.arnoldIpr(cam=core.ACTIVE_CAMERA, m='start')
Пример #24
0
def arnoldIprRefresh():
    cmds.arnoldIpr(mode="refresh")
Пример #25
0
def refreshRender():
    if core.ACTIVE_CAMERA != None:
        cmds.arnoldIpr(cam=core.ACTIVE_CAMERA, m='refresh')
Пример #26
0
    def render(self, *args, **kwargs):

        if self.cameraComboBox.currentIndex() == 0:
            camera = self.getSceneOptions()["camera"]
        else:
            try:
                camera = cmds.listRelatives(self.cameraComboBoxDict[
                    self.cameraComboBox.currentIndex()],
                                            s=1)[0]
            except TypeError:
                camera = self.cameraComboBoxDict[
                    self.cameraComboBox.currentIndex()]

        if camera == None:
            cmds.warning("Camera is not selected!")
            return

        try:
            defaultTranslator = cmds.getAttr(
                "defaultArnoldDisplayDriver.aiTranslator")
        except:
            cmds.warning("MtoA was not found.")
            return

        try:
            cmds.arnoldIpr(mode='stop')
        except RuntimeError:
            pass

        try:
            cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator",
                         "aton",
                         type="string")
        except RuntimeError:
            cmds.warning("Aton driver for Arnold is not installed")
            return

        port = self.portSpinBox.value()
        width = self.getSceneOptions()["width"] * self.resolutionSpinBox.value(
        ) / 100
        height = self.getSceneOptions(
        )["height"] * self.resolutionSpinBox.value() / 100
        AASamples = self.cameraAaSpinBox.value()
        motionBlur = self.motionBlurCheckBox.isChecked()
        subdivs = self.subdivsCheckBox.isChecked()
        displace = self.displaceCheckBox.isChecked()
        bump = self.bumpCheckBox.isChecked()
        sss = self.sssCheckBox.isChecked()

        rMinX = self.renderRegionXSpinBox.value()
        rMinY = height - self.renderRegionTSpinBox.value()
        rMaxX = self.renderRegionRSpinBox.value() - 1
        rMaxY = (height - self.renderRegionYSpinBox.value()) - 1

        cmds.setAttr("defaultArnoldDisplayDriver.port", port)

        # Adding time changed callback
        if self.timeChange == None:
            self.timeChange = OM.MEventMessage.addEventCallback(
                "timeChanged", self.updateFrame)

        cmds.arnoldIpr(cam=camera, width=width, height=height, mode='start')

        options = AiUniverseGetOptions()

        AiNodeSetInt(options, "AA_samples", AASamples)
        if rMinX >= 0 and rMinY >= 0 and rMaxX <= width and rMaxY <= height:
            AiNodeSetInt(options, "region_min_x", rMinX)
            AiNodeSetInt(options, "region_min_y", rMinY)
            AiNodeSetInt(options, "region_max_x", rMaxX)
            AiNodeSetInt(options, "region_max_y", rMaxY)
        AiNodeSetBool(options, "ignore_motion_blur", motionBlur)
        AiNodeSetBool(options, "ignore_subdivision", subdivs)
        AiNodeSetBool(options, "ignore_displacement", displace)
        AiNodeSetBool(options, "ignore_bump", bump)
        AiNodeSetBool(options, "ignore_sss", sss)

        # Temp trigger in order to start IPR
        time = cmds.currentTime(q=1)
        cmds.currentTime(time, e=1)

        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator",
                     defaultTranslator,
                     type="string")
        cmds.setAttr("defaultArnoldDisplayDriver.port", self.defaultPort)
        sys.stdout.write("// Info: Aton - Render started.\n")
Пример #27
0
def stopRender():
    if core.ACTIVE_CAMERA != None:
        cmds.arnoldIpr(cam=core.ACTIVE_CAMERA, m='stop')
Пример #28
0
    def render(self):
        ''' Starts the render '''
        try: # If MtoA was not found
            defaultTranslator = cmds.getAttr("defaultArnoldDisplayDriver.aiTranslator")
        except ValueError:
            cmds.warning("Current renderer is not set to Arnold.")
            return

        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", "aton", type="string")

        # Updating extraHost and port from UI
        if self.defaultPort != 0:
            extraHost = self.extraHostLineEdit.text()
            port = self.portSpinBox.value()
            cmds.setAttr("defaultArnoldDisplayDriver.extraHost", extraHost, type="string")
            cmds.setAttr("defaultArnoldDisplayDriver.port", port)
        else:
            cmds.warning("Current renderer is not set to Arnold or Aton driver is not loaded.")
            return

        # Adding time changed callback
        if self.timeChangedCB == None:
            self.timeChangedCB = OM.MEventMessage.addEventCallback("timeChanged", self.timeChnaged)

        # Adding selection changed callback
        if self.selectionChangedCB == None:
            self.selectionChangedCB = OM.MEventMessage.addEventCallback('SelectionChanged', self.selectionChanged)

        try: # If render session is not started yet
            cmds.arnoldIpr(mode='stop')
        except RuntimeError:
            pass

        # Temporary makeing hidden cameras visible before scene export
        hCams = []
        for i in cmds.listCameras():
            if not cmds.getAttr(i + ".visibility"):
                hCams.append(i)
            sl = cmds.listRelatives(i, s=1)
            if sl and not cmds.getAttr(sl[0] + ".visibility"):
                hCams.append(sl[0])

        for i in hCams: cmds.showHidden(i)

        # Set Progressive refinement to off
        if self.sequence_enabled:
            cmds.setAttr("defaultArnoldRenderOptions.progressive_rendering", False)

        try: # Start IPR
            cmds.arnoldIpr(cam=self.getCamera(), mode='start')
            sys.stdout.write("// Info: Aton - Render started.\n")
        except RuntimeError:
            cmds.warning("Current renderer is not set to Arnold.")

        # Sequence Rendering
        if self.sequence_enabled:
            self.frame_sequence.start()

        # Update IPR
        self.IPRUpdate()

        # Setting back to default
        for i in hCams: cmds.hide(i)
        cmds.setAttr("defaultArnoldDisplayDriver.aiTranslator", defaultTranslator, type="string")
        cmds.setAttr("defaultArnoldDisplayDriver.port", self.defaultPort)
Пример #29
0
def arnoldIprIsRunning():
    return cmds.arnoldIpr()
Пример #30
0
    def IPRUpdate(self, attr=None):
        ''' This method is called during IPR session '''
        try:  # If render session is not started yet
            cmds.arnoldIpr(mode='pause')
        except (AttributeError, RuntimeError):
            return

        options = AiUniverseGetOptions()

        # Camera Update
        if attr == None or attr == 0:
            camera = self.getCamera()
            iterator = AiUniverseGetNodeIterator(AI_NODE_CAMERA)
            while not AiNodeIteratorFinished(iterator):
                node = AiNodeIteratorGetNext(iterator)
                if AiNodeGetName(node) == camera:
                    AiNodeSetPtr(options, "camera", node)

        # Resolution and Region Update
        if attr == None or attr == 1:

            AiNodeSetInt(options, "xres", self.getRegion(0))
            AiNodeSetInt(options, "yres", self.getRegion(1))

            AiNodeSetInt(options, "region_min_x", self.getRegion(2))
            AiNodeSetInt(options, "region_min_y", self.getRegion(3))
            AiNodeSetInt(options, "region_max_x", self.getRegion(4))
            AiNodeSetInt(options, "region_max_y", self.getRegion(5))

        # Camera AA Update
        if attr == None or attr == 2:
            cameraAA = self.cameraAaSlider.value()
            options = AiUniverseGetOptions()
            AiNodeSetInt(options, "AA_samples", cameraAA)

        # Ignore options Update
        if attr == None or attr == 3:
            motionBlur = self.motionBlurCheckBox.isChecked()
            subdivs = self.subdivsCheckBox.isChecked()
            displace = self.displaceCheckBox.isChecked()
            bump = self.bumpCheckBox.isChecked()
            sss = self.sssCheckBox.isChecked()

            AiNodeSetBool(options, "ignore_motion_blur", motionBlur)
            AiNodeSetBool(options, "ignore_subdivision", subdivs)
            AiNodeSetBool(options, "ignore_displacement", displace)
            AiNodeSetBool(options, "ignore_bump", bump)
            AiNodeSetBool(options, "ignore_sss", sss)

        # Storing default shader assignments
        if attr == None:
            self.initOvrShaders()
            self.shadersDict = {}
            iterator = AiUniverseGetNodeIterator(AI_NODE_SHAPE)
            while not AiNodeIteratorFinished(iterator):
                node = AiNodeIteratorGetNext(iterator)
                name = AiNodeGetName(node)
                try:  # If object name is not exist i.e. "root"
                    sgList = cmds.listConnections(name, type='shadingEngine')
                    if sgList > 0:
                        self.shadersDict[name] = AiNodeGetPtr(node, "shader")
                except ValueError:
                    continue

        # Shader override Update
        shaderIndex = self.shaderComboBox.currentIndex()
        if attr == 4 or shaderIndex > 0:
            iterator = AiUniverseGetNodeIterator(AI_NODE_SHAPE)
            while not AiNodeIteratorFinished(iterator):
                node = AiNodeIteratorGetNext(iterator)
                name = AiNodeGetName(node)

                selChecked = self.selectedShaderCheckbox.isChecked()
                if shaderIndex != 0 and selChecked:
                    selectionList = cmds.ls(dag=1, sl=1, s=1)
                    if selectionList > 0 and name not in selectionList:
                        if name in self.shadersDict:
                            defShader = self.shadersDict[AiNodeGetName(node)]
                            AiNodeSetPtr(node, "shader", defShader)
                        continue

                # Setting overrides
                if name in self.shadersDict:
                    defShader = self.shadersDict[AiNodeGetName(node)]
                    result = {
                        0:
                        lambda: AiNodeSetPtr(node, "shader", defShader),
                        1:
                        lambda: AiNodeSetPtr(node, "shader", self.checkerShader
                                             ),
                        2:
                        lambda: AiNodeSetPtr(node, "shader", self.greyShader),
                        3:
                        lambda: AiNodeSetPtr(node, "shader", self.mirrorShader
                                             ),
                        4:
                        lambda: AiNodeSetPtr(node, "shader", self.normalShader
                                             ),
                        5:
                        lambda: AiNodeSetPtr(node, "shader", self.
                                             occlusionShader),
                        6:
                        lambda: AiNodeSetPtr(node, "shader", self.uvShader)
                    }[shaderIndex]()

        # Texture Repeat Udpate
        if attr == None or attr == 5:
            texRepeat = self.textureRepeatSlider.value()
            if ARNOLD_5:
                AiNodeSetVec2(self.placeTexture, "repeatUV", texRepeat,
                              texRepeat)
            else:
                AiNodeSetPnt2(self.placeTexture, "repeatUV", texRepeat,
                              texRepeat)

        if attr == None or attr == 6:
            scanning = self.bucketComboBox.currentName()
            AiNodeSetStr(options, "bucket_scanning", scanning)

        try:
            cmds.arnoldIpr(mode='unpause')
        except RuntimeError:
            pass
Пример #31
0
    def IPRUpdate(self, attr=None):
        ''' This method is called during IPR session '''
        try: # If render session is not started yet
            cmds.arnoldIpr(mode='pause')
        except (AttributeError, RuntimeError):
            return

        options = AiUniverseGetOptions()

        # Camera Update
        if attr == None or attr == 0:
            camera = self.getCamera()
            iterator = AiUniverseGetNodeIterator(AI_NODE_CAMERA)
            while not AiNodeIteratorFinished(iterator):
                node = AiNodeIteratorGetNext(iterator)
                if AiNodeGetName(node) == camera:
                    AiNodeSetPtr(options, "camera", node)

        # Resolution and Region Update
        if attr == None or attr == 1:

            AiNodeSetInt(options, "xres", self.getRegion(0))
            AiNodeSetInt(options, "yres", self.getRegion(1))

            AiNodeSetInt(options, "region_min_x", self.getRegion(2))
            AiNodeSetInt(options, "region_min_y", self.getRegion(3))
            AiNodeSetInt(options, "region_max_x", self.getRegion(4))
            AiNodeSetInt(options, "region_max_y", self.getRegion(5))

        # Camera AA Update
        if attr == None or attr == 2:
            cameraAA = self.cameraAaSpinBox.value()
            options = AiUniverseGetOptions()
            AiNodeSetInt(options, "AA_samples", cameraAA)

        # Ignore options Update
        if attr == None or attr == 3:
            motionBlur = self.motionBlurCheckBox.isChecked()
            subdivs = self.subdivsCheckBox.isChecked()
            displace = self.displaceCheckBox.isChecked()
            bump = self.bumpCheckBox.isChecked()
            sss = self.sssCheckBox.isChecked()

            AiNodeSetBool(options, "ignore_motion_blur", motionBlur)
            AiNodeSetBool(options, "ignore_subdivision", subdivs)
            AiNodeSetBool(options, "ignore_displacement", displace)
            AiNodeSetBool(options, "ignore_bump", bump)
            AiNodeSetBool(options, "ignore_sss", sss)

        # Storing default shader assignments
        if attr == None:
            self.initOvrShaders()
            self.shadersDict = {}
            iterator = AiUniverseGetNodeIterator(AI_NODE_SHAPE)
            while not AiNodeIteratorFinished(iterator):
                node = AiNodeIteratorGetNext(iterator)
                name = AiNodeGetName(node)
                try: # If object name is not exist i.e. "root"
                    sgList = cmds.listConnections(name, type='shadingEngine')
                    if sgList > 0:
                        self.shadersDict[name] = AiNodeGetPtr(node, "shader")
                except ValueError:
                    continue

        # Shader override Update
        shaderIndex = self.shaderComboBox.currentIndex()
        if attr == 4 or shaderIndex > 0:
            iterator = AiUniverseGetNodeIterator(AI_NODE_SHAPE)
            while not AiNodeIteratorFinished(iterator):
                node = AiNodeIteratorGetNext(iterator)
                name = AiNodeGetName(node)

                selChecked = self.selectedShaderCheckbox.isChecked()
                if shaderIndex != 0 and selChecked:
                    selectionList = cmds.ls(dag=1, sl=1, s=1)
                    if selectionList > 0 and name not in selectionList:
                        if name in self.shadersDict:
                            defShader = self.shadersDict[AiNodeGetName(node)]
                            AiNodeSetPtr(node, "shader", defShader)
                        continue

                # Setting overrides
                if name in self.shadersDict:
                    defShader = self.shadersDict[AiNodeGetName(node)]
                    result = {0: lambda: AiNodeSetPtr(node, "shader", defShader),
                              1: lambda: AiNodeSetPtr(node, "shader", self.checkerShader),
                              2: lambda: AiNodeSetPtr(node, "shader", self.greyShader),
                              3: lambda: AiNodeSetPtr(node, "shader", self.mirrorShader),
                              4: lambda: AiNodeSetPtr(node, "shader", self.normalShader),
                              5: lambda: AiNodeSetPtr(node, "shader", self.occlusionShader),
                              6: lambda: AiNodeSetPtr(node, "shader", self.uvShader)}[shaderIndex]()

        # Texture Repeat Udpate
        if attr == None or attr == 5:
            texRepeat = self.textureRepeatSpinbox.value()
            AiNodeSetPnt2(self.placeTexture, "repeatUV", texRepeat, texRepeat)

        try:
            cmds.arnoldIpr(mode='unpause')
        except RuntimeError:
            pass