mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
Merge pull request #178 from ynput/bugfix/AY-3433_Maya-redshift-AOV-mode
bug fix on getting aov expected files when global aov mode disabled in Redshift
This commit is contained in:
commit
8fdd804fa4
3 changed files with 27 additions and 10 deletions
|
|
@ -3129,7 +3129,7 @@ def load_capture_preset(data):
|
|||
return options
|
||||
|
||||
|
||||
def get_attr_in_layer(attr, layer):
|
||||
def get_attr_in_layer(attr, layer, as_string=True):
|
||||
"""Return attribute value in specified renderlayer.
|
||||
|
||||
Same as cmds.getAttr but this gets the attribute's value in a
|
||||
|
|
@ -3147,6 +3147,7 @@ def get_attr_in_layer(attr, layer):
|
|||
Args:
|
||||
attr (str): attribute name, ex. "node.attribute"
|
||||
layer (str): layer name
|
||||
as_string (bool): whether attribute should convert to a string value
|
||||
|
||||
Returns:
|
||||
The return value from `maya.cmds.getAttr`
|
||||
|
|
@ -3156,7 +3157,8 @@ def get_attr_in_layer(attr, layer):
|
|||
try:
|
||||
if cmds.mayaHasRenderSetup():
|
||||
from . import lib_rendersetup
|
||||
return lib_rendersetup.get_attr_in_layer(attr, layer)
|
||||
return lib_rendersetup.get_attr_in_layer(
|
||||
attr, layer, as_string=as_string)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
|
@ -3164,7 +3166,7 @@ def get_attr_in_layer(attr, layer):
|
|||
current_layer = cmds.editRenderLayerGlobals(query=True,
|
||||
currentRenderLayer=True)
|
||||
if layer == current_layer:
|
||||
return cmds.getAttr(attr)
|
||||
return cmds.getAttr(attr, asString=as_string)
|
||||
|
||||
connections = cmds.listConnections(attr,
|
||||
plugs=True,
|
||||
|
|
@ -3215,7 +3217,7 @@ def get_attr_in_layer(attr, layer):
|
|||
value *= conversion
|
||||
return value
|
||||
|
||||
return cmds.getAttr(attr)
|
||||
return cmds.getAttr(attr, asString=as_string)
|
||||
|
||||
|
||||
def fix_incompatible_containers():
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ class ARenderProducts:
|
|||
"""
|
||||
return self._get_attr("defaultRenderGlobals", attribute)
|
||||
|
||||
def _get_attr(self, node_attr, attribute=None):
|
||||
def _get_attr(self, node_attr, attribute=None, as_string=True):
|
||||
"""Return the value of the attribute in the renderlayer
|
||||
|
||||
For readability this allows passing in the attribute in two ways.
|
||||
|
|
@ -317,7 +317,7 @@ class ARenderProducts:
|
|||
else:
|
||||
plug = "{}.{}".format(node_attr, attribute)
|
||||
|
||||
return lib.get_attr_in_layer(plug, layer=self.layer)
|
||||
return lib.get_attr_in_layer(plug, layer=self.layer, as_string=as_string)
|
||||
|
||||
@staticmethod
|
||||
def extract_separator(file_prefix):
|
||||
|
|
@ -1133,9 +1133,24 @@ class RenderProductsRedshift(ARenderProducts):
|
|||
aovs = list(set(aovs) - set(ref_aovs))
|
||||
|
||||
products = []
|
||||
global_aov_enabled = bool(
|
||||
self._get_attr("redshiftOptions.aovGlobalEnableMode", as_string=False)
|
||||
)
|
||||
colorspace = lib.get_color_management_output_transform()
|
||||
if not global_aov_enabled:
|
||||
# only beauty output
|
||||
for camera in cameras:
|
||||
products.insert(0,
|
||||
RenderProduct(productName="",
|
||||
ext=ext,
|
||||
multipart=self.multipart,
|
||||
camera=camera,
|
||||
colorspace=colorspace))
|
||||
return products
|
||||
|
||||
light_groups_enabled = False
|
||||
has_beauty_aov = False
|
||||
colorspace = lib.get_color_management_output_transform()
|
||||
|
||||
for aov in aovs:
|
||||
enabled = self._get_attr(aov, "enabled")
|
||||
if not enabled:
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ def get_rendersetup_layer(layer):
|
|||
if conn.endswith(".legacyRenderLayer")), None)
|
||||
|
||||
|
||||
def get_attr_in_layer(node_attr, layer):
|
||||
def get_attr_in_layer(node_attr, layer, as_string=True):
|
||||
"""Return attribute value in Render Setup layer.
|
||||
|
||||
This will only work for attributes which can be
|
||||
|
|
@ -124,7 +124,7 @@ def get_attr_in_layer(node_attr, layer):
|
|||
node = history_overrides[-1] if history_overrides else override
|
||||
node_attr_ = node + ".original"
|
||||
|
||||
return get_attribute(node_attr_, asString=True)
|
||||
return get_attribute(node_attr_, asString=as_string)
|
||||
|
||||
layer = get_rendersetup_layer(layer)
|
||||
rs = renderSetup.instance()
|
||||
|
|
@ -144,7 +144,7 @@ def get_attr_in_layer(node_attr, layer):
|
|||
# we will let it error out.
|
||||
rs.switchToLayer(current_layer)
|
||||
|
||||
return get_attribute(node_attr, asString=True)
|
||||
return get_attribute(node_attr, asString=as_string)
|
||||
|
||||
overrides = get_attr_overrides(node_attr, layer)
|
||||
default_layer_value = get_default_layer_value(node_attr)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue