Use a general family for houdini farm rendering

This commit is contained in:
MustafaJafar 2024-03-29 15:25:41 +02:00
parent c131071c7d
commit 941e80dd95
5 changed files with 35 additions and 9 deletions

View file

@ -0,0 +1,23 @@
import pyblish.api
class CollectFarmInstances(pyblish.api.InstancePlugin):
"""Collect instances for farm render."""
order = pyblish.api.CollectorOrder
families = ["mantra_rop"]
hosts = ["houdini"]
targets = ["local", "remote"]
label = "Collect farm instances"
def process(self, instance):
creator_attribute = instance.data["creator_attributes"]
farm_enabled = creator_attribute["farm"]
instance.data["farm"] = farm_enabled
if not farm_enabled:
self.log.debug("Render on farm is disabled. "
"Skipping farm collecting.")
return
instance.data["families"].append("render.farm.hou")

View file

@ -3,7 +3,7 @@ import pyblish.api
from ayon_core.lib import version_up
from ayon_core.pipeline import registered_host
from ayon_core.pipeline.publish import get_errored_plugins_from_context
from ayon_core.hosts.houdini.api import HoudiniHost
from ayon_core.pipeline.publish import KnownPublishError
@ -20,9 +20,9 @@ class IncrementCurrentFile(pyblish.api.ContextPlugin):
families = ["workfile",
"redshift_rop",
"arnold_rop",
"mantra_rop",
"karma_rop",
"usdrender",
"render.farm.hou",
"publish.hou"]
optional = True

View file

@ -43,9 +43,9 @@ class CollectDeadlinePools(pyblish.api.InstancePlugin,
"usdrender",
"redshift_rop",
"arnold_rop",
"mantra_rop",
"karma_rop",
"vray_rop",
"render.farm.hou",
"publish.hou"]
primary_pool = None

View file

@ -73,9 +73,9 @@ class HoudiniSubmitDeadline(
families = ["usdrender",
"redshift_rop",
"arnold_rop",
"mantra_rop",
"karma_rop",
"vray_rop"]
"vray_rop",
"render.farm.hou"]
targets = ["local"]
use_published = True
@ -86,7 +86,7 @@ class HoudiniSubmitDeadline(
priority = 50
chunk_size = 1
group = ""
@classmethod
def get_attribute_defs(cls):
return [
@ -194,7 +194,7 @@ class HoudiniSubmitDeadline(
job_info.Pool = instance.data.get("primaryPool")
job_info.SecondaryPool = instance.data.get("secondaryPool")
if split_render_job and is_export_job:
job_info.Priority = attribute_values.get(
"export_priority", self.export_priority
@ -265,11 +265,14 @@ class HoudiniSubmitDeadline(
# Output driver to render
if job_type == "render":
product_type = instance.data.get("productType")
rop_node = hou.node(instance.data.get("instance_node"))
node_type = rop_node.type().name()
if product_type == "arnold_rop":
plugin_info = ArnoldRenderDeadlinePluginInfo(
InputFile=instance.data["ifdFile"]
)
elif product_type == "mantra_rop":
elif node_type == "ifd":
plugin_info = MantraRenderDeadlinePluginInfo(
SceneFile=instance.data["ifdFile"],
Version=hou_major_minor,

View file

@ -92,7 +92,7 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin,
"prerender.farm", "prerender.frames_farm",
"renderlayer", "imagesequence",
"vrayscene", "maxrender",
"arnold_rop", "mantra_rop",
"arnold_rop", "render.farm.hou",
"karma_rop", "vray_rop",
"redshift_rop"]