Merge pull request #7 from aardschok/rendering

Improve rendering functionality
This commit is contained in:
Wijnand Koreman 2017-10-04 11:46:10 +02:00 committed by GitHub
commit a07d765d64
3 changed files with 55 additions and 8 deletions

View file

@ -45,16 +45,14 @@ def get_renderer_variables():
if renderer == "vray":
# Maya's renderSettings function does not resolved V-Ray extension
# Getting the extension for VRay settings node
extension = cmds.getAttr("{}.{}".format(render_attrs["node"],
render_attrs["ext"]))
filename_prefix = "<Scene>/<Layer>/<Layer>"
extension = cmds.getAttr("vraySettings.imageFormatStr")
filename_prefix = "<Scene>/<Scene>_<Layer>/<Layer>"
else:
# Get the extension, getAttr defaultRenderGlobals.imageFormat
# returns an index number.
filename_base = os.path.basename(filename_0)
extension = os.path.splitext(filename_base)[-1].strip(".")
filename_prefix = cmds.getAttr("{}.{}".format(render_attrs["node"],
render_attrs["prefix"]))
filename_prefix = "<Scene>/<Scene>_<RenderLayer>/<RenderLayer>"
return {"ext": extension,
"filename_prefix": filename_prefix,
@ -97,7 +95,7 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin):
# Get the variables depending on the renderer
render_variables = get_renderer_variables()
# following hardcoded "<Scene>/<Layer>/<Layer>"
# following hardcoded "renders/<Scene>/<Scene>_<Layer>/<Layer>"
output_filename_0 = self.preview_fname(scene,
instance.name,
dirname,
@ -241,7 +239,9 @@ class MindbenderSubmitDeadline(pyblish.api.InstancePlugin):
"""
padded_basename = "{}.{}.{}".format(layer, "#" * padding, ext)
preview_fname = os.path.join(folder, scene, layer, padded_basename)
scene_layer_folder = "{}_{}".format(scene, layer)
preview_fname = os.path.join(folder, scene, scene_layer_folder,
layer, padded_basename)
return preview_fname

View file

@ -0,0 +1,47 @@
import maya.cmds as cmds
import pyblish.api
import colorbleed.api
class ValidateResources(pyblish.api.InstancePlugin):
"""Validates the globar render settings
* File Name Prefix must be as followed:
* vray: renders/<Scene>/<Layer>/<Layer>
* arnold: renders/<Scene>/<RenderLayer>/<RenderLayer>
* default: renders/<Scene>/<RenderLayer>/<RenderLayer>
* Frame Padding must be:
* default: 4
"""
order = colorbleed.api.ValidateContentsOrder
label = "Render Settings"
hosts = ["maya"]
families = ["colorbleed.renderlayer"]
def process(self, instance):
renderer = cmds.getAttr("defaultRenderGlobals.currentRenderer")
default_padding = 4
default_prefix = {
"vray": "<Scene>/<Scene>_<Layer>/<Layer>",
"arnold": "<Scene>/<Scene>_<RenderLayer>/<RenderLayer>"
}
if renderer == "vray":
prefix = cmds.getAttr("vraySettings.fileNamePrefix")
padding = cmds.getAttr("vraySettings.fileNamePadding")
else:
prefix = cmds.getAttr("defaultRenderGlobals.fileNamePrefix")
padding = cmds.getAttr("defaultRenderGlobals.fileNamePadding")
filename_prefix = default_prefix[renderer]
assert padding == default_padding, AttributeError(
"Expecting padding of 4 ( 0000 )"
)
assert prefix == filename_prefix, AttributeError(
"Wrong file name prefix, expecting %s" % filename_prefix
)

View file

@ -2,7 +2,7 @@
workspace -fr "fluidCache" "cache/nCache/fluid";
workspace -fr "JT_ATF" "data";
workspace -fr "images" "images";
workspace -fr "images" "renders";
workspace -fr "offlineEdit" "scenes/edits";
workspace -fr "STEP_ATF Export" "data";
workspace -fr "furShadowMap" "renderData/fur/furShadowMap";