"""
renderPathes
==========================================
Automatic setup of the correct rendering pathes for images according
to Pipeline standards. It is ment to work with VRay for Maya exclusively.
This is a very simple module, it basically only determines where renderings
will go to.
-----------------------
Usage
-----
::
from helga.maya.rendering.renderPathes import renderPathes
reload(renderPathes)
#Create instance
renderPathesInstance = renderPathes.RenderPathes()
#set render pathes for final lighting
renderPathesInstance.setPathLighting()
#set render pathes for testing
renderPathesInstance.setPathTesting()
-----------------------
"""
#Import
#----------------------------------------------------
import os
import sys
#maya
import pymel.core as pm
import maya.cmds as cmds
#Globals
#----------------------------------------------------
#RenderPathes Class
#----------------------------------------------------
class RenderPathes():
[docs]
#Constructor
def __init__(self):
#Instance Vars
#----------------------------------------------------
#Debug
self.verbose = True
#Toplevel Methods
#----------------------------------------------------
#setPathLighting
def setPathLighting(self):
[docs] """
Render path for images. The output here should be copied and used by compositing.
"""
#Check if vray is loaded
#exit if vray for maya plugin is not loaded
if not(self.vrayLoaded()):
if(self.verbose): print('Vray Plugin not loaded')
return None
#exit if vray rendersettings node doesnt exist
if not(self.vrayRenderSettingsNode()):
if(self.verbose): print('Vray Rendersettings node not found')
return None
#Build Path
#----------------------------------------------------
#Assemble Render Path
renderPath = r'lighting/<Scene>/<Layer>/<Scene>_<Layer>_'
#Set Path
#----------------------------------------------------
#Get Vray rendersettings node
vrayRenderSettingsNode = self.vrayRenderSettingsNode()
pm.setAttr(vrayRenderSettingsNode.fileNamePrefix, renderPath)
#success msg
if(self.verbose): print('Successfully set lighting renderpath')
#setPathTesting
def setPathTesting(self):
[docs] """
Render path for testing images. The output here is purely for your own testing
and could be deleted anytime. If you want to keep it, then copy it to your rnd folder.
"""
#Check if vray is loaded
#exit if vray for maya plugin is not loaded
if not(self.vrayLoaded()):
if(self.verbose): print('Vray Plugin not loaded')
return None
#exit if vray rendersettings node doesnt exist
if not(self.vrayRenderSettingsNode()):
if(self.verbose): print('Vray Rendersettings node not found')
return None
#Build Path
#----------------------------------------------------
#get Current user
currentUser = os.environ.get('USERNAME')
#Assemble Render Path
renderPath = r'testing/' +currentUser +r'/<Scene>/<Layer>/<Scene>_<Layer>_'
#Set Path
#----------------------------------------------------
#Get Vray rendersettings node
vrayRenderSettingsNode = self.vrayRenderSettingsNode()
pm.setAttr(vrayRenderSettingsNode.fileNamePrefix, renderPath)
#success msg
if(self.verbose): print('Successfully set testing renderpath')
#Methods
#----------------------------------------------------
#Shared Methods
#----------------------------------------------------
#vrayLoaded
def vrayLoaded(self):
[docs] """
Check if the VRay for Maya Plugin is loaded.
"""
#Get list of all loaded plugIns
plugInList = pm.pluginInfo( query=True, listPlugins=True )
#Return true if loaded else setStatus and return false
if('vrayformaya' in plugInList):
return True
return False
#vrayRenderSettingsNode
def vrayRenderSettingsNode(self):
[docs] '''Get Vray rendersettings node'''
#deselct all
pm.select(cl = True)
#select all nodes of type vraysettingsNode
selList = pm.ls(fl = True, typ = 'VRaySettingsNode')
#If selList < 1 return false and set status
if not(selList):
return None
return selList[0]
#Testing
#----------------------------------------------------
#----------------------------------------------------
if (__name__ is '__main__'):
from rugbyBugs.maya.rbRenderPathes import rbRenderPathes
#Reload if true
doReload = True
if(doReload): reload(rbRenderPathes)
#Create Instance
rbRenderPathesInstance = rbRenderPathes.RbRenderPathes()
#set final path
#rbRenderPathesInstance.setPathLighting()
rbRenderPathesInstance.setPathTesting()