add _beauty to subset name

This commit is contained in:
Kayla Man 2023-05-26 19:36:14 +08:00
parent e633cc7dec
commit 2d3ba2af05
3 changed files with 62 additions and 30 deletions

View file

@ -70,16 +70,26 @@ class RenderProducts(object):
return rgba_render_list, render_elem_list
def get_aovs(self):
def get_aovs(self, container):
folder = rt.maxFilePath
file = rt.maxFileName
folder = folder.replace("\\", "/")
setting = self._project_settings
render_folder = get_default_render_folder(setting)
filename, ext = os.path.splitext(file)
output_file = os.path.join(folder,
render_folder,
filename,
container)
setting = self._project_settings
img_fmt = setting["max"]["RenderSettings"]["image_format"] # noqa
startFrame = int(rt.rendStart)
endFrame = int(rt.rendEnd) + 1
renderer_class = get_current_renderer()
renderer = str(renderer_class).split(":")[0]
render_dict = {}
if renderer in [
"ART_Renderer",
"Redshift_Renderer",
@ -88,12 +98,22 @@ class RenderProducts(object):
"Default_Scanline_Renderer",
"Quicksilver_Hardware_Renderer",
]:
render_dict = self.get_render_elements_name(
folder, startFrame, endFrame, img_fmt)
render_name = self.get_render_elements_name()
if render_name:
for name in render_name:
render_dict.update({
name: self.get_expected_render_elements(
output_file, name, startFrame, endFrame, img_fmt)
})
if renderer == "Arnold":
render_dict = self.get_arnold_product_name(
folder, startFrame, endFrame, img_fmt)
render_name = self.get_arnold_product_name()
if render_name:
for name in render_name:
render_dict.update({
name: self.get_expected_arnold_product(
output_file, name, startFrame, endFrame, img_fmt)
})
return render_dict
@ -148,9 +168,9 @@ class RenderProducts(object):
return render_dirname
def get_arnold_product_name(self, folder, startFrame, endFrame, fmt):
"""Get all the Arnold AOVs"""
aov_dict = {}
def get_arnold_product_name(self):
"""Get all the Arnold AOVs name"""
aov_name = []
amw = rt.MaxtoAOps.AOVsManagerWindow()
aov_mgr = rt.renderers.current.AOVManager
@ -161,20 +181,27 @@ class RenderProducts(object):
for i in range(aov_group_num):
# get the specific AOV group
for aov in aov_mgr.drivers[i].aov_list:
for f in range(startFrame, endFrame):
render_element = f"{folder}_{aov.name}.{f}.{fmt}"
render_element = render_element.replace("\\", "/")
aov = str(aov.name)
aov_dict.update({aov: render_element})
aov_name.append(aov.name)
# close the AOVs manager window
amw.close()
return aov_dict
return aov_name
def get_render_elements_name(self, folder, startFrame, endFrame, fmt):
"""Get all the render element output files. """
render_dict = {}
def get_expected_arnold_product(self, folder, name,
startFrame, endFrame, fmt):
"""Get all the expected Arnold AOVs"""
aov_list = []
for f in range(startFrame, endFrame):
render_element = f"{folder}_{name}.{f}.{fmt}"
render_element = render_element.replace("\\", "/")
aov_list.append(render_element)
return aov_list
def get_render_elements_name(self):
"""Get all the render element names. """
render_name = []
render_elem = rt.maxOps.GetCurRenderElementMgr()
render_elem_num = render_elem.NumRenderElements()
if render_elem_num < 1:
@ -182,14 +209,21 @@ class RenderProducts(object):
# get render elements from the renders
for i in range(render_elem_num):
renderlayer_name = render_elem.GetRenderElement(i)
target, renderpass = str(renderlayer_name).split(":")
if renderlayer_name.enabled:
for f in range(startFrame, endFrame):
render_element = f"{folder}_{renderpass}.{f}.{fmt}"
render_element = render_element.replace("\\", "/")
render_dict.update({renderpass: render_element})
if renderlayer_name.enabled or "Cryptomatte" in renderlayer_name:
target, renderpass = str(renderlayer_name).split(":")
render_name.append(renderpass)
return render_name
return render_dict
def get_expected_render_elements(self, folder, name,
startFrame, endFrame, fmt):
"""Get all the expected render element output files. """
render_elements = []
for f in range(startFrame, endFrame):
render_element = f"{folder}_{name}.{f}.{fmt}"
render_element = render_element.replace("\\", "/")
render_elements.append(render_element)
return render_elements
def image_format(self):
return self._project_settings["max"]["RenderSettings"]["image_format"] # noqa

View file

@ -41,11 +41,11 @@ class CollectRender(pyblish.api.InstancePlugin):
full_render_list = beauty_list
files_by_aov = {
"_": beauty_list
"beauty": beauty_list
}
folder = folder.replace("\\", "/")
aovs = RenderProducts().get_aovs()
aovs = RenderProducts().get_aovs(instance.name)
files_by_aov.update(aovs)
if "expectedFiles" not in instance.data:
@ -78,8 +78,8 @@ class CollectRender(pyblish.api.InstancePlugin):
instance.data["attachTo"] = []
data = {
"subset": instance.name,
"asset": asset,
"subset": str(instance.name),
"publish": True,
"maxversion": str(get_max_version()),
"imageFormat": img_format,
@ -95,5 +95,3 @@ class CollectRender(pyblish.api.InstancePlugin):
}
instance.data.update(data)
self.log.info("data: {0}".format(data))
files = instance.data["expectedFiles"]
self.log.debug("expectedFiles: {0}".format(files))

View file

@ -348,7 +348,7 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin):
self.log.info("Submitting Deadline job ...")
url = "{}/api/jobs".format(self.deadline_url)
response = requests.post(url, json=payload, timeout=10)
response = requests.post(url, json=payload, timeout=10, verify=False)
if not response.ok:
raise Exception(response.text)