From 09e6ac3575201702f9558d1c3be0663b10cabdc4 Mon Sep 17 00:00:00 2001 From: Mervin <63094424+mervinvb@users.noreply.github.com> Date: Tue, 26 Mar 2024 09:44:21 +0100 Subject: [PATCH] Update to Houdini 20 --- otls/create_otl_20.0.py | 959 ++++++++++++++++++++ otls/pRef_caller.py | 63 ++ otls/python_functions.py | 55 -- otls/sgtk_karma.otl | Bin 107404 -> 104708 bytes python/tk_houdini_karma/post_task_script.py | 2 +- 5 files changed, 1023 insertions(+), 56 deletions(-) create mode 100644 otls/create_otl_20.0.py create mode 100644 otls/pRef_caller.py diff --git a/otls/create_otl_20.0.py b/otls/create_otl_20.0.py new file mode 100644 index 0000000..5c59fa4 --- /dev/null +++ b/otls/create_otl_20.0.py @@ -0,0 +1,959 @@ +"""This slightly messy and large file is used to create the SGTK Karma OTL. +We build the OTL using this file so we can easily change things and rebuild the OTL +without going into Houdini and clicking a bunch of messy buttons. This file is +long and a bit unorganized, however this is still better than the alternative. + +To build the OTL you must run this from a Houdini python shell: + +exec(open(r"path-to-app\tk-houdini-karma\otls\create_otl.py").read()) + +exec(open(r"C:/Users/Mervin.vanBrakel/Documents/ShotGrid/DevApps/tk-houdini-karma/otls/create_otl_20.0.py").read()) +""" + +import os +import re + +import hou + +# Set the path to the OTL folder here. We can't use something like os.path.realpath because +# we're running this from within an interactive shell. +OTL_FOLDER = ( + "C:/Users/Mervin.vanBrakel/Documents/ShotGrid/DevApps/tk-houdini-karma/otls/" +) + +pRef_caller_file = open( + r"C:/Users/Mervin.vanBrakel/Documents/ShotGrid/DevApps/tk-houdini-karma/otls/pRef_caller.py" +).read() + + +# The following functions help us with building the OTL. +def convert_naming_scheme(naming_scheme) -> tuple: + """This function converts a Houdini naming scheme to a tuple + that we can actually work with.""" + if naming_scheme == hou.parmNamingScheme.Base1: + return "1", "2", "3", "4" + elif naming_scheme == hou.parmNamingScheme.XYZW: + return "x", "y", "z", "w" + elif naming_scheme == hou.parmNamingScheme.XYWH: + return "x", "y", "w", "h" + elif naming_scheme == hou.parmNamingScheme.UVW: + return "u", "v", "w" + elif naming_scheme == hou.parmNamingScheme.RGBA: + return "r", "g", "b", "a" + elif naming_scheme == hou.parmNamingScheme.MinMax: + return "min", "max" + elif naming_scheme == hou.parmNamingScheme.MaxMin: + return "max", "min" + elif naming_scheme == hou.parmNamingScheme.StartEnd: + return "start", "end" + elif naming_scheme == hou.parmNamingScheme.BeginEnd: + return "begin", "end" + + +def link_parameter( + origin: hou.node, parameter_name: str, level=1, prepend="", append="" +) -> None: + """This function links a parameter on a Houdini node + to an expression, allowing for dynamic updates.""" + org_parameter = origin.parmTemplateGroup().find(parameter_name) + + if not org_parameter: + print("Parameter not found: ", parameter_name) + return + + # Determine the expression prefix based on the parameter's data type + parameter_type = "ch" + if org_parameter.dataType() == hou.parmData.String: + parameter_type = "chsop" + + # If the parameter is single-component, directly set its expression + if org_parameter.numComponents() == 1: + origin.parm(parameter_name).setExpression( + '{}("{}{}")'.format( + parameter_type, "../" * level, prepend + parameter_name + append + ) + ) + + # If the parameter has multiple components, set an expression for each component + else: + scheme = convert_naming_scheme(org_parameter.namingScheme()) + for i in range(org_parameter.numComponents()): + origin.parm(parameter_name + scheme[i]).setExpression( + '{}("{}{}")'.format( + parameter_type, + "../" * level, + prepend + parameter_name + append + scheme[i], + ) + ) + + +def link_deep_parameters( + origin: hou.Node, parameters: list, prepend: str = "", append: str = "" +) -> None: + """This function recursively links parameters from a list to the origin node + with optional prepending and appending strings.""" + for parameter in parameters: + # If the parameter is a folder, recurse into it + if parameter.type() == hou.parameterTemplateType.Folder: + link_deep_parameters(origin, parameter.parmTemplates(), prepend, append) + else: + # Otherwise, link the individual parameter + link_parameter( + origin, parameter.name(), level=2, prepend=prepend, append=append + ) + + +def reference_parameter( + origin: hou.Node, + dist: list, + parameter: str, + conditional: tuple = None, + join_to_next=False, +) -> None: + """This function references a parameter on a node, + potentially with a condition, and appends it to a template group.""" + org_parameters = origin.parmTemplateGroup() + org_parameter = org_parameters.find(parameter) + + if not org_parameter: + print("Parameter not found:", parameter) + return + + if conditional: + org_parameter.setConditional(conditional[0], conditional[1]) + + if join_to_next: + org_parameter.setJoinWithNext(True) + else: + org_parameter.setJoinWithNext(False) + + # Depending on the 'dist' object's type, append or add the parameter template + if hasattr(dist, "append"): + if org_parameter.name() == "engine": + org_parameter.setItemGeneratorScript( + "opmenu -l -a karmarendersettings engine" + ) + if org_parameter.name() == "camera": + org_parameter.setItemGeneratorScript( + "kwargs['node'].node('karmarendersettings').hm().getCameras(kwargs)" + ) + + dist.append(org_parameter) + elif hasattr(dist, "addParmTemplate"): + # I couldn't find another place to add generator scripts so this mess will have to do + if org_parameter.name() == "dcm": + org_parameter.setLabel("Deep camera map") + if org_parameter.name() == "light_sampling_mode": + org_parameter.setItemGeneratorScript( + "opmenu -l -a karmarendersettings light_sampling_mode" + ) + if org_parameter.name() == "vblur": + org_parameter.setItemGeneratorScript( + "opmenu -l -a karmarendersettings vblur" + ) + if org_parameter.name() == "instance_vblur": + org_parameter.setItemGeneratorScript( + "opmenu -l -a karmarendersettings instance_vblur" + ) + if org_parameter.name() == "aspectRatioConformPolicy": + org_parameter.setItemGeneratorScript( + "opmenu -l -a karmarendersettings aspectRatioConformPolicy" + ) + + dist.addParmTemplate(org_parameter) + else: + print("Undefined method for distributing parameter templates.") + return + + # Link the original parameter to the distribution + link_parameter(origin, parameter) + + +def rename_deep_parameters( + parameters: list, prepend: str = "", append: str = "" +) -> list: + """This function renames deep parameters recursively, + with optional prepending and appending strings.""" + for parameter in parameters: + # Rename the parameter by adding prepend and append strings + parameter.setName(f"{prepend}{parameter.name()}{append}") + + # If the parameter is a folder, recurse into it to rename its children + if parameter.type() == hou.parameterTemplateType.Folder: + renamed = rename_deep_parameters(parameter.parmTemplates(), prepend, append) + parameter.setParmTemplates(renamed) + + return parameters + + +def space_camel_case(text: str) -> str: + """This function inserts a space before each capital letter in a + camelCase or PascalCase string, effectively converting it + from camelCase/PascalCase to a space-separated string.""" + return re.sub(r"((?<=[a-z])[A-Z]|(? Samples +secondary_samples = hou.FolderParmTemplate("secondary_sampling", "Secondary") +reference_parameter( + karma_render_settings, + secondary_samples, + "varianceaa_minsamples", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) +reference_parameter( + karma_render_settings, + secondary_samples, + "varianceaa_maxsamples", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) + +reference_parameter( + karma_render_settings, + secondary_samples, + "diffusequality", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) +reference_parameter( + karma_render_settings, + secondary_samples, + "reflectquality", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) +reference_parameter( + karma_render_settings, + secondary_samples, + "refractquality", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) +reference_parameter( + karma_render_settings, + secondary_samples, + "volumequality", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) +reference_parameter( + karma_render_settings, + secondary_samples, + "sssquality", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) +reference_parameter(karma_render_settings, secondary_samples, "light_sampling_mode") + +reference_parameter(karma_render_settings, secondary_samples, "light_sampling_quality") + +reference_parameter( + karma_render_settings, + secondary_samples, + "screendoorlimit", + (hou.parmCondType.HideWhen, '{ engine != "cpu" }'), +) +reference_parameter(karma_render_settings, secondary_samples, "volumesteprate") + + +rendering.addParmTemplate(secondary_samples) + +# Rendering -> Limits +for folder in karma_render_settings_parameters.findFolder("Rendering").parmTemplates(): + if folder.label() == "Limits": + rendering.addParmTemplate(folder) + + for parameter in folder.parmTemplates(): + link_parameter(karma_render_settings, parameter.name()) + +# Rendering -> Camera Effects +rendering_camera_effects = hou.FolderParmTemplate("camera_effects", "Camera Effects") +reference_parameter(karma_render_settings, rendering_camera_effects, "enabledof") +reference_parameter(karma_render_settings, rendering_camera_effects, "enablemblur") + +motion_blur_settings = hou.FolderParmTemplate( + "motion_blur_settings", + "Motion Blur", + folder_type=hou.folderType.Simple, + conditionals={hou.parmCondType.DisableWhen: "{ enablemblur != 1 }"}, +) +reference_parameter(karma_render_settings, motion_blur_settings, "mblur") +reference_parameter( + karma_render_settings, + motion_blur_settings, + "xformsamples", + (hou.parmCondType.DisableWhen, "{ mblur != 1 }"), +) +reference_parameter( + karma_render_settings, + motion_blur_settings, + "geosamples", + (hou.parmCondType.DisableWhen, "{ mblur != 1 }"), +) +reference_parameter( + karma_render_settings, + motion_blur_settings, + "vblur", + (hou.parmCondType.DisableWhen, "{ mblur != 1 }"), +) +reference_parameter( + karma_render_settings, + motion_blur_settings, + "instance_vblur", + (hou.parmCondType.DisableWhen, "{ mblur != 1 }"), +) +reference_parameter( + karma_render_settings, + motion_blur_settings, + "instance_samples", + (hou.parmCondType.DisableWhen, "{ mblur != 1 }"), +) +reference_parameter( + karma_render_settings, + motion_blur_settings, + "volumevblurscale", + (hou.parmCondType.DisableWhen, "{ mblur != 1 }"), +) +reference_parameter( + karma_render_settings, + motion_blur_settings, + "disableimageblur", + (hou.parmCondType.DisableWhen, "{ velocity == 0 motionvectors == 0 }"), +) + +rendering_camera_effects.addParmTemplate(motion_blur_settings) + +rendering.addParmTemplate(rendering_camera_effects) + +# Rendering -> Aspect Ratio +rendering_aspect_ratio = hou.FolderParmTemplate("aspect_ratio", "Aspect Ratio") +reference_parameter( + karma_render_settings, rendering_aspect_ratio, "aspectRatioConformPolicy" +) +reference_parameter(karma_render_settings, rendering_aspect_ratio, "dataWindowNDC") +reference_parameter(karma_render_settings, rendering_aspect_ratio, "pixelAspectRatio") + +rendering.addParmTemplate(rendering_aspect_ratio) + +hda_parameters.append(rendering) + + +# AOVs +aovs = hou.FolderParmTemplate("aovs", "AOVs") + +denoise_checkbox = hou.ToggleParmTemplate("denoise", "Denoise AOVs") +aovs.addParmTemplate(denoise_checkbox) + + +# AOVs -> Component level output +component_level_output = hou.FolderParmTemplate( + "component_level_output", + "Component Level Output", + folder_type=hou.folderType.Collapsible, +) + +# AOVs -> Component level output -> Beauty +beauty_aovs = hou.FolderParmTemplate( + "beauty_aovs", + "Beauty", + folder_type=hou.folderType.Collapsible, +) +reference_parameter(karma_render_settings, beauty_aovs, "beauty") +reference_parameter(karma_render_settings, beauty_aovs, "beautyunshadowed") +component_level_output.addParmTemplate(beauty_aovs) + +# AOVs -> Component level output -> Diffuse +diffuse_aovs = hou.FolderParmTemplate( + "diffuse_aovs", + "Diffuse", + folder_type=hou.folderType.Collapsible, +) + +reference_parameter(karma_render_settings, diffuse_aovs, "combineddiffuse") +reference_parameter(karma_render_settings, diffuse_aovs, "directdiffuse") +reference_parameter(karma_render_settings, diffuse_aovs, "indirectdiffuse") +reference_parameter(karma_render_settings, diffuse_aovs, "combineddiffuseunshadowed") +reference_parameter(karma_render_settings, diffuse_aovs, "directdiffuseunshadowed") +reference_parameter(karma_render_settings, diffuse_aovs, "indirectdiffuseunshadowed") +component_level_output.addParmTemplate(diffuse_aovs) + +# AOVs -> Component level output -> Reflections and refractions +reflection_refraction_aovs = hou.FolderParmTemplate( + "reflections_refractions", + "Reflections and Refractions", + folder_type=hou.folderType.Collapsible, +) + +reference_parameter( + karma_render_settings, reflection_refraction_aovs, "combinedglossyreflection" +) +reference_parameter( + karma_render_settings, reflection_refraction_aovs, "directglossyreflection" +) +reference_parameter( + karma_render_settings, reflection_refraction_aovs, "indirectglossyreflection" +) +reference_parameter( + karma_render_settings, reflection_refraction_aovs, "glossytransmission" +) +reference_parameter(karma_render_settings, reflection_refraction_aovs, "coat") +component_level_output.addParmTemplate(reflection_refraction_aovs) + +# AOVs -> Component level output -> Lights and Emission +lights_emission_aovs = hou.FolderParmTemplate( + "lights_emission", + "Lights and Emission", + folder_type=hou.folderType.Collapsible, +) + +reference_parameter(karma_render_settings, lights_emission_aovs, "combinedemission") +reference_parameter(karma_render_settings, lights_emission_aovs, "directemission") +reference_parameter(karma_render_settings, lights_emission_aovs, "indirectemission") +reference_parameter(karma_render_settings, lights_emission_aovs, "visiblelights") +component_level_output.addParmTemplate(lights_emission_aovs) + + +# AOVs -> Component level output -> Volume +volume_aovs = hou.FolderParmTemplate( + "volume", + "Volume", + folder_type=hou.folderType.Collapsible, +) + +reference_parameter(karma_render_settings, volume_aovs, "combinedvolume") +reference_parameter(karma_render_settings, volume_aovs, "directvolume") +reference_parameter(karma_render_settings, volume_aovs, "indirectvolume") +component_level_output.addParmTemplate(volume_aovs) + + +# AOVs -> Component level output -> SSS +sss_aov = hou.FolderParmTemplate( + "sss_folder", + "SSS", + folder_type=hou.folderType.Collapsible, +) + +reference_parameter(karma_render_settings, sss_aov, "sss") +component_level_output.addParmTemplate(sss_aov) + +# AOVs -> Component level output -> Albedo +albedo_aov = hou.FolderParmTemplate( + "albedo_folder", + "Albedo", + folder_type=hou.folderType.Collapsible, +) + +reference_parameter(karma_render_settings, albedo_aov, "albedo") +component_level_output.addParmTemplate(albedo_aov) + + +aovs.addParmTemplate(component_level_output) + + +# AOVs -> Component level output +ray_level_output = hou.FolderParmTemplate( + "ray_level_output", + "Ray Level Output", + folder_type=hou.folderType.Collapsible, +) + + +reference_parameter(karma_render_settings, ray_level_output, "hitP") +reference_parameter(karma_render_settings, ray_level_output, "hitPz") +reference_parameter(karma_render_settings, ray_level_output, "element") +reference_parameter(karma_render_settings, ray_level_output, "primid") +reference_parameter(karma_render_settings, ray_level_output, "hituv") +reference_parameter(karma_render_settings, ray_level_output, "hitN") +reference_parameter(karma_render_settings, ray_level_output, "hitNg") +reference_parameter(karma_render_settings, ray_level_output, "motionvectors") +reference_parameter(karma_render_settings, ray_level_output, "velocity") + +aovs.addParmTemplate(ray_level_output) + + +# AOVs -> Cryptomatte +cryptomatte = hou.FolderParmTemplate( + "cryptomatte", + "Cryptomatte", + folder_type=hou.folderType.Collapsible, +) + +cryptomatte.addParmTemplate(hou.LabelParmTemplate("primitives", "Primitives")) +reference_parameter(karma_cryptomatte, cryptomatte, "doprimcrypto") +cryptomatte.addParmTemplate(hou.LabelParmTemplate("materials", "Materials")) +reference_parameter(karma_cryptomatte, cryptomatte, "domtlcrypto") + +aovs.addParmTemplate(cryptomatte) + +# AOVs -> Deep +deep_settings = hou.FolderParmTemplate( + "deep_settings", + "Deep camera map", + folder_type=hou.folderType.Simple, +) + +reference_parameter(karma_render_settings, deep_settings, "dcm") +deep_settings.addParmTemplate( + hou.MenuParmTemplate( + "deep_target", + "Deep target", + ("hard_surface", "volumes"), + ("Hard surface", "Volumes"), + script_callback="hou.phm().setup_deep_settings(kwargs['node'])", + script_callback_language=hou.scriptLanguage.Python, + disable_when="{ dcm == 0 }", + ) +) + +reference_parameter( + render_product_edit, + deep_settings, + "xn__karmaproductdcmzbias_m8ah", + (hou.parmCondType.DisableWhen, "{ dcm == 0 }"), +) + + +aovs.addParmTemplate(deep_settings) + + +# AOVs -> Light groups +light_groups = hou.FolderParmTemplate( + "light_groups", + "Light Groups", + folder_type=hou.folderType.Simple, +) + +light_groups.addParmTemplate( + hou.ButtonParmTemplate( + "setup_light_groups", + "Update light groups", + script_callback="hou.phm().setup_light_groups(kwargs['node'])", + script_callback_language=hou.scriptLanguage.Python, + ) +) + +light_group_item = hou.FolderParmTemplate( + "light_groups_select", + "Light Groups", + folder_type=hou.folderType.MultiparmBlock, +) +light_group_name = hou.StringParmTemplate( + "light_group_name_#", + "Name", + 1, + string_type=hou.stringParmType.Regular, + naming_scheme=hou.parmNamingScheme.Base1, +) + +light_operator_list = hou.StringParmTemplate( + "select_light_lops_#", + "Select Light LOPs", + 1, + string_type=hou.stringParmType.NodeReferenceList, + naming_scheme=hou.parmNamingScheme.Base1, + tags={ + "opfilter": "!!LOP!!", + "oprelative": ".", + }, +) + +light_group_item.addParmTemplate(light_group_name) +light_group_item.addParmTemplate(light_operator_list) +light_group_item.addParmTemplate(hou.SeparatorParmTemplate("lgSep#")) + +light_groups.addParmTemplate(light_group_item) + + +aovs.addParmTemplate(light_groups) + + +# AOVs -> pRefs +# Still working on this, will be functional in the next update :) +prefs = hou.FolderParmTemplate( + "prefs", + "pRefs", + folder_type=hou.folderType.Simple, +) + +prefs.addParmTemplate( + hou.ButtonParmTemplate( + "setup_prefs", + "Update pRefs", + script_callback="hou.phm().setup_prefs(kwargs['node'])", + script_callback_language=hou.scriptLanguage.Python, + ) +) + +pref_item = hou.FolderParmTemplate( + "pref_select", + "pRefs", + folder_type=hou.folderType.MultiparmBlock, +) + +pref_name = hou.StringParmTemplate( + "pref_name_#", + "Name", + 1, + string_type=hou.stringParmType.Regular, + naming_scheme=hou.parmNamingScheme.Base1, +) + +pref_primpattern_list = hou.StringParmTemplate( + "select_pref_#", + "Select object", + 1, + string_type=hou.stringParmType.NodeReference, + naming_scheme=hou.parmNamingScheme.Base1, + tags={ + "opfilter": "!!LOP!!", + "oprelative": ".", + }, +) + +pref_source_frame = hou.IntParmTemplate( + "pref_source_frame_#", "Source frame", 1, min=0, max=3000 +) + +pref_item.addParmTemplate(pref_name) +pref_item.addParmTemplate(pref_primpattern_list) +pref_item.addParmTemplate(pref_source_frame) +pref_item.addParmTemplate(hou.SeparatorParmTemplate("prefSep#")) + +prefs.addParmTemplate(pref_item) +aovs.addParmTemplate(prefs) + + +hda_parameters.append(aovs) + +# Metadata +metadata_folder = hou.FolderParmTemplate("metadata_folder", "Metadata") +metadata_parmblock = _get_metadata_block() +metadata_folder.addParmTemplate(metadata_parmblock) +hda_parameters.append(metadata_folder) + +hda_def.setParmTemplateGroup(hda_parameters) + + +hda.indirectInputs()[0].outputs()[0].destroy() + +hda.node("input").setInput(0, hda.indirectInputs()[0]) +hda.node("karmarendersettings").setInput(1, hda.indirectInputs()[1]) +hda.parm("xn__karmaproductdcmzbias_m8ah").set(0.01) +hda.parm("resolutionx").pressButton() +hda.parm("resolutiony").pressButton() + +hda_def.save(hda_def.libraryFilePath(), hda, hda_options) diff --git a/otls/pRef_caller.py b/otls/pRef_caller.py new file mode 100644 index 0000000..8f2af75 --- /dev/null +++ b/otls/pRef_caller.py @@ -0,0 +1,63 @@ +"""This python file gets inserted into the pRef_caller node in the OTL.""" + +import hou + +from pxr import Sdf, UsdGeom + + +def get_prefs_list(karma_node: hou.node) -> list[dict]: + """Creates a list of prefs that we have to process. + + Args: + karma_node: SGTK Karma node + + Returns: + prefs_list: List of prefs information + """ + pref_count = karma_node.parm("pref_select").eval() + + prefs_list = [] + for pref_index in range(1, pref_count + 1): + pref_info = {} + pref_name_parm = f"pref_name_{pref_index}" + pref_path_parm = f"select_pref_{pref_index}" + pref_source_frame_parm = f"pref_source_frame_{pref_index}" + + pref_info["pref_name"] = f"pRef_{karma_node.parm(pref_name_parm).eval()}" + pref_info["pref_path"] = f"{karma_node.parm(pref_path_parm).eval()}/**" + pref_info["pref_source_frame"] = karma_node.parm(pref_source_frame_parm).eval() + + prefs_list.append(pref_info) + + return prefs_list + + +def compute_pref_point_references(karma_node: hou.Node, stage) -> None: + """Computes pref point references and adds them as primvars to our stage. + Based on this blog post by Andreas Kjær-Jensen: https://www.andreaskj.com/live-pref-in-solaris/ + + Args: + karma_node: SGTK Karma node + stage: Stage we're working in + """ + prefs_list = get_prefs_list(karma_node) + + for pref_data in prefs_list: + ls = hou.LopSelectionRule() + ls.setPathPattern(pref_data["pref_path"] + " & %type:Mesh") + paths = ls.expandedPaths(stage=stage) + + for prim in paths: + prim = stage.GetPrimAtPath(prim) + primvarsapi = UsdGeom.PrimvarsAPI(prim) + points = prim.GetAttribute("points") + points_values = points.Get(pref_data["pref_source_frame"]) + primvar = primvarsapi.CreatePrimvar( + pref_data["pref_name"], + Sdf.ValueTypeNames.Color3fArray, + UsdGeom.Tokens.vertex, + ) + primvar.Set(points_values) + + +compute_pref_point_references(hou.pwd().parent(), hou.pwd().editableStage()) diff --git a/otls/python_functions.py b/otls/python_functions.py index ac767ef..8503a69 100644 --- a/otls/python_functions.py +++ b/otls/python_functions.py @@ -285,61 +285,6 @@ def setup_prefs(karma_node: hou.Node) -> None: add_all_automated_prefs_to_render_vars(karma_node) -def get_prefs_list(karma_node: hou.node) -> list[dict]: - """Creates a list of prefs that we have to process. - - Args: - karma_node: SGTK Karma node - - Returns: - prefs_list: List of prefs information - """ - pref_count = karma_node.parm("pref_select").eval() - - prefs_list = [] - for pref_index in range(1, pref_count + 1): - pref_info = {} - pref_name_parm = f"pref_name_{pref_index}" - pref_path_parm = f"select_pref_{pref_index}" - pref_source_frame_parm = f"pref_source_frame_{pref_index}" - - pref_info["pref_name"] = f"pRef_{karma_node.parm(pref_name_parm).eval()}" - pref_info["pref_path"] = f"{karma_node.parm(pref_path_parm).eval()}/**" - pref_info["pref_source_frame"] = karma_node.parm(pref_source_frame_parm).eval() - - prefs_list.append(pref_info) - - return prefs_list - - -def compute_pref_point_references(karma_node: hou.Node, stage) -> None: - """Computes pref point references and adds them as primvars to our stage. - Based on this blog post by Andreas Kjær-Jensen: https://www.andreaskj.com/live-pref-in-solaris/ - - Args: - karma_node: SGTK Karma node - stage: Stage we're working in - """ - prefs_list = get_prefs_list(karma_node) - - for pref_data in prefs_list: - ls = hou.LopSelectionRule() - ls.setPathPattern(pref_data["pref_path"] + " & %type:Mesh") - paths = ls.expandedPaths(stage=stage) - - for prim in paths: - prim = stage.GetPrimAtPath(prim) - primvarsapi = UsdGeom.PrimvarsAPI(prim) - points = prim.GetAttribute("points") - points_values = points.Get(pref_data["pref_source_frame"]) - primvar = primvarsapi.CreatePrimvar( - pref_data["pref_name"], - Sdf.ValueTypeNames.Color3fArray, - UsdGeom.Tokens.vertex, - ) - primvar.Set(points_values) - - def setup_deep_settings(karma_node: hou.Node) -> None: """This function sets our deep setting based on simpler options that are presented in the node interface. diff --git a/otls/sgtk_karma.otl b/otls/sgtk_karma.otl index 88fbe6988e1ae2f632e6ccfd50a77e3c38efcdf9..ba47a19d1f00049b831950630e354678506401f1 100644 GIT binary patch delta 44591 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

#2eg9ZVtY@e=>HRusE_i(<=iDlk7UgG&InoefG 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 delta 43949 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