diff --git a/README.md b/README.md index 6e53e11..4492515 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,54 @@ # moonray_dcc_plugins - part of the [MoonRay](https://github.com/OpenMoonRay/openmoonray) project + Policies concerning [Governance](https://github.com/OpenMoonRay/openmoonray/blob/main/GOVERNANCE.md), [Code of Conduct](https://github.com/OpenMoonRay/openmoonray/blob/main/CODE_OF_CONDUCT.md), and [Contribution](https://github.com/OpenMoonRay/openmoonray/blob/main/CONTRIBUTING.md) are available in the overarching MoonRay project, defined in the [`OpenMoonRay/openmoonray` GitHub repository superproject](https://github.com/OpenMoonRay/openmoonray). This repository contains plugins for DCC apps to support MoonRay. -## houdini -Include the folders inside of the houdini folder into your HOUDINI_PATH by copying them into a folder already sourced or adding them to the HOUDINI_PATH environment variable +# Houdini +## Installation + +If you folow the cmake build and install instructions in the root repo, this plugin is copied as an installation step and you should not need to do anything if you source the `setupHoudini.sh` script. + +If you want to make changes or develop the plugin, note that +1. The plugin is copied to `/plugin/houdini` +2. This path is added to the `HOUDINI_PATH` in `/scripts/{macOS, Rocky9}/setupHoudini.sh` + +It is also possible to copy the plugin to your `~/Houdini20.0/` directory, or another location in `HOUINI_PATH`. Just be careful to not include two different versions of these folders. + +> see https://www.sidefx.com/docs/houdini/basics/config.html + + +## Updating + +We provide a script `moonray_dcc_plugins/scripts/update_hdas.py` to update the existing `.hda` and `.ds` files from local Moonray modifications. We encourage developers to update relevant nodes with modifications to the underlying renderer. + +Runtime dependencies: + - hython / hou (Houdini writes the `.hda` and `.ds` files itself) + - `rdl2_json_exporter` on $PATH, with $RDL2_DSO_PATH set to the proxy DSOs + - pxr Python modules (optional; falls back to static output tags) + +1. Set up environment: +Use houdini shell, or source their setup.sh, for example: +``` +source /Houdini20.0.751/Frameworks/Houdini.framework/Versions/Current/Resources/houdini_setup +``` + +Add the moonray environment: +``` +source /scripts/{macOS, Rocky9}/setupHoudini.sh +``` + +2. Run script -see https://www.sidefx.com/docs/houdini/basics/config.html +``` +cd +hython scripts/update_hdas.py --output-dir ./houdini +``` -- Add to Variable: - add the openmoonray/plugin/houdini/ folder to your HOUDINI_PATH - ``` - HOUDINI_PATH = $HOUDINI_PATH:/plugin/houdini - ``` +3. Install +``` +cp houdini/moonray_nodes.json /plugin/houdini +cp -r houdini/{otls,soho,python*} /plugin/houdini +``` -- copy the folders inside into your local houdini: - ``` - cp -r /plugin/houdini/* ~/houdini19.5/ - ``` diff --git a/houdini/moonray_nodes.json b/houdini/moonray_nodes.json index 55d0625..d62b8d7 100644 --- a/houdini/moonray_nodes.json +++ b/houdini/moonray_nodes.json @@ -1,14 +1,5 @@ { - "packages": { - "mcrt_dataio_folio": "mcrt_dataio-16.0", - "mcrt_denoise_folio": "mcrt_denoise-7.0", - "mcrt_messages_folio": "mcrt_messages-15.0", - "moonbase_proxies_folio": "moonbase_proxies-15.0", - "moonray_folio": "moonray-18.0", - "moonshine_folio": "moonshine-15.0", - "moonshine_usd_folio": "moonshine_usd-15.0", - "scene_rdl2_folio": "scene_rdl2-16.0" - }, + "packages": {}, "AttributeMap": { "moonray_name": "AttributeMap", "moonray_type": "Map", @@ -40532,6 +40523,100 @@ ], "help": "Vector of UserData. Each key/value pair will be added as a primitive attribute of the curves." }, + "local_motion_blur_position_list": { + "moonray_name": "local_motion_blur_position_list", + "moonray_type": "Vec3fVector", + "default_value": [], + "houdini_name": "local_motion_blur_position_list", + "houdini_label": "Local Motion Blur Position List", + "order": 37, + "aliases": [ + "local motion blur position list" + ], + "help": "World-space center position for each local motion blur region." + }, + "local_motion_blur_orient_list": { + "moonray_name": "local_motion_blur_orient_list", + "moonray_type": "Vec4fVector", + "default_value": [], + "houdini_name": "local_motion_blur_orient_list", + "houdini_label": "Local Motion Blur Orient List", + "order": 38, + "aliases": [ + "local motion blur orient list" + ], + "help": "Per-point orientation quaternion (x=i, y=j, z=k, w=r) for each local motion blur region. Combined with the scale list, this orients and shapes the blur falloff region. If empty, identity orientation is used. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_scale_list": { + "moonray_name": "local_motion_blur_scale_list", + "moonray_type": "Vec3fVector", + "default_value": [], + "houdini_name": "local_motion_blur_scale_list", + "houdini_label": "Local Motion Blur Scale List", + "order": 39, + "aliases": [ + "local motion blur scale list" + ], + "help": "Per-point non-uniform scale (x,y,z) for each local motion blur region. Non-uniform scale makes the falloff region ellipsoidal rather than spherical. If empty, uniform scale (1,1,1) is used. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_radius_list": { + "moonray_name": "local_motion_blur_radius_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_radius_list", + "houdini_label": "Local Motion Blur Radius List", + "order": 40, + "aliases": [ + "local motion blur radius list" + ], + "help": "Per-point outer radius for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_inner_radius_list": { + "moonray_name": "local_motion_blur_inner_radius_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_inner_radius_list", + "houdini_label": "Local Motion Blur Inner Radius List", + "order": 41, + "aliases": [ + "local motion blur inner radius list" + ], + "help": "Per-point inner radius for each local motion blur region (full-strength core). If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_multiplier_list": { + "moonray_name": "local_motion_blur_multiplier_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_multiplier_list", + "houdini_label": "Local Motion Blur Multiplier List", + "order": 42, + "aliases": [ + "local motion blur multiplier list" + ], + "help": "Per-point motion blur strength multiplier for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_strength_multiplier": { + "moonray_name": "local_motion_blur_strength_multiplier", + "moonray_type": "Float", + "default_value": [ + 1.0 + ], + "houdini_name": "local_motion_blur_strength_multiplier", + "houdini_label": "Local Motion Blur Strength Multiplier", + "order": 43, + "help": "Global strength multiplier for local motion blur application" + }, + "local_motion_blur_radius_multiplier": { + "moonray_name": "local_motion_blur_radius_multiplier", + "moonray_type": "Float", + "default_value": [ + 1.0 + ], + "houdini_name": "local_motion_blur_radius_multiplier", + "houdini_label": "Local Motion Blur Radius Multiplier", + "order": 44, + "help": "Global radius multiplier applied to per-region radius values, whether supplied via the \"radius\"/\"inner_radius\" point attributes or the \"local_motion_blur_radius_list\"/\"local_motion_blur_inner_radius_list\" explicit list attributes" + }, "tessellation_rate": { "moonray_name": "tessellation_rate", "moonray_type": "Int", @@ -40540,7 +40625,7 @@ ], "houdini_name": "tessellation_rate", "houdini_label": "Tessellation Rate", - "order": 37, + "order": 45, "help": "Number of segments to split curve spans into" }, "curves_subtype": { @@ -40551,7 +40636,7 @@ ], "houdini_name": "curves_subtype", "houdini_label": "Curves Subtype", - "order": 38, + "order": 46, "help": "Selects the style the curves are rendered", "menu": [ "ray_facing", @@ -40572,7 +40657,7 @@ ], "houdini_name": "use_rotation_motion_blur", "houdini_label": "Use Rotation Motion Blur", - "order": 39, + "order": 47, "aliases": [ "use_rotation_motion_blur" ], @@ -40586,7 +40671,7 @@ ], "houdini_name": "motion_blur_type", "houdini_label": "Motion Blur Type", - "order": 40, + "order": 48, "aliases": [ "motion blur type" ], @@ -40616,7 +40701,7 @@ ], "houdini_name": "curved_motion_blur_sample_count", "houdini_label": "Curved Motion Blur Sample Count", - "order": 41, + "order": 49, "aliases": [ "curved motion blur sample count" ], @@ -40630,7 +40715,7 @@ ], "houdini_name": "primitive_attribute_frame", "houdini_label": "Primitive Attribute Frame", - "order": 42, + "order": 50, "help": "Which frame(s) do we take the primitive attributes from?\n\tO : first motion step\n\t1 : second motion step\n\t2 : both motion steps", "menu": [ "first motion step", @@ -40651,7 +40736,7 @@ ], "houdini_name": "use_explicit_shading_attributes", "houdini_label": "Use Explicit Shading Attributes", - "order": 43, + "order": 51, "aliases": [ "use_explicit_shading_attributes" ], @@ -40696,6 +40781,14 @@ "velocity_list_1", "accleration_list", "velocity_scale", + "local_motion_blur_position_list", + "local_motion_blur_orient_list", + "local_motion_blur_scale_list", + "local_motion_blur_radius_list", + "local_motion_blur_inner_radius_list", + "local_motion_blur_multiplier_list", + "local_motion_blur_strength_multiplier", + "local_motion_blur_radius_multiplier", "use_rotation_motion_blur", "motion_blur_type", "curved_motion_blur_sample_count", @@ -41882,6 +41975,100 @@ ], "help": "Vector of UserData. Each key/value pair will be added as a primitive attribute of the mesh." }, + "local_motion_blur_position_list": { + "moonray_name": "local_motion_blur_position_list", + "moonray_type": "Vec3fVector", + "default_value": [], + "houdini_name": "local_motion_blur_position_list", + "houdini_label": "Local Motion Blur Position List", + "order": 46, + "aliases": [ + "local motion blur position list" + ], + "help": "World-space center position for each local motion blur region." + }, + "local_motion_blur_orient_list": { + "moonray_name": "local_motion_blur_orient_list", + "moonray_type": "Vec4fVector", + "default_value": [], + "houdini_name": "local_motion_blur_orient_list", + "houdini_label": "Local Motion Blur Orient List", + "order": 47, + "aliases": [ + "local motion blur orient list" + ], + "help": "Per-point orientation quaternion (x=i, y=j, z=k, w=r) for each local motion blur region. Combined with the scale list, this orients and shapes the blur falloff region. If empty, identity orientation is used. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_scale_list": { + "moonray_name": "local_motion_blur_scale_list", + "moonray_type": "Vec3fVector", + "default_value": [], + "houdini_name": "local_motion_blur_scale_list", + "houdini_label": "Local Motion Blur Scale List", + "order": 48, + "aliases": [ + "local motion blur scale list" + ], + "help": "Per-point non-uniform scale (x,y,z) for each local motion blur region. Non-uniform scale makes the falloff region ellipsoidal rather than spherical. If empty, uniform scale (1,1,1) is used. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_radius_list": { + "moonray_name": "local_motion_blur_radius_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_radius_list", + "houdini_label": "Local Motion Blur Radius List", + "order": 49, + "aliases": [ + "local motion blur radius list" + ], + "help": "Per-point outer radius for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_inner_radius_list": { + "moonray_name": "local_motion_blur_inner_radius_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_inner_radius_list", + "houdini_label": "Local Motion Blur Inner Radius List", + "order": 50, + "aliases": [ + "local motion blur inner radius list" + ], + "help": "Per-point inner radius for each local motion blur region (full-strength core). If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_multiplier_list": { + "moonray_name": "local_motion_blur_multiplier_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_multiplier_list", + "houdini_label": "Local Motion Blur Multiplier List", + "order": 51, + "aliases": [ + "local motion blur multiplier list" + ], + "help": "Per-point motion blur strength multiplier for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_strength_multiplier": { + "moonray_name": "local_motion_blur_strength_multiplier", + "moonray_type": "Float", + "default_value": [ + 1.0 + ], + "houdini_name": "local_motion_blur_strength_multiplier", + "houdini_label": "Local Motion Blur Strength Multiplier", + "order": 52, + "help": "Global strength multiplier for local motion blur application" + }, + "local_motion_blur_radius_multiplier": { + "moonray_name": "local_motion_blur_radius_multiplier", + "moonray_type": "Float", + "default_value": [ + 1.0 + ], + "houdini_name": "local_motion_blur_radius_multiplier", + "houdini_label": "Local Motion Blur Radius Multiplier", + "order": 53, + "help": "Global radius multiplier applied to per-region radius values, whether supplied via the \"radius\"/\"inner_radius\" point attributes or the \"local_motion_blur_radius_list\"/\"local_motion_blur_inner_radius_list\" explicit list attributes" + }, "mesh_resolution": { "moonray_name": "mesh_resolution", "moonray_type": "Float", @@ -41890,7 +42077,7 @@ ], "houdini_name": "mesh_resolution", "houdini_label": "Mesh Resolution", - "order": 46, + "order": 54, "aliases": [ "resolution factor", "subd resolution", @@ -41906,7 +42093,7 @@ ], "houdini_name": "adaptive_error", "houdini_label": "Adaptive Error", - "order": 47, + "order": 55, "aliases": [ "adaptive error" ], @@ -41920,7 +42107,7 @@ ], "houdini_name": "smooth_normal", "houdini_label": "Smooth Normal", - "order": 48, + "order": 56, "help": "Generates smooth shading normals on a PolygonMesh when the mesh doesn't provide shading normals" }, "use_rotation_motion_blur": { @@ -41931,7 +42118,7 @@ ], "houdini_name": "use_rotation_motion_blur", "houdini_label": "Use Rotation Motion Blur", - "order": 49, + "order": 57, "aliases": [ "use_rotation_motion_blur" ], @@ -41945,7 +42132,7 @@ ], "houdini_name": "motion_blur_type", "houdini_label": "Motion Blur Type", - "order": 50, + "order": 58, "aliases": [ "motion blur type" ], @@ -41975,7 +42162,7 @@ ], "houdini_name": "curved_motion_blur_sample_count", "houdini_label": "Curved Motion Blur Sample Count", - "order": 51, + "order": 59, "aliases": [ "curved motion blur sample count" ], @@ -41989,7 +42176,7 @@ ], "houdini_name": "primitive_attribute_frame", "houdini_label": "Primitive Attribute Frame", - "order": 52, + "order": 60, "help": "Which frame(s) do we take the primitive attributes from?\n\tO : first motion step\n\t1 : second motion step\n\t2 : both motion steps", "menu": [ "first motion step", @@ -42010,7 +42197,7 @@ ], "houdini_name": "use_explicit_shading_attributes", "houdini_label": "Use Explicit Shading Attributes", - "order": 53, + "order": 61, "aliases": [ "use_explicit_shading_attributes" ], @@ -42063,6 +42250,14 @@ "velocity_list_1", "accleration_list", "velocity_scale", + "local_motion_blur_position_list", + "local_motion_blur_orient_list", + "local_motion_blur_scale_list", + "local_motion_blur_radius_list", + "local_motion_blur_inner_radius_list", + "local_motion_blur_multiplier_list", + "local_motion_blur_strength_multiplier", + "local_motion_blur_radius_multiplier", "use_rotation_motion_blur", "motion_blur_type", "curved_motion_blur_sample_count", @@ -42516,6 +42711,100 @@ ], "help": "Vector of UserData. Each key/value pair will be added as a primitive attribute of the points." }, + "local_motion_blur_position_list": { + "moonray_name": "local_motion_blur_position_list", + "moonray_type": "Vec3fVector", + "default_value": [], + "houdini_name": "local_motion_blur_position_list", + "houdini_label": "Local Motion Blur Position List", + "order": 34, + "aliases": [ + "local motion blur position list" + ], + "help": "World-space center position for each local motion blur region." + }, + "local_motion_blur_orient_list": { + "moonray_name": "local_motion_blur_orient_list", + "moonray_type": "Vec4fVector", + "default_value": [], + "houdini_name": "local_motion_blur_orient_list", + "houdini_label": "Local Motion Blur Orient List", + "order": 35, + "aliases": [ + "local motion blur orient list" + ], + "help": "Per-point orientation quaternion (x=i, y=j, z=k, w=r) for each local motion blur region. Combined with the scale list, this orients and shapes the blur falloff region. If empty, identity orientation is used. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_scale_list": { + "moonray_name": "local_motion_blur_scale_list", + "moonray_type": "Vec3fVector", + "default_value": [], + "houdini_name": "local_motion_blur_scale_list", + "houdini_label": "Local Motion Blur Scale List", + "order": 36, + "aliases": [ + "local motion blur scale list" + ], + "help": "Per-point non-uniform scale (x,y,z) for each local motion blur region. Non-uniform scale makes the falloff region ellipsoidal rather than spherical. If empty, uniform scale (1,1,1) is used. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_radius_list": { + "moonray_name": "local_motion_blur_radius_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_radius_list", + "houdini_label": "Local Motion Blur Radius List", + "order": 37, + "aliases": [ + "local motion blur radius list" + ], + "help": "Per-point outer radius for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_inner_radius_list": { + "moonray_name": "local_motion_blur_inner_radius_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_inner_radius_list", + "houdini_label": "Local Motion Blur Inner Radius List", + "order": 38, + "aliases": [ + "local motion blur inner radius list" + ], + "help": "Per-point inner radius for each local motion blur region (full-strength core). If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_multiplier_list": { + "moonray_name": "local_motion_blur_multiplier_list", + "moonray_type": "FloatVector", + "default_value": [], + "houdini_name": "local_motion_blur_multiplier_list", + "houdini_label": "Local Motion Blur Multiplier List", + "order": 39, + "aliases": [ + "local motion blur multiplier list" + ], + "help": "Per-point motion blur strength multiplier for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + }, + "local_motion_blur_strength_multiplier": { + "moonray_name": "local_motion_blur_strength_multiplier", + "moonray_type": "Float", + "default_value": [ + 1.0 + ], + "houdini_name": "local_motion_blur_strength_multiplier", + "houdini_label": "Local Motion Blur Strength Multiplier", + "order": 40, + "help": "Global strength multiplier for local motion blur application" + }, + "local_motion_blur_radius_multiplier": { + "moonray_name": "local_motion_blur_radius_multiplier", + "moonray_type": "Float", + "default_value": [ + 1.0 + ], + "houdini_name": "local_motion_blur_radius_multiplier", + "houdini_label": "Local Motion Blur Radius Multiplier", + "order": 41, + "help": "Global radius multiplier applied to per-region radius values, whether supplied via the \"radius\"/\"inner_radius\" point attributes or the \"local_motion_blur_radius_list\"/\"local_motion_blur_inner_radius_list\" explicit list attributes" + }, "use_rotation_motion_blur": { "moonray_name": "use_rotation_motion_blur", "moonray_type": "Bool", @@ -42524,7 +42813,7 @@ ], "houdini_name": "use_rotation_motion_blur", "houdini_label": "Use Rotation Motion Blur", - "order": 34, + "order": 42, "aliases": [ "use_rotation_motion_blur" ], @@ -42538,7 +42827,7 @@ ], "houdini_name": "motion_blur_type", "houdini_label": "Motion Blur Type", - "order": 35, + "order": 43, "aliases": [ "motion blur type" ], @@ -42568,7 +42857,7 @@ ], "houdini_name": "curved_motion_blur_sample_count", "houdini_label": "Curved Motion Blur Sample Count", - "order": 36, + "order": 44, "aliases": [ "curved motion blur sample count" ], @@ -42582,7 +42871,7 @@ ], "houdini_name": "primitive_attribute_frame", "houdini_label": "Primitive Attribute Frame", - "order": 37, + "order": 45, "help": "Which frame(s) do we take the primitive attributes from?\n\tO : first motion step\n\t1 : second motion step\n\t2 : both motion steps", "menu": [ "first motion step", @@ -42603,7 +42892,7 @@ ], "houdini_name": "use_explicit_shading_attributes", "houdini_label": "Use Explicit Shading Attributes", - "order": 38, + "order": 46, "aliases": [ "use_explicit_shading_attributes" ], @@ -42633,6 +42922,14 @@ "velocity_list_1", "accleration_list", "velocity_scale", + "local_motion_blur_position_list", + "local_motion_blur_orient_list", + "local_motion_blur_scale_list", + "local_motion_blur_radius_list", + "local_motion_blur_inner_radius_list", + "local_motion_blur_multiplier_list", + "local_motion_blur_strength_multiplier", + "local_motion_blur_radius_multiplier", "use_rotation_motion_blur", "motion_blur_type", "curved_motion_blur_sample_count", @@ -44045,6 +44342,20 @@ ], "help": "If \"result\" is \"material aov\", this attribute specifies a material aov expression to output. The expression format is: \n\t[('')+\\.][('')+\\.][('')+\\.][(SS|R|T|D|G|M)+\\.][fresnel\\.]. Where:\n\t\t is a label associated with the geometry \n\t\t is a label associated with the material \n\t\t is a lobe label \n\t\tR means reflection side lobe \n\t\tT means transmission side lobe \n\t\tD means diffuse lobe category \n\t\tG means glossy lobe category \n\t\tM means mirror lobe category \n\t\tSS means sub-surface component of the material \n\t\tfresnel means to select the lobe's or sub-surface's fresnel \n\t\t can be one of: \n\t\t\t'albedo' (bsdf lobe | subsurface) (RGB),\n\t\t\t'color' (bsdf lobe | subsurface | fresnel) (RGB),\n\t\t\t'depth' (state variable) (FLOAT),\n\t\t\t'dPds' (state variable) (VEC3F),\n\t\t\t'dPdt' (state variable) (VEC3F),\n\t\t\t'dSdx' (state variable) (FLOAT),\n\t\t\t'dSdy' (state variable) (FLOAT),\n\t\t\t'dTdx' (state variable) (FLOAT),\n\t\t\t'dTdy' (state variable) (FLOAT),\n\t\t\t'emission' (bsdf) (RGB),\n\t\t\t'factor' (fresnel) (FLOAT),\n\t\t\t'float:' (primitive attribute) (FLOAT),\n\t\t\t'matte' (bsdf lobe | subsurface) (FLOAT),\n\t\t\t'motionvec' (state variable) (VEC2F),\n\t\t\t'N' (state variable) (VEC3F),\n\t\t\t'Ng' (state variable) (VEC3F),\n\t\t\t'normal' (bsdf lobe | subsurface) (VEC3F),\n\t\t\t'P' (state variable) (VEC3F),\n\t\t\t'pbr_validity' (bsdf lobe | subsurface) (RGB),\n\t\t\t'radius' (subsurface) (RGB),\n\t\t\t'rgb:' (primitive attribute) (RGB),\n\t\t\t'roughness' (bsdf lobe) (fresnel) (VEC2F),\n\t\t\t'St' (state variable) (VEC2F),\n\t\t\t'vec2:' (primitive attribute) (VEC2F),\n\t\t\t'vec3:' (primitive attribute) (VEC3F),\n\t\t\t'Wp' (state variable) (VEC3F)\n\tExamples:\n\t\talbedo : Albedo of all rendered materials \n\t\tR.albedo : Total reflection albedo \n\t\t'spec'.MG.roughness : Roughness of all mirror and glossy lobes that have the 'spec' label" }, + "material_aov_secondary_rays": { + "moonray_name": "material_aov_secondary_rays", + "moonray_type": "Bool", + "default_value": [ + false + ], + "houdini_name": "material_aov_secondary_rays", + "houdini_label": "Material Aov Secondary Rays", + "order": 7, + "aliases": [ + "material aov secondary rays" + ], + "help": "When \"result\" is \"material aov\", this controls whether the material aov is evaluated on secondary (indirect) rays in addition to primary rays. Enabling this allows material aovs to appear behind refractive or reflective surfaces. Defaults to false for backward compatibility." + }, "lpe": { "moonray_name": "lpe", "moonray_type": "String", @@ -44053,7 +44364,7 @@ ], "houdini_name": "lpe", "houdini_label": "Lpe", - "order": 7, + "order": 8, "aliases": [ "light_aov", "light aov" @@ -44068,7 +44379,7 @@ ], "houdini_name": "visibility_aov", "houdini_label": "Visibility Aov", - "order": 8, + "order": 9, "help": "If \"result\" is \"visibility aov\", this attribute specifies a light path expression that defines the set of all paths usedto compute the visibility ratio." }, "file_name": { @@ -44079,7 +44390,7 @@ ], "houdini_name": "file_name", "houdini_label": "File Name", - "order": 9, + "order": 10, "aliases": [ "file name" ], @@ -44093,7 +44404,7 @@ ], "houdini_name": "file_part", "houdini_label": "File Part", - "order": 10, + "order": 11, "aliases": [ "file part" ], @@ -44107,7 +44418,7 @@ ], "houdini_name": "compression", "houdini_label": "Compression", - "order": 11, + "order": 12, "help": "Compression used for file (or file part in the multi-part case). All render outputs that target the same image must specify the same compression.", "menu": [ "none", @@ -44142,7 +44453,7 @@ ], "houdini_name": "exr_dwa_compression_level", "houdini_label": "Exr Dwa Compression Level", - "order": 12, + "order": 13, "aliases": [ "exr dwa compression level" ], @@ -44156,7 +44467,7 @@ ], "houdini_name": "channel_name", "houdini_label": "Channel Name", - "order": 13, + "order": 14, "aliases": [ "channel name" ], @@ -44170,7 +44481,7 @@ ], "houdini_name": "channel_suffix_mode", "houdini_label": "Channel Suffix Mode", - "order": 14, + "order": 15, "help": "When processing multi-channel outputs, how should channel names be suffixed?\n\tauto : a best guess suffix is chosen based on the type of output\n\trgb : .R, .G, .B\n\txyz : .X, .Y, .Z\n\tuvw : .U, .V, .W", "menu": [ "auto", @@ -44193,7 +44504,7 @@ ], "houdini_name": "channel_format", "houdini_label": "Channel Format", - "order": 15, + "order": 16, "aliases": [ "channel format" ], @@ -44215,7 +44526,7 @@ ], "houdini_name": "math_filter", "houdini_label": "Math Filter", - "order": 16, + "order": 17, "aliases": [ "math filter" ], @@ -44243,7 +44554,7 @@ "default_value": [], "houdini_name": "exr_header_attributes", "houdini_label": "Exr Header Attributes", - "order": 17, + "order": 18, "interface": "Metadata", "aliases": [ "exr header attributes" @@ -44258,7 +44569,7 @@ ], "houdini_name": "denoiser_input", "houdini_label": "Denoiser Input", - "order": 18, + "order": 19, "help": "How to use this output as a denoiser input", "menu": [ "not an input", @@ -44279,7 +44590,7 @@ ], "houdini_name": "denoise", "houdini_label": "Denoise", - "order": 19, + "order": 20, "help": "Run optix denoiser before writing to disk" }, "checkpoint_file_name": { @@ -44290,7 +44601,7 @@ ], "houdini_name": "checkpoint_file_name", "houdini_label": "Checkpoint File Name", - "order": 20, + "order": 21, "aliases": [ "checkpoint file name" ], @@ -44304,7 +44615,7 @@ ], "houdini_name": "checkpoint_multi_version_file_name", "houdini_label": "Checkpoint Multi Version File Name", - "order": 21, + "order": 22, "aliases": [ "checkpoint multi version file name" ], @@ -44318,7 +44629,7 @@ ], "houdini_name": "resume_file_name", "houdini_label": "Resume File Name", - "order": 22, + "order": 23, "aliases": [ "resume file name" ], @@ -44332,7 +44643,7 @@ ], "houdini_name": "cryptomatte_depth", "houdini_label": "Cryptomatte Depth", - "order": 23, + "order": 24, "help": "Number of cryptomatte (id,coverage) data sets to output" }, "cryptomatte_output_positions": { @@ -44343,7 +44654,7 @@ ], "houdini_name": "cryptomatte_output_positions", "houdini_label": "Cryptomatte Output Positions", - "order": 24, + "order": 25, "help": "Whether to output position data per cryptomatte id" }, "cryptomatte_output_p0": { @@ -44354,7 +44665,7 @@ ], "houdini_name": "cryptomatte_output_p0", "houdini_label": "Cryptomatte Output P0", - "order": 25, + "order": 26, "help": "Whether to output p0 data per cryptomatte id" }, "cryptomatte_output_normals": { @@ -44365,7 +44676,7 @@ ], "houdini_name": "cryptomatte_output_normals", "houdini_label": "Cryptomatte Output Normals", - "order": 26, + "order": 27, "help": "Whether to output shading normal data per cryptomatte id" }, "cryptomatte_output_beauty": { @@ -44376,7 +44687,7 @@ ], "houdini_name": "cryptomatte_output_beauty", "houdini_label": "Cryptomatte Output Beauty", - "order": 27, + "order": 28, "help": "Whether to output beauty data per cryptomatte id" }, "cryptomatte_output_refp": { @@ -44387,7 +44698,7 @@ ], "houdini_name": "cryptomatte_output_refp", "houdini_label": "Cryptomatte Output Refp", - "order": 28, + "order": 29, "help": "Whether to output refp data per cryptomatte id" }, "cryptomatte_output_refn": { @@ -44398,7 +44709,7 @@ ], "houdini_name": "cryptomatte_output_refn", "houdini_label": "Cryptomatte Output Refn", - "order": 29, + "order": 30, "help": "Whether to output refn data per cryptomatte id" }, "cryptomatte_output_uv": { @@ -44409,7 +44720,7 @@ ], "houdini_name": "cryptomatte_output_uv", "houdini_label": "Cryptomatte Output Uv", - "order": 30, + "order": 31, "help": "Whether to output uv data per cryptomatte id" }, "cryptomatte_support_resume_render": { @@ -44420,7 +44731,7 @@ ], "houdini_name": "cryptomatte_support_resume_render", "houdini_label": "Cryptomatte Support Resume Render", - "order": 31, + "order": 32, "help": "Whether to add additional cryptomatte layers to support checkpoint/resume rendering" }, "cryptomatte_record_reflected": { @@ -44431,7 +44742,7 @@ ], "houdini_name": "cryptomatte_record_reflected", "houdini_label": "Cryptomatte Record Reflected", - "order": 32, + "order": 33, "aliases": [ "record reflected cryptomatte" ], @@ -44445,7 +44756,7 @@ ], "houdini_name": "cryptomatte_record_refracted", "houdini_label": "Cryptomatte Record Refracted", - "order": 33, + "order": 34, "aliases": [ "record refracted cryptomatte" ], @@ -44457,7 +44768,7 @@ "default_value": [], "houdini_name": "camera", "houdini_label": "Camera", - "order": 34, + "order": 35, "interface": "Camera", "help": "Camera to use for this output. If not specified, defaults to the primary camera." }, @@ -44467,7 +44778,7 @@ "default_value": [], "houdini_name": "display_filter", "houdini_label": "Display Filter", - "order": 35, + "order": 36, "interface": "DisplayFilter", "help": "If \"result\" is \"display filter\", this attribute refers to a display filter object which is used to compute the output pixel values." } @@ -46531,6 +46842,133 @@ ], "help": "The color to use for materials or map shaders that are unable to execute shading, usually due to incomplete initialization." }, + "fatal_bool": { + "moonray_name": "fatal_bool", + "moonray_type": "Bool", + "default_value": [ + false + ], + "houdini_name": "fatal_bool", + "houdini_label": "Fatal Bool", + "order": 106, + "aliases": [ + "fatal bool" + ], + "help": "The bool to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + }, + "fatal_int": { + "moonray_name": "fatal_int", + "moonray_type": "Int", + "default_value": [ + 0 + ], + "houdini_name": "fatal_int", + "houdini_label": "Fatal Int", + "order": 107, + "aliases": [ + "fatal int" + ], + "help": "The int to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + }, + "fatal_vec4f": { + "moonray_name": "fatal_vec4f", + "moonray_type": "Vec4f", + "default_value": [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + "houdini_name": "fatal_vec4f", + "houdini_label": "Fatal Vec4F", + "order": 108, + "aliases": [ + "fatal vec4f" + ], + "help": "The vec4f to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + }, + "fatal_rgba": { + "moonray_name": "fatal_rgba", + "moonray_type": "Rgba", + "default_value": [ + 1.0, + 0.0, + 1.0, + 1.0 + ], + "houdini_name": "fatal_rgba", + "houdini_label": "Fatal Rgba", + "order": 109, + "aliases": [ + "fatal rgba" + ], + "help": "The rgba to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + }, + "fatal_mat3f": { + "moonray_name": "fatal_mat3f", + "moonray_type": "Mat3f", + "default_value": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "houdini_name": "fatal_mat3f", + "houdini_label": "Fatal Mat3F", + "order": 110, + "aliases": [ + "fatal mat3f" + ], + "help": "The mat3f to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + }, + "fatal_mat4f": { + "moonray_name": "fatal_mat4f", + "moonray_type": "Mat4f", + "default_value": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "houdini_name": "fatal_mat4f", + "houdini_label": "Fatal Mat4F", + "order": 111, + "aliases": [ + "fatal mat4f" + ], + "help": "The mat4f to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + }, "stats_file": { "moonray_name": "stats_file", "moonray_type": "String", @@ -46539,7 +46977,7 @@ ], "houdini_name": "stats_file", "houdini_label": "Stats File", - "order": 106, + "order": 112, "aliases": [ "stats file" ], @@ -46553,7 +46991,7 @@ ], "houdini_name": "athena_debug", "houdini_label": "Athena Debug", - "order": 107, + "order": 113, "aliases": [ "athena debug" ], @@ -46568,7 +47006,7 @@ ], "houdini_name": "debug_pixel", "houdini_label": "Debug Pixel", - "order": 108, + "order": 114, "aliases": [ "debug pixel" ], @@ -46582,7 +47020,7 @@ ], "houdini_name": "debug_console", "houdini_label": "Debug Console", - "order": 109, + "order": 115, "aliases": [ "debug console" ], @@ -46596,7 +47034,7 @@ ], "houdini_name": "validate_geometry", "houdini_label": "Validate Geometry", - "order": 110, + "order": 116, "aliases": [ "validate geometry" ], @@ -46610,7 +47048,7 @@ ], "houdini_name": "cryptomatte_multi_presence", "houdini_label": "Cryptomatte Multi Presence", - "order": 111, + "order": 117, "help": "Determines whether to record presence bounces as separate cryptomatte samples." } }, @@ -54932,6 +55370,42 @@ "order": 17, "help": "vec3f type user data values for motion step 1" }, + "mat3f_key": { + "moonray_name": "mat3f_key", + "moonray_type": "String", + "default_value": [ + "" + ], + "houdini_name": "mat3f_key", + "houdini_label": "Mat3F Key", + "order": 18, + "aliases": [ + "mat3f key" + ], + "help": "key name for mat3f type user data" + }, + "mat3f_values_0": { + "moonray_name": "mat3f_values_0", + "moonray_type": "Mat3fVector", + "default_value": [], + "houdini_name": "mat3f_values_0", + "houdini_label": "Mat3F Values 0", + "order": 19, + "aliases": [ + "mat3f_values", + "mat3f values" + ], + "help": "mat3f type user data values for motion step 0" + }, + "mat3f_values_1": { + "moonray_name": "mat3f_values_1", + "moonray_type": "Mat3fVector", + "default_value": [], + "houdini_name": "mat3f_values_1", + "houdini_label": "Mat3F Values 1", + "order": 20, + "help": "mat3f type user data values for motion step 1" + }, "mat4f_key": { "moonray_name": "mat4f_key", "moonray_type": "String", @@ -54940,7 +55414,7 @@ ], "houdini_name": "mat4f_key", "houdini_label": "Mat4F Key", - "order": 18, + "order": 21, "aliases": [ "mat4f key" ], @@ -54952,7 +55426,7 @@ "default_value": [], "houdini_name": "mat4f_values_0", "houdini_label": "Mat4F Values 0", - "order": 19, + "order": 22, "aliases": [ "mat4f_values", "mat4f values" @@ -54965,7 +55439,7 @@ "default_value": [], "houdini_name": "mat4f_values_1", "houdini_label": "Mat4F Values 1", - "order": 20, + "order": 23, "help": "mat4f type user data values for motion step 1" }, "rate": { @@ -54976,7 +55450,7 @@ ], "houdini_name": "rate", "houdini_label": "Rate", - "order": 21, + "order": 24, "aliases": [ "rate" ], @@ -55696,6 +56170,158 @@ ] } }, + "VdbVolume": { + "moonray_name": "VdbVolume", + "moonray_type": "Volume", + "parms": { + "label": { + "moonray_name": "label", + "moonray_type": "String", + "default_value": [ + "" + ], + "houdini_name": "label", + "houdini_label": "Label", + "order": 0, + "help": "label used in light aovs" + }, + "bake_resolution_mode": { + "moonray_name": "bake_resolution_mode", + "moonray_type": "Int", + "default_value": [ + 0 + ], + "houdini_name": "bake_resolution_mode", + "houdini_label": "Bake Resolution Mode", + "order": 1, + "help": "Method to specify grid resolution of baked density grid. Choices are:\n\t\t\"default\": For shaders that are bound to vdb volumes, use vdb resolution.\n\t\t\t\t\t\tFor shaders that are bounds to mesh geometries use 100 divisions\n\t\t\"divisions\": Specify number of divisions.\n\t\t\"voxel size\": Specify voxel size.", + "menu": [ + "default", + "divisions", + "voxel size" + ], + "menu_values": [ + "0", + "1", + "2" + ] + }, + "bake_divisions": { + "moonray_name": "bake_divisions", + "moonray_type": "Int", + "default_value": [ + 100 + ], + "houdini_name": "bake_divisions", + "houdini_label": "Bake Divisions", + "order": 2, + "help": "Divide widest axis by this many divisions" + }, + "bake_voxel_size": { + "moonray_name": "bake_voxel_size", + "moonray_type": "Float", + "default_value": [ + 10.0 + ], + "houdini_name": "bake_voxel_size", + "houdini_label": "Bake Voxel Size", + "order": 3, + "help": "Size of voxel in world space" + }, + "surface_opacity_threshold": { + "moonray_name": "surface_opacity_threshold", + "moonray_type": "Float", + "default_value": [ + 0.5 + ], + "houdini_name": "surface_opacity_threshold", + "houdini_label": "Surface Opacity Threshold", + "order": 4, + "help": "Accumulated opacity that's considered the 'surface' for computing surface position and Z" + }, + "opacity_gain_mult": { + "moonray_name": "opacity_gain_mult", + "moonray_type": "Rgb", + "default_value": [ + 1.0, + 1.0, + 1.0 + ], + "houdini_name": "opacity_gain_mult", + "houdini_label": "Opacity Gain Mult", + "order": 5, + "aliases": [ + "opacity gain mult" + ], + "bindable": true, + "help": "A multiplier applied to the volume density" + }, + "color_mult": { + "moonray_name": "color_mult", + "moonray_type": "Rgb", + "default_value": [ + 1.0, + 1.0, + 1.0 + ], + "houdini_name": "color_mult", + "houdini_label": "Color Mult", + "order": 6, + "aliases": [ + "color mult" + ], + "bindable": true, + "help": "The albedo of the volume" + }, + "incandescence_gain_mult": { + "moonray_name": "incandescence_gain_mult", + "moonray_type": "Rgb", + "default_value": [ + 1.0, + 1.0, + 1.0 + ], + "houdini_name": "incandescence_gain_mult", + "houdini_label": "Incandescence Gain Mult", + "order": 7, + "aliases": [ + "incandescence gain mult" + ], + "bindable": true, + "help": "A multiplier applied to the volume emission" + }, + "anisotropy": { + "moonray_name": "anisotropy", + "moonray_type": "Float", + "default_value": [ + 0.0 + ], + "houdini_name": "anisotropy", + "houdini_label": "Anisotropy", + "order": 8, + "bindable": true, + "help": "Value in the interval [-1,1] that defines how foward (1) or backward (-1) scattering the volume is. A value of 0.0 indicates an isotropic volume." + } + }, + "folders_sorted": [ + "Volume Baking", + "Volume" + ], + "folders_with_parms": { + "Volume": [ + "surface_opacity_threshold", + "opacity_gain_mult", + "color_mult", + "incandescence_gain_mult", + "anisotropy" + ], + "Volume Baking": [ + "bake_resolution_mode", + "bake_divisions", + "bake_voxel_size" + ] + } + }, "VectorDisplacement": { "moonray_name": "VectorDisplacement", "moonray_type": "Displacement", diff --git a/houdini/otls/Vop::DW_MOONRAY::AttributeMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::AttributeMap::1.hda index 48ef3d7..997e306 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::AttributeMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::AttributeMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::AxisAngleMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::AxisAngleMap::1.hda index eefaec8..15d2539 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::AxisAngleMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::AxisAngleMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::BaseVolume::1.hda b/houdini/otls/Vop::DW_MOONRAY::BaseVolume::1.hda index ba16411..68c17dc 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::BaseVolume::1.hda and b/houdini/otls/Vop::DW_MOONRAY::BaseVolume::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::BlendDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::BlendDisplayFilter::1.hda index 8950f08..3fc2ed5 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::BlendDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::BlendDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::BlendMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::BlendMap::1.hda index 7edbff3..fab24ed 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::BlendMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::BlendMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::CheckerboardMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::CheckerboardMap::1.hda index b78d672..7765f66 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::CheckerboardMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::CheckerboardMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ClampDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::ClampDisplayFilter::1.hda index bcac244..f8b1dff 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ClampDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ClampDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ClampMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ClampMap::1.hda index 45590bf..c2970eb 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ClampMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ClampMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectContrastMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectContrastMap::1.hda index 75015d8..986aba6 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectContrastMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectContrastMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectDisplayFilter::1.hda index 8ad319e..e15e731 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGainOffsetMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGainOffsetMap::1.hda index e53391c..08f2fb1 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGainOffsetMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGainOffsetMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGammaMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGammaMap::1.hda index 7372c3a..f8a8171 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGammaMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectGammaMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHsvMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHsvMap::1.hda index b5b1d15..c1f3aea 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHsvMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHsvMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHueShiftMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHueShiftMap::1.hda index 7588cad..a002f60 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHueShiftMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectHueShiftMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectLegacyMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectLegacyMap::1.hda index 781d5ea..e267291 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectLegacyMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectLegacyMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectMap::1.hda index d99ea04..fcdec67 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectSaturationMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectSaturationMap::1.hda index e920c36..03d9527 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectSaturationMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectSaturationMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectTMIMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectTMIMap::1.hda index 89912a0..ef37e5b 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ColorCorrectTMIMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ColorCorrectTMIMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::CombineDisplacement::1.hda b/houdini/otls/Vop::DW_MOONRAY::CombineDisplacement::1.hda index 3df4ed0..9e2de45 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::CombineDisplacement::1.hda and b/houdini/otls/Vop::DW_MOONRAY::CombineDisplacement::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::CombineNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::CombineNormalMap::1.hda index 22bb66f..297a94f 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::CombineNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::CombineNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ConstantColorMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ConstantColorMap::1.hda index d7c1409..46c4936 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ConstantColorMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ConstantColorMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ConstantDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::ConstantDisplayFilter::1.hda index 29d087d..744cedd 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ConstantDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ConstantDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ConstantScalarMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ConstantScalarMap::1.hda index d894050..635f4da 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ConstantScalarMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ConstantScalarMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ConvolutionDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::ConvolutionDisplayFilter::1.hda index dc8641b..a48303a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ConvolutionDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ConvolutionDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::CurvatureMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::CurvatureMap::1.hda index c6061ec..8ffedbc 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::CurvatureMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::CurvatureMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::CutoutVolume::1.hda b/houdini/otls/Vop::DW_MOONRAY::CutoutVolume::1.hda index a0b8257..75960a9 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::CutoutVolume::1.hda and b/houdini/otls/Vop::DW_MOONRAY::CutoutVolume::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DebugMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::DebugMap::1.hda index 8905753..fbc9d8c 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DebugMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DebugMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DeformationMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::DeformationMap::1.hda index e964981..3689cfe 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DeformationMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DeformationMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DirectionalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::DirectionalMap::1.hda index 23a5871..7579711 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DirectionalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DirectionalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DiscretizeDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::DiscretizeDisplayFilter::1.hda index 1d4dbe4..54cf27f 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DiscretizeDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DiscretizeDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DistortNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::DistortNormalMap::1.hda index c36d086..37b7f1a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DistortNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DistortNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DofDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::DofDisplayFilter::1.hda index 12c12f2..00e275e 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DofDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DofDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaAdjustMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaAdjustMaterial::1.hda index 6f8f994..b0bc137 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaAdjustMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaAdjustMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaBaseMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaBaseMaterial::1.hda index 9921b1f..e3908a1 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaBaseMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaBaseMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaColorCorrectMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaColorCorrectMaterial::1.hda index f6358a1..8253317 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaColorCorrectMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaColorCorrectMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaEmissiveMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaEmissiveMaterial::1.hda index 1f0abf0..3afaff8 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaEmissiveMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaEmissiveMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaFabricMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaFabricMaterial::1.hda index 10f8f1d..a0d6a51 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaFabricMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaFabricMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaLayerMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaLayerMaterial::1.hda index ed64936..f73f968 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaLayerMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaLayerMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaMetalMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaMetalMaterial::1.hda index 609f0a7..e3ba120 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaMetalMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaMetalMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaMixMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaMixMaterial::1.hda index f5785de..8d162a1 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaMixMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaMixMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaRefractiveMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaRefractiveMaterial::1.hda index 98ceb76..9b00162 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaRefractiveMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaRefractiveMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaSkinMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaSkinMaterial::1.hda index bdd63c2..d1a5cfb 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaSkinMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaSkinMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaSolidDielectricMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaSolidDielectricMaterial::1.hda index e55d0a8..f296f2c 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaSolidDielectricMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaSolidDielectricMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaSwitchMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaSwitchMaterial::1.hda index b0251f6..0789a10 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaSwitchMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaSwitchMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaToonMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaToonMaterial::1.hda index 7daf4fe..1088537 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaToonMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaToonMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaTwoSidedMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::DwaTwoSidedMaterial::1.hda index 6c83934..0c2b43f 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaTwoSidedMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaTwoSidedMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::DwaVelvetMaterial::2.hda b/houdini/otls/Vop::DW_MOONRAY::DwaVelvetMaterial::2.hda index 330efe9..922bf2a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::DwaVelvetMaterial::2.hda and b/houdini/otls/Vop::DW_MOONRAY::DwaVelvetMaterial::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ExtraAovMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ExtraAovMap::1.hda index a8837eb..8a9fd1c 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ExtraAovMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ExtraAovMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::FloatToRgbMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::FloatToRgbMap::1.hda index 56e0645..d1193ec 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::FloatToRgbMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::FloatToRgbMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::GradientMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::GradientMap::1.hda index 1871cd9..566baad 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::GradientMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::GradientMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairColorCorrectMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::HairColorCorrectMaterial::1.hda index bafd8fd..f958f20 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairColorCorrectMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HairColorCorrectMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairColorPresetsMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::HairColorPresetsMap::1.hda index afd136c..90027a9 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairColorPresetsMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HairColorPresetsMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairColumnMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::HairColumnMap::1.hda index 343ab8f..9d8d306 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairColumnMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HairColumnMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairDiffuseMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::HairDiffuseMaterial::1.hda index 716b29d..229d07f 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairDiffuseMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HairDiffuseMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairLayerMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::HairLayerMaterial::1.hda index 986b8c0..ea8b295 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairLayerMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HairLayerMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::HairMap::1.hda index b9ff9c8..ce2e049 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HairMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairMaterial::3.hda b/houdini/otls/Vop::DW_MOONRAY::HairMaterial::3.hda index 34ed2c7..306fca7 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairMaterial::3.hda and b/houdini/otls/Vop::DW_MOONRAY::HairMaterial::3.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HairToonMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::HairToonMaterial::1.hda index a74016f..e39de41 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HairToonMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HairToonMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HalftoneDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::HalftoneDisplayFilter::1.hda index 8c76fb3..5550441 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HalftoneDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HalftoneDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::HsvToRgbMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::HsvToRgbMap::1.hda index 84f1af9..74f28c4 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::HsvToRgbMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::HsvToRgbMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ImageDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::ImageDisplayFilter::1.hda index a686416..e79022a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ImageDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ImageDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ImageMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ImageMap::1.hda index f05d663..03c3255 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ImageMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ImageMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ImageNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ImageNormalMap::1.hda index 16dfa48..2a50de9 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ImageNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ImageNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::LODMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::LODMap::1.hda index 2c6c686..a07b8b4 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::LODMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::LODMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::LayerMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::LayerMap::1.hda index ddaa65a..e06cbf2 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::LayerMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::LayerMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::LayerMap::2.hda b/houdini/otls/Vop::DW_MOONRAY::LayerMap::2.hda index 96bcf30..5dd98f5 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::LayerMap::2.hda and b/houdini/otls/Vop::DW_MOONRAY::LayerMap::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ListMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ListMap::1.hda index 7b163a1..9e236a7 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ListMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ListMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::MultiChannelToFloatMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::MultiChannelToFloatMap::1.hda index 6c0c25e..5a24d2a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::MultiChannelToFloatMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::MultiChannelToFloatMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::NoiseMap::2.hda b/houdini/otls/Vop::DW_MOONRAY::NoiseMap::2.hda index f1b76fa..f6d94fc 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::NoiseMap::2.hda and b/houdini/otls/Vop::DW_MOONRAY::NoiseMap::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::2.hda b/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::2.hda index 33ee6d3..301956d 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::2.hda and b/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::3.hda b/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::3.hda index 83795a0..5e5259e 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::3.hda and b/houdini/otls/Vop::DW_MOONRAY::NoiseWorleyMap::3.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::NormalDisplacement::1.hda b/houdini/otls/Vop::DW_MOONRAY::NormalDisplacement::1.hda index 1aa138f..e3d867a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::NormalDisplacement::1.hda and b/houdini/otls/Vop::DW_MOONRAY::NormalDisplacement::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::NormalToRgbMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::NormalToRgbMap::1.hda index f1881c6..380da53 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::NormalToRgbMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::NormalToRgbMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::OpDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::OpDisplayFilter::1.hda index 2adc046..846cea5 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::OpDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::OpDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::OpMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::OpMap::1.hda index 020e194..54055d5 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::OpMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::OpMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::OpSqrtMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::OpSqrtMap::1.hda index 3d698a2..b91d2c3 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::OpSqrtMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::OpSqrtMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::1.hda index 8e9acc4..7ea4c50 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::2.hda b/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::2.hda index 617fefc..b20515f 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::2.hda and b/houdini/otls/Vop::DW_MOONRAY::OpenVdbMap::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::OverDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::OverDisplayFilter::1.hda index 9712ce1..7d73188 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::OverDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::OverDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::1.hda index aac960d..eb261a0 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::2.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::2.hda index c8ce191..5733171 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::2.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectCameraMap::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectCameraNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectCameraNormalMap::1.hda index 6ce989f..2910e87 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectCameraNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectCameraNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectCylindricalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectCylindricalMap::1.hda index e9de1bb..0020777 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectCylindricalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectCylindricalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarMap::1.hda index ac3721e..96b1d5a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarNormalMap::1.hda index 0cce378..ef6c68d 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectPlanarNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectSphericalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectSphericalMap::1.hda index 4995b8d..ae7e4d4 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectSphericalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectSphericalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::1.hda index 776bcf6..64951ae 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::2.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::2.hda index 5326b67..fec1844 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::2.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarMap::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::1.hda index 332a4da..717bb4d 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::2.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::2.hda index cd5ffe4..4e86798 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::2.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarNormalMap::2.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarUdimMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarUdimMap::1.hda index 9f1eb70..1dc9bfe 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarUdimMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ProjectTriplanarUdimMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RampDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::RampDisplayFilter::1.hda index aef571f..7266e45 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RampDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RampDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RampMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RampMap::1.hda index 946946a..2501a43 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RampMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RampMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RandomMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RandomMap::1.hda index 5ff678e..af3b4b1 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RandomMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RandomMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RandomNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RandomNormalMap::1.hda index 39eb0d7..71db6d5 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RandomNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RandomNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RaySwitchMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::RaySwitchMaterial::1.hda index 702fb5e..0045411 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RaySwitchMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RaySwitchMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RemapDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::RemapDisplayFilter::1.hda index 8641643..1fd35e4 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RemapDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RemapDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RemapMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RemapMap::1.hda index 3747662..d534845 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RemapMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RemapMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RgbToFloatDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::RgbToFloatDisplayFilter::1.hda index dbb7266..cca2372 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RgbToFloatDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RgbToFloatDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RgbToFloatMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RgbToFloatMap::1.hda index 4523109..e1c4222 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RgbToFloatMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RgbToFloatMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RgbToHsvDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::RgbToHsvDisplayFilter::1.hda index e565777..e498f5d 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RgbToHsvDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RgbToHsvDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RgbToHsvMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RgbToHsvMap::1.hda index 9d9043e..656c958 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RgbToHsvMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RgbToHsvMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RgbToLabMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RgbToLabMap::1.hda index 618a8bf..97b6969 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RgbToLabMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RgbToLabMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::RgbToNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::RgbToNormalMap::1.hda index b36e586..1037310 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::RgbToNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::RgbToNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ShadowDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::ShadowDisplayFilter::1.hda index 26c6c92..a9adb3b 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ShadowDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ShadowDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::SwitchColorMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::SwitchColorMap::1.hda index 5dc098e..0108571 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::SwitchColorMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::SwitchColorMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::SwitchDisplacement::1.hda b/houdini/otls/Vop::DW_MOONRAY::SwitchDisplacement::1.hda index 842dbf8..1c2b41c 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::SwitchDisplacement::1.hda and b/houdini/otls/Vop::DW_MOONRAY::SwitchDisplacement::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::SwitchFloatMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::SwitchFloatMap::1.hda index 5b396e2..3202da6 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::SwitchFloatMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::SwitchFloatMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::SwitchMaterial::1.hda b/houdini/otls/Vop::DW_MOONRAY::SwitchMaterial::1.hda index c285cf1..5f6732b 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::SwitchMaterial::1.hda and b/houdini/otls/Vop::DW_MOONRAY::SwitchMaterial::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::SwitchNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::SwitchNormalMap::1.hda index ddedab1..e07c36d 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::SwitchNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::SwitchNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::TangentSpaceDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::TangentSpaceDisplayFilter::1.hda index 60a5026..979b441 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::TangentSpaceDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::TangentSpaceDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ToonDisplayFilter::1.hda b/houdini/otls/Vop::DW_MOONRAY::ToonDisplayFilter::1.hda index 3a45ea1..57cd776 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ToonDisplayFilter::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ToonDisplayFilter::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::ToonMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::ToonMap::1.hda index 7e77d60..d44a8c5 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::ToonMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::ToonMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::TransformNormalMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::TransformNormalMap::1.hda index c015823..a51920b 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::TransformNormalMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::TransformNormalMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::TransformSpaceMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::TransformSpaceMap::1.hda index bf64566..b31a490 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::TransformSpaceMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::TransformSpaceMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::TwoSidedMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::TwoSidedMap::1.hda index 489a9fe..d91d688 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::TwoSidedMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::TwoSidedMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::UVTransformMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::UVTransformMap::1.hda index 11b487e..9fc3833 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::UVTransformMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::UVTransformMap::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::VdbVolume::1.hda b/houdini/otls/Vop::DW_MOONRAY::VdbVolume::1.hda new file mode 100644 index 0000000..17b7c9e Binary files /dev/null and b/houdini/otls/Vop::DW_MOONRAY::VdbVolume::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::VectorDisplacement::1.hda b/houdini/otls/Vop::DW_MOONRAY::VectorDisplacement::1.hda index ad715f0..9798340 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::VectorDisplacement::1.hda and b/houdini/otls/Vop::DW_MOONRAY::VectorDisplacement::1.hda differ diff --git a/houdini/otls/Vop::DW_MOONRAY::WireframeMap::1.hda b/houdini/otls/Vop::DW_MOONRAY::WireframeMap::1.hda index 02b00f5..4ba281a 100644 Binary files a/houdini/otls/Vop::DW_MOONRAY::WireframeMap::1.hda and b/houdini/otls/Vop::DW_MOONRAY::WireframeMap::1.hda differ diff --git a/houdini/soho/parameters/HdMoonrayRendererPlugin_Aov.ds b/houdini/soho/parameters/HdMoonrayRendererPlugin_Aov.ds index c3311b7..4ebbeaf 100644 --- a/houdini/soho/parameters/HdMoonrayRendererPlugin_Aov.ds +++ b/houdini/soho/parameters/HdMoonrayRendererPlugin_Aov.ds @@ -200,6 +200,28 @@ disablewhen "{ xn__parametersmoonraymaterial_aov_control_g1bh == block } { xn__parametersmoonraymaterial_aov_control_g1bh == none }" parmtag { "usdvaluetype" "string" } } + parm { + name "xn__parametersmoonraymaterial_aov_secondary_rays_control_vqch" + label "parameters:moonray:material_aov_secondary_rays" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__parametersmoonraymaterial_aov_secondary_rays_udch" + label "Material Aov Secondary Rays" + type toggle + default { "0" } + help "When \"result\" is \"material aov\", this controls whether the material aov is evaluated on secondary (indirect) rays in addition to primary rays. Enabling this allows material aovs to appear behind refractive or reflective surfaces. Defaults to false for backward compatibility." + disablewhen "{ xn__parametersmoonraymaterial_aov_secondary_rays_control_vqch == block } { xn__parametersmoonraymaterial_aov_secondary_rays_control_vqch == none }" + parmtag { "usdvaluetype" "bool" } + } parm { name "xn__parametersmoonraylpe_control_smbh" label "parameters:moonray:lpe" diff --git a/houdini/soho/parameters/HdMoonrayRendererPlugin_Geometry.ds b/houdini/soho/parameters/HdMoonrayRendererPlugin_Geometry.ds index dbb1c41..89dc5cc 100644 --- a/houdini/soho/parameters/HdMoonrayRendererPlugin_Geometry.ds +++ b/houdini/soho/parameters/HdMoonrayRendererPlugin_Geometry.ds @@ -515,4 +515,1580 @@ } } + group { + name "folder2" + label "Box" + + parm { + name "xn__primvarsmoonraysize_control_3kbh" + label "primvars:moonray:size" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraysize_26ah" + label "Size" + type vector + size 3 + default { "1" "1" "1" } + help "The size of the box" + disablewhen "{ xn__primvarsmoonraysize_control_3kbh == block } { xn__primvarsmoonraysize_control_3kbh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "vector3f" } + } + } + + group { + name "folder3" + label "RdlCurve" + + parm { + name "xn__primvarsmoonraycurves_vertex_count_control_j9bh" + label "primvars:moonray:curves_vertex_count" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "curves_vertex_count" + label "Curves Vertex Count" + default 0 + disablewhen "{ xn__primvarsmoonraycurves_vertex_count_control_j9bh == block } { xn__primvarsmoonraycurves_vertex_count_control_j9bh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonraycurves_vertex_count_iwbh#" + label "Curves Vertex Count" + type integer + default { "0" } + help "List of vertices per curve" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonrayradius_list_control_iwbh" + label "primvars:moonray:radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "radius_list" + label "Radius List" + default 0 + disablewhen "{ xn__primvarsmoonrayradius_list_control_iwbh == block } { xn__primvarsmoonrayradius_list_control_iwbh == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonrayradius_list_hjbh#" + label "Radius List" + type float + default { "0" } + help "List of radius values. The rate will be determined based on the number of values. A single value will be interpreted as constant. If the number of values matches the number of curves, the rate will be interpreted as uniform. If the number of values matches the number of vertices, the rate will be interpreted as vertex." + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonrayuse_screen_space_radius_control_1gch" + label "primvars:moonray:use_screen_space_radius" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayuse_screen_space_radius_02bh" + label "Use Screen Space Radius" + type toggle + default { "0" } + help "Radius is applied in screen space" + disablewhen "{ xn__primvarsmoonrayuse_screen_space_radius_control_1gch == block } { xn__primvarsmoonrayuse_screen_space_radius_control_1gch == none }" + parmtag { "usdvaluetype" "bool" } + } + parm { + name "xn__primvarsmoonraypart_list_control_8sbh" + label "primvars:moonray:part_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "part_list" + label "Part List" + default 0 + disablewhen "{ xn__primvarsmoonraypart_list_control_8sbh == block } { xn__primvarsmoonraypart_list_control_8sbh == none }" + parmtag { "usdvaluetype" "string[]" } + + parm { + name "xn__primvarsmoonraypart_list_7fbh#" + label "Part List" + type string + default { "" } + help "List of part names, used in conjunction with 'part_indices' to assign per-part materials" + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraypart_indices_control_4xbh" + label "primvars:moonray:part_indices" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "part_indices" + label "Part Indices" + default 0 + disablewhen "{ xn__primvarsmoonraypart_indices_control_4xbh == block } { xn__primvarsmoonraypart_indices_control_4xbh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonraypart_indices_3kbh#" + label "Part Indices" + type integer + default { "0" } + help "List of part indices. No index should have a value greater than the size of 'curves_vertex_count'" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonrayvelocity_scale_control_e1bh" + label "primvars:moonray:velocity_scale" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayvelocity_scale_dobh" + label "Velocity Scale" + type float + default { "1" } + help "Adjusts magnitude of velocity-based motion blur" + disablewhen "{ xn__primvarsmoonrayvelocity_scale_control_e1bh == block } { xn__primvarsmoonrayvelocity_scale_control_e1bh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonraycurve_type_control_vubh" + label "primvars:moonray:curve_type" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraycurve_type_uhbh" + label "Curve Type" + type string + default { "bezier" } + help "Curve interpolation type is linear, bezier, or bspline" + disablewhen "{ xn__primvarsmoonraycurve_type_control_vubh == block } { xn__primvarsmoonraycurve_type_control_vubh == none }" + menu { + "linear" "Linear" + "bezier" "Bezier" + "bspline" "Bspline" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonrayprimitive_attributes_control_5bch" + label "primvars:moonray:primitive_attributes" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "primitive_attributes" + label "Primitive Attributes" + default 0 + disablewhen "{ xn__primvarsmoonrayprimitive_attributes_control_5bch == block } { xn__primvarsmoonrayprimitive_attributes_control_5bch == none }" + parmtag { "usdvaluetype" "" } + + parm { + name "xn__primvarsmoonrayprimitive_attributes_4xbh#" + label "Primitive Attributes" + type oppath + default { "" } + help "Vector of UserData. Each key/value pair will be added as a primitive attribute of the curves." + parmtag { "moonray::is_parm" "1" } + parmtag { "oprelative" "." } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch" + label "primvars:moonray:local_motion_blur_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_radius_list" + label "Local Motion Blur Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == block } { xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_sdch#" + label "Local Motion Blur Radius List" + type float + default { "0" } + help "Per-point outer radius for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch" + label "primvars:moonray:local_motion_blur_inner_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_inner_radius_list" + label "Local Motion Blur Inner Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_knch#" + label "Local Motion Blur Inner Radius List" + type float + default { "0" } + help "Per-point inner radius for each local motion blur region (full-strength core). If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch" + label "primvars:moonray:local_motion_blur_multiplier_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_multiplier_list" + label "Local Motion Blur Multiplier List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == block } { xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_bkch#" + label "Local Motion Blur Multiplier List" + type float + default { "0" } + help "Per-point motion blur strength multiplier for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch" + label "primvars:moonray:local_motion_blur_strength_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_tqch" + label "Local Motion Blur Strength Multiplier" + type float + default { "1" } + help "Global strength multiplier for local motion blur application" + disablewhen "{ use_local_motion_blur == 0 } { xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == block } { xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch" + label "primvars:moonray:local_motion_blur_radius_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_knch" + label "Local Motion Blur Radius Multiplier" + type float + default { "1" } + help "Global radius multiplier applied to per-region radius values, whether supplied via the \"radius\"/\"inner_radius\" point attributes or the \"local_motion_blur_radius_list\"/\"local_motion_blur_inner_radius_list\" explicit list attributes" + disablewhen "{ use_local_motion_blur == 0 } { xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonraytessellation_rate_control_95bh" + label "primvars:moonray:tessellation_rate" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraytessellation_rate_8sbh" + label "Tessellation Rate" + type integer + default { "4" } + help "Number of segments to split curve spans into" + disablewhen "{ xn__primvarsmoonraytessellation_rate_control_95bh == block } { xn__primvarsmoonraytessellation_rate_control_95bh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "int" } + } + parm { + name "xn__primvarsmoonraycurves_subtype_control_e1bh" + label "primvars:moonray:curves_subtype" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraycurves_subtype_dobh" + label "Curves Subtype" + type string + default { "ray_facing" } + help "Selects the style the curves are rendered" + disablewhen "{ xn__primvarsmoonraycurves_subtype_control_e1bh == block } { xn__primvarsmoonraycurves_subtype_control_e1bh == none }" + menu { + "ray_facing" "Ray_Facing" + "round" "Round" + "normal_oriented" "Normal_Oriented" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonrayuse_rotation_motion_blur_control_oich" + label "primvars:moonray:use_rotation_motion_blur" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayuse_rotation_motion_blur_n4bh" + label "Use Rotation Motion Blur" + type toggle + default { "0" } + help "If \"xform\" is time varying and motion blur is enabled, enabling this feature can produce a curved rotation trail. Enabling this feature will disable adaptive tessellation for this mesh" + disablewhen "{ xn__primvarsmoonrayuse_rotation_motion_blur_control_oich == block } { xn__primvarsmoonrayuse_rotation_motion_blur_control_oich == none }" + parmtag { "usdvaluetype" "bool" } + } + parm { + name "xn__primvarsmoonraymotion_blur_type_control_n4bh" + label "primvars:moonray:motion_blur_type" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraymotion_blur_type_mrbh" + label "Motion Blur Type" + type string + default { "best" } + help "Motion blur type for PolygonMesh/Points/Curves.\n\"static\" will treat the mesh as static.\n\"velocity\" will blur using the supplied vertex positions and velocities.\n\"frame delta\" will interpolate between the two supplied vertex positions.\n\"acceleration\" will blur using the supplied vertex positions, velocities and accelerations.\n\"hermite\" will use supplied pair of positions and pair of velocities to interpolate along a cubic Hermite curve.\n\"best\" will use choose the method which provides the highest quality given the available data.\n" + disablewhen "{ xn__primvarsmoonraymotion_blur_type_control_n4bh == block } { xn__primvarsmoonraymotion_blur_type_control_n4bh == none }" + menu { + "best" "Best" + "static" "Static" + "velocity" "Velocity" + "frame delta" "Frame Delta" + "acceleration" "Acceleration" + "hermite" "Hermite" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonraycurved_motion_blur_sample_count_control_2tch" + label "primvars:moonray:curved_motion_blur_sample_count" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraycurved_motion_blur_sample_count_1gch" + label "Curved Motion Blur Sample Count" + type integer + default { "10" } + help "Number of time samples generated along each curve when using curved motion blur" + disablewhen "{ xn__primvarsmoonraycurved_motion_blur_sample_count_control_2tch == block } { xn__primvarsmoonraycurved_motion_blur_sample_count_control_2tch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "int" } + } + parm { + name "xn__primvarsmoonrayprimitive_attribute_frame_control_bkch" + label "primvars:moonray:primitive_attribute_frame" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayprimitive_attribute_frame_95bh" + label "Primitive Attribute Frame" + type string + default { "both motion steps" } + help "Which frame(s) do we take the primitive attributes from?\n O : first motion step\n 1 : second motion step\n 2 : both motion steps" + disablewhen "{ xn__primvarsmoonrayprimitive_attribute_frame_control_bkch == block } { xn__primvarsmoonrayprimitive_attribute_frame_control_bkch == none }" + menu { + "first motion step" "First Motion Step" + "second motion step" "Second Motion Step" + "both motion steps" "Both Motion Steps" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonrayuse_explicit_shading_attributes_control_2tch" + label "primvars:moonray:use_explicit_shading_attributes" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayuse_explicit_shading_attributes_1gch" + label "Use Explicit Shading Attributes" + type toggle + default { "0" } + help "Enable the use of explicit shading attributes (N, dPds, dPdt) if they are present" + disablewhen "{ xn__primvarsmoonrayuse_explicit_shading_attributes_control_2tch == block } { xn__primvarsmoonrayuse_explicit_shading_attributes_control_2tch == none }" + parmtag { "usdvaluetype" "bool" } + } + } + + group { + name "folder4" + label "RdlInstancer" + + parm { + name "xn__primvarsmoonraymethod_control_dobh" + label "primvars:moonray:method" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraymethod_cbbh" + label "Method" + type string + default { "xform attributes" } + help "Specifies the source of the transform data for instancing. If set to \"xform attributes\", data is used from the \"positions\", \"orientations\", \"scales\" attributes.If set to \"xform list\", data is used from the \"xform list\"attribute." + disablewhen "{ xn__primvarsmoonraymethod_control_dobh == block } { xn__primvarsmoonraymethod_control_dobh == none }" + menu { + "xform attributes" "Xform Attributes" + "xform list" "Xform List" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonrayinstance_level_control_e1bh" + label "primvars:moonray:instance_level" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayinstance_level_dobh" + label "Instance Level" + type string + default { "instance level 0" } + help "Sets the level/depth of this instance. This adds a Mat4f primitive attribute to the geometry which can be referenced during shading to use the local space of each instance. The name of the primitive attribute corresponds the the instance level that is set (i.e. \"instance_level_0\", \"instance_level_1\", etc)" + disablewhen "{ xn__primvarsmoonrayinstance_level_control_e1bh == block } { xn__primvarsmoonrayinstance_level_control_e1bh == none }" + menu { + "instance level 0" "Instance Level 0" + "instance level 1" "Instance Level 1" + "instance level 2" "Instance Level 2" + "instance level 3" "Instance Level 3" + "instance level 4" "Instance Level 4" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonrayref_indices_control_iwbh" + label "primvars:moonray:ref_indices" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "ref_indices" + label "Ref Indices" + default 0 + disablewhen "{ xn__primvarsmoonrayref_indices_control_iwbh == block } { xn__primvarsmoonrayref_indices_control_iwbh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonrayref_indices_hjbh#" + label "Ref Indices" + type integer + default { "0" } + help "A list of index values to specify which reference geometry to instance at each position. The list corresponds to entries in the \"references\" attribute. The length of the list should be either 0 or consistent with \"positions\"|\"xform_list\". The index entry falls back to 0 when this attribute is empty or the value of entry is out of index range" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraydisable_indices_control_02bh" + label "primvars:moonray:disable_indices" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "disable_indices" + label "Disable Indices" + default 0 + disablewhen "{ xn__primvarsmoonraydisable_indices_control_02bh == block } { xn__primvarsmoonraydisable_indices_control_02bh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonraydisable_indices_zpbh#" + label "Disable Indices" + type integer + default { "0" } + help "A list of index values to hide / disable. For example, with 4 instances you can supply a list of 0, 2 to disable those instances. If an index in this list is out of range, it is ignored." + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonrayevaluation_frame_control_n4bh" + label "primvars:moonray:evaluation_frame" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayevaluation_frame_mrbh" + label "Evaluation Frame" + type float + default { "0" } + help "Evaluate geometry at specified frame (relative) instead of SceneVariables frame." + disablewhen "{ xn__primvarsmoonrayevaluation_frame_control_n4bh == block } { xn__primvarsmoonrayevaluation_frame_control_n4bh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonrayuse_reference_xforms_control_5bch" + label "primvars:moonray:use_reference_xforms" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayuse_reference_xforms_4xbh" + label "Use Reference Xforms" + type toggle + default { "0" } + help "Transform the reference (prototype) geometry by it's node_xform parameter before applying the instance transform" + disablewhen "{ xn__primvarsmoonrayuse_reference_xforms_control_5bch == block } { xn__primvarsmoonrayuse_reference_xforms_control_5bch == none }" + parmtag { "usdvaluetype" "bool" } + } + parm { + name "xn__primvarsmoonrayuse_reference_attributes_control_oich" + label "primvars:moonray:use_reference_attributes" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayuse_reference_attributes_n4bh" + label "Use Reference Attributes" + type toggle + default { "1" } + help "Use the geometry attributes of the reference (prototype) instead of the ones on the InstanceGeometry. Currently only works for shadow_ray_epsilon" + disablewhen "{ xn__primvarsmoonrayuse_reference_attributes_control_oich == block } { xn__primvarsmoonrayuse_reference_attributes_control_oich == none }" + parmtag { "usdvaluetype" "bool" } + } + } + + group { + name "folder5" + label "RdlMesh" + + parm { + name "xn__primvarsmoonrayface_vertex_count_control_95bh" + label "primvars:moonray:face_vertex_count" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "face_vertex_count" + label "Face Vertex Count" + default 0 + disablewhen "{ xn__primvarsmoonrayface_vertex_count_control_95bh == block } { xn__primvarsmoonrayface_vertex_count_control_95bh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonrayface_vertex_count_8sbh#" + label "Face Vertex Count" + type integer + default { "0" } + help "List of vertices per face, used in conjunction with vertices_by_index to construct the mesh" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonrayvertices_by_index_control_95bh" + label "primvars:moonray:vertices_by_index" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "vertices_by_index" + label "Vertices By Index" + default 0 + disablewhen "{ xn__primvarsmoonrayvertices_by_index_control_95bh == block } { xn__primvarsmoonrayvertices_by_index_control_95bh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonrayvertices_by_index_8sbh#" + label "Vertices By Index" + type integer + default { "0" } + help "List of vertex indices used to construct the mesh using the vertex list" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonrayorientation_control_iwbh" + label "primvars:moonray:orientation" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayorientation_hjbh" + label "Orientation" + type string + default { "right-handed" } + help "When set to \"left-handed\", normals are generated using the left-handed rule. This reverses the direction of generated normals, and which side of surfaces is considered the front, without affecting supplied normals." + disablewhen "{ xn__primvarsmoonrayorientation_control_iwbh == block } { xn__primvarsmoonrayorientation_control_iwbh == none }" + menu { + "right-handed" "Right-Handed" + "left-handed" "Left-Handed" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonraypart_face_count_list_control_5bch" + label "primvars:moonray:part_face_count_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "part_face_count_list" + label "Part Face Count List" + default 0 + disablewhen "{ xn__primvarsmoonraypart_face_count_list_control_5bch == block } { xn__primvarsmoonraypart_face_count_list_control_5bch == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonraypart_face_count_list_4xbh#" + label "Part Face Count List" + type integer + default { "0" } + help "List of the number of faces belonging to the part with corresponding index in 'part list'." + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraypart_face_indices_control_95bh" + label "primvars:moonray:part_face_indices" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "part_face_indices" + label "Part Face Indices" + default 0 + disablewhen "{ xn__primvarsmoonraypart_face_indices_control_95bh == block } { xn__primvarsmoonraypart_face_indices_control_95bh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonraypart_face_indices_8sbh#" + label "Part Face Indices" + type integer + default { "0" } + help "List of face indices. No index should have a value greater than the size of 'face_vertex_count'" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonrayis_subd_control_zpbh" + label "primvars:moonray:is_subd" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayis_subd_ycbh" + label "Is Subd" + type toggle + default { "1" } + help "If true, a SubdivisionMesh primitive will be created - PolygonMesh otherwise" + disablewhen "{ xn__primvarsmoonrayis_subd_control_zpbh == block } { xn__primvarsmoonrayis_subd_control_zpbh == none }" + parmtag { "usdvaluetype" "bool" } + } + parm { + name "xn__primvarsmoonraysubd_scheme_control_iwbh" + label "primvars:moonray:subd_scheme" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraysubd_scheme_hjbh" + label "Subd Scheme" + type string + default { "catclark" } + help "CatClark or Bilinear" + disablewhen "{ xn__primvarsmoonraysubd_scheme_control_iwbh == block } { xn__primvarsmoonraysubd_scheme_control_iwbh == none }" + menu { + "bilinear" "Bilinear" + "catclark" "Catclark" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonraysubd_boundary_control_rzbh" + label "primvars:moonray:subd_boundary" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraysubd_boundary_qmbh" + label "Subd Boundary" + type string + default { "edge and corner" } + help "Boundary interpolation: Corners, Edges or None" + disablewhen "{ xn__primvarsmoonraysubd_boundary_control_rzbh == block } { xn__primvarsmoonraysubd_boundary_control_rzbh == none }" + menu { + "none" "None" + "edge only" "Edge Only" + "edge and corner" "Edge And Corner" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonraysubd_fvar_linear_control_n4bh" + label "primvars:moonray:subd_fvar_linear" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraysubd_fvar_linear_mrbh" + label "Subd Fvar Linear" + type string + default { "corners only" } + help "Face-varying linear interpolation: None, Corners Only, Corners Plus 1 or Plus 2 (RenderMan), Boundaries, or All" + disablewhen "{ xn__primvarsmoonraysubd_fvar_linear_control_n4bh == block } { xn__primvarsmoonraysubd_fvar_linear_control_n4bh == none }" + menu { + "none" "None" + "corners only" "Corners Only" + "corners plus1" "Corners Plus1" + "corners plus2" "Corners Plus2" + "boundaries" "Boundaries" + "all" "All" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonraysubd_crease_indices_control_j9bh" + label "primvars:moonray:subd_crease_indices" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "subd_crease_indices" + label "Subd Crease Indices" + default 0 + disablewhen "{ xn__primvarsmoonraysubd_crease_indices_control_j9bh == block } { xn__primvarsmoonraysubd_crease_indices_control_j9bh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonraysubd_crease_indices_iwbh#" + label "Subd Crease Indices" + type integer + default { "0" } + help "List of vertex index pairs for each crease edge with an assigned sharpness." + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraysubd_crease_sharpnesses_control_1gch" + label "primvars:moonray:subd_crease_sharpnesses" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "subd_crease_sharpnesses" + label "Subd Crease Sharpnesses" + default 0 + disablewhen "{ xn__primvarsmoonraysubd_crease_sharpnesses_control_1gch == block } { xn__primvarsmoonraysubd_crease_sharpnesses_control_1gch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraysubd_crease_sharpnesses_02bh#" + label "Subd Crease Sharpnesses" + type float + default { "0" } + help "Sharpness value for each crease edge." + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraysubd_corner_indices_control_j9bh" + label "primvars:moonray:subd_corner_indices" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "subd_corner_indices" + label "Subd Corner Indices" + default 0 + disablewhen "{ xn__primvarsmoonraysubd_corner_indices_control_j9bh == block } { xn__primvarsmoonraysubd_corner_indices_control_j9bh == none }" + parmtag { "usdvaluetype" "int[]" } + + parm { + name "xn__primvarsmoonraysubd_corner_indices_iwbh#" + label "Subd Corner Indices" + type integer + default { "0" } + help "List of indices for each corner vertex with an assigned sharpness." + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraysubd_corner_sharpnesses_control_1gch" + label "primvars:moonray:subd_corner_sharpnesses" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "subd_corner_sharpnesses" + label "Subd Corner Sharpnesses" + default 0 + disablewhen "{ xn__primvarsmoonraysubd_corner_sharpnesses_control_1gch == block } { xn__primvarsmoonraysubd_corner_sharpnesses_control_1gch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraysubd_corner_sharpnesses_02bh#" + label "Subd Corner Sharpnesses" + type float + default { "0" } + help "Sharpness value for each corner vertex." + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraymesh_resolution_control_02bh" + label "primvars:moonray:mesh_resolution" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraymesh_resolution_zpbh" + label "Mesh Resolution" + type float + default { "2" } + help "The maximum resolution to which a mesh will be tessellated. NOTE: to prevent t-junctions, only even values are supported. If \"mesh resolution\" is set to n, it will first be rounded up to N=n+1 for odd n, N=n for even n. An edge on an input face will then be tessellated to at most N segments. If \"adaptive error\" is set to 0, every edge on the input face will be uniformly tessellated to N segments. Otherwise the mesh will tessellated adaptively based on its relationship to the camera." + disablewhen "{ xn__primvarsmoonraymesh_resolution_control_02bh == block } { xn__primvarsmoonraymesh_resolution_control_02bh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonrayadaptive_error_control_e1bh" + label "primvars:moonray:adaptive_error" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayadaptive_error_dobh" + label "Adaptive Error" + type float + default { "0" } + help "The maximum allowable difference in pixels for subdivison mesh adaptive tessellation (each final tessellated edge won't be longer than n pixels if adaptive error is set to n). A value of 0 disables adaptive tessellation, reverting to uniform tessellation, which sometimes is more stable in animation. Adaptive tessellation is not supported for instances. The maximum tessellation won't exceed the value specified in mesh_resolution. This prevents excessive tessellation when the mesh is extremely close to the camera." + disablewhen "{ xn__primvarsmoonrayadaptive_error_control_e1bh == block } { xn__primvarsmoonrayadaptive_error_control_e1bh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonraysmooth_normal_control_rzbh" + label "primvars:moonray:smooth_normal" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraysmooth_normal_qmbh" + label "Smooth Normal" + type toggle + default { "1" } + help "Generates smooth shading normals on a PolygonMesh when the mesh doesn't provide shading normals" + disablewhen "{ xn__primvarsmoonraysmooth_normal_control_rzbh == block } { xn__primvarsmoonraysmooth_normal_control_rzbh == none }" + parmtag { "usdvaluetype" "bool" } + } + } + + group { + name "folder6" + label "RdlPoint" + + } + + group { + name "folder7" + label "Sphere" + + parm { + name "xn__primvarsmoonrayradius_control_dobh" + label "primvars:moonray:radius" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayradius_cbbh" + label "Radius" + type float + default { "1" } + help "The radius of the sphere. The sphere will clip if the radius exceeds the magnitude of either the zmin or zmax values." + disablewhen "{ xn__primvarsmoonrayradius_control_dobh == block } { xn__primvarsmoonrayradius_control_dobh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonrayzmin_control_3kbh" + label "primvars:moonray:zmin" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayzmin_26ah" + label "Zmin" + type float + default { "-1" } + help "The minimum extent of sphere on the z axis expressed in object space and independent of the radius. The sphere will clip if the radius exceeds the magnitude of this parameter." + disablewhen "{ xn__primvarsmoonrayzmin_control_3kbh == block } { xn__primvarsmoonrayzmin_control_3kbh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonrayzmax_control_3kbh" + label "primvars:moonray:zmax" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayzmax_26ah" + label "Zmax" + type float + default { "1" } + help "The maximum extent of sphere on the z axis expressed in object space and independent of the radius. The sphere will clip if the radius exceeds the magnitude of this parameter." + disablewhen "{ xn__primvarsmoonrayzmax_control_3kbh == block } { xn__primvarsmoonrayzmax_control_3kbh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonrayphi_max_control_zpbh" + label "primvars:moonray:phi_max" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayphi_max_ycbh" + label "Phi Max" + type float + default { "360" } + help "The arc of the sphere surface around the z axis expressed in degrees." + disablewhen "{ xn__primvarsmoonrayphi_max_control_zpbh == block } { xn__primvarsmoonrayphi_max_control_zpbh == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + } + + group { + name "folder8" + label "Vdb" + + parm { + name "xn__primvarsmoonraymodel_control_qmbh" + label "primvars:moonray:model" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraymodel_p8ah" + label "Model" + type file + default { "" } + help "The VDB file to load" + disablewhen "{ xn__primvarsmoonraymodel_control_qmbh == block } { xn__primvarsmoonraymodel_control_qmbh == none }" + parmtag { "usdvaluetype" "asset" } + } + parm { + name "xn__primvarsmoonrayinterpolation_control_rzbh" + label "primvars:moonray:interpolation" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayinterpolation_qmbh" + label "Interpolation" + type string + default { "linear" } + help "Voxel interpolation to use when sampling the volume data" + disablewhen "{ xn__primvarsmoonrayinterpolation_control_rzbh == block } { xn__primvarsmoonrayinterpolation_control_rzbh == none }" + menu { + "nearest neighbor" "Nearest Neighbor" + "linear" "Linear" + "quadratic" "Quadratic" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__primvarsmoonraydensity_grid_control_4xbh" + label "primvars:moonray:density_grid" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraydensity_grid_3kbh" + label "Density Grid" + type string + default { "density" } + help "The name of the density grid. If multiple grids have the same name, only the first grid with that name will be loaded. If a vdb file has multiple grids with the same name, you may use a suffix index to pick which grid to load, e.g. \"density[3]\". The index must be in [] brackets." + disablewhen "{ xn__primvarsmoonraydensity_grid_control_4xbh == block } { xn__primvarsmoonraydensity_grid_control_4xbh == none }" + parmtag { "usdvaluetype" "string" } + } + parm { + name "xn__primvarsmoonrayemission_grid_control_rzbh" + label "primvars:moonray:emission_grid" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayemission_grid_qmbh" + label "Emission Grid" + type string + default { "" } + help "The name of the emission grid. If multiple grids have the same name, only the first grid with that name will be loaded. If a vdb file has multiple grids with the same name, you may use a suffix index to pick which grid to load, e.g. \"emission[3]\". The index must be in [] brackets." + disablewhen "{ xn__primvarsmoonrayemission_grid_control_rzbh == block } { xn__primvarsmoonrayemission_grid_control_rzbh == none }" + parmtag { "usdvaluetype" "string" } + } + parm { + name "xn__primvarsmoonrayvelocity_grid_control_rzbh" + label "primvars:moonray:velocity_grid" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayvelocity_grid_qmbh" + label "Velocity Grid" + type string + default { "" } + help "the name of vector grid representing the velocity field. Usually named \"v\" or \"vel\" in simulation export. If multiple velocity grids have the same name, only the first grid with that name will be loaded. If a vdb file has multiple grids with the same name, you may use a suffix index to pick which grid to load, e.g. \"v[3]\". The index must be in [] brackets. The index can be different from the index on the \"density_grid\"." + disablewhen "{ xn__primvarsmoonrayvelocity_grid_control_rzbh == block } { xn__primvarsmoonrayvelocity_grid_control_rzbh == none }" + parmtag { "usdvaluetype" "string" } + } + parm { + name "xn__primvarsmoonrayvelocity_sample_rate_control_5bch" + label "primvars:moonray:velocity_sample_rate" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayvelocity_sample_rate_4xbh" + label "Velocity Sample Rate" + type float + default { "0.2" } + help "the relative scale of input velocity grid resolution. Lower value has lower memory overhead and lower fidelity of motion blur effect, which is sometimes desired for artistic reasons" + disablewhen "{ xn__primvarsmoonrayvelocity_sample_rate_control_5bch == block } { xn__primvarsmoonrayvelocity_sample_rate_control_5bch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonrayemission_sample_rate_control_5bch" + label "primvars:moonray:emission_sample_rate" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonrayemission_sample_rate_4xbh" + label "Emission Sample Rate" + type float + default { "1" } + help "the relative scale of input emission grid resolution. Lower value has lower memory overhead and faster render time, with the cost of lower fidelity of emission shape and illumination" + disablewhen "{ xn__primvarsmoonrayemission_sample_rate_control_5bch == block } { xn__primvarsmoonrayemission_sample_rate_control_5bch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + } + } diff --git a/houdini/soho/parameters/HdMoonrayRendererPlugin_Global.ds b/houdini/soho/parameters/HdMoonrayRendererPlugin_Global.ds index 3133669..74f156c 100644 --- a/houdini/soho/parameters/HdMoonrayRendererPlugin_Global.ds +++ b/houdini/soho/parameters/HdMoonrayRendererPlugin_Global.ds @@ -284,7 +284,7 @@ multiparm { name "aperture_window" label "Aperture Window" - default 4 + default 0 disablewhen "{ xn__moonraysceneVariableaperture_window_control_4bcn == block } { xn__moonraysceneVariableaperture_window_control_4bcn == none }" parmtag { "usdvaluetype" "int[]" } @@ -317,7 +317,7 @@ multiparm { name "region_window" label "Region Window" - default 4 + default 0 disablewhen "{ xn__moonraysceneVariableregion_window_control_v7bn == block } { xn__moonraysceneVariableregion_window_control_v7bn == none }" parmtag { "usdvaluetype" "int[]" } @@ -350,7 +350,7 @@ multiparm { name "sub_viewport" label "Sub Viewport" - default 4 + default 0 disablewhen "{ xn__moonraysceneVariablesub_viewport_control_85bn == block } { xn__moonraysceneVariablesub_viewport_control_85bn == none }" parmtag { "usdvaluetype" "int[]" } @@ -389,7 +389,7 @@ multiparm { name "motion_steps" label "Motion Steps" - default 2 + default 0 disablewhen "{ xn__moonraysceneVariablemotion_steps_control_85bn == block } { xn__moonraysceneVariablemotion_steps_control_85bn == none }" parmtag { "usdvaluetype" "float[]" } @@ -2507,7 +2507,7 @@ multiparm { name "debug_pixel" label "Debug Pixel" - default 2 + default 0 disablewhen "{ xn__moonraysceneVariabledebug_pixel_control_m4bn == block } { xn__moonraysceneVariabledebug_pixel_control_m4bn == none }" parmtag { "usdvaluetype" "int[]" } @@ -2901,4 +2901,51 @@ disablewhen "{ xn__moonraysceneVariabletwo_stage_output_control_rdcn == block } { xn__moonraysceneVariabletwo_stage_output_control_rdcn == none }" parmtag { "usdvaluetype" "bool" } } + parm { + name "xn__moonraysceneVariablefatal_bool_control_z2bn" + label "moonray:sceneVariable:fatal_bool" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonraysceneVariablefatal_bool_ypbn" + label "Fatal Bool" + type toggle + default { "0" } + help "The bool to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + disablewhen "{ xn__moonraysceneVariablefatal_bool_control_z2bn == block } { xn__moonraysceneVariablefatal_bool_control_z2bn == none }" + parmtag { "usdvaluetype" "bool" } + } + parm { + name "xn__moonraysceneVariablefatal_int_control_d1bn" + label "moonray:sceneVariable:fatal_int" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonraysceneVariablefatal_int_cobn" + label "Fatal Int" + type integer + default { "0" } + help "The int to use for materialx map shaders that are unable to execute shading, usually due to incomplete initialization." + disablewhen "{ xn__moonraysceneVariablefatal_int_control_d1bn == block } { xn__moonraysceneVariablefatal_int_control_d1bn == none }" + range { 0 10 } + parmtag { "usdvaluetype" "int" } + } } diff --git a/houdini/soho/parameters/HdMoonrayRendererPlugin_Light.ds b/houdini/soho/parameters/HdMoonrayRendererPlugin_Light.ds index f1582e1..0c0337c 100644 --- a/houdini/soho/parameters/HdMoonrayRendererPlugin_Light.ds +++ b/houdini/soho/parameters/HdMoonrayRendererPlugin_Light.ds @@ -109,6 +109,88 @@ } parmtag { "usdvaluetype" "token" } } + parm { + name "xn__moonraycolor_control_o8a" + label "moonray:color" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonraycolor_nva" + label "Color" + type color + size 3 + default { "1" "1" "1" } + help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "color3f" } + } + parm { + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonrayintensity_51a" + label "Intensity" + type float + default { "1" } + help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonrayexposure_j0a" + label "Exposure" + type float + default { "0" } + help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } parm { name "xn__moonraymax_shadow_distance_control_hwb" label "moonray:max_shadow_distance" @@ -274,6 +356,30 @@ hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" parmtag { "usdvaluetype" "string" } } + parm { + name "xn__moonraynormalized_control_thb" + label "moonray:normalized" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonraynormalized_s3a" + label "Normalized" + type toggle + default { "1" } + help "When set to true, the size of the light can be changed without altering the amount of total energy cast into the scene. This is achieved via scaling the light's radiance by the reciprocal of its surface area. When set to false, the radiance is used as-is, regardless of surface area." + disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + parmtag { "usdvaluetype" "bool" } + } parm { name "xn__moonrayapply_scene_scale_control_7sb" label "moonray:apply_scene_scale" @@ -298,6 +404,60 @@ hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" parmtag { "usdvaluetype" "bool" } } + parm { + name "xn__moonrayradius_control_bbb" + label "moonray:radius" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxSphereLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonrayradius_9wa" + label "Radius" + type float + default { "1" } + help "The radius of the cylinder." + disablewhen "{ xn__moonrayradius_control_bbb == block } { xn__moonrayradius_control_bbb == none }" + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxSphereLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__moonrayheight_control_bbb" + label "moonray:height" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonrayheight_9wa" + label "Height" + type float + default { "1" } + help "The height of the cylinder as measured along its axis." + disablewhen "{ xn__moonrayheight_control_bbb == block } { xn__moonrayheight_control_bbb == none }" + hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } parm { name "xn__moonraysidedness_control_6fb" label "moonray:sidedness" @@ -442,28 +602,56 @@ parmtag { "usdvaluetype" "float" } } parm { - name "xn__moonraynormalized_control_thb" - label "moonray:normalized" + name "xn__moonrayangular_extent_control_cob" + label "moonray:angular_extent" type string default { "none" } - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" + hidewhen "{ primtype != UsdLuxDistantLight createprims == on }" menujoin { "set" "![BUTTONS_set_or_create]Set or Create" "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" "block" "![BUTTONS_set_block]Block" "none" "![BUTTONS_set_nothing]Do Nothing" } parmtag { "sidefx::look" "icon" } } parm { - name "xn__moonraynormalized_s3a" - label "Normalized" - type toggle - default { "1" } - help "When set to true, the size of the light can be changed without altering the amount of total energy cast into the scene. This is achieved via scaling the light's radiance by the reciprocal of its surface area. When set to false, the radiance is used as-is, regardless of surface area." - disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" - parmtag { "usdvaluetype" "bool" } + name "xn__moonrayangular_extent_bbb" + label "Angular Extent" + type float + default { "0.53" } + help "The angle in degrees subtended by the DistantLight's diameter." + disablewhen "{ xn__moonrayangular_extent_control_cob == block } { xn__moonrayangular_extent_control_cob == none }" + hidewhen "{ primtype != UsdLuxDistantLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__moonraygeometry_control_keb" + label "moonray:geometry" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxGeometryLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonraygeometry_j0a" + label "Geometry" + type oppath + default { "" } + help "The SceneObject holding the mesh data to use as the MeshLight's surface." + disablewhen "{ xn__moonraygeometry_control_keb == block } { xn__moonraygeometry_control_keb == none }" + hidewhen "{ primtype != UsdLuxGeometryLight createprims == on }" + parmtag { "oprelative" "." } + parmtag { "usdvaluetype" "" } } parm { name "xn__moonrayparts_control_o8a" @@ -514,88 +702,6 @@ parmtag { "oprelative" "." } parmtag { "usdvaluetype" "" } } - parm { - name "xn__moonraycolor_control_o8a" - label "moonray:color" - type string - default { "none" } - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" - menujoin { - "set" "![BUTTONS_set_or_create]Set or Create" - "setexisting" "![BUTTONS_set_if_exists]Set if Exists" - "add" "![BUTTONS_set_add]Add if Exists" - "multiply" "![BUTTONS_set_multiply]Multiply if Exists" - "block" "![BUTTONS_set_block]Block" - "none" "![BUTTONS_set_nothing]Do Nothing" - } - parmtag { "sidefx::look" "icon" } - } - parm { - name "xn__moonraycolor_nva" - label "Color" - type color - size 3 - default { "1" "1" "1" } - help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" - range { 0 10 } - parmtag { "usdvaluetype" "color3f" } - } - parm { - name "xn__moonrayintensity_control_6fb" - label "moonray:intensity" - type string - default { "none" } - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" - menujoin { - "set" "![BUTTONS_set_or_create]Set or Create" - "setexisting" "![BUTTONS_set_if_exists]Set if Exists" - "add" "![BUTTONS_set_add]Add if Exists" - "multiply" "![BUTTONS_set_multiply]Multiply if Exists" - "block" "![BUTTONS_set_block]Block" - "none" "![BUTTONS_set_nothing]Do Nothing" - } - parmtag { "sidefx::look" "icon" } - } - parm { - name "xn__moonrayintensity_51a" - label "Intensity" - type float - default { "1" } - help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" - range { 0 10 } - parmtag { "usdvaluetype" "float" } - } - parm { - name "xn__moonrayexposure_control_keb" - label "moonray:exposure" - type string - default { "none" } - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" - menujoin { - "set" "![BUTTONS_set_or_create]Set or Create" - "setexisting" "![BUTTONS_set_if_exists]Set if Exists" - "add" "![BUTTONS_set_add]Add if Exists" - "multiply" "![BUTTONS_set_multiply]Multiply if Exists" - "block" "![BUTTONS_set_block]Block" - "none" "![BUTTONS_set_nothing]Do Nothing" - } - parmtag { "sidefx::look" "icon" } - } - parm { - name "xn__moonrayexposure_j0a" - label "Exposure" - type float - default { "0" } - help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxDiskLight primtype != UsdLuxDistantLight primtype != UsdLuxDomeLight primtype != UsdLuxGeometryLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight primtype != UsdLuxSphereLight primtype != UsdLuxDiskLight createprims == on }" - range { 0 10 } - parmtag { "usdvaluetype" "float" } - } parm { name "xn__moonraylight_control_o8a" label "moonray:light" @@ -648,33 +754,6 @@ range { 0 10 } parmtag { "usdvaluetype" "float" } } - parm { - name "xn__moonrayheight_control_bbb" - label "moonray:height" - type string - default { "none" } - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight createprims == on }" - menujoin { - "set" "![BUTTONS_set_or_create]Set or Create" - "setexisting" "![BUTTONS_set_if_exists]Set if Exists" - "add" "![BUTTONS_set_add]Add if Exists" - "multiply" "![BUTTONS_set_multiply]Multiply if Exists" - "block" "![BUTTONS_set_block]Block" - "none" "![BUTTONS_set_nothing]Do Nothing" - } - parmtag { "sidefx::look" "icon" } - } - parm { - name "xn__moonrayheight_9wa" - label "Height" - type float - default { "1" } - help "The height of the rectangle, i.e. the size measured in the light's local y-direction." - disablewhen "{ xn__moonrayheight_control_bbb == block } { xn__moonrayheight_control_bbb == none }" - hidewhen "{ primtype != UsdLuxCylinderLight primtype != UsdLuxPortalLight primtype != UsdLuxRectLight createprims == on }" - range { 0 10 } - parmtag { "usdvaluetype" "float" } - } } group { @@ -1302,6 +1381,33 @@ label "Cone" hidewhen "{ primtype != UsdLuxDiskLight createprims == on }" + parm { + name "xn__moonraylens_radius_control_gjb" + label "moonray:lens_radius" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxDiskLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonraylens_radius_f5a" + label "Lens Radius" + type float + default { "1" } + help "The radius of the SpotLight's lens (when the aspect ratio is 1.0, so that the lens is circular)." + disablewhen "{ xn__moonraylens_radius_control_gjb == block } { xn__moonraylens_radius_control_gjb == none }" + hidewhen "{ primtype != UsdLuxDiskLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } parm { name "xn__moonrayaspect_ratio_control_2kb" label "moonray:aspect_ratio" @@ -1356,6 +1462,33 @@ range { 0 10 } parmtag { "usdvaluetype" "float" } } + parm { + name "xn__moonrayouter_cone_angle_control_lrb" + label "moonray:outer_cone_angle" + type string + default { "none" } + hidewhen "{ primtype != UsdLuxDiskLight createprims == on }" + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__moonrayouter_cone_angle_keb" + label "Outer Cone Angle" + type float + default { "60" } + help "The apex angle of the bounding cone of the light emitted by the SpotLight. No illumination takes placeoutside this angle. This is a full angle, measured from one side to the other. There is a falloff function applied between the outer and inner cones - see the angle_falloff_type attribute." + disablewhen "{ xn__moonrayouter_cone_angle_control_lrb == block } { xn__moonrayouter_cone_angle_control_lrb == none }" + hidewhen "{ primtype != UsdLuxDiskLight createprims == on }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } parm { name "xn__moonrayinner_cone_angle_control_lrb" label "moonray:inner_cone_angle" diff --git a/houdini/soho/parameters/moonray_AttributeMap.ds b/houdini/soho/parameters/moonray_AttributeMap.ds index 87812ab..7761511 100644 --- a/houdini/soho/parameters/moonray_AttributeMap.ds +++ b/houdini/soho/parameters/moonray_AttributeMap.ds @@ -20,7 +20,7 @@ } parm { name "xn__inputsprimitive_attribute_name_xpb" - label "Primitive Attribute Name" + label "Name" type string default { "Cd" } help "the name of primitive attribute to display when attribute 'map type' is set to 'primitive attribute'" @@ -44,7 +44,7 @@ } parm { name "xn__inputsprimitive_attribute_type_xpb" - label "Primitive Attribute Type" + label "Type" type string default { "rgb" } help "the type of primitive attribute to display when attribute 'map type' is set to 'primitive attribute'" diff --git a/houdini/soho/parameters/moonray_CombineNormalMap.ds b/houdini/soho/parameters/moonray_CombineNormalMap.ds index 43abb90..cec1fb3 100644 --- a/houdini/soho/parameters/moonray_CombineNormalMap.ds +++ b/houdini/soho/parameters/moonray_CombineNormalMap.ds @@ -46,7 +46,7 @@ } parm { name "xn__inputsnormal_map_1_dial_jeb" - label "Normal Map 1 Dial" + label "Map 1 Dial" type float default { "1" } help "Amount of normal map 1 to blend in" @@ -95,7 +95,7 @@ } parm { name "xn__inputsnormal_map_2_dial_jeb" - label "Normal Map 2 Dial" + label "Map 2 Dial" type float default { "1" } help "Amount of normal map 2 to blend in" diff --git a/houdini/soho/parameters/moonray_CylinderLight.ds b/houdini/soho/parameters/moonray_CylinderLight.ds index 7fa6c56..f036a63 100644 --- a/houdini/soho/parameters/moonray_CylinderLight.ds +++ b/houdini/soho/parameters/moonray_CylinderLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -308,8 +308,8 @@ parmtag { "usdvaluetype" "string" } } parm { - name "xn__inputsnormalize_control_jeb" - label "inputs:normalize" + name "xn__moonraynormalized_control_thb" + label "moonray:normalized" type string default { "none" } menujoin { @@ -321,12 +321,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsnormalize_i0a" + name "xn__moonraynormalized_s3a" label "Normalized" type toggle default { "1" } help "When set to true, the size of the light can be changed without altering the amount of total energy cast into the scene. This is achieved via scaling the light's radiance by the reciprocal of its surface area. When set to false, the radiance is used as-is, regardless of surface area." - disablewhen "{ xn__inputsnormalize_control_jeb == block } { xn__inputsnormalize_control_jeb == none }" + disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" parmtag { "usdvaluetype" "bool" } } parm { @@ -352,8 +352,8 @@ parmtag { "usdvaluetype" "bool" } } parm { - name "xn__inputsradius_control_n8a" - label "inputs:radius" + name "xn__moonrayradius_control_bbb" + label "moonray:radius" type string default { "none" } menujoin { @@ -367,18 +367,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsradius_mva" + name "xn__moonrayradius_9wa" label "Radius" type float default { "1" } help "The radius of the cylinder." - disablewhen "{ xn__inputsradius_control_n8a == block } { xn__inputsradius_control_n8a == none }" + disablewhen "{ xn__moonrayradius_control_bbb == block } { xn__moonrayradius_control_bbb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputslength_control_n8a" - label "inputs:length" + name "xn__moonrayheight_control_bbb" + label "moonray:height" type string default { "none" } menujoin { @@ -392,12 +392,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputslength_mva" + name "xn__moonrayheight_9wa" label "Height" type float default { "1" } help "The height of the cylinder as measured along its axis." - disablewhen "{ xn__inputslength_control_n8a == block } { xn__inputslength_control_n8a == none }" + disablewhen "{ xn__moonrayheight_control_bbb == block } { xn__moonrayheight_control_bbb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_DebugMap.ds b/houdini/soho/parameters/moonray_DebugMap.ds index 648ec93..8103c87 100644 --- a/houdini/soho/parameters/moonray_DebugMap.ds +++ b/houdini/soho/parameters/moonray_DebugMap.ds @@ -54,7 +54,7 @@ } parm { name "xn__inputsprimitive_attribute_name_xpb" - label "Primitive Attribute Name" + label "Name" type string default { "st" } help "the name of primitive attribute to displayed when attribute 'map type' is set to 'primitive attribute'" @@ -78,7 +78,7 @@ } parm { name "xn__inputsprimitive_attribute_type_xpb" - label "Primitive Attribute Type" + label "Type" type string default { "vec2f" } help "the type of primitive attribute to displayed when attribute 'map type' is set to 'primitive attribute'" diff --git a/houdini/soho/parameters/moonray_DiskLight.ds b/houdini/soho/parameters/moonray_DiskLight.ds index 3e6c896..50e6ca7 100644 --- a/houdini/soho/parameters/moonray_DiskLight.ds +++ b/houdini/soho/parameters/moonray_DiskLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -308,8 +308,8 @@ parmtag { "usdvaluetype" "string" } } parm { - name "xn__inputsnormalize_control_jeb" - label "inputs:normalize" + name "xn__moonraynormalized_control_thb" + label "moonray:normalized" type string default { "none" } menujoin { @@ -321,12 +321,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsnormalize_i0a" + name "xn__moonraynormalized_s3a" label "Normalized" type toggle default { "1" } help "When set to true, the size of the light can be changed without altering the amount of total energy cast into the scene. This is achieved via scaling the light's radiance by the reciprocal of its surface area. When set to false, the radiance is used as-is, regardless of surface area." - disablewhen "{ xn__inputsnormalize_control_jeb == block } { xn__inputsnormalize_control_jeb == none }" + disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" parmtag { "usdvaluetype" "bool" } } parm { @@ -352,8 +352,8 @@ parmtag { "usdvaluetype" "bool" } } parm { - name "xn__inputsradius_control_n8a" - label "inputs:radius" + name "xn__moonrayradius_control_bbb" + label "moonray:radius" type string default { "none" } menujoin { @@ -367,12 +367,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsradius_mva" + name "xn__moonrayradius_9wa" label "Radius" type float default { "1" } help "The radius of the DiskLight." - disablewhen "{ xn__inputsradius_control_n8a == block } { xn__inputsradius_control_n8a == none }" + disablewhen "{ xn__moonrayradius_control_bbb == block } { xn__moonrayradius_control_bbb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_DistantLight.ds b/houdini/soho/parameters/moonray_DistantLight.ds index 2fa295a..21f9cbf 100644 --- a/houdini/soho/parameters/moonray_DistantLight.ds +++ b/houdini/soho/parameters/moonray_DistantLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -308,8 +308,8 @@ parmtag { "usdvaluetype" "string" } } parm { - name "xn__inputsnormalize_control_jeb" - label "inputs:normalize" + name "xn__moonraynormalized_control_thb" + label "moonray:normalized" type string default { "none" } menujoin { @@ -321,17 +321,17 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsnormalize_i0a" + name "xn__moonraynormalized_s3a" label "Normalized" type toggle default { "1" } help "If set to true, a normalisation factor is applied to the light's radiance. The normalisation factor used is such that if a distant light of radiance (1,1,1) is directly overhead a Lambertian surface of colour (1,1,1), the resulting outgoing radiance at the surface will be (1,1,1) regardless of the light's angular extent.\nIf set to false, the light's radiance is used as-is." - disablewhen "{ xn__inputsnormalize_control_jeb == block } { xn__inputsnormalize_control_jeb == none }" + disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" parmtag { "usdvaluetype" "bool" } } parm { - name "xn__inputsangle_control_06a" - label "inputs:angle" + name "xn__moonrayangular_extent_control_cob" + label "moonray:angular_extent" type string default { "none" } menujoin { @@ -345,12 +345,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsangle_zta" + name "xn__moonrayangular_extent_bbb" label "Angular Extent" type float default { "0.53" } help "The angle in degrees subtended by the DistantLight's diameter." - disablewhen "{ xn__inputsangle_control_06a == block } { xn__inputsangle_control_06a == none }" + disablewhen "{ xn__moonrayangular_extent_control_cob == block } { xn__moonrayangular_extent_control_cob == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_DwaBaseMaterial.ds b/houdini/soho/parameters/moonray_DwaBaseMaterial.ds index 15f1d21..e82ab8f 100644 --- a/houdini/soho/parameters/moonray_DwaBaseMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaBaseMaterial.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_roughness_n8a" - label "Fuzz Roughness" + label "Roughness" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -244,7 +244,7 @@ } parm { name "xn__inputsclearcoat_model_99a" - label "Clearcoat Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for clearcoat. GGX is currently isotropic only" @@ -272,7 +272,7 @@ } parm { name "xn__inputsclearcoat_refractive_index_6sb" - label "Clearcoat Refractive Index" + label "Refractive Index" type float default { "1.5" } help "defines the Fresnel behavior" @@ -297,7 +297,7 @@ } parm { name "xn__inputsclearcoat_roughness_shb" - label "Clearcoat Roughness" + label "Roughness" type float default { "0.1" } help "the roughness of the clearcoat lobe" @@ -322,7 +322,7 @@ } parm { name "xn__inputsclearcoat_thickness_shb" - label "Clearcoat Thickness" + label "Thickness" type float default { "0" } help "the thickness of the virtual clearcoat layer. Values > 0 enable absorption" @@ -347,7 +347,7 @@ } parm { name "xn__inputsclearcoat_attenuation_color_tub" - label "Clearcoat Attenuation Color" + label "Attenuation Color" type color size 3 default { "0.5" "0.5" "0.5" } @@ -371,7 +371,7 @@ } parm { name "xn__inputsclearcoat_bending_jeb" - label "Clearcoat Bending" + label "Bending" type toggle default { "1" } help "(advanced, recommended ON) bends rays based on the clearcoat-refractive-index before evaluating the lobes under clearcoat" @@ -441,7 +441,7 @@ } parm { name "xn__inputsclearcoat_normal_dial_1kb" - label "Clearcoat Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate clearcoat normal" @@ -519,7 +519,7 @@ } parm { name "xn__inputsglitter_seed_e5a" - label "Glitter Seed" + label "Seed" type integer default { "0" } help "The seed for the glitter random number generator" @@ -544,7 +544,7 @@ } parm { name "xn__inputsglitter_space_06a" - label "Glitter Space" + label "Space" type string default { "reference" } help "The space to calculate the worley noise in, defaults to reference space" @@ -572,7 +572,7 @@ } parm { name "xn__inputsglitter_density_99a" - label "Glitter Density" + label "Density" type float default { "1" } help "controls the number of flakes per unit length; larger density packs more flakes into same space" @@ -597,7 +597,7 @@ } parm { name "xn__inputsglitter_randomness_5fb" - label "Glitter Randomness" + label "Randomness" type float default { "0.5" } help "randomness of flake orientation" @@ -622,7 +622,7 @@ } parm { name "xn__inputsglitter_layering_mode_1kb" - label "Glitter Layering Mode" + label "Layering Mode" type string default { "physical" } help "layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)" @@ -650,7 +650,7 @@ } parm { name "xn__inputsglitter_style_A_frequency_krb" - label "Glitter Style A Frequency" + label "Style A Frequency" type float default { "1" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -675,7 +675,7 @@ } parm { name "xn__inputsglitter_size_A_n8a" - label "Glitter Size A" + label "Size A" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -700,7 +700,7 @@ } parm { name "xn__inputsglitter_roughness_A_shb" - label "Glitter Roughness A" + label "Roughness A" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -725,7 +725,7 @@ } parm { name "xn__inputsglitter_color_A_99a" - label "Glitter Color A" + label "Color A" type color size 3 default { "1" "1" "1" } @@ -749,7 +749,7 @@ } parm { name "xn__inputsglitter_texture_A_jeb" - label "Glitter Texture A" + label "Texture A" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -773,7 +773,7 @@ } parm { name "xn__inputsglitter_style_B_frequency_krb" - label "Glitter Style B Frequency" + label "Style B Frequency" type float default { "0" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -798,7 +798,7 @@ } parm { name "xn__inputsglitter_size_B_n8a" - label "Glitter Size B" + label "Size B" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -823,7 +823,7 @@ } parm { name "xn__inputsglitter_roughness_B_shb" - label "Glitter Roughness B" + label "Roughness B" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -848,7 +848,7 @@ } parm { name "xn__inputsglitter_color_B_99a" - label "Glitter Color B" + label "Color B" type color size 3 default { "1" "1" "1" } @@ -872,7 +872,7 @@ } parm { name "xn__inputsglitter_texture_B_jeb" - label "Glitter Texture B" + label "Texture B" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -896,7 +896,7 @@ } parm { name "xn__inputsglitter_texture_orientation_randomness_qdc" - label "Glitter Texture Orientation Randomness" + label "Texture Orientation Randomness" type float default { "0.15" } help "randomly orient each texture" @@ -921,7 +921,7 @@ } parm { name "xn__inputsglitter_color_hue_variation_tub" - label "Glitter Color Hue Variation" + label "Color Hue Variation" type float default { "0" } help "introduce hue variation in flake color centered at the base flake color's hue on the hue wheel" @@ -946,7 +946,7 @@ } parm { name "xn__inputsglitter_color_saturation_variation_75b" - label "Glitter Color Saturation Variation" + label "Color Saturation Variation" type float default { "0" } help "introduce saturation variation in flake color centered at the base flake color's saturation" @@ -971,7 +971,7 @@ } parm { name "xn__inputsglitter_color_value_variation_2xb" - label "Glitter Color Value Variation" + label "Color Value Variation" type float default { "0" } help "introduce value variation in flake color centered at the base flake color's value" @@ -996,7 +996,7 @@ } parm { name "xn__inputsglitter_jitter_n8a" - label "Glitter Jitter" + label "Jitter" type float default { "1" } help "Controls how much the flakes are randomly offset from a regular grid" @@ -1019,7 +1019,7 @@ } parm { name "xn__inputsglitter_compensate_reference_space_deformation_rqc" - label "Glitter Compensate Reference Space Deformation" + label "Compensate Reference Space Deformation" type toggle default { "1" } help "(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc" @@ -1041,7 +1041,7 @@ } parm { name "xn__inputsglitter_approximate_for_secondary_rays_qdc" - label "Glitter Approximate For Secondary Rays" + label "Approximate For Secondary Rays" type toggle default { "1" } help "use an approximation to shade glitter for non-mirror secondary rays" @@ -1065,7 +1065,7 @@ } parm { name "xn__inputsglitter_LOD_quality_shb" - label "Glitter LOD Quality" + label "LOD Quality" type float default { "0.5" } help "controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier" @@ -1090,7 +1090,7 @@ } parm { name "xn__inputsglitter_debug_mode_5fb" - label "Glitter Debug Mode" + label "Debug Mode" type string default { "off" } help "developer debug visualization modes" @@ -1198,7 +1198,7 @@ } parm { name "xn__inputsspecular_model_n8a" - label "Specular Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for specular. GGX is currently isotropic only" @@ -1410,7 +1410,7 @@ } parm { name "xn__inputsiridescence_apply_to_fjb" - label "Iridescence Apply To" + label "Apply To" type string default { "primary specular" } help "Apply iridescence to primary specular lobe or clearcoat/moisture lobe" @@ -1438,7 +1438,7 @@ } parm { name "xn__inputsiridescence_color_control_krb" - label "Iridescence Color Control" + label "Color Control" type string default { "use hue interpolation" } help "use hue interpolation: automatically cycles through hue wheel, use ramp: user specified color ramp" @@ -1466,7 +1466,7 @@ } parm { name "xn__inputsiridescence_primary_color_krb" - label "Iridescence Primary Color" + label "Primary Color" type color size 3 default { "1" "0" "0" } @@ -1492,7 +1492,7 @@ } parm { name "xn__inputsiridescence_secondary_color_tub" - label "Iridescence Secondary Color" + label "Secondary Color" type color size 3 default { "1" "0" "0" } @@ -1516,7 +1516,7 @@ } parm { name "xn__inputsiridescence_flip_hue_direction_pzb" - label "Iridescence Flip Hue Direction" + label "Flip Hue Direction" type toggle default { "0" } help "flip interpolation around the hue wheel to counter-clockwise direction" @@ -1540,7 +1540,7 @@ } parm { name "xn__inputsiridescence_ramp_interpolation_mode_u7b" - label "Iridescence Ramp Interpolation Mode" + label "Ramp Interpolation Mode" type string default { "RGB" } help "RGB: lerp in RGB space which matches UI preview but can lose saturation, HSV: lerp in HSV space which preserves saturation" @@ -1568,7 +1568,7 @@ } parm { name "iridescence_ramp" - label "Iridescence Ramp" + label "Ramp" type ramp_rgb default { "7" } disablewhen "{ xn__inputsiridescence_colors_control_6sb == block } { xn__inputsiridescence_colors_control_6sb == none }" @@ -1592,7 +1592,7 @@ } parm { name "xn__inputsiridescence_thickness_1kb" - label "Iridescence Thickness" + label "Thickness" type float default { "1" } help "Controls how much the color spectrum is repeated" @@ -1617,7 +1617,7 @@ } parm { name "xn__inputsiridescence_exponent_fjb" - label "Iridescence Exponent" + label "Exponent" type float default { "1" } help "Tightens or broadens the distribution of colors" @@ -1642,7 +1642,7 @@ } parm { name "xn__inputsiridescence_at_0_incidence_6sb" - label "Iridescence At 0 Incidence" + label "At 0 Incidence" type float default { "1" } help "Iridescence effect at 0 degree viewing angle" @@ -1667,7 +1667,7 @@ } parm { name "xn__inputsiridescence_at_90_incidence_tub" - label "Iridescence At 90 Incidence" + label "At 90 Incidence" type float default { "1" } help "Iridescence effect at 90 degree viewing angle" @@ -1769,7 +1769,7 @@ } parm { name "xn__inputsdiffuse_roughness_jeb" - label "Diffuse Roughness" + label "Roughness" type float default { "0" } help "Roughness of the diffuse shading. If the value is zero a Lambertian model is used. If it's above zero the Oren Nayar model is used. Not compatible with subsurface scattering." @@ -1943,7 +1943,7 @@ } parm { name "xn__inputsdiffuse_transmission_fjb" - label "Diffuse Transmission" + label "Transmission" type float default { "1" } help "multiplier on the amount of light that is transmitted through the surface." @@ -1968,7 +1968,7 @@ } parm { name "xn__inputsdiffuse_transmission_color_6sb" - label "Diffuse Transmission Color" + label "Transmission Color" type color size 3 default { "0" "0" "0" } @@ -1994,7 +1994,7 @@ } parm { name "xn__inputsdiffuse_transmission_blending_behavior_qdc" - label "Diffuse Transmission Blending Behavior" + label "Transmission Blending Behavior" type string default { "Monochromatic" } help "Controls how diffuse transmission color attenuates diffuse reflection" @@ -2075,7 +2075,7 @@ } parm { name "xn__inputstransmission_color_5fb" - label "Transmission Color" + label "Color" type color size 3 default { "1" "1" "1" } diff --git a/houdini/soho/parameters/moonray_DwaColorCorrectMaterial.ds b/houdini/soho/parameters/moonray_DwaColorCorrectMaterial.ds index 843541b..d360691 100644 --- a/houdini/soho/parameters/moonray_DwaColorCorrectMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaColorCorrectMaterial.ds @@ -101,7 +101,7 @@ } parm { name "xn__inputsTMI_enabled_r3a" - label "TMI Enabled" + label "Enabled" type toggle default { "0" } help "enables the TMI parameters" diff --git a/houdini/soho/parameters/moonray_DwaFabricMaterial.ds b/houdini/soho/parameters/moonray_DwaFabricMaterial.ds index 810df39..2435fb3 100644 --- a/houdini/soho/parameters/moonray_DwaFabricMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaFabricMaterial.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_roughness_n8a" - label "Fuzz Roughness" + label "Roughness" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -244,7 +244,7 @@ } parm { name "xn__inputsglitter_seed_e5a" - label "Glitter Seed" + label "Seed" type integer default { "0" } help "The seed for the glitter random number generator" @@ -269,7 +269,7 @@ } parm { name "xn__inputsglitter_space_06a" - label "Glitter Space" + label "Space" type string default { "reference" } help "The space to calculate the worley noise in, defaults to reference space" @@ -297,7 +297,7 @@ } parm { name "xn__inputsglitter_density_99a" - label "Glitter Density" + label "Density" type float default { "1" } help "controls the number of flakes per unit length; larger density packs more flakes into same space" @@ -322,7 +322,7 @@ } parm { name "xn__inputsglitter_randomness_5fb" - label "Glitter Randomness" + label "Randomness" type float default { "0.5" } help "randomness of flake orientation" @@ -347,7 +347,7 @@ } parm { name "xn__inputsglitter_layering_mode_1kb" - label "Glitter Layering Mode" + label "Layering Mode" type string default { "physical" } help "layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)" @@ -375,7 +375,7 @@ } parm { name "xn__inputsglitter_style_A_frequency_krb" - label "Glitter Style A Frequency" + label "Style A Frequency" type float default { "1" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -400,7 +400,7 @@ } parm { name "xn__inputsglitter_size_A_n8a" - label "Glitter Size A" + label "Size A" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -425,7 +425,7 @@ } parm { name "xn__inputsglitter_roughness_A_shb" - label "Glitter Roughness A" + label "Roughness A" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -450,7 +450,7 @@ } parm { name "xn__inputsglitter_color_A_99a" - label "Glitter Color A" + label "Color A" type color size 3 default { "1" "1" "1" } @@ -474,7 +474,7 @@ } parm { name "xn__inputsglitter_texture_A_jeb" - label "Glitter Texture A" + label "Texture A" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -498,7 +498,7 @@ } parm { name "xn__inputsglitter_style_B_frequency_krb" - label "Glitter Style B Frequency" + label "Style B Frequency" type float default { "0" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -523,7 +523,7 @@ } parm { name "xn__inputsglitter_size_B_n8a" - label "Glitter Size B" + label "Size B" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -548,7 +548,7 @@ } parm { name "xn__inputsglitter_roughness_B_shb" - label "Glitter Roughness B" + label "Roughness B" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -573,7 +573,7 @@ } parm { name "xn__inputsglitter_color_B_99a" - label "Glitter Color B" + label "Color B" type color size 3 default { "1" "1" "1" } @@ -597,7 +597,7 @@ } parm { name "xn__inputsglitter_texture_B_jeb" - label "Glitter Texture B" + label "Texture B" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -621,7 +621,7 @@ } parm { name "xn__inputsglitter_texture_orientation_randomness_qdc" - label "Glitter Texture Orientation Randomness" + label "Texture Orientation Randomness" type float default { "0.15" } help "randomly orient each texture" @@ -646,7 +646,7 @@ } parm { name "xn__inputsglitter_color_hue_variation_tub" - label "Glitter Color Hue Variation" + label "Color Hue Variation" type float default { "0" } help "introduce hue variation in flake color centered at the base flake color's hue on the hue wheel" @@ -671,7 +671,7 @@ } parm { name "xn__inputsglitter_color_saturation_variation_75b" - label "Glitter Color Saturation Variation" + label "Color Saturation Variation" type float default { "0" } help "introduce saturation variation in flake color centered at the base flake color's saturation" @@ -696,7 +696,7 @@ } parm { name "xn__inputsglitter_color_value_variation_2xb" - label "Glitter Color Value Variation" + label "Color Value Variation" type float default { "0" } help "introduce value variation in flake color centered at the base flake color's value" @@ -721,7 +721,7 @@ } parm { name "xn__inputsglitter_jitter_n8a" - label "Glitter Jitter" + label "Jitter" type float default { "1" } help "Controls how much the flakes are randomly offset from a regular grid" @@ -744,7 +744,7 @@ } parm { name "xn__inputsglitter_compensate_reference_space_deformation_rqc" - label "Glitter Compensate Reference Space Deformation" + label "Compensate Reference Space Deformation" type toggle default { "1" } help "(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc" @@ -766,7 +766,7 @@ } parm { name "xn__inputsglitter_approximate_for_secondary_rays_qdc" - label "Glitter Approximate For Secondary Rays" + label "Approximate For Secondary Rays" type toggle default { "1" } help "use an approximation to shade glitter for non-mirror secondary rays" @@ -790,7 +790,7 @@ } parm { name "xn__inputsglitter_LOD_quality_shb" - label "Glitter LOD Quality" + label "LOD Quality" type float default { "0.5" } help "controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier" @@ -815,7 +815,7 @@ } parm { name "xn__inputsglitter_debug_mode_5fb" - label "Glitter Debug Mode" + label "Debug Mode" type string default { "off" } help "developer debug visualization modes" @@ -1100,7 +1100,7 @@ } parm { name "xn__inputsdiffuse_roughness_jeb" - label "Diffuse Roughness" + label "Roughness" type float default { "0" } help "Roughness of the diffuse shading. If the value is zero a Lambertian model is used. If it's above zero the Oren Nayar model is used. Not compatible with subsurface scattering." @@ -1125,7 +1125,7 @@ } parm { name "xn__inputsdiffuse_transmission_fjb" - label "Diffuse Transmission" + label "Transmission" type float default { "1" } help "multiplier on the amount of light that is transmitted through the surface." @@ -1150,7 +1150,7 @@ } parm { name "xn__inputsdiffuse_transmission_color_6sb" - label "Diffuse Transmission Color" + label "Transmission Color" type color size 3 default { "0" "0" "0" } @@ -1176,7 +1176,7 @@ } parm { name "xn__inputsdiffuse_transmission_blending_behavior_qdc" - label "Diffuse Transmission Blending Behavior" + label "Transmission Blending Behavior" type string default { "Monochromatic" } help "Controls how diffuse transmission color attenuates diffuse reflection" diff --git a/houdini/soho/parameters/moonray_DwaMetalMaterial.ds b/houdini/soho/parameters/moonray_DwaMetalMaterial.ds index 3e37b8a..6014e23 100644 --- a/houdini/soho/parameters/moonray_DwaMetalMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaMetalMaterial.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_roughness_n8a" - label "Fuzz Roughness" + label "Roughness" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -244,7 +244,7 @@ } parm { name "xn__inputsclearcoat_model_99a" - label "Clearcoat Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for clearcoat. GGX is currently isotropic only" @@ -272,7 +272,7 @@ } parm { name "xn__inputsclearcoat_refractive_index_6sb" - label "Clearcoat Refractive Index" + label "Refractive Index" type float default { "1.5" } help "defines the Fresnel behavior" @@ -297,7 +297,7 @@ } parm { name "xn__inputsclearcoat_roughness_shb" - label "Clearcoat Roughness" + label "Roughness" type float default { "0.1" } help "the roughness of the clearcoat lobe" @@ -322,7 +322,7 @@ } parm { name "xn__inputsclearcoat_thickness_shb" - label "Clearcoat Thickness" + label "Thickness" type float default { "0" } help "the thickness of the virtual clearcoat layer. Values > 0 enable absorption" @@ -347,7 +347,7 @@ } parm { name "xn__inputsclearcoat_attenuation_color_tub" - label "Clearcoat Attenuation Color" + label "Attenuation Color" type color size 3 default { "0.5" "0.5" "0.5" } @@ -371,7 +371,7 @@ } parm { name "xn__inputsclearcoat_bending_jeb" - label "Clearcoat Bending" + label "Bending" type toggle default { "1" } help "(advanced, recommended ON) bends rays based on the clearcoat-refractive-index before evaluating the lobes under clearcoat" @@ -441,7 +441,7 @@ } parm { name "xn__inputsclearcoat_normal_dial_1kb" - label "Clearcoat Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate clearcoat normal" @@ -519,7 +519,7 @@ } parm { name "xn__inputsglitter_seed_e5a" - label "Glitter Seed" + label "Seed" type integer default { "0" } help "The seed for the glitter random number generator" @@ -544,7 +544,7 @@ } parm { name "xn__inputsglitter_space_06a" - label "Glitter Space" + label "Space" type string default { "reference" } help "The space to calculate the worley noise in, defaults to reference space" @@ -572,7 +572,7 @@ } parm { name "xn__inputsglitter_density_99a" - label "Glitter Density" + label "Density" type float default { "1" } help "controls the number of flakes per unit length; larger density packs more flakes into same space" @@ -597,7 +597,7 @@ } parm { name "xn__inputsglitter_randomness_5fb" - label "Glitter Randomness" + label "Randomness" type float default { "0.5" } help "randomness of flake orientation" @@ -622,7 +622,7 @@ } parm { name "xn__inputsglitter_layering_mode_1kb" - label "Glitter Layering Mode" + label "Layering Mode" type string default { "physical" } help "layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)" @@ -650,7 +650,7 @@ } parm { name "xn__inputsglitter_style_A_frequency_krb" - label "Glitter Style A Frequency" + label "Style A Frequency" type float default { "1" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -675,7 +675,7 @@ } parm { name "xn__inputsglitter_size_A_n8a" - label "Glitter Size A" + label "Size A" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -700,7 +700,7 @@ } parm { name "xn__inputsglitter_roughness_A_shb" - label "Glitter Roughness A" + label "Roughness A" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -725,7 +725,7 @@ } parm { name "xn__inputsglitter_color_A_99a" - label "Glitter Color A" + label "Color A" type color size 3 default { "1" "1" "1" } @@ -749,7 +749,7 @@ } parm { name "xn__inputsglitter_texture_A_jeb" - label "Glitter Texture A" + label "Texture A" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -773,7 +773,7 @@ } parm { name "xn__inputsglitter_style_B_frequency_krb" - label "Glitter Style B Frequency" + label "Style B Frequency" type float default { "0" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -798,7 +798,7 @@ } parm { name "xn__inputsglitter_size_B_n8a" - label "Glitter Size B" + label "Size B" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -823,7 +823,7 @@ } parm { name "xn__inputsglitter_roughness_B_shb" - label "Glitter Roughness B" + label "Roughness B" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -848,7 +848,7 @@ } parm { name "xn__inputsglitter_color_B_99a" - label "Glitter Color B" + label "Color B" type color size 3 default { "1" "1" "1" } @@ -872,7 +872,7 @@ } parm { name "xn__inputsglitter_texture_B_jeb" - label "Glitter Texture B" + label "Texture B" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -896,7 +896,7 @@ } parm { name "xn__inputsglitter_texture_orientation_randomness_qdc" - label "Glitter Texture Orientation Randomness" + label "Texture Orientation Randomness" type float default { "0.15" } help "randomly orient each texture" @@ -921,7 +921,7 @@ } parm { name "xn__inputsglitter_color_hue_variation_tub" - label "Glitter Color Hue Variation" + label "Color Hue Variation" type float default { "0" } help "introduce hue variation in flake color centered at the base flake color's hue on the hue wheel" @@ -946,7 +946,7 @@ } parm { name "xn__inputsglitter_color_saturation_variation_75b" - label "Glitter Color Saturation Variation" + label "Color Saturation Variation" type float default { "0" } help "introduce saturation variation in flake color centered at the base flake color's saturation" @@ -971,7 +971,7 @@ } parm { name "xn__inputsglitter_color_value_variation_2xb" - label "Glitter Color Value Variation" + label "Color Value Variation" type float default { "0" } help "introduce value variation in flake color centered at the base flake color's value" @@ -996,7 +996,7 @@ } parm { name "xn__inputsglitter_jitter_n8a" - label "Glitter Jitter" + label "Jitter" type float default { "1" } help "Controls how much the flakes are randomly offset from a regular grid" @@ -1019,7 +1019,7 @@ } parm { name "xn__inputsglitter_compensate_reference_space_deformation_rqc" - label "Glitter Compensate Reference Space Deformation" + label "Compensate Reference Space Deformation" type toggle default { "1" } help "(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc" @@ -1041,7 +1041,7 @@ } parm { name "xn__inputsglitter_approximate_for_secondary_rays_qdc" - label "Glitter Approximate For Secondary Rays" + label "Approximate For Secondary Rays" type toggle default { "1" } help "use an approximation to shade glitter for non-mirror secondary rays" @@ -1065,7 +1065,7 @@ } parm { name "xn__inputsglitter_LOD_quality_shb" - label "Glitter LOD Quality" + label "LOD Quality" type float default { "0.5" } help "controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier" @@ -1090,7 +1090,7 @@ } parm { name "xn__inputsglitter_debug_mode_5fb" - label "Glitter Debug Mode" + label "Debug Mode" type string default { "off" } help "developer debug visualization modes" @@ -1150,7 +1150,7 @@ } parm { name "xn__inputsspecular_model_n8a" - label "Specular Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for specular. GGX is currently isotropic only" @@ -1337,7 +1337,7 @@ } parm { name "xn__inputsiridescence_apply_to_fjb" - label "Iridescence Apply To" + label "Apply To" type string default { "primary specular" } help "Apply iridescence to primary specular lobe or clearcoat/moisture lobe" @@ -1365,7 +1365,7 @@ } parm { name "xn__inputsiridescence_color_control_krb" - label "Iridescence Color Control" + label "Color Control" type string default { "use hue interpolation" } help "use hue interpolation: automatically cycles through hue wheel, use ramp: user specified color ramp" @@ -1393,7 +1393,7 @@ } parm { name "xn__inputsiridescence_primary_color_krb" - label "Iridescence Primary Color" + label "Primary Color" type color size 3 default { "1" "0" "0" } @@ -1419,7 +1419,7 @@ } parm { name "xn__inputsiridescence_secondary_color_tub" - label "Iridescence Secondary Color" + label "Secondary Color" type color size 3 default { "1" "0" "0" } @@ -1443,7 +1443,7 @@ } parm { name "xn__inputsiridescence_flip_hue_direction_pzb" - label "Iridescence Flip Hue Direction" + label "Flip Hue Direction" type toggle default { "0" } help "flip interpolation around the hue wheel to counter-clockwise direction" @@ -1467,7 +1467,7 @@ } parm { name "xn__inputsiridescence_ramp_interpolation_mode_u7b" - label "Iridescence Ramp Interpolation Mode" + label "Ramp Interpolation Mode" type string default { "RGB" } help "RGB: lerp in RGB space which matches UI preview but can lose saturation, HSV: lerp in HSV space which preserves saturation" @@ -1495,7 +1495,7 @@ } parm { name "iridescence_ramp" - label "Iridescence Ramp" + label "Ramp" type ramp_rgb default { "7" } disablewhen "{ xn__inputsiridescence_colors_control_6sb == block } { xn__inputsiridescence_colors_control_6sb == none }" @@ -1519,7 +1519,7 @@ } parm { name "xn__inputsiridescence_thickness_1kb" - label "Iridescence Thickness" + label "Thickness" type float default { "1" } help "Controls how much the color spectrum is repeated" @@ -1544,7 +1544,7 @@ } parm { name "xn__inputsiridescence_exponent_fjb" - label "Iridescence Exponent" + label "Exponent" type float default { "1" } help "Tightens or broadens the distribution of colors" @@ -1569,7 +1569,7 @@ } parm { name "xn__inputsiridescence_at_0_incidence_6sb" - label "Iridescence At 0 Incidence" + label "At 0 Incidence" type float default { "1" } help "Iridescence effect at 0 degree viewing angle" @@ -1594,7 +1594,7 @@ } parm { name "xn__inputsiridescence_at_90_incidence_tub" - label "Iridescence At 90 Incidence" + label "At 90 Incidence" type float default { "1" } help "Iridescence effect at 90 degree viewing angle" diff --git a/houdini/soho/parameters/moonray_DwaRefractiveMaterial.ds b/houdini/soho/parameters/moonray_DwaRefractiveMaterial.ds index 1a00349..c8c80dc 100644 --- a/houdini/soho/parameters/moonray_DwaRefractiveMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaRefractiveMaterial.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_roughness_n8a" - label "Fuzz Roughness" + label "Roughness" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -244,7 +244,7 @@ } parm { name "xn__inputsclearcoat_model_99a" - label "Clearcoat Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for clearcoat. GGX is currently isotropic only" @@ -272,7 +272,7 @@ } parm { name "xn__inputsclearcoat_refractive_index_6sb" - label "Clearcoat Refractive Index" + label "Refractive Index" type float default { "1.5" } help "defines the Fresnel behavior" @@ -297,7 +297,7 @@ } parm { name "xn__inputsclearcoat_roughness_shb" - label "Clearcoat Roughness" + label "Roughness" type float default { "0.1" } help "the roughness of the clearcoat lobe" @@ -322,7 +322,7 @@ } parm { name "xn__inputsclearcoat_thickness_shb" - label "Clearcoat Thickness" + label "Thickness" type float default { "0" } help "the thickness of the virtual clearcoat layer. Values > 0 enable absorption" @@ -347,7 +347,7 @@ } parm { name "xn__inputsclearcoat_attenuation_color_tub" - label "Clearcoat Attenuation Color" + label "Attenuation Color" type color size 3 default { "0.5" "0.5" "0.5" } @@ -371,7 +371,7 @@ } parm { name "xn__inputsclearcoat_bending_jeb" - label "Clearcoat Bending" + label "Bending" type toggle default { "1" } help "(advanced, recommended ON) bends rays based on the clearcoat-refractive-index before evaluating the lobes under clearcoat" @@ -441,7 +441,7 @@ } parm { name "xn__inputsclearcoat_normal_dial_1kb" - label "Clearcoat Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate clearcoat normal" @@ -517,7 +517,7 @@ } parm { name "xn__inputsspecular_model_n8a" - label "Specular Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for specular. GGX is currently isotropic only" @@ -677,7 +677,7 @@ } parm { name "xn__inputsiridescence_apply_to_fjb" - label "Iridescence Apply To" + label "Apply To" type string default { "primary specular" } help "Apply iridescence to primary specular lobe or clearcoat/moisture lobe" @@ -705,7 +705,7 @@ } parm { name "xn__inputsiridescence_color_control_krb" - label "Iridescence Color Control" + label "Color Control" type string default { "use hue interpolation" } help "use hue interpolation: automatically cycles through hue wheel, use ramp: user specified color ramp" @@ -733,7 +733,7 @@ } parm { name "xn__inputsiridescence_primary_color_krb" - label "Iridescence Primary Color" + label "Primary Color" type color size 3 default { "1" "0" "0" } @@ -759,7 +759,7 @@ } parm { name "xn__inputsiridescence_secondary_color_tub" - label "Iridescence Secondary Color" + label "Secondary Color" type color size 3 default { "1" "0" "0" } @@ -783,7 +783,7 @@ } parm { name "xn__inputsiridescence_flip_hue_direction_pzb" - label "Iridescence Flip Hue Direction" + label "Flip Hue Direction" type toggle default { "0" } help "flip interpolation around the hue wheel to counter-clockwise direction" @@ -807,7 +807,7 @@ } parm { name "xn__inputsiridescence_ramp_interpolation_mode_u7b" - label "Iridescence Ramp Interpolation Mode" + label "Ramp Interpolation Mode" type string default { "RGB" } help "RGB: lerp in RGB space which matches UI preview but can lose saturation, HSV: lerp in HSV space which preserves saturation" @@ -835,7 +835,7 @@ } parm { name "iridescence_ramp" - label "Iridescence Ramp" + label "Ramp" type ramp_rgb default { "7" } disablewhen "{ xn__inputsiridescence_colors_control_6sb == block } { xn__inputsiridescence_colors_control_6sb == none }" @@ -859,7 +859,7 @@ } parm { name "xn__inputsiridescence_thickness_1kb" - label "Iridescence Thickness" + label "Thickness" type float default { "1" } help "Controls how much the color spectrum is repeated" @@ -884,7 +884,7 @@ } parm { name "xn__inputsiridescence_exponent_fjb" - label "Iridescence Exponent" + label "Exponent" type float default { "1" } help "Tightens or broadens the distribution of colors" @@ -909,7 +909,7 @@ } parm { name "xn__inputsiridescence_at_0_incidence_6sb" - label "Iridescence At 0 Incidence" + label "At 0 Incidence" type float default { "1" } help "Iridescence effect at 0 degree viewing angle" @@ -934,7 +934,7 @@ } parm { name "xn__inputsiridescence_at_90_incidence_tub" - label "Iridescence At 90 Incidence" + label "At 90 Incidence" type float default { "1" } help "Iridescence effect at 90 degree viewing angle" @@ -987,7 +987,7 @@ } parm { name "xn__inputstransmission_color_5fb" - label "Transmission Color" + label "Color" type color size 3 default { "1" "1" "1" } diff --git a/houdini/soho/parameters/moonray_DwaSkinMaterial.ds b/houdini/soho/parameters/moonray_DwaSkinMaterial.ds index 3959efe..783bd69 100644 --- a/houdini/soho/parameters/moonray_DwaSkinMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaSkinMaterial.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_roughness_n8a" - label "Fuzz Roughness" + label "Roughness" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -219,7 +219,7 @@ } parm { name "xn__inputsmoisture_model_n8a" - label "Moisture Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for the moisture specular. GGX is currently isotropic only" @@ -247,7 +247,7 @@ } parm { name "xn__inputsmoisture_mask_06a" - label "Moisture Mask" + label "Mask" type float default { "1" } help "bind map here, higher values for oily zones" @@ -272,7 +272,7 @@ } parm { name "xn__inputsmoisture_refractive_index_krb" - label "Moisture Refractive Index" + label "Refractive Index" type float default { "1.5" } help "defines the Fresnel behavior of moisture, and all underlying skin layers" @@ -297,7 +297,7 @@ } parm { name "xn__inputsmoisture_roughness_5fb" - label "Moisture Roughness" + label "Roughness" type float default { "0.25" } help "roughness of moisture; binding a map here should rarely be necessary" @@ -368,7 +368,7 @@ } parm { name "xn__inputsmoisture_normal_dial_fjb" - label "Moisture Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of influence of the alternate Moisture normal" @@ -446,7 +446,7 @@ } parm { name "xn__inputsglitter_seed_e5a" - label "Glitter Seed" + label "Seed" type integer default { "0" } help "The seed for the glitter random number generator" @@ -471,7 +471,7 @@ } parm { name "xn__inputsglitter_space_06a" - label "Glitter Space" + label "Space" type string default { "reference" } help "The space to calculate the worley noise in, defaults to reference space" @@ -499,7 +499,7 @@ } parm { name "xn__inputsglitter_density_99a" - label "Glitter Density" + label "Density" type float default { "1" } help "controls the number of flakes per unit length; larger density packs more flakes into same space" @@ -524,7 +524,7 @@ } parm { name "xn__inputsglitter_randomness_5fb" - label "Glitter Randomness" + label "Randomness" type float default { "0.5" } help "randomness of flake orientation" @@ -549,7 +549,7 @@ } parm { name "xn__inputsglitter_layering_mode_1kb" - label "Glitter Layering Mode" + label "Layering Mode" type string default { "physical" } help "layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)" @@ -577,7 +577,7 @@ } parm { name "xn__inputsglitter_style_A_frequency_krb" - label "Glitter Style A Frequency" + label "Style A Frequency" type float default { "1" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -602,7 +602,7 @@ } parm { name "xn__inputsglitter_size_A_n8a" - label "Glitter Size A" + label "Size A" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -627,7 +627,7 @@ } parm { name "xn__inputsglitter_roughness_A_shb" - label "Glitter Roughness A" + label "Roughness A" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -652,7 +652,7 @@ } parm { name "xn__inputsglitter_color_A_99a" - label "Glitter Color A" + label "Color A" type color size 3 default { "1" "1" "1" } @@ -676,7 +676,7 @@ } parm { name "xn__inputsglitter_texture_A_jeb" - label "Glitter Texture A" + label "Texture A" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -700,7 +700,7 @@ } parm { name "xn__inputsglitter_style_B_frequency_krb" - label "Glitter Style B Frequency" + label "Style B Frequency" type float default { "0" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -725,7 +725,7 @@ } parm { name "xn__inputsglitter_size_B_n8a" - label "Glitter Size B" + label "Size B" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -750,7 +750,7 @@ } parm { name "xn__inputsglitter_roughness_B_shb" - label "Glitter Roughness B" + label "Roughness B" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -775,7 +775,7 @@ } parm { name "xn__inputsglitter_color_B_99a" - label "Glitter Color B" + label "Color B" type color size 3 default { "1" "1" "1" } @@ -799,7 +799,7 @@ } parm { name "xn__inputsglitter_texture_B_jeb" - label "Glitter Texture B" + label "Texture B" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -823,7 +823,7 @@ } parm { name "xn__inputsglitter_texture_orientation_randomness_qdc" - label "Glitter Texture Orientation Randomness" + label "Texture Orientation Randomness" type float default { "0.15" } help "randomly orient each texture" @@ -848,7 +848,7 @@ } parm { name "xn__inputsglitter_color_hue_variation_tub" - label "Glitter Color Hue Variation" + label "Color Hue Variation" type float default { "0" } help "introduce hue variation in flake color centered at the base flake color's hue on the hue wheel" @@ -873,7 +873,7 @@ } parm { name "xn__inputsglitter_color_saturation_variation_75b" - label "Glitter Color Saturation Variation" + label "Color Saturation Variation" type float default { "0" } help "introduce saturation variation in flake color centered at the base flake color's saturation" @@ -898,7 +898,7 @@ } parm { name "xn__inputsglitter_color_value_variation_2xb" - label "Glitter Color Value Variation" + label "Color Value Variation" type float default { "0" } help "introduce value variation in flake color centered at the base flake color's value" @@ -923,7 +923,7 @@ } parm { name "xn__inputsglitter_jitter_n8a" - label "Glitter Jitter" + label "Jitter" type float default { "1" } help "Controls how much the flakes are randomly offset from a regular grid" @@ -946,7 +946,7 @@ } parm { name "xn__inputsglitter_compensate_reference_space_deformation_rqc" - label "Glitter Compensate Reference Space Deformation" + label "Compensate Reference Space Deformation" type toggle default { "1" } help "(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc" @@ -968,7 +968,7 @@ } parm { name "xn__inputsglitter_approximate_for_secondary_rays_qdc" - label "Glitter Approximate For Secondary Rays" + label "Approximate For Secondary Rays" type toggle default { "1" } help "use an approximation to shade glitter for non-mirror secondary rays" @@ -992,7 +992,7 @@ } parm { name "xn__inputsglitter_LOD_quality_shb" - label "Glitter LOD Quality" + label "LOD Quality" type float default { "0.5" } help "controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier" @@ -1017,7 +1017,7 @@ } parm { name "xn__inputsglitter_debug_mode_5fb" - label "Glitter Debug Mode" + label "Debug Mode" type string default { "off" } help "developer debug visualization modes" @@ -1100,7 +1100,7 @@ } parm { name "xn__inputsspecular_model_n8a" - label "Specular Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for specular. GGX is currently isotropic only" @@ -1260,7 +1260,7 @@ } parm { name "xn__inputsiridescence_apply_to_fjb" - label "Iridescence Apply To" + label "Apply To" type string default { "primary specular" } help "Apply iridescence to primary specular lobe or clearcoat/moisture lobe" @@ -1288,7 +1288,7 @@ } parm { name "xn__inputsiridescence_color_control_krb" - label "Iridescence Color Control" + label "Color Control" type string default { "use hue interpolation" } help "use hue interpolation: automatically cycles through hue wheel, use ramp: user specified color ramp" @@ -1316,7 +1316,7 @@ } parm { name "xn__inputsiridescence_primary_color_krb" - label "Iridescence Primary Color" + label "Primary Color" type color size 3 default { "1" "0" "0" } @@ -1342,7 +1342,7 @@ } parm { name "xn__inputsiridescence_secondary_color_tub" - label "Iridescence Secondary Color" + label "Secondary Color" type color size 3 default { "1" "0" "0" } @@ -1366,7 +1366,7 @@ } parm { name "xn__inputsiridescence_flip_hue_direction_pzb" - label "Iridescence Flip Hue Direction" + label "Flip Hue Direction" type toggle default { "0" } help "flip interpolation around the hue wheel to counter-clockwise direction" @@ -1390,7 +1390,7 @@ } parm { name "xn__inputsiridescence_ramp_interpolation_mode_u7b" - label "Iridescence Ramp Interpolation Mode" + label "Ramp Interpolation Mode" type string default { "RGB" } help "RGB: lerp in RGB space which matches UI preview but can lose saturation, HSV: lerp in HSV space which preserves saturation" @@ -1418,7 +1418,7 @@ } parm { name "iridescence_ramp" - label "Iridescence Ramp" + label "Ramp" type ramp_rgb default { "7" } disablewhen "{ xn__inputsiridescence_colors_control_6sb == block } { xn__inputsiridescence_colors_control_6sb == none }" @@ -1442,7 +1442,7 @@ } parm { name "xn__inputsiridescence_thickness_1kb" - label "Iridescence Thickness" + label "Thickness" type float default { "1" } help "Controls how much the color spectrum is repeated" @@ -1467,7 +1467,7 @@ } parm { name "xn__inputsiridescence_exponent_fjb" - label "Iridescence Exponent" + label "Exponent" type float default { "1" } help "Tightens or broadens the distribution of colors" @@ -1492,7 +1492,7 @@ } parm { name "xn__inputsiridescence_at_0_incidence_6sb" - label "Iridescence At 0 Incidence" + label "At 0 Incidence" type float default { "1" } help "Iridescence effect at 0 degree viewing angle" @@ -1517,7 +1517,7 @@ } parm { name "xn__inputsiridescence_at_90_incidence_tub" - label "Iridescence At 90 Incidence" + label "At 90 Incidence" type float default { "1" } help "Iridescence effect at 90 degree viewing angle" @@ -1619,7 +1619,7 @@ } parm { name "xn__inputsdiffuse_roughness_jeb" - label "Diffuse Roughness" + label "Roughness" type float default { "0" } help "Roughness of the diffuse shading. If the value is zero a Lambertian model is used. If it's above zero the Oren Nayar model is used. Not compatible with subsurface scattering." @@ -1793,7 +1793,7 @@ } parm { name "xn__inputsdiffuse_transmission_fjb" - label "Diffuse Transmission" + label "Transmission" type float default { "1" } help "multiplier on the amount of light that is transmitted through the surface." @@ -1818,7 +1818,7 @@ } parm { name "xn__inputsdiffuse_transmission_color_6sb" - label "Diffuse Transmission Color" + label "Transmission Color" type color size 3 default { "0" "0" "0" } @@ -1844,7 +1844,7 @@ } parm { name "xn__inputsdiffuse_transmission_blending_behavior_qdc" - label "Diffuse Transmission Blending Behavior" + label "Transmission Blending Behavior" type string default { "Monochromatic" } help "Controls how diffuse transmission color attenuates diffuse reflection" diff --git a/houdini/soho/parameters/moonray_DwaSolidDielectricMaterial.ds b/houdini/soho/parameters/moonray_DwaSolidDielectricMaterial.ds index cc0ab78..c9beef2 100644 --- a/houdini/soho/parameters/moonray_DwaSolidDielectricMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaSolidDielectricMaterial.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_roughness_n8a" - label "Fuzz Roughness" + label "Roughness" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -244,7 +244,7 @@ } parm { name "xn__inputsclearcoat_model_99a" - label "Clearcoat Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for clearcoat. GGX is currently isotropic only" @@ -272,7 +272,7 @@ } parm { name "xn__inputsclearcoat_refractive_index_6sb" - label "Clearcoat Refractive Index" + label "Refractive Index" type float default { "1.5" } help "defines the Fresnel behavior" @@ -297,7 +297,7 @@ } parm { name "xn__inputsclearcoat_roughness_shb" - label "Clearcoat Roughness" + label "Roughness" type float default { "0.1" } help "the roughness of the clearcoat lobe" @@ -322,7 +322,7 @@ } parm { name "xn__inputsclearcoat_thickness_shb" - label "Clearcoat Thickness" + label "Thickness" type float default { "0" } help "the thickness of the virtual clearcoat layer. Values > 0 enable absorption" @@ -347,7 +347,7 @@ } parm { name "xn__inputsclearcoat_attenuation_color_tub" - label "Clearcoat Attenuation Color" + label "Attenuation Color" type color size 3 default { "0.5" "0.5" "0.5" } @@ -371,7 +371,7 @@ } parm { name "xn__inputsclearcoat_bending_jeb" - label "Clearcoat Bending" + label "Bending" type toggle default { "1" } help "(advanced, recommended ON) bends rays based on the clearcoat-refractive-index before evaluating the lobes under clearcoat" @@ -441,7 +441,7 @@ } parm { name "xn__inputsclearcoat_normal_dial_1kb" - label "Clearcoat Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate clearcoat normal" @@ -519,7 +519,7 @@ } parm { name "xn__inputsglitter_seed_e5a" - label "Glitter Seed" + label "Seed" type integer default { "0" } help "The seed for the glitter random number generator" @@ -544,7 +544,7 @@ } parm { name "xn__inputsglitter_space_06a" - label "Glitter Space" + label "Space" type string default { "reference" } help "The space to calculate the worley noise in, defaults to reference space" @@ -572,7 +572,7 @@ } parm { name "xn__inputsglitter_density_99a" - label "Glitter Density" + label "Density" type float default { "1" } help "controls the number of flakes per unit length; larger density packs more flakes into same space" @@ -597,7 +597,7 @@ } parm { name "xn__inputsglitter_randomness_5fb" - label "Glitter Randomness" + label "Randomness" type float default { "0.5" } help "randomness of flake orientation" @@ -622,7 +622,7 @@ } parm { name "xn__inputsglitter_layering_mode_1kb" - label "Glitter Layering Mode" + label "Layering Mode" type string default { "physical" } help "layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)" @@ -650,7 +650,7 @@ } parm { name "xn__inputsglitter_style_A_frequency_krb" - label "Glitter Style A Frequency" + label "Style A Frequency" type float default { "1" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -675,7 +675,7 @@ } parm { name "xn__inputsglitter_size_A_n8a" - label "Glitter Size A" + label "Size A" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -700,7 +700,7 @@ } parm { name "xn__inputsglitter_roughness_A_shb" - label "Glitter Roughness A" + label "Roughness A" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -725,7 +725,7 @@ } parm { name "xn__inputsglitter_color_A_99a" - label "Glitter Color A" + label "Color A" type color size 3 default { "1" "1" "1" } @@ -749,7 +749,7 @@ } parm { name "xn__inputsglitter_texture_A_jeb" - label "Glitter Texture A" + label "Texture A" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -773,7 +773,7 @@ } parm { name "xn__inputsglitter_style_B_frequency_krb" - label "Glitter Style B Frequency" + label "Style B Frequency" type float default { "0" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -798,7 +798,7 @@ } parm { name "xn__inputsglitter_size_B_n8a" - label "Glitter Size B" + label "Size B" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -823,7 +823,7 @@ } parm { name "xn__inputsglitter_roughness_B_shb" - label "Glitter Roughness B" + label "Roughness B" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -848,7 +848,7 @@ } parm { name "xn__inputsglitter_color_B_99a" - label "Glitter Color B" + label "Color B" type color size 3 default { "1" "1" "1" } @@ -872,7 +872,7 @@ } parm { name "xn__inputsglitter_texture_B_jeb" - label "Glitter Texture B" + label "Texture B" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -896,7 +896,7 @@ } parm { name "xn__inputsglitter_texture_orientation_randomness_qdc" - label "Glitter Texture Orientation Randomness" + label "Texture Orientation Randomness" type float default { "0.15" } help "randomly orient each texture" @@ -921,7 +921,7 @@ } parm { name "xn__inputsglitter_color_hue_variation_tub" - label "Glitter Color Hue Variation" + label "Color Hue Variation" type float default { "0" } help "introduce hue variation in flake color centered at the base flake color's hue on the hue wheel" @@ -946,7 +946,7 @@ } parm { name "xn__inputsglitter_color_saturation_variation_75b" - label "Glitter Color Saturation Variation" + label "Color Saturation Variation" type float default { "0" } help "introduce saturation variation in flake color centered at the base flake color's saturation" @@ -971,7 +971,7 @@ } parm { name "xn__inputsglitter_color_value_variation_2xb" - label "Glitter Color Value Variation" + label "Color Value Variation" type float default { "0" } help "introduce value variation in flake color centered at the base flake color's value" @@ -996,7 +996,7 @@ } parm { name "xn__inputsglitter_jitter_n8a" - label "Glitter Jitter" + label "Jitter" type float default { "1" } help "Controls how much the flakes are randomly offset from a regular grid" @@ -1019,7 +1019,7 @@ } parm { name "xn__inputsglitter_compensate_reference_space_deformation_rqc" - label "Glitter Compensate Reference Space Deformation" + label "Compensate Reference Space Deformation" type toggle default { "1" } help "(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc" @@ -1041,7 +1041,7 @@ } parm { name "xn__inputsglitter_approximate_for_secondary_rays_qdc" - label "Glitter Approximate For Secondary Rays" + label "Approximate For Secondary Rays" type toggle default { "1" } help "use an approximation to shade glitter for non-mirror secondary rays" @@ -1065,7 +1065,7 @@ } parm { name "xn__inputsglitter_LOD_quality_shb" - label "Glitter LOD Quality" + label "LOD Quality" type float default { "0.5" } help "controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier" @@ -1090,7 +1090,7 @@ } parm { name "xn__inputsglitter_debug_mode_5fb" - label "Glitter Debug Mode" + label "Debug Mode" type string default { "off" } help "developer debug visualization modes" @@ -1150,7 +1150,7 @@ } parm { name "xn__inputsspecular_model_n8a" - label "Specular Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for specular. GGX is currently isotropic only" @@ -1310,7 +1310,7 @@ } parm { name "xn__inputsiridescence_apply_to_fjb" - label "Iridescence Apply To" + label "Apply To" type string default { "primary specular" } help "Apply iridescence to primary specular lobe or clearcoat/moisture lobe" @@ -1338,7 +1338,7 @@ } parm { name "xn__inputsiridescence_color_control_krb" - label "Iridescence Color Control" + label "Color Control" type string default { "use hue interpolation" } help "use hue interpolation: automatically cycles through hue wheel, use ramp: user specified color ramp" @@ -1366,7 +1366,7 @@ } parm { name "xn__inputsiridescence_primary_color_krb" - label "Iridescence Primary Color" + label "Primary Color" type color size 3 default { "1" "0" "0" } @@ -1392,7 +1392,7 @@ } parm { name "xn__inputsiridescence_secondary_color_tub" - label "Iridescence Secondary Color" + label "Secondary Color" type color size 3 default { "1" "0" "0" } @@ -1416,7 +1416,7 @@ } parm { name "xn__inputsiridescence_flip_hue_direction_pzb" - label "Iridescence Flip Hue Direction" + label "Flip Hue Direction" type toggle default { "0" } help "flip interpolation around the hue wheel to counter-clockwise direction" @@ -1440,7 +1440,7 @@ } parm { name "xn__inputsiridescence_ramp_interpolation_mode_u7b" - label "Iridescence Ramp Interpolation Mode" + label "Ramp Interpolation Mode" type string default { "RGB" } help "RGB: lerp in RGB space which matches UI preview but can lose saturation, HSV: lerp in HSV space which preserves saturation" @@ -1468,7 +1468,7 @@ } parm { name "iridescence_ramp" - label "Iridescence Ramp" + label "Ramp" type ramp_rgb default { "7" } disablewhen "{ xn__inputsiridescence_colors_control_6sb == block } { xn__inputsiridescence_colors_control_6sb == none }" @@ -1492,7 +1492,7 @@ } parm { name "xn__inputsiridescence_thickness_1kb" - label "Iridescence Thickness" + label "Thickness" type float default { "1" } help "Controls how much the color spectrum is repeated" @@ -1517,7 +1517,7 @@ } parm { name "xn__inputsiridescence_exponent_fjb" - label "Iridescence Exponent" + label "Exponent" type float default { "1" } help "Tightens or broadens the distribution of colors" @@ -1542,7 +1542,7 @@ } parm { name "xn__inputsiridescence_at_0_incidence_6sb" - label "Iridescence At 0 Incidence" + label "At 0 Incidence" type float default { "1" } help "Iridescence effect at 0 degree viewing angle" @@ -1567,7 +1567,7 @@ } parm { name "xn__inputsiridescence_at_90_incidence_tub" - label "Iridescence At 90 Incidence" + label "At 90 Incidence" type float default { "1" } help "Iridescence effect at 90 degree viewing angle" @@ -1646,7 +1646,7 @@ } parm { name "xn__inputsdiffuse_roughness_jeb" - label "Diffuse Roughness" + label "Roughness" type float default { "0" } help "Roughness of the diffuse shading. If the value is zero a Lambertian model is used. If it's above zero the Oren Nayar model is used. Not compatible with subsurface scattering." @@ -1820,7 +1820,7 @@ } parm { name "xn__inputsdiffuse_transmission_fjb" - label "Diffuse Transmission" + label "Transmission" type float default { "1" } help "multiplier on the amount of light that is transmitted through the surface." @@ -1845,7 +1845,7 @@ } parm { name "xn__inputsdiffuse_transmission_color_6sb" - label "Diffuse Transmission Color" + label "Transmission Color" type color size 3 default { "0" "0" "0" } @@ -1871,7 +1871,7 @@ } parm { name "xn__inputsdiffuse_transmission_blending_behavior_qdc" - label "Diffuse Transmission Blending Behavior" + label "Transmission Blending Behavior" type string default { "Monochromatic" } help "Controls how diffuse transmission color attenuates diffuse reflection" diff --git a/houdini/soho/parameters/moonray_DwaToonMaterial.ds b/houdini/soho/parameters/moonray_DwaToonMaterial.ds index 959b7a5..1339363 100644 --- a/houdini/soho/parameters/moonray_DwaToonMaterial.ds +++ b/houdini/soho/parameters/moonray_DwaToonMaterial.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_roughness_n8a" - label "Fuzz Roughness" + label "Roughness" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -244,7 +244,7 @@ } parm { name "xn__inputsclearcoat_model_99a" - label "Clearcoat Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for clearcoat. GGX is currently isotropic only" @@ -272,7 +272,7 @@ } parm { name "xn__inputsclearcoat_refractive_index_6sb" - label "Clearcoat Refractive Index" + label "Refractive Index" type float default { "1.5" } help "defines the Fresnel behavior" @@ -297,7 +297,7 @@ } parm { name "xn__inputsclearcoat_roughness_shb" - label "Clearcoat Roughness" + label "Roughness" type float default { "0.1" } help "the roughness of the clearcoat lobe" @@ -322,7 +322,7 @@ } parm { name "xn__inputsclearcoat_thickness_shb" - label "Clearcoat Thickness" + label "Thickness" type float default { "0" } help "the thickness of the virtual clearcoat layer. Values > 0 enable absorption" @@ -347,7 +347,7 @@ } parm { name "xn__inputsclearcoat_attenuation_color_tub" - label "Clearcoat Attenuation Color" + label "Attenuation Color" type color size 3 default { "0.5" "0.5" "0.5" } @@ -371,7 +371,7 @@ } parm { name "xn__inputsclearcoat_bending_jeb" - label "Clearcoat Bending" + label "Bending" type toggle default { "1" } help "(advanced, recommended ON) bends rays based on the clearcoat-refractive-index before evaluating the lobes under clearcoat" @@ -441,7 +441,7 @@ } parm { name "xn__inputsclearcoat_normal_dial_1kb" - label "Clearcoat Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate clearcoat normal" @@ -519,7 +519,7 @@ } parm { name "xn__inputsglitter_seed_e5a" - label "Glitter Seed" + label "Seed" type integer default { "0" } help "The seed for the glitter random number generator" @@ -544,7 +544,7 @@ } parm { name "xn__inputsglitter_space_06a" - label "Glitter Space" + label "Space" type string default { "reference" } help "The space to calculate the worley noise in, defaults to reference space" @@ -572,7 +572,7 @@ } parm { name "xn__inputsglitter_density_99a" - label "Glitter Density" + label "Density" type float default { "1" } help "controls the number of flakes per unit length; larger density packs more flakes into same space" @@ -597,7 +597,7 @@ } parm { name "xn__inputsglitter_randomness_5fb" - label "Glitter Randomness" + label "Randomness" type float default { "0.5" } help "randomness of flake orientation" @@ -622,7 +622,7 @@ } parm { name "xn__inputsglitter_layering_mode_1kb" - label "Glitter Layering Mode" + label "Layering Mode" type string default { "physical" } help "layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)" @@ -650,7 +650,7 @@ } parm { name "xn__inputsglitter_style_A_frequency_krb" - label "Glitter Style A Frequency" + label "Style A Frequency" type float default { "1" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -675,7 +675,7 @@ } parm { name "xn__inputsglitter_size_A_n8a" - label "Glitter Size A" + label "Size A" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -700,7 +700,7 @@ } parm { name "xn__inputsglitter_roughness_A_shb" - label "Glitter Roughness A" + label "Roughness A" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -725,7 +725,7 @@ } parm { name "xn__inputsglitter_color_A_99a" - label "Glitter Color A" + label "Color A" type color size 3 default { "1" "1" "1" } @@ -749,7 +749,7 @@ } parm { name "xn__inputsglitter_texture_A_jeb" - label "Glitter Texture A" + label "Texture A" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -773,7 +773,7 @@ } parm { name "xn__inputsglitter_style_B_frequency_krb" - label "Glitter Style B Frequency" + label "Style B Frequency" type float default { "0" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -798,7 +798,7 @@ } parm { name "xn__inputsglitter_size_B_n8a" - label "Glitter Size B" + label "Size B" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -823,7 +823,7 @@ } parm { name "xn__inputsglitter_roughness_B_shb" - label "Glitter Roughness B" + label "Roughness B" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -848,7 +848,7 @@ } parm { name "xn__inputsglitter_color_B_99a" - label "Glitter Color B" + label "Color B" type color size 3 default { "1" "1" "1" } @@ -872,7 +872,7 @@ } parm { name "xn__inputsglitter_texture_B_jeb" - label "Glitter Texture B" + label "Texture B" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -896,7 +896,7 @@ } parm { name "xn__inputsglitter_texture_orientation_randomness_qdc" - label "Glitter Texture Orientation Randomness" + label "Texture Orientation Randomness" type float default { "0.15" } help "randomly orient each texture" @@ -921,7 +921,7 @@ } parm { name "xn__inputsglitter_color_hue_variation_tub" - label "Glitter Color Hue Variation" + label "Color Hue Variation" type float default { "0" } help "introduce hue variation in flake color centered at the base flake color's hue on the hue wheel" @@ -946,7 +946,7 @@ } parm { name "xn__inputsglitter_color_saturation_variation_75b" - label "Glitter Color Saturation Variation" + label "Color Saturation Variation" type float default { "0" } help "introduce saturation variation in flake color centered at the base flake color's saturation" @@ -971,7 +971,7 @@ } parm { name "xn__inputsglitter_color_value_variation_2xb" - label "Glitter Color Value Variation" + label "Color Value Variation" type float default { "0" } help "introduce value variation in flake color centered at the base flake color's value" @@ -996,7 +996,7 @@ } parm { name "xn__inputsglitter_jitter_n8a" - label "Glitter Jitter" + label "Jitter" type float default { "1" } help "Controls how much the flakes are randomly offset from a regular grid" @@ -1019,7 +1019,7 @@ } parm { name "xn__inputsglitter_compensate_reference_space_deformation_rqc" - label "Glitter Compensate Reference Space Deformation" + label "Compensate Reference Space Deformation" type toggle default { "1" } help "(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc" @@ -1041,7 +1041,7 @@ } parm { name "xn__inputsglitter_approximate_for_secondary_rays_qdc" - label "Glitter Approximate For Secondary Rays" + label "Approximate For Secondary Rays" type toggle default { "1" } help "use an approximation to shade glitter for non-mirror secondary rays" @@ -1065,7 +1065,7 @@ } parm { name "xn__inputsglitter_LOD_quality_shb" - label "Glitter LOD Quality" + label "LOD Quality" type float default { "0.5" } help "controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier" @@ -1090,7 +1090,7 @@ } parm { name "xn__inputsglitter_debug_mode_5fb" - label "Glitter Debug Mode" + label "Debug Mode" type string default { "off" } help "developer debug visualization modes" @@ -1150,7 +1150,7 @@ } parm { name "xn__inputsspecular_model_n8a" - label "Specular Model" + label "Model" type string default { "GGX" } help "sets the normal distribution function for specular. GGX is currently isotropic only" @@ -2302,7 +2302,7 @@ } parm { name "xn__inputsiridescence_apply_to_fjb" - label "Iridescence Apply To" + label "Apply To" type string default { "primary specular" } help "Apply iridescence to primary specular lobe or clearcoat/moisture lobe" @@ -2330,7 +2330,7 @@ } parm { name "xn__inputsiridescence_color_control_krb" - label "Iridescence Color Control" + label "Color Control" type string default { "use hue interpolation" } help "use hue interpolation: automatically cycles through hue wheel, use ramp: user specified color ramp" @@ -2358,7 +2358,7 @@ } parm { name "xn__inputsiridescence_primary_color_krb" - label "Iridescence Primary Color" + label "Primary Color" type color size 3 default { "1" "0" "0" } @@ -2384,7 +2384,7 @@ } parm { name "xn__inputsiridescence_secondary_color_tub" - label "Iridescence Secondary Color" + label "Secondary Color" type color size 3 default { "1" "0" "0" } @@ -2408,7 +2408,7 @@ } parm { name "xn__inputsiridescence_flip_hue_direction_pzb" - label "Iridescence Flip Hue Direction" + label "Flip Hue Direction" type toggle default { "0" } help "flip interpolation around the hue wheel to counter-clockwise direction" @@ -2432,7 +2432,7 @@ } parm { name "xn__inputsiridescence_ramp_interpolation_mode_u7b" - label "Iridescence Ramp Interpolation Mode" + label "Ramp Interpolation Mode" type string default { "RGB" } help "RGB: lerp in RGB space which matches UI preview but can lose saturation, HSV: lerp in HSV space which preserves saturation" @@ -2460,7 +2460,7 @@ } parm { name "iridescence_ramp" - label "Iridescence Ramp" + label "Ramp" type ramp_rgb default { "7" } disablewhen "{ xn__inputsiridescence_colors_control_6sb == block } { xn__inputsiridescence_colors_control_6sb == none }" @@ -2484,7 +2484,7 @@ } parm { name "xn__inputsiridescence_thickness_1kb" - label "Iridescence Thickness" + label "Thickness" type float default { "1" } help "Controls how much the color spectrum is repeated" @@ -2509,7 +2509,7 @@ } parm { name "xn__inputsiridescence_exponent_fjb" - label "Iridescence Exponent" + label "Exponent" type float default { "1" } help "Tightens or broadens the distribution of colors" @@ -2534,7 +2534,7 @@ } parm { name "xn__inputsiridescence_at_0_incidence_6sb" - label "Iridescence At 0 Incidence" + label "At 0 Incidence" type float default { "1" } help "Iridescence effect at 0 degree viewing angle" @@ -2559,7 +2559,7 @@ } parm { name "xn__inputsiridescence_at_90_incidence_tub" - label "Iridescence At 90 Incidence" + label "At 90 Incidence" type float default { "1" } help "Iridescence effect at 90 degree viewing angle" @@ -2635,7 +2635,7 @@ } parm { name "xn__inputsdiffuse_model_06a" - label "Diffuse Model" + label "Model" type string default { "oren-nayar" } help "The method used to render the diffuse response." @@ -2689,7 +2689,7 @@ } parm { name "xn__inputsdiffuse_roughness_jeb" - label "Diffuse Roughness" + label "Roughness" type float default { "0" } help "Roughness of the diffuse shading. If the value is zero a Lambertian model is used. If it's above zero the Oren Nayar model is used. Not compatible with subsurface scattering." @@ -2739,7 +2739,7 @@ } parm { name "xn__inputsdiffuse_flatness_wcb" - label "Diffuse Flatness" + label "Flatness" type float default { "0" } help "Flattens out the diffuse response by bending the normal towards the light direction" @@ -2764,7 +2764,7 @@ } parm { name "xn__inputsdiffuse_flatness_falloff_xpb" - label "Diffuse Flatness Falloff" + label "Flatness Falloff" type float default { "0" } help "Fades out flatness with respect to light direction" @@ -3519,7 +3519,7 @@ } parm { name "xn__inputsdiffuse_transmission_fjb" - label "Diffuse Transmission" + label "Transmission" type float default { "1" } help "multiplier on the amount of light that is transmitted through the surface." @@ -3544,7 +3544,7 @@ } parm { name "xn__inputsdiffuse_transmission_color_6sb" - label "Diffuse Transmission Color" + label "Transmission Color" type color size 3 default { "0" "0" "0" } @@ -3570,7 +3570,7 @@ } parm { name "xn__inputsdiffuse_transmission_blending_behavior_qdc" - label "Diffuse Transmission Blending Behavior" + label "Transmission Blending Behavior" type string default { "Monochromatic" } help "Controls how diffuse transmission color attenuates diffuse reflection" @@ -3651,7 +3651,7 @@ } parm { name "xn__inputstransmission_color_5fb" - label "Transmission Color" + label "Color" type color size 3 default { "1" "1" "1" } diff --git a/houdini/soho/parameters/moonray_DwaVelvetMaterial_v2.ds b/houdini/soho/parameters/moonray_DwaVelvetMaterial_v2.ds index cf4404c..6f4949e 100644 --- a/houdini/soho/parameters/moonray_DwaVelvetMaterial_v2.ds +++ b/houdini/soho/parameters/moonray_DwaVelvetMaterial_v2.ds @@ -69,7 +69,7 @@ } parm { name "xn__inputsfuzz_coverage_06a" - label "Fuzz Coverage" + label "Coverage" type float default { "0.25" } help "Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage" @@ -94,7 +94,7 @@ } parm { name "xn__inputsfuzz_albedo_r3a" - label "Fuzz Albedo" + label "Albedo" type color size 3 default { "1" "1" "1" } @@ -140,7 +140,7 @@ } parm { name "xn__inputsfuzz_normal_r3a" - label "Fuzz Normal" + label "Normal" type oppath invisible default { "" } @@ -166,7 +166,7 @@ } parm { name "xn__inputsfuzz_normal_dial_wcb" - label "Fuzz Normal Dial" + label "Normal Dial" type float default { "1" } help "controls the amount of infuence of the alternate fuzz normal" @@ -244,7 +244,7 @@ } parm { name "xn__inputsglitter_seed_e5a" - label "Glitter Seed" + label "Seed" type integer default { "0" } help "The seed for the glitter random number generator" @@ -269,7 +269,7 @@ } parm { name "xn__inputsglitter_space_06a" - label "Glitter Space" + label "Space" type string default { "reference" } help "The space to calculate the worley noise in, defaults to reference space" @@ -297,7 +297,7 @@ } parm { name "xn__inputsglitter_density_99a" - label "Glitter Density" + label "Density" type float default { "1" } help "controls the number of flakes per unit length; larger density packs more flakes into same space" @@ -322,7 +322,7 @@ } parm { name "xn__inputsglitter_randomness_5fb" - label "Glitter Randomness" + label "Randomness" type float default { "0.5" } help "randomness of flake orientation" @@ -347,7 +347,7 @@ } parm { name "xn__inputsglitter_layering_mode_1kb" - label "Glitter Layering Mode" + label "Layering Mode" type string default { "physical" } help "layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)" @@ -375,7 +375,7 @@ } parm { name "xn__inputsglitter_style_A_frequency_krb" - label "Glitter Style A Frequency" + label "Style A Frequency" type float default { "1" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -400,7 +400,7 @@ } parm { name "xn__inputsglitter_size_A_n8a" - label "Glitter Size A" + label "Size A" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -425,7 +425,7 @@ } parm { name "xn__inputsglitter_roughness_A_shb" - label "Glitter Roughness A" + label "Roughness A" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -450,7 +450,7 @@ } parm { name "xn__inputsglitter_color_A_99a" - label "Glitter Color A" + label "Color A" type color size 3 default { "1" "1" "1" } @@ -474,7 +474,7 @@ } parm { name "xn__inputsglitter_texture_A_jeb" - label "Glitter Texture A" + label "Texture A" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -498,7 +498,7 @@ } parm { name "xn__inputsglitter_style_B_frequency_krb" - label "Glitter Style B Frequency" + label "Style B Frequency" type float default { "0" } help "0 implies none of this style, 1 implies all the flakes will get this style" @@ -523,7 +523,7 @@ } parm { name "xn__inputsglitter_size_B_n8a" - label "Glitter Size B" + label "Size B" type float default { "1" } help "size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface" @@ -548,7 +548,7 @@ } parm { name "xn__inputsglitter_roughness_B_shb" - label "Glitter Roughness B" + label "Roughness B" type float default { "0.14" } help "specular roughness of individual flakes (0 makes flakes mirror-like)" @@ -573,7 +573,7 @@ } parm { name "xn__inputsglitter_color_B_99a" - label "Glitter Color B" + label "Color B" type color size 3 default { "1" "1" "1" } @@ -597,7 +597,7 @@ } parm { name "xn__inputsglitter_texture_B_jeb" - label "Glitter Texture B" + label "Texture B" type file default { "" } help "filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx)." @@ -621,7 +621,7 @@ } parm { name "xn__inputsglitter_texture_orientation_randomness_qdc" - label "Glitter Texture Orientation Randomness" + label "Texture Orientation Randomness" type float default { "0.15" } help "randomly orient each texture" @@ -646,7 +646,7 @@ } parm { name "xn__inputsglitter_color_hue_variation_tub" - label "Glitter Color Hue Variation" + label "Color Hue Variation" type float default { "0" } help "introduce hue variation in flake color centered at the base flake color's hue on the hue wheel" @@ -671,7 +671,7 @@ } parm { name "xn__inputsglitter_color_saturation_variation_75b" - label "Glitter Color Saturation Variation" + label "Color Saturation Variation" type float default { "0" } help "introduce saturation variation in flake color centered at the base flake color's saturation" @@ -696,7 +696,7 @@ } parm { name "xn__inputsglitter_color_value_variation_2xb" - label "Glitter Color Value Variation" + label "Color Value Variation" type float default { "0" } help "introduce value variation in flake color centered at the base flake color's value" @@ -721,7 +721,7 @@ } parm { name "xn__inputsglitter_jitter_n8a" - label "Glitter Jitter" + label "Jitter" type float default { "1" } help "Controls how much the flakes are randomly offset from a regular grid" @@ -744,7 +744,7 @@ } parm { name "xn__inputsglitter_compensate_reference_space_deformation_rqc" - label "Glitter Compensate Reference Space Deformation" + label "Compensate Reference Space Deformation" type toggle default { "1" } help "(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc" @@ -766,7 +766,7 @@ } parm { name "xn__inputsglitter_approximate_for_secondary_rays_qdc" - label "Glitter Approximate For Secondary Rays" + label "Approximate For Secondary Rays" type toggle default { "1" } help "use an approximation to shade glitter for non-mirror secondary rays" @@ -790,7 +790,7 @@ } parm { name "xn__inputsglitter_LOD_quality_shb" - label "Glitter LOD Quality" + label "LOD Quality" type float default { "0.5" } help "controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier" @@ -815,7 +815,7 @@ } parm { name "xn__inputsglitter_debug_mode_5fb" - label "Glitter Debug Mode" + label "Debug Mode" type string default { "off" } help "developer debug visualization modes" @@ -901,7 +901,7 @@ } parm { name "xn__inputsdiffuse_roughness_jeb" - label "Diffuse Roughness" + label "Roughness" type float default { "0" } help "Roughness of the diffuse shading. If the value is zero a Lambertian model is used. If it's above zero the Oren Nayar model is used. Not compatible with subsurface scattering." @@ -926,7 +926,7 @@ } parm { name "xn__inputsdiffuse_transmission_fjb" - label "Diffuse Transmission" + label "Transmission" type float default { "1" } help "multiplier on the amount of light that is transmitted through the surface." @@ -951,7 +951,7 @@ } parm { name "xn__inputsdiffuse_transmission_color_6sb" - label "Diffuse Transmission Color" + label "Transmission Color" type color size 3 default { "0" "0" "0" } @@ -977,7 +977,7 @@ } parm { name "xn__inputsdiffuse_transmission_blending_behavior_qdc" - label "Diffuse Transmission Blending Behavior" + label "Transmission Blending Behavior" type string default { "Monochromatic" } help "Controls how diffuse transmission color attenuates diffuse reflection" diff --git a/houdini/soho/parameters/moonray_EnvLight.ds b/houdini/soho/parameters/moonray_EnvLight.ds index 36b0213..f5af20f 100644 --- a/houdini/soho/parameters/moonray_EnvLight.ds +++ b/houdini/soho/parameters/moonray_EnvLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -314,8 +314,8 @@ label "Map" parm { - name "xn__inputstexturefile_control_shbh" - label "inputs:texture:file" + name "xn__moonraytexture_control_xcb" + label "moonray:texture" type string default { "none" } menujoin { @@ -327,12 +327,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputstexturefile_r3ah" + name "xn__moonraytexture_wya" label "Texture" type file default { "" } help "File name of the texture applied to the light. If set to the empty string, no texture is applied. Any file format supported by OpenImageIO can be used. The texture is used in 2 ways - for looking up the texture value at the intersection point when a ray hits the light, and for building a lookup-table-based auxilliary data structure used for distributing light samples over the texture." - disablewhen "{ xn__inputstexturefile_control_shbh == block } { xn__inputstexturefile_control_shbh == none }" + disablewhen "{ xn__moonraytexture_control_xcb == block } { xn__moonraytexture_control_xcb == none }" parmtag { "usdvaluetype" "asset" } } parm { diff --git a/houdini/soho/parameters/moonray_HairColorCorrectMaterial.ds b/houdini/soho/parameters/moonray_HairColorCorrectMaterial.ds index 868dc09..95a5bbf 100644 --- a/houdini/soho/parameters/moonray_HairColorCorrectMaterial.ds +++ b/houdini/soho/parameters/moonray_HairColorCorrectMaterial.ds @@ -101,7 +101,7 @@ } parm { name "xn__inputsTMI_enabled_r3a" - label "TMI Enabled" + label "Enabled" type toggle default { "0" } help "enables the TMI parameters" diff --git a/houdini/soho/parameters/moonray_HairDiffuseMaterial.ds b/houdini/soho/parameters/moonray_HairDiffuseMaterial.ds index 7b1d6b4..0a70856 100644 --- a/houdini/soho/parameters/moonray_HairDiffuseMaterial.ds +++ b/houdini/soho/parameters/moonray_HairDiffuseMaterial.ds @@ -178,7 +178,7 @@ } parm { name "xn__inputssubsurface_blend_wcb" - label "Subsurface Blend" + label "Blend" type float default { "1" } help "0 is fully hair diffuse, 1 is fully SSS. No effect if scattering radius is 0." diff --git a/houdini/soho/parameters/moonray_HairMaterial_v3.ds b/houdini/soho/parameters/moonray_HairMaterial_v3.ds index 2470e73..0684028 100644 --- a/houdini/soho/parameters/moonray_HairMaterial_v3.ds +++ b/houdini/soho/parameters/moonray_HairMaterial_v3.ds @@ -158,7 +158,7 @@ } parm { name "xn__inputsfresnel_type_e5a" - label "Fresnel Type" + label "Type" type string default { "dielectric cylinder" } disablewhen "{ xn__inputsfresnel_type_control_fjb == block } { xn__inputsfresnel_type_control_fjb == none }" @@ -238,7 +238,7 @@ } parm { name "xn__inputsprimary_specular_offset_bob" - label "Primary Specular Offset" + label "Offset" type float default { "-3" } help "offset specular highlight along hair direction (in degrees) [-10,+10], around -3 for human hair" @@ -263,7 +263,7 @@ } parm { name "xn__inputsprimary_specular_roughness_6sb" - label "Primary Specular Roughness" + label "Roughness" type float default { "0.5" } help "roughness of the primary specular highlight, also sets the transmission roughness to 0.5x and secondary specular roughness to 2x by default unless independent roughnesses are being used for both" @@ -288,7 +288,7 @@ } parm { name "xn__inputsprimary_specular_tint_1kb" - label "Primary Specular Tint" + label "Tint" type color size 3 default { "1" "1" "1" } @@ -342,7 +342,7 @@ } parm { name "xn__inputssecondary_specular_offset_krb" - label "Secondary Specular Offset" + label "Offset" type float default { "-4.5" } help "offset secondary specular highlight along hair direction (in degrees) [-10,+10], around -4.5 for human hair" @@ -414,7 +414,7 @@ } parm { name "xn__inputssecondary_specular_tint_bob" - label "Secondary Specular Tint" + label "Tint" type color size 3 default { "1" "1" "1" } @@ -615,7 +615,7 @@ } parm { name "xn__inputstransmission_offset_shb" - label "Transmission Offset" + label "Offset" type float default { "-1.5" } help "offset transmission highlight along hair direction (in degrees) [-10,+10], around -1.5 for human hair" @@ -687,7 +687,7 @@ } parm { name "xn__inputstransmission_azimuthal_roughness_y2b" - label "Transmission Azimuthal Roughness" + label "Azimuthal Roughness" type float default { "1" } help "higher values create a softer look" @@ -712,7 +712,7 @@ } parm { name "xn__inputstransmission_tint_jeb" - label "Transmission Tint" + label "Tint" type color size 3 default { "1" "1" "1" } diff --git a/houdini/soho/parameters/moonray_HairToonMaterial.ds b/houdini/soho/parameters/moonray_HairToonMaterial.ds index e316d2c..8218b91 100644 --- a/houdini/soho/parameters/moonray_HairToonMaterial.ds +++ b/houdini/soho/parameters/moonray_HairToonMaterial.ds @@ -121,7 +121,7 @@ } parm { name "xn__inputsspecular_1_show_99a" - label "Specular 1 Show" + label "Show" type toggle default { "1" } help "Show first toon specular lobe" @@ -145,7 +145,7 @@ } parm { name "xn__inputsspecular_1_model_wcb" - label "Specular 1 Model" + label "Model" type string default { "Toon_Surface" } help "sets the normal distribution function for specular" @@ -173,7 +173,7 @@ } parm { name "xn__inputsspecular_1_intensity_fjb" - label "Specular 1 Intensity" + label "Intensity" type float default { "1" } help "The overall intensity of the specular response" @@ -198,7 +198,7 @@ } parm { name "xn__inputsspecular_1_tint_99a" - label "Specular 1 Tint" + label "Tint" type color size 3 default { "1" "1" "1" } @@ -223,7 +223,7 @@ } parm { name "xn__inputsspecular_1_roughness_fjb" - label "Specular 1 Roughness" + label "Roughness" type float default { "0.9" } help "The roughness of the toon specular. Smaller values produce tighter highlights" @@ -248,7 +248,7 @@ } parm { name "xn__inputsspecular_1_stretch_u_fjb" - label "Specular 1 Stretch U" + label "Stretch U" type float default { "0" } help "Amount to stretch or compress the specular in the u direction " @@ -273,7 +273,7 @@ } parm { name "xn__inputsspecular_1_stretch_v_fjb" - label "Specular 1 Stretch V" + label "Stretch V" type float default { "0" } help "Amount to stretch or compress the specular in the v direction " @@ -296,7 +296,7 @@ } parm { name "xn__inputsspecular_1_use_input_vectors_for_stretch_zgc" - label "Specular 1 Use Input Vectors For Stretch" + label "Use Input Vectors For Stretch" type toggle default { "0" } help "when checked, use input_U and V. otherwise use geometry dPds/t" @@ -320,7 +320,7 @@ } parm { name "xn__inputsspecular_1_input_U_5fb" - label "Specular 1 Input U" + label "Input U" type vector size 3 default { "0" "0" "0" } @@ -346,7 +346,7 @@ } parm { name "xn__inputsspecular_1_input_V_5fb" - label "Specular 1 Input V" + label "Input V" type vector size 3 default { "0" "0" "0" } @@ -372,7 +372,7 @@ } parm { name "specular_1_ramp" - label "Specular 1 Ramp" + label "Ramp" type ramp_flt default { "4" } disablewhen "{ xn__inputsspecular_1_values_control_krb == block } { xn__inputsspecular_1_values_control_krb == none }" @@ -396,7 +396,7 @@ } parm { name "xn__inputsspecular_1_mult0_wcb" - label "Specular 1 Mult0" + label "Mult0" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -421,7 +421,7 @@ } parm { name "xn__inputsspecular_1_mult1_wcb" - label "Specular 1 Mult1" + label "Mult1" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -446,7 +446,7 @@ } parm { name "xn__inputsspecular_1_mult2_wcb" - label "Specular 1 Mult2" + label "Mult2" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -471,7 +471,7 @@ } parm { name "xn__inputsspecular_1_mult3_wcb" - label "Specular 1 Mult3" + label "Mult3" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -496,7 +496,7 @@ } parm { name "xn__inputsspecular_1_mult4_wcb" - label "Specular 1 Mult4" + label "Mult4" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -521,7 +521,7 @@ } parm { name "xn__inputsspecular_1_mult5_wcb" - label "Specular 1 Mult5" + label "Mult5" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -546,7 +546,7 @@ } parm { name "xn__inputsspecular_1_mult6_wcb" - label "Specular 1 Mult6" + label "Mult6" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -571,7 +571,7 @@ } parm { name "xn__inputsspecular_1_mult7_wcb" - label "Specular 1 Mult7" + label "Mult7" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -596,7 +596,7 @@ } parm { name "xn__inputsspecular_1_mult8_wcb" - label "Specular 1 Mult8" + label "Mult8" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -621,7 +621,7 @@ } parm { name "xn__inputsspecular_1_mult9_wcb" - label "Specular 1 Mult9" + label "Mult9" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -646,7 +646,7 @@ } parm { name "xn__inputsspecular_1_offset0_5fb" - label "Specular 1 Offset0" + label "Offset0" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -671,7 +671,7 @@ } parm { name "xn__inputsspecular_1_offset1_5fb" - label "Specular 1 Offset1" + label "Offset1" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -696,7 +696,7 @@ } parm { name "xn__inputsspecular_1_offset2_5fb" - label "Specular 1 Offset2" + label "Offset2" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -721,7 +721,7 @@ } parm { name "xn__inputsspecular_1_offset3_5fb" - label "Specular 1 Offset3" + label "Offset3" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -746,7 +746,7 @@ } parm { name "xn__inputsspecular_1_offset4_5fb" - label "Specular 1 Offset4" + label "Offset4" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -771,7 +771,7 @@ } parm { name "xn__inputsspecular_1_offset5_5fb" - label "Specular 1 Offset5" + label "Offset5" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -796,7 +796,7 @@ } parm { name "xn__inputsspecular_1_offset6_5fb" - label "Specular 1 Offset6" + label "Offset6" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -821,7 +821,7 @@ } parm { name "xn__inputsspecular_1_offset7_5fb" - label "Specular 1 Offset7" + label "Offset7" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -846,7 +846,7 @@ } parm { name "xn__inputsspecular_1_offset8_5fb" - label "Specular 1 Offset8" + label "Offset8" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -871,7 +871,7 @@ } parm { name "xn__inputsspecular_1_offset9_5fb" - label "Specular 1 Offset9" + label "Offset9" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -894,7 +894,7 @@ } parm { name "xn__inputsspecular_1_enable_input_normal_pzb" - label "Specular 1 Enable Input Normal" + label "Enable Input Normal" type toggle default { "0" } help "enables sampling the normal map for toon specular 1" @@ -916,7 +916,7 @@ } parm { name "xn__inputsspecular_1_input_normal_bob" - label "Specular 1 Input Normal" + label "Input Normal" type oppath invisible default { "" } @@ -942,7 +942,7 @@ } parm { name "xn__inputsspecular_1_input_normal_dial_gwb" - label "Specular 1 Input Normal Dial" + label "Input Normal Dial" type float default { "1" } help "controls influence of input normal versus hair normal for toon specular 1" @@ -965,7 +965,7 @@ } parm { name "xn__inputsspecular_1_enable_indirect_reflections_qdc" - label "Specular 1 Enable Indirect Reflections" + label "Enable Indirect Reflections" type toggle default { "0" } help "enables indirect GGX reflections for toon specular model" @@ -989,7 +989,7 @@ } parm { name "xn__inputsspecular_1_indirect_reflections_intensity_mic" - label "Specular 1 Indirect Reflections Intensity" + label "Indirect Reflections Intensity" type float default { "1" } help "the intensity for the indirect reflections of the toon specular model" @@ -1014,7 +1014,7 @@ } parm { name "xn__inputsspecular_1_indirect_reflections_roughness_mic" - label "Specular 1 Indirect Reflections Roughness" + label "Indirect Reflections Roughness" type float default { "0.5" } help "the roughness for the indirect reflections of the toon specular model" @@ -1045,7 +1045,7 @@ } parm { name "xn__inputsspecular_1_fresnel_blend_xpb" - label "Specular 1 Fresnel Blend" + label "1 Fresnel Blend" type float default { "1" } help "The amount of fresnel to use for the toon specular response" @@ -1070,7 +1070,7 @@ } parm { name "xn__inputsspecular_1_ramp_input_scale_tub" - label "Specular 1 Ramp Input Scale" + label "1 Ramp Input Scale" type float default { "1" } help "Scales the input value x to the ramp lookup y, where x is based on the angle between the sample direction and normal. This has the effect of squashing or stretching the ramp point positions towards/away from 0." @@ -1095,7 +1095,7 @@ } parm { name "xn__inputsspecular_2_fresnel_blend_xpb" - label "Specular 2 Fresnel Blend" + label "2 Fresnel Blend" type float default { "1" } help "The amount of fresnel to use for the toon specular response" @@ -1120,7 +1120,7 @@ } parm { name "xn__inputsspecular_2_ramp_input_scale_tub" - label "Specular 2 Ramp Input Scale" + label "2 Ramp Input Scale" type float default { "1" } help "Scales the input value x to the ramp lookup y, where x is based on the angle between the sample direction and normal. This has the effect of squashing or stretching the ramp point positions towards/away from 0." @@ -1145,7 +1145,7 @@ } parm { name "xn__inputsspecular_3_fresnel_blend_xpb" - label "Specular 3 Fresnel Blend" + label "3 Fresnel Blend" type float default { "1" } help "The amount of fresnel to use for the toon specular response" @@ -1170,7 +1170,7 @@ } parm { name "xn__inputsspecular_3_ramp_input_scale_tub" - label "Specular 3 Ramp Input Scale" + label "3 Ramp Input Scale" type float default { "1" } help "Scales the input value x to the ramp lookup y, where x is based on the angle between the sample direction and normal. This has the effect of squashing or stretching the ramp point positions towards/away from 0." @@ -1222,7 +1222,7 @@ } parm { name "xn__inputsspecular_2_show_99a" - label "Specular 2 Show" + label "Show" type toggle default { "0" } help "Show second toon specular lobe" @@ -1246,7 +1246,7 @@ } parm { name "xn__inputsspecular_2_model_wcb" - label "Specular 2 Model" + label "Model" type string default { "Toon_Surface" } help "sets the normal distribution function for specular" @@ -1274,7 +1274,7 @@ } parm { name "xn__inputsspecular_2_intensity_fjb" - label "Specular 2 Intensity" + label "Intensity" type float default { "1" } help "The overall intensity of the specular response" @@ -1299,7 +1299,7 @@ } parm { name "xn__inputsspecular_2_tint_99a" - label "Specular 2 Tint" + label "Tint" type color size 3 default { "1" "1" "1" } @@ -1324,7 +1324,7 @@ } parm { name "xn__inputsspecular_2_roughness_fjb" - label "Specular 2 Roughness" + label "Roughness" type float default { "0.9" } help "The roughness of the toon specular. Smaller values produce tighter highlights" @@ -1349,7 +1349,7 @@ } parm { name "xn__inputsspecular_2_stretch_u_fjb" - label "Specular 2 Stretch U" + label "Stretch U" type float default { "0" } help "Amount to stretch or compress the specular in the u direction " @@ -1374,7 +1374,7 @@ } parm { name "xn__inputsspecular_2_stretch_v_fjb" - label "Specular 2 Stretch V" + label "Stretch V" type float default { "0" } help "Amount to stretch or compress the specular in the v direction " @@ -1397,7 +1397,7 @@ } parm { name "xn__inputsspecular_2_use_input_vectors_for_stretch_zgc" - label "Specular 2 Use Input Vectors For Stretch" + label "Use Input Vectors For Stretch" type toggle default { "0" } help "when checked, use input_U and V. otherwise use geometry dPds/t" @@ -1421,7 +1421,7 @@ } parm { name "xn__inputsspecular_2_input_U_5fb" - label "Specular 2 Input U" + label "Input U" type vector size 3 default { "0" "0" "0" } @@ -1447,7 +1447,7 @@ } parm { name "xn__inputsspecular_2_input_V_5fb" - label "Specular 2 Input V" + label "Input V" type vector size 3 default { "0" "0" "0" } @@ -1473,7 +1473,7 @@ } parm { name "specular_2_ramp" - label "Specular 2 Ramp" + label "Ramp" type ramp_flt default { "4" } disablewhen "{ xn__inputsspecular_2_values_control_krb == block } { xn__inputsspecular_2_values_control_krb == none }" @@ -1497,7 +1497,7 @@ } parm { name "xn__inputsspecular_2_mult0_wcb" - label "Specular 2 Mult0" + label "Mult0" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1522,7 +1522,7 @@ } parm { name "xn__inputsspecular_2_mult1_wcb" - label "Specular 2 Mult1" + label "Mult1" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1547,7 +1547,7 @@ } parm { name "xn__inputsspecular_2_mult2_wcb" - label "Specular 2 Mult2" + label "Mult2" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1572,7 +1572,7 @@ } parm { name "xn__inputsspecular_2_mult3_wcb" - label "Specular 2 Mult3" + label "Mult3" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1597,7 +1597,7 @@ } parm { name "xn__inputsspecular_2_mult4_wcb" - label "Specular 2 Mult4" + label "Mult4" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1622,7 +1622,7 @@ } parm { name "xn__inputsspecular_2_mult5_wcb" - label "Specular 2 Mult5" + label "Mult5" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1647,7 +1647,7 @@ } parm { name "xn__inputsspecular_2_mult6_wcb" - label "Specular 2 Mult6" + label "Mult6" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1672,7 +1672,7 @@ } parm { name "xn__inputsspecular_2_mult7_wcb" - label "Specular 2 Mult7" + label "Mult7" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1697,7 +1697,7 @@ } parm { name "xn__inputsspecular_2_mult8_wcb" - label "Specular 2 Mult8" + label "Mult8" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1722,7 +1722,7 @@ } parm { name "xn__inputsspecular_2_mult9_wcb" - label "Specular 2 Mult9" + label "Mult9" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -1747,7 +1747,7 @@ } parm { name "xn__inputsspecular_2_offset0_5fb" - label "Specular 2 Offset0" + label "Offset0" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1772,7 +1772,7 @@ } parm { name "xn__inputsspecular_2_offset1_5fb" - label "Specular 2 Offset1" + label "Offset1" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1797,7 +1797,7 @@ } parm { name "xn__inputsspecular_2_offset2_5fb" - label "Specular 2 Offset2" + label "Offset2" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1822,7 +1822,7 @@ } parm { name "xn__inputsspecular_2_offset3_5fb" - label "Specular 2 Offset3" + label "Offset3" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1847,7 +1847,7 @@ } parm { name "xn__inputsspecular_2_offset4_5fb" - label "Specular 2 Offset4" + label "Offset4" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1872,7 +1872,7 @@ } parm { name "xn__inputsspecular_2_offset5_5fb" - label "Specular 2 Offset5" + label "Offset5" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1897,7 +1897,7 @@ } parm { name "xn__inputsspecular_2_offset6_5fb" - label "Specular 2 Offset6" + label "Offset6" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1922,7 +1922,7 @@ } parm { name "xn__inputsspecular_2_offset7_5fb" - label "Specular 2 Offset7" + label "Offset7" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1947,7 +1947,7 @@ } parm { name "xn__inputsspecular_2_offset8_5fb" - label "Specular 2 Offset8" + label "Offset8" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1972,7 +1972,7 @@ } parm { name "xn__inputsspecular_2_offset9_5fb" - label "Specular 2 Offset9" + label "Offset9" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -1995,7 +1995,7 @@ } parm { name "xn__inputsspecular_2_enable_input_normal_pzb" - label "Specular 2 Enable Input Normal" + label "Enable Input Normal" type toggle default { "0" } help "enables sampling the normal map for toon specular 2" @@ -2017,7 +2017,7 @@ } parm { name "xn__inputsspecular_2_input_normal_bob" - label "Specular 2 Input Normal" + label "Input Normal" type oppath invisible default { "" } @@ -2043,7 +2043,7 @@ } parm { name "xn__inputsspecular_2_input_normal_dial_gwb" - label "Specular 2 Input Normal Dial" + label "Input Normal Dial" type float default { "1" } help "controls influence of input normal versus hair normal for toon specular 2" @@ -2066,7 +2066,7 @@ } parm { name "xn__inputsspecular_2_enable_indirect_reflections_qdc" - label "Specular 2 Enable Indirect Reflections" + label "Enable Indirect Reflections" type toggle default { "0" } help "enables indirect GGX reflections for toon specular model" @@ -2090,7 +2090,7 @@ } parm { name "xn__inputsspecular_2_indirect_reflections_intensity_mic" - label "Specular 2 Indirect Reflections Intensity" + label "Indirect Reflections Intensity" type float default { "1" } help "the intensity for the indirect reflections of the toon specular model" @@ -2115,7 +2115,7 @@ } parm { name "xn__inputsspecular_2_indirect_reflections_roughness_mic" - label "Specular 2 Indirect Reflections Roughness" + label "Indirect Reflections Roughness" type float default { "0.5" } help "the roughness for the indirect reflections of the toon specular model" @@ -2144,7 +2144,7 @@ } parm { name "xn__inputsspecular_3_show_99a" - label "Specular 3 Show" + label "Show" type toggle default { "0" } help "Show third toon specular lobe" @@ -2168,7 +2168,7 @@ } parm { name "xn__inputsspecular_3_model_wcb" - label "Specular 3 Model" + label "Model" type string default { "Toon_Surface" } help "sets the normal distribution function for specular" @@ -2196,7 +2196,7 @@ } parm { name "xn__inputsspecular_3_intensity_fjb" - label "Specular 3 Intensity" + label "Intensity" type float default { "1" } help "The overall intensity of the specular response" @@ -2221,7 +2221,7 @@ } parm { name "xn__inputsspecular_3_tint_99a" - label "Specular 3 Tint" + label "Tint" type color size 3 default { "1" "1" "1" } @@ -2246,7 +2246,7 @@ } parm { name "xn__inputsspecular_3_roughness_fjb" - label "Specular 3 Roughness" + label "Roughness" type float default { "0.9" } help "The roughness of the toon specular. Smaller values produce tighter highlights" @@ -2271,7 +2271,7 @@ } parm { name "xn__inputsspecular_3_stretch_u_fjb" - label "Specular 3 Stretch U" + label "Stretch U" type float default { "0" } help "Amount to stretch or compress the specular in the u direction " @@ -2296,7 +2296,7 @@ } parm { name "xn__inputsspecular_3_stretch_v_fjb" - label "Specular 3 Stretch V" + label "Stretch V" type float default { "0" } help "Amount to stretch or compress the specular in the v direction " @@ -2319,7 +2319,7 @@ } parm { name "xn__inputsspecular_3_use_input_vectors_for_stretch_zgc" - label "Specular 3 Use Input Vectors For Stretch" + label "Use Input Vectors For Stretch" type toggle default { "0" } help "when checked, use input_U and V. otherwise use geometry dPds/t" @@ -2343,7 +2343,7 @@ } parm { name "xn__inputsspecular_3_input_U_5fb" - label "Specular 3 Input U" + label "Input U" type vector size 3 default { "0" "0" "0" } @@ -2369,7 +2369,7 @@ } parm { name "xn__inputsspecular_3_input_V_5fb" - label "Specular 3 Input V" + label "Input V" type vector size 3 default { "0" "0" "0" } @@ -2395,7 +2395,7 @@ } parm { name "specular_3_ramp" - label "Specular 3 Ramp" + label "Ramp" type ramp_flt default { "4" } disablewhen "{ xn__inputsspecular_3_values_control_krb == block } { xn__inputsspecular_3_values_control_krb == none }" @@ -2419,7 +2419,7 @@ } parm { name "xn__inputsspecular_3_mult0_wcb" - label "Specular 3 Mult0" + label "Mult0" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2444,7 +2444,7 @@ } parm { name "xn__inputsspecular_3_mult1_wcb" - label "Specular 3 Mult1" + label "Mult1" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2469,7 +2469,7 @@ } parm { name "xn__inputsspecular_3_mult2_wcb" - label "Specular 3 Mult2" + label "Mult2" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2494,7 +2494,7 @@ } parm { name "xn__inputsspecular_3_mult3_wcb" - label "Specular 3 Mult3" + label "Mult3" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2519,7 +2519,7 @@ } parm { name "xn__inputsspecular_3_mult4_wcb" - label "Specular 3 Mult4" + label "Mult4" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2544,7 +2544,7 @@ } parm { name "xn__inputsspecular_3_mult5_wcb" - label "Specular 3 Mult5" + label "Mult5" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2569,7 +2569,7 @@ } parm { name "xn__inputsspecular_3_mult6_wcb" - label "Specular 3 Mult6" + label "Mult6" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2594,7 +2594,7 @@ } parm { name "xn__inputsspecular_3_mult7_wcb" - label "Specular 3 Mult7" + label "Mult7" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2619,7 +2619,7 @@ } parm { name "xn__inputsspecular_3_mult8_wcb" - label "Specular 3 Mult8" + label "Mult8" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2644,7 +2644,7 @@ } parm { name "xn__inputsspecular_3_mult9_wcb" - label "Specular 3 Mult9" + label "Mult9" type float default { "1" } help "Bindable multiplier on the toon specular ramp value" @@ -2669,7 +2669,7 @@ } parm { name "xn__inputsspecular_3_offset0_5fb" - label "Specular 3 Offset0" + label "Offset0" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2694,7 +2694,7 @@ } parm { name "xn__inputsspecular_3_offset1_5fb" - label "Specular 3 Offset1" + label "Offset1" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2719,7 +2719,7 @@ } parm { name "xn__inputsspecular_3_offset2_5fb" - label "Specular 3 Offset2" + label "Offset2" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2744,7 +2744,7 @@ } parm { name "xn__inputsspecular_3_offset3_5fb" - label "Specular 3 Offset3" + label "Offset3" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2769,7 +2769,7 @@ } parm { name "xn__inputsspecular_3_offset4_5fb" - label "Specular 3 Offset4" + label "Offset4" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2794,7 +2794,7 @@ } parm { name "xn__inputsspecular_3_offset5_5fb" - label "Specular 3 Offset5" + label "Offset5" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2819,7 +2819,7 @@ } parm { name "xn__inputsspecular_3_offset6_5fb" - label "Specular 3 Offset6" + label "Offset6" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2844,7 +2844,7 @@ } parm { name "xn__inputsspecular_3_offset7_5fb" - label "Specular 3 Offset7" + label "Offset7" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2869,7 +2869,7 @@ } parm { name "xn__inputsspecular_3_offset8_5fb" - label "Specular 3 Offset8" + label "Offset8" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2894,7 +2894,7 @@ } parm { name "xn__inputsspecular_3_offset9_5fb" - label "Specular 3 Offset9" + label "Offset9" type float default { "0" } help "Bindable offset to the toon specular ramp-position, add a small variation using noise etc for art-directable ramp thresholds" @@ -2917,7 +2917,7 @@ } parm { name "xn__inputsspecular_3_enable_input_normal_pzb" - label "Specular 3 Enable Input Normal" + label "Enable Input Normal" type toggle default { "0" } help "enables sampling the normal map for toon specular 3" @@ -2939,7 +2939,7 @@ } parm { name "xn__inputsspecular_3_input_normal_bob" - label "Specular 3 Input Normal" + label "Input Normal" type oppath invisible default { "" } @@ -2965,7 +2965,7 @@ } parm { name "xn__inputsspecular_3_input_normal_dial_gwb" - label "Specular 3 Input Normal Dial" + label "Input Normal Dial" type float default { "1" } help "controls influence of input normal versus hair normal for toon specular 3" @@ -2988,7 +2988,7 @@ } parm { name "xn__inputsspecular_3_enable_indirect_reflections_qdc" - label "Specular 3 Enable Indirect Reflections" + label "Enable Indirect Reflections" type toggle default { "0" } help "enables indirect GGX reflections for toon specular model" @@ -3012,7 +3012,7 @@ } parm { name "xn__inputsspecular_3_indirect_reflections_intensity_mic" - label "Specular 3 Indirect Reflections Intensity" + label "Indirect Reflections Intensity" type float default { "1" } help "the intensity for the indirect reflections of the toon specular model" @@ -3037,7 +3037,7 @@ } parm { name "xn__inputsspecular_3_indirect_reflections_roughness_mic" - label "Specular 3 Indirect Reflections Roughness" + label "Indirect Reflections Roughness" type float default { "0.5" } help "the roughness for the indirect reflections of the toon specular model" @@ -3171,7 +3171,7 @@ } parm { name "xn__inputssubsurface_blend_wcb" - label "Subsurface Blend" + label "Blend" type float default { "1" } help "0 is fully hair diffuse, 1 is fully SSS. No effect if scattering radius is 0." diff --git a/houdini/soho/parameters/moonray_MeshLight.ds b/houdini/soho/parameters/moonray_MeshLight.ds index 05694a1..f1facda 100644 --- a/houdini/soho/parameters/moonray_MeshLight.ds +++ b/houdini/soho/parameters/moonray_MeshLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -352,8 +352,8 @@ parmtag { "usdvaluetype" "bool" } } parm { - name "xn__inputsgeometry_control_wcb" - label "inputs:geometry" + name "xn__moonraygeometry_control_keb" + label "moonray:geometry" type string default { "none" } menujoin { @@ -365,12 +365,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsgeometry_vya" + name "xn__moonraygeometry_j0a" label "Geometry" type oppath default { "" } help "The SceneObject holding the mesh data to use as the MeshLight's surface." - disablewhen "{ xn__inputsgeometry_control_wcb == block } { xn__inputsgeometry_control_wcb == none }" + disablewhen "{ xn__moonraygeometry_control_keb == block } { xn__moonraygeometry_control_keb == none }" parmtag { "oprelative" "." } parmtag { "usdvaluetype" "" } } diff --git a/houdini/soho/parameters/moonray_NoiseWorleyMap_v2.ds b/houdini/soho/parameters/moonray_NoiseWorleyMap_v2.ds index cddc982..2a71da4 100644 --- a/houdini/soho/parameters/moonray_NoiseWorleyMap_v2.ds +++ b/houdini/soho/parameters/moonray_NoiseWorleyMap_v2.ds @@ -22,7 +22,7 @@ } parm { name "xn__inputsoutput_mode_r3a" - label "Output Mode" + label "Mode" type string default { "distance" } help "Method by which the shader outputs a color. Distance uses F1..F4 interpolated between color A and color B, gradient outputs the gradient of the noise, and cell ID outputs a random color for each cell" diff --git a/houdini/soho/parameters/moonray_NoiseWorleyMap_v3.ds b/houdini/soho/parameters/moonray_NoiseWorleyMap_v3.ds index cddc982..2a71da4 100644 --- a/houdini/soho/parameters/moonray_NoiseWorleyMap_v3.ds +++ b/houdini/soho/parameters/moonray_NoiseWorleyMap_v3.ds @@ -22,7 +22,7 @@ } parm { name "xn__inputsoutput_mode_r3a" - label "Output Mode" + label "Mode" type string default { "distance" } help "Method by which the shader outputs a color. Distance uses F1..F4 interpolated between color A and color B, gradient outputs the gradient of the noise, and cell ID outputs a random color for each cell" diff --git a/houdini/soho/parameters/moonray_OrthographicCamera.ds b/houdini/soho/parameters/moonray_OrthographicCamera.ds index f0ea722..c9f275d 100644 --- a/houdini/soho/parameters/moonray_OrthographicCamera.ds +++ b/houdini/soho/parameters/moonray_OrthographicCamera.ds @@ -106,8 +106,8 @@ parmtag { "usdvaluetype" "float" } } parm { - name "horizontalAperture_control" - label "horizontalAperture" + name "xn__moonrayfilm_width_aperture_control_hwb" + label "moonray:film_width_aperture" type string default { "none" } menujoin { @@ -121,12 +121,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "horizontalAperture" + name "film_width_aperture" label "Film Width Aperture" type float default { "24" } help "Scale the aperture of the camera (i.e., the orthographic frustum) by this value." - disablewhen "{ horizontalAperture_control == block } { horizontalAperture_control == none }" + disablewhen "{ xn__moonrayfilm_width_aperture_control_hwb == block } { xn__moonrayfilm_width_aperture_control_hwb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -162,8 +162,8 @@ label "Motion Blur" parm { - name "xn__shutteropen_control_16a" - label "shutter:open" + name "xn__moonraymb_shutter_open_control_ypb" + label "moonray:mb_shutter_open" type string default { "none" } menujoin { @@ -177,18 +177,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__shutteropen_0ta" + name "mb_shutter_open" label "Mb Shutter Open" type float default { "-0.25" } help "Frame at which the shutter opens, i.e., the beginning of the motion blur interval." - disablewhen "{ xn__shutteropen_control_16a == block } { xn__shutteropen_control_16a == none }" + disablewhen "{ xn__moonraymb_shutter_open_control_ypb == block } { xn__moonraymb_shutter_open_control_ypb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__shutterclose_control_o8a" - label "shutter:close" + name "xn__moonraymb_shutter_close_control_lrb" + label "moonray:mb_shutter_close" type string default { "none" } menujoin { @@ -202,12 +202,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__shutterclose_nva" + name "mb_shutter_close" label "Mb Shutter Close" type float default { "0.25" } help "Frame at which the shutter closes, i.e., the end of the motion blur interval." - disablewhen "{ xn__shutterclose_control_o8a == block } { xn__shutterclose_control_o8a == none }" + disablewhen "{ xn__moonraymb_shutter_close_control_lrb == block } { xn__moonraymb_shutter_close_control_lrb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -345,8 +345,8 @@ parmtag { "usdvaluetype" "bool" } } parm { - name "fStop_control" - label "fStop" + name "xn__moonraydof_aperture_control_2kb" + label "moonray:dof_aperture" type string default { "none" } menujoin { @@ -360,18 +360,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "fStop" + name "dof_aperture" label "Dof Aperture" type float default { "8" } help "Depth of field focus distance" - disablewhen "{ fStop_control == block } { fStop_control == none }" + disablewhen "{ xn__moonraydof_aperture_control_2kb == block } { xn__moonraydof_aperture_control_2kb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "focusDistance_control" - label "focusDistance" + name "xn__moonraydof_focus_distance_control_uub" + label "moonray:dof_focus_distance" type string default { "none" } menujoin { @@ -385,11 +385,11 @@ parmtag { "sidefx::look" "icon" } } parm { - name "focusDistance" + name "dof_focus_distance" label "Dof Focus Distance" type float default { "0" } - disablewhen "{ focusDistance_control == block } { focusDistance_control == none }" + disablewhen "{ xn__moonraydof_focus_distance_control_uub == block } { xn__moonraydof_focus_distance_control_uub == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_Override.ds b/houdini/soho/parameters/moonray_Override.ds index 467d73c..47bd686 100644 --- a/houdini/soho/parameters/moonray_Override.ds +++ b/houdini/soho/parameters/moonray_Override.ds @@ -27,15 +27,15 @@ [ " menulist = []" ] [ " token = tokens[selected]" ] [ " if token == \"Shader\":" ] - [ " menulist = ['AttributeMap', 'AttributeMap', 'AxisAngleMap', 'AxisAngleMap', 'BaseVolume', 'BaseVolume', 'BlendMap', 'BlendMap', 'CheckerboardMap', 'CheckerboardMap', 'ClampMap', 'ClampMap', 'ColorCorrectContrastMap', 'ColorCorrectContrastMap', 'ColorCorrectGainOffsetMap', 'ColorCorrectGainOffsetMap', 'ColorCorrectGammaMap', 'ColorCorrectGammaMap', 'ColorCorrectHsvMap', 'ColorCorrectHsvMap', 'ColorCorrectHueShiftMap', 'ColorCorrectHueShiftMap', 'ColorCorrectLegacyMap', 'ColorCorrectLegacyMap', 'ColorCorrectMap', 'ColorCorrectMap', 'ColorCorrectSaturationMap', 'ColorCorrectSaturationMap', 'ColorCorrectTMIMap', 'ColorCorrectTMIMap', 'CombineDisplacement', 'CombineDisplacement', 'CombineNormalMap', 'CombineNormalMap', 'ConstantColorMap', 'ConstantColorMap', 'ConstantScalarMap', 'ConstantScalarMap', 'CurvatureMap', 'CurvatureMap', 'CutoutVolume', 'CutoutVolume', 'DebugMap', 'DebugMap', 'DeformationMap', 'DeformationMap', 'DirectionalMap', 'DirectionalMap', 'DistortNormalMap', 'DistortNormalMap', 'DwaAdjustMaterial', 'DwaAdjustMaterial', 'DwaBaseMaterial', 'DwaBaseMaterial', 'DwaColorCorrectMaterial', 'DwaColorCorrectMaterial', 'DwaEmissiveMaterial', 'DwaEmissiveMaterial', 'DwaFabricMaterial', 'DwaFabricMaterial', 'DwaLayerMaterial', 'DwaLayerMaterial', 'DwaMetalMaterial', 'DwaMetalMaterial', 'DwaMixMaterial', 'DwaMixMaterial', 'DwaRefractiveMaterial', 'DwaRefractiveMaterial', 'DwaSkinMaterial', 'DwaSkinMaterial', 'DwaSolidDielectricMaterial', 'DwaSolidDielectricMaterial', 'DwaSwitchMaterial', 'DwaSwitchMaterial', 'DwaToonMaterial', 'DwaToonMaterial', 'DwaTwoSidedMaterial', 'DwaTwoSidedMaterial', 'DwaVelvetMaterial_v2', 'DwaVelvetMaterial_v2', 'ExtraAovMap', 'ExtraAovMap', 'FloatToRgbMap', 'FloatToRgbMap', 'GradientMap', 'GradientMap', 'HairColorCorrectMaterial', 'HairColorCorrectMaterial', 'HairColorPresetsMap', 'HairColorPresetsMap', 'HairColumnMap', 'HairColumnMap', 'HairDiffuseMaterial', 'HairDiffuseMaterial', 'HairLayerMaterial', 'HairLayerMaterial', 'HairMap', 'HairMap', 'HairMaterial_v3', 'HairMaterial_v3', 'HairToonMaterial', 'HairToonMaterial', 'HsvToRgbMap', 'HsvToRgbMap', 'ImageMap', 'ImageMap', 'ImageNormalMap', 'ImageNormalMap', 'LODMap', 'LODMap', 'LayerMap', 'LayerMap', 'LayerMap_v2', 'LayerMap_v2', 'ListMap', 'ListMap', 'MultiChannelToFloatMap', 'MultiChannelToFloatMap', 'NoiseMap_v2', 'NoiseMap_v2', 'NoiseWorleyMap_v2', 'NoiseWorleyMap_v2', 'NoiseWorleyMap_v3', 'NoiseWorleyMap_v3', 'NormalDisplacement', 'NormalDisplacement', 'NormalToRgbMap', 'NormalToRgbMap', 'OpMap', 'OpMap', 'OpSqrtMap', 'OpSqrtMap', 'OpenVdbMap', 'OpenVdbMap', 'OpenVdbMap_v2', 'OpenVdbMap_v2', 'ProjectCameraMap', 'ProjectCameraMap', 'ProjectCameraMap_v2', 'ProjectCameraMap_v2', 'ProjectCameraNormalMap', 'ProjectCameraNormalMap', 'ProjectCylindricalMap', 'ProjectCylindricalMap', 'ProjectPlanarMap', 'ProjectPlanarMap', 'ProjectPlanarNormalMap', 'ProjectPlanarNormalMap', 'ProjectSphericalMap', 'ProjectSphericalMap', 'ProjectTriplanarMap', 'ProjectTriplanarMap', 'ProjectTriplanarMap_v2', 'ProjectTriplanarMap_v2', 'ProjectTriplanarNormalMap', 'ProjectTriplanarNormalMap', 'ProjectTriplanarNormalMap_v2', 'ProjectTriplanarNormalMap_v2', 'ProjectTriplanarUdimMap', 'ProjectTriplanarUdimMap', 'RampMap', 'RampMap', 'RandomMap', 'RandomMap', 'RandomNormalMap', 'RandomNormalMap', 'RaySwitchMaterial', 'RaySwitchMaterial', 'RemapMap', 'RemapMap', 'RgbToFloatMap', 'RgbToFloatMap', 'RgbToHsvMap', 'RgbToHsvMap', 'RgbToLabMap', 'RgbToLabMap', 'RgbToNormalMap', 'RgbToNormalMap', 'SwitchColorMap', 'SwitchColorMap', 'SwitchDisplacement', 'SwitchDisplacement', 'SwitchFloatMap', 'SwitchFloatMap', 'SwitchMaterial', 'SwitchMaterial', 'SwitchNormalMap', 'SwitchNormalMap', 'ToonMap', 'ToonMap', 'TransformNormalMap', 'TransformNormalMap', 'TransformSpaceMap', 'TransformSpaceMap', 'TwoSidedMap', 'TwoSidedMap', 'UVTransformMap', 'UVTransformMap', 'VectorDisplacement', 'VectorDisplacement', 'WireframeMap', 'WireframeMap']" ] + [ " menulist = ['AttributeMap', 'AxisAngleMap', 'BaseVolume', 'BlendMap', 'CheckerboardMap', 'ClampMap', 'ColorCorrectContrastMap', 'ColorCorrectGainOffsetMap', 'ColorCorrectGammaMap', 'ColorCorrectHsvMap', 'ColorCorrectHueShiftMap', 'ColorCorrectLegacyMap', 'ColorCorrectMap', 'ColorCorrectSaturationMap', 'ColorCorrectTMIMap', 'CombineDisplacement', 'CombineNormalMap', 'ConstantColorMap', 'ConstantScalarMap', 'CurvatureMap', 'CutoutVolume', 'DebugMap', 'DeformationMap', 'DirectionalMap', 'DistortNormalMap', 'DwaAdjustMaterial', 'DwaBaseMaterial', 'DwaColorCorrectMaterial', 'DwaEmissiveMaterial', 'DwaFabricMaterial', 'DwaLayerMaterial', 'DwaMetalMaterial', 'DwaMixMaterial', 'DwaRefractiveMaterial', 'DwaSkinMaterial', 'DwaSolidDielectricMaterial', 'DwaSwitchMaterial', 'DwaToonMaterial', 'DwaTwoSidedMaterial', 'DwaVelvetMaterial_v2', 'ExtraAovMap', 'FloatToRgbMap', 'GradientMap', 'HairColorCorrectMaterial', 'HairColorPresetsMap', 'HairColumnMap', 'HairDiffuseMaterial', 'HairLayerMaterial', 'HairMap', 'HairMaterial_v3', 'HairToonMaterial', 'HsvToRgbMap', 'ImageMap', 'ImageNormalMap', 'LODMap', 'LayerMap', 'LayerMap_v2', 'ListMap', 'MultiChannelToFloatMap', 'NoiseMap_v2', 'NoiseWorleyMap_v2', 'NoiseWorleyMap_v3', 'NormalDisplacement', 'NormalToRgbMap', 'OpMap', 'OpSqrtMap', 'OpenVdbMap', 'OpenVdbMap_v2', 'ProjectCameraMap', 'ProjectCameraMap_v2', 'ProjectCameraNormalMap', 'ProjectCylindricalMap', 'ProjectPlanarMap', 'ProjectPlanarNormalMap', 'ProjectSphericalMap', 'ProjectTriplanarMap', 'ProjectTriplanarMap_v2', 'ProjectTriplanarNormalMap', 'ProjectTriplanarNormalMap_v2', 'ProjectTriplanarUdimMap', 'RampMap', 'RandomMap', 'RandomNormalMap', 'RaySwitchMaterial', 'RemapMap', 'RgbToFloatMap', 'RgbToHsvMap', 'RgbToLabMap', 'RgbToNormalMap', 'SwitchColorMap', 'SwitchDisplacement', 'SwitchFloatMap', 'SwitchMaterial', 'SwitchNormalMap', 'ToonMap', 'TransformNormalMap', 'TransformSpaceMap', 'TwoSidedMap', 'UVTransformMap', 'VdbVolume', 'VectorDisplacement', 'WireframeMap']" ] [ " elif token == \"Light\":" ] - [ " menulist = ['CylinderLight', 'CylinderLight', 'DiskLight', 'DiskLight', 'DistantLight', 'DistantLight', 'EnvLight', 'EnvLight', 'MeshLight', 'MeshLight', 'PortalLight', 'PortalLight', 'RectLight', 'RectLight', 'SphereLight', 'SphereLight', 'SpotLight', 'SpotLight']" ] + [ " menulist = ['CylinderLight', 'DiskLight', 'DistantLight', 'EnvLight', 'MeshLight', 'PortalLight', 'RectLight', 'SphereLight', 'SpotLight']" ] [ " elif token == \"Camera\":" ] - [ " menulist = ['BakeCamera', 'BakeCamera', 'DomeMaster3DCamera', 'DomeMaster3DCamera', 'FisheyeCamera', 'FisheyeCamera', 'OrthographicCamera', 'OrthographicCamera', 'PerspectiveCamera', 'PerspectiveCamera', 'SphericalCamera', 'SphericalCamera']" ] + [ " menulist = ['BakeCamera', 'DomeMaster3DCamera', 'FisheyeCamera', 'OrthographicCamera', 'PerspectiveCamera', 'SphericalCamera']" ] [ " elif token == \"Light Filter\":" ] - [ " menulist = ['BarnDoorLightFilter', 'BarnDoorLightFilter', 'ColorRampLightFilter', 'ColorRampLightFilter', 'CombineLightFilter', 'CombineLightFilter', 'CookieLightFilter', 'CookieLightFilter', 'CookieLightFilter_v2', 'CookieLightFilter_v2', 'DecayLightFilter', 'DecayLightFilter', 'IntensityLightFilter', 'IntensityLightFilter', 'RodLightFilter', 'RodLightFilter', 'VdbLightFilter', 'VdbLightFilter']" ] + [ " menulist = ['BarnDoorLightFilter', 'ColorRampLightFilter', 'CombineLightFilter', 'CookieLightFilter', 'CookieLightFilter_v2', 'DecayLightFilter', 'IntensityLightFilter', 'RodLightFilter', 'VdbLightFilter']" ] [ " elif token == \"Geometry\":" ] - [ " menulist = ['BoxGeometry', 'BoxGeometry', 'RdlCurveGeometry', 'RdlCurveGeometry', 'RdlInstancerGeometry', 'RdlInstancerGeometry', 'RdlMeshGeometry', 'RdlMeshGeometry', 'RdlPointGeometry', 'RdlPointGeometry', 'SphereGeometry', 'SphereGeometry', 'UsdGeometry', 'UsdGeometry', 'UsdInstanceGeometry', 'UsdInstanceGeometry', 'VdbGeometry', 'VdbGeometry']" ] + [ " menulist = ['BoxGeometry', 'RdlCurveGeometry', 'RdlInstancerGeometry', 'RdlMeshGeometry', 'RdlPointGeometry', 'SphereGeometry', 'UsdGeometry', 'UsdInstanceGeometry', 'VdbGeometry']" ] [ " return menulist" ] [ " " ] language python diff --git a/houdini/soho/parameters/moonray_PerspectiveCamera.ds b/houdini/soho/parameters/moonray_PerspectiveCamera.ds index 4b653ee..c75a1de 100644 --- a/houdini/soho/parameters/moonray_PerspectiveCamera.ds +++ b/houdini/soho/parameters/moonray_PerspectiveCamera.ds @@ -56,8 +56,8 @@ parmtag { "usdvaluetype" "float" } } parm { - name "focalLength_control" - label "focalLength" + name "xn__moonrayfocal_control_o8a" + label "moonray:focal" type string default { "none" } menujoin { @@ -71,12 +71,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "focalLength" + name "focal" label "Focal" type float default { "30" } help "Focal length" - disablewhen "{ focalLength_control == block } { focalLength_control == none }" + disablewhen "{ xn__moonrayfocal_control_o8a == block } { xn__moonrayfocal_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -131,8 +131,8 @@ parmtag { "usdvaluetype" "float" } } parm { - name "horizontalAperture_control" - label "horizontalAperture" + name "xn__moonrayfilm_width_aperture_control_hwb" + label "moonray:film_width_aperture" type string default { "none" } menujoin { @@ -146,12 +146,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "horizontalAperture" + name "film_width_aperture" label "Film Width Aperture" type float default { "24" } help "Scale the aperture of the camera (i.e., the frustum) by this value." - disablewhen "{ horizontalAperture_control == block } { horizontalAperture_control == none }" + disablewhen "{ xn__moonrayfilm_width_aperture_control_hwb == block } { xn__moonrayfilm_width_aperture_control_hwb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -187,8 +187,8 @@ label "Motion Blur" parm { - name "xn__shutteropen_control_16a" - label "shutter:open" + name "xn__moonraymb_shutter_open_control_ypb" + label "moonray:mb_shutter_open" type string default { "none" } menujoin { @@ -202,18 +202,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__shutteropen_0ta" + name "mb_shutter_open" label "Mb Shutter Open" type float default { "-0.25" } help "Frame at which the shutter opens, i.e., the beginning of the motion blur interval." - disablewhen "{ xn__shutteropen_control_16a == block } { xn__shutteropen_control_16a == none }" + disablewhen "{ xn__moonraymb_shutter_open_control_ypb == block } { xn__moonraymb_shutter_open_control_ypb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__shutterclose_control_o8a" - label "shutter:close" + name "xn__moonraymb_shutter_close_control_lrb" + label "moonray:mb_shutter_close" type string default { "none" } menujoin { @@ -227,12 +227,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__shutterclose_nva" + name "mb_shutter_close" label "Mb Shutter Close" type float default { "0.25" } help "Frame at which the shutter closes, i.e., the end of the motion blur interval." - disablewhen "{ xn__shutterclose_control_o8a == block } { xn__shutterclose_control_o8a == none }" + disablewhen "{ xn__moonraymb_shutter_close_control_lrb == block } { xn__moonraymb_shutter_close_control_lrb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -455,8 +455,8 @@ parmtag { "usdvaluetype" "bool" } } parm { - name "fStop_control" - label "fStop" + name "xn__moonraydof_aperture_control_2kb" + label "moonray:dof_aperture" type string default { "none" } menujoin { @@ -470,18 +470,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "fStop" + name "dof_aperture" label "Dof Aperture" type float default { "8" } help "Depth of field focus distance" - disablewhen "{ fStop_control == block } { fStop_control == none }" + disablewhen "{ xn__moonraydof_aperture_control_2kb == block } { xn__moonraydof_aperture_control_2kb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "focusDistance_control" - label "focusDistance" + name "xn__moonraydof_focus_distance_control_uub" + label "moonray:dof_focus_distance" type string default { "none" } menujoin { @@ -495,11 +495,11 @@ parmtag { "sidefx::look" "icon" } } parm { - name "focusDistance" + name "dof_focus_distance" label "Dof Focus Distance" type float default { "0" } - disablewhen "{ focusDistance_control == block } { focusDistance_control == none }" + disablewhen "{ xn__moonraydof_focus_distance_control_uub == block } { xn__moonraydof_focus_distance_control_uub == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_RdlCurveGeometry.ds b/houdini/soho/parameters/moonray_RdlCurveGeometry.ds index 7f9568d..603991c 100644 --- a/houdini/soho/parameters/moonray_RdlCurveGeometry.ds +++ b/houdini/soho/parameters/moonray_RdlCurveGeometry.ds @@ -553,6 +553,158 @@ range { 0 10 } parmtag { "usdvaluetype" "float" } } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch" + label "primvars:moonray:local_motion_blur_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_radius_list" + label "Local Motion Blur Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == block } { xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_sdch#" + label "Local Motion Blur Radius List" + type float + default { "0" } + help "Per-point outer radius for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch" + label "primvars:moonray:local_motion_blur_inner_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_inner_radius_list" + label "Local Motion Blur Inner Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_knch#" + label "Local Motion Blur Inner Radius List" + type float + default { "0" } + help "Per-point inner radius for each local motion blur region (full-strength core). If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch" + label "primvars:moonray:local_motion_blur_multiplier_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_multiplier_list" + label "Local Motion Blur Multiplier List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == block } { xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_bkch#" + label "Local Motion Blur Multiplier List" + type float + default { "0" } + help "Per-point motion blur strength multiplier for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch" + label "primvars:moonray:local_motion_blur_strength_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_tqch" + label "Local Motion Blur Strength Multiplier" + type float + default { "1" } + help "Global strength multiplier for local motion blur application" + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == block } { xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch" + label "primvars:moonray:local_motion_blur_radius_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_knch" + label "Local Motion Blur Radius Multiplier" + type float + default { "1" } + help "Global radius multiplier applied to per-region radius values, whether supplied via the \"radius\"/\"inner_radius\" point attributes or the \"local_motion_blur_radius_list\"/\"local_motion_blur_inner_radius_list\" explicit list attributes" + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } parm { name "xn__primvarsmoonrayuse_rotation_motion_blur_control_oich" label "primvars:moonray:use_rotation_motion_blur" diff --git a/houdini/soho/parameters/moonray_RdlMeshGeometry.ds b/houdini/soho/parameters/moonray_RdlMeshGeometry.ds index 5aa28d5..5ee938b 100644 --- a/houdini/soho/parameters/moonray_RdlMeshGeometry.ds +++ b/houdini/soho/parameters/moonray_RdlMeshGeometry.ds @@ -900,6 +900,158 @@ range { 0 10 } parmtag { "usdvaluetype" "float" } } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch" + label "primvars:moonray:local_motion_blur_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_radius_list" + label "Local Motion Blur Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == block } { xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_sdch#" + label "Local Motion Blur Radius List" + type float + default { "0" } + help "Per-point outer radius for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch" + label "primvars:moonray:local_motion_blur_inner_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_inner_radius_list" + label "Local Motion Blur Inner Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_knch#" + label "Local Motion Blur Inner Radius List" + type float + default { "0" } + help "Per-point inner radius for each local motion blur region (full-strength core). If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch" + label "primvars:moonray:local_motion_blur_multiplier_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_multiplier_list" + label "Local Motion Blur Multiplier List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == block } { xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_bkch#" + label "Local Motion Blur Multiplier List" + type float + default { "0" } + help "Per-point motion blur strength multiplier for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch" + label "primvars:moonray:local_motion_blur_strength_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_tqch" + label "Local Motion Blur Strength Multiplier" + type float + default { "1" } + help "Global strength multiplier for local motion blur application" + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == block } { xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch" + label "primvars:moonray:local_motion_blur_radius_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_knch" + label "Local Motion Blur Radius Multiplier" + type float + default { "1" } + help "Global radius multiplier applied to per-region radius values, whether supplied via the \"radius\"/\"inner_radius\" point attributes or the \"local_motion_blur_radius_list\"/\"local_motion_blur_inner_radius_list\" explicit list attributes" + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } parm { name "xn__primvarsmoonrayuse_rotation_motion_blur_control_oich" label "primvars:moonray:use_rotation_motion_blur" diff --git a/houdini/soho/parameters/moonray_RdlPointGeometry.ds b/houdini/soho/parameters/moonray_RdlPointGeometry.ds index 6cd7793..f3d3c89 100644 --- a/houdini/soho/parameters/moonray_RdlPointGeometry.ds +++ b/houdini/soho/parameters/moonray_RdlPointGeometry.ds @@ -513,6 +513,158 @@ range { 0 10 } parmtag { "usdvaluetype" "float" } } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch" + label "primvars:moonray:local_motion_blur_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_radius_list" + label "Local Motion Blur Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == block } { xn__primvarsmoonraylocal_motion_blur_radius_list_control_tqch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_list_sdch#" + label "Local Motion Blur Radius List" + type float + default { "0" } + help "Per-point outer radius for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch" + label "primvars:moonray:local_motion_blur_inner_radius_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_inner_radius_list" + label "Local Motion Blur Inner Radius List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_inner_radius_list_control_l0ch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_inner_radius_list_knch#" + label "Local Motion Blur Inner Radius List" + type float + default { "0" } + help "Per-point inner radius for each local motion blur region (full-strength core). If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch" + label "primvars:moonray:local_motion_blur_multiplier_list" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + multiparm { + name "local_motion_blur_multiplier_list" + label "Local Motion Blur Multiplier List" + default 0 + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == block } { xn__primvarsmoonraylocal_motion_blur_multiplier_list_control_cxch == none }" + parmtag { "usdvaluetype" "float[]" } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_multiplier_list_bkch#" + label "Local Motion Blur Multiplier List" + type float + default { "0" } + help "Per-point motion blur strength multiplier for each local motion blur region. If empty, defaults to 1.0. Must match the length of local_motion_blur_position_list." + disablewhen "{ use_local_motion_blur == 0 }" + range { 0 10 } + parmtag { "moonray::is_parm" "1" } + } + } + + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch" + label "primvars:moonray:local_motion_blur_strength_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_strength_multiplier_tqch" + label "Local Motion Blur Strength Multiplier" + type float + default { "1" } + help "Global strength multiplier for local motion blur application" + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == block } { xn__primvarsmoonraylocal_motion_blur_strength_multiplier_control_u3ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch" + label "primvars:moonray:local_motion_blur_radius_multiplier" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__primvarsmoonraylocal_motion_blur_radius_multiplier_knch" + label "Local Motion Blur Radius Multiplier" + type float + default { "1" } + help "Global radius multiplier applied to per-region radius values, whether supplied via the \"radius\"/\"inner_radius\" point attributes or the \"local_motion_blur_radius_list\"/\"local_motion_blur_inner_radius_list\" explicit list attributes" + disablewhen "{ xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == block } { xn__primvarsmoonraylocal_motion_blur_radius_multiplier_control_l0ch == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } parm { name "xn__primvarsmoonrayuse_rotation_motion_blur_control_oich" label "primvars:moonray:use_rotation_motion_blur" diff --git a/houdini/soho/parameters/moonray_RectLight.ds b/houdini/soho/parameters/moonray_RectLight.ds index b902976..8563666 100644 --- a/houdini/soho/parameters/moonray_RectLight.ds +++ b/houdini/soho/parameters/moonray_RectLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -308,8 +308,8 @@ parmtag { "usdvaluetype" "string" } } parm { - name "xn__inputsnormalize_control_jeb" - label "inputs:normalize" + name "xn__moonraynormalized_control_thb" + label "moonray:normalized" type string default { "none" } menujoin { @@ -321,12 +321,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsnormalize_i0a" + name "xn__moonraynormalized_s3a" label "Normalized" type toggle default { "1" } help "When set to true, the size of the light can be changed without altering the amount of total energy cast into the scene. This is achieved via scaling the light's radiance by the reciprocal of its surface area. When set to false, the radiance is used as-is, regardless of surface area." - disablewhen "{ xn__inputsnormalize_control_jeb == block } { xn__inputsnormalize_control_jeb == none }" + disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" parmtag { "usdvaluetype" "bool" } } parm { @@ -352,8 +352,8 @@ parmtag { "usdvaluetype" "bool" } } parm { - name "xn__inputswidth_control_06a" - label "inputs:width" + name "xn__moonraywidth_control_o8a" + label "moonray:width" type string default { "none" } menujoin { @@ -367,18 +367,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputswidth_zta" + name "xn__moonraywidth_nva" label "Width" type float default { "1" } help "The width of the rectangle, i.e. the size measured in the light's local x-direction." - disablewhen "{ xn__inputswidth_control_06a == block } { xn__inputswidth_control_06a == none }" + disablewhen "{ xn__moonraywidth_control_o8a == block } { xn__moonraywidth_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsheight_control_n8a" - label "inputs:height" + name "xn__moonrayheight_control_bbb" + label "moonray:height" type string default { "none" } menujoin { @@ -392,12 +392,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsheight_mva" + name "xn__moonrayheight_9wa" label "Height" type float default { "1" } help "The height of the rectangle, i.e. the size measured in the light's local y-direction." - disablewhen "{ xn__inputsheight_control_n8a == block } { xn__inputsheight_control_n8a == none }" + disablewhen "{ xn__moonrayheight_control_bbb == block } { xn__moonrayheight_control_bbb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -513,8 +513,8 @@ label "Map" parm { - name "xn__inputstexturefile_control_shbh" - label "inputs:texture:file" + name "xn__moonraytexture_control_xcb" + label "moonray:texture" type string default { "none" } menujoin { @@ -526,12 +526,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputstexturefile_r3ah" + name "xn__moonraytexture_wya" label "Texture" type file default { "" } help "File name of the texture applied to the light. If set to the empty string, no texture is applied. Any file format supported by OpenImageIO can be used. The texture is used in 2 ways - for looking up the texture value at the intersection point when a ray hits the light, and for building a lookup-table-based auxilliary data structure used for distributing light samples over the texture." - disablewhen "{ xn__inputstexturefile_control_shbh == block } { xn__inputstexturefile_control_shbh == none }" + disablewhen "{ xn__moonraytexture_control_xcb == block } { xn__moonraytexture_control_xcb == none }" parmtag { "usdvaluetype" "asset" } } parm { diff --git a/houdini/soho/parameters/moonray_SphereLight.ds b/houdini/soho/parameters/moonray_SphereLight.ds index 66d863a..9e92be5 100644 --- a/houdini/soho/parameters/moonray_SphereLight.ds +++ b/houdini/soho/parameters/moonray_SphereLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -308,8 +308,8 @@ parmtag { "usdvaluetype" "string" } } parm { - name "xn__inputsnormalize_control_jeb" - label "inputs:normalize" + name "xn__moonraynormalized_control_thb" + label "moonray:normalized" type string default { "none" } menujoin { @@ -321,12 +321,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsnormalize_i0a" + name "xn__moonraynormalized_s3a" label "Normalized" type toggle default { "1" } help "When set to true, the size of the light can be changed without altering the amount of total energy cast into the scene. This is achieved via scaling the light's radiance by the reciprocal of its surface area. When set to false, the radiance is used as-is, regardless of surface area." - disablewhen "{ xn__inputsnormalize_control_jeb == block } { xn__inputsnormalize_control_jeb == none }" + disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" parmtag { "usdvaluetype" "bool" } } parm { @@ -352,8 +352,8 @@ parmtag { "usdvaluetype" "bool" } } parm { - name "xn__inputsradius_control_n8a" - label "inputs:radius" + name "xn__moonrayradius_control_bbb" + label "moonray:radius" type string default { "none" } menujoin { @@ -367,12 +367,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsradius_mva" + name "xn__moonrayradius_9wa" label "Radius" type float default { "1" } help "Radius of the sphere." - disablewhen "{ xn__inputsradius_control_n8a == block } { xn__inputsradius_control_n8a == none }" + disablewhen "{ xn__moonrayradius_control_bbb == block } { xn__moonrayradius_control_bbb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_SphericalCamera.ds b/houdini/soho/parameters/moonray_SphericalCamera.ds index e2b6bb6..f84cf77 100644 --- a/houdini/soho/parameters/moonray_SphericalCamera.ds +++ b/houdini/soho/parameters/moonray_SphericalCamera.ds @@ -62,8 +62,8 @@ label "Motion Blur" parm { - name "xn__shutteropen_control_16a" - label "shutter:open" + name "xn__moonraymb_shutter_open_control_ypb" + label "moonray:mb_shutter_open" type string default { "none" } menujoin { @@ -77,18 +77,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__shutteropen_0ta" + name "mb_shutter_open" label "Mb Shutter Open" type float default { "-0.25" } help "Frame at which the shutter opens, i.e., the beginning of the motion blur interval." - disablewhen "{ xn__shutteropen_control_16a == block } { xn__shutteropen_control_16a == none }" + disablewhen "{ xn__moonraymb_shutter_open_control_ypb == block } { xn__moonraymb_shutter_open_control_ypb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__shutterclose_control_o8a" - label "shutter:close" + name "xn__moonraymb_shutter_close_control_lrb" + label "moonray:mb_shutter_close" type string default { "none" } menujoin { @@ -102,12 +102,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__shutterclose_nva" + name "mb_shutter_close" label "Mb Shutter Close" type float default { "0.25" } help "Frame at which the shutter closes, i.e., the end of the motion blur interval." - disablewhen "{ xn__shutterclose_control_o8a == block } { xn__shutterclose_control_o8a == none }" + disablewhen "{ xn__moonraymb_shutter_close_control_lrb == block } { xn__moonraymb_shutter_close_control_lrb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -369,8 +369,8 @@ parmtag { "usdvaluetype" "float" } } parm { - name "focalLength_control" - label "focalLength" + name "xn__moonrayfocal_control_o8a" + label "moonray:focal" type string default { "none" } menujoin { @@ -384,12 +384,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "focalLength" + name "focal" label "Focal" type float default { "30" } help "Focal length" - disablewhen "{ focalLength_control == block } { focalLength_control == none }" + disablewhen "{ xn__moonrayfocal_control_o8a == block } { xn__moonrayfocal_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_SpotLight.ds b/houdini/soho/parameters/moonray_SpotLight.ds index 0345da3..954ee43 100644 --- a/houdini/soho/parameters/moonray_SpotLight.ds +++ b/houdini/soho/parameters/moonray_SpotLight.ds @@ -79,8 +79,8 @@ parmtag { "usdvaluetype" "token" } } parm { - name "xn__inputscolor_control_06a" - label "inputs:color" + name "xn__moonraycolor_control_o8a" + label "moonray:color" type string default { "none" } menujoin { @@ -94,19 +94,19 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputscolor_zta" + name "xn__moonraycolor_nva" label "Color" type color size 3 default { "1" "1" "1" } help "The light's RGB values.\nThese are combined multiplicatively with the intensity and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputscolor_control_06a == block } { xn__inputscolor_control_06a == none }" + disablewhen "{ xn__moonraycolor_control_o8a == block } { xn__moonraycolor_control_o8a == none }" range { 0 10 } parmtag { "usdvaluetype" "color3f" } } parm { - name "xn__inputsintensity_control_jeb" - label "inputs:intensity" + name "xn__moonrayintensity_control_6fb" + label "moonray:intensity" type string default { "none" } menujoin { @@ -120,18 +120,18 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsintensity_i0a" + name "xn__moonrayintensity_51a" label "Intensity" type float default { "1" } help "The light's intensity.\nThis is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsintensity_control_jeb == block } { xn__inputsintensity_control_jeb == none }" + disablewhen "{ xn__moonrayintensity_control_6fb == block } { xn__moonrayintensity_control_6fb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsexposure_control_wcb" - label "inputs:exposure" + name "xn__moonrayexposure_control_keb" + label "moonray:exposure" type string default { "none" } menujoin { @@ -145,12 +145,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsexposure_vya" + name "xn__moonrayexposure_j0a" label "Exposure" type float default { "0" } help "The light's exposure value.\nThis value provides an alternative to the intensity value as a mechanism for controlling the light's overall brightness, and is inspired by the corresponding photographic term but is generalised to apply independently to each light. To calculate its effect, pow(2, exposure) is combined multiplicatively with the color and other attributes in determining the light's 3-channel radiance." - disablewhen "{ xn__inputsexposure_control_wcb == block } { xn__inputsexposure_control_wcb == none }" + disablewhen "{ xn__moonrayexposure_control_keb == block } { xn__moonrayexposure_control_keb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -308,8 +308,8 @@ parmtag { "usdvaluetype" "string" } } parm { - name "xn__inputsnormalize_control_jeb" - label "inputs:normalize" + name "xn__moonraynormalized_control_thb" + label "moonray:normalized" type string default { "none" } menujoin { @@ -321,12 +321,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsnormalize_i0a" + name "xn__moonraynormalized_s3a" label "Normalized" type toggle default { "1" } help "When set to true, the size of the light can be changed without altering the amount of total energy cast into the scene. This is achieved via scaling the light's radiance by the reciprocal of its surface area. When set to false, the radiance is used as-is, regardless of surface area." - disablewhen "{ xn__inputsnormalize_control_jeb == block } { xn__inputsnormalize_control_jeb == none }" + disablewhen "{ xn__moonraynormalized_control_thb == block } { xn__moonraynormalized_control_thb == none }" parmtag { "usdvaluetype" "bool" } } parm { @@ -957,8 +957,8 @@ label "Cone" parm { - name "xn__inputsradius_control_n8a" - label "inputs:radius" + name "xn__moonraylens_radius_control_gjb" + label "moonray:lens_radius" type string default { "none" } menujoin { @@ -972,12 +972,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsradius_mva" + name "xn__moonraylens_radius_f5a" label "Lens Radius" type float default { "1" } help "The radius of the SpotLight's lens (when the aspect ratio is 1.0, so that the lens is circular)." - disablewhen "{ xn__inputsradius_control_n8a == block } { xn__inputsradius_control_n8a == none }" + disablewhen "{ xn__moonraylens_radius_control_gjb == block } { xn__moonraylens_radius_control_gjb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } @@ -1032,8 +1032,8 @@ parmtag { "usdvaluetype" "float" } } parm { - name "xn__inputsangle_control_06a" - label "inputs:angle" + name "xn__moonrayouter_cone_angle_control_lrb" + label "moonray:outer_cone_angle" type string default { "none" } menujoin { @@ -1047,12 +1047,12 @@ parmtag { "sidefx::look" "icon" } } parm { - name "xn__inputsangle_zta" + name "xn__moonrayouter_cone_angle_keb" label "Outer Cone Angle" type float default { "60" } help "The apex angle of the bounding cone of the light emitted by the SpotLight. No illumination takes placeoutside this angle. This is a full angle, measured from one side to the other. There is a falloff function applied between the outer and inner cones - see the angle_falloff_type attribute." - disablewhen "{ xn__inputsangle_control_06a == block } { xn__inputsangle_control_06a == none }" + disablewhen "{ xn__moonrayouter_cone_angle_control_lrb == block } { xn__moonrayouter_cone_angle_control_lrb == none }" range { 0 10 } parmtag { "usdvaluetype" "float" } } diff --git a/houdini/soho/parameters/moonray_VdbVolume.ds b/houdini/soho/parameters/moonray_VdbVolume.ds new file mode 100644 index 0000000..2a49351 --- /dev/null +++ b/houdini/soho/parameters/moonray_VdbVolume.ds @@ -0,0 +1,245 @@ +#include "$HFS/houdini/soho/parameters/CommonMacros.ds" +{ + name parameters + group { + name "folder" + label "Volume Baking" + + parm { + name "xn__inputsbake_resolution_mode_control_gwb" + label "inputs:bake_resolution_mode" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputsbake_resolution_mode_fjb" + label "Bake Resolution Mode" + type string + default { "default" } + help "Method to specify grid resolution of baked density grid. Choices are:\n \"default\": For shaders that are bound to vdb volumes, use vdb resolution.\n For shaders that are bounds to mesh geometries use 100 divisions\n \"divisions\": Specify number of divisions.\n \"voxel size\": Specify voxel size." + disablewhen "{ xn__inputsbake_resolution_mode_control_gwb == block } { xn__inputsbake_resolution_mode_control_gwb == none }" + menu { + "default" "Default" + "divisions" "Divisions" + "voxel size" "Voxel Size" + } + parmtag { "usdvaluetype" "token" } + } + parm { + name "xn__inputsbake_divisions_control_omb" + label "inputs:bake_divisions" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputsbake_divisions_n8a" + label "Bake Divisions" + type integer + default { "100" } + help "Divide widest axis by this many divisions" + disablewhen "{ xn__inputsbake_divisions_control_omb == block } { xn__inputsbake_divisions_control_omb == none }" + range { 0 10 } + parmtag { "usdvaluetype" "int" } + } + parm { + name "xn__inputsbake_voxel_size_control_bob" + label "inputs:bake_voxel_size" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputsbake_voxel_size_99a" + label "Bake Voxel Size" + type float + default { "10" } + help "Size of voxel in world space" + disablewhen "{ xn__inputsbake_voxel_size_control_bob == block } { xn__inputsbake_voxel_size_control_bob == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + } + + group { + name "folder2" + label "Volume" + + parm { + name "xn__inputssurface_opacity_threshold_control_l4b" + label "inputs:surface_opacity_threshold" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputssurface_opacity_threshold_krb" + label "Surface Opacity Threshold" + type float + default { "0.5" } + help "Accumulated opacity that's considered the 'surface' for computing surface position and Z" + disablewhen "{ xn__inputssurface_opacity_threshold_control_l4b == block } { xn__inputssurface_opacity_threshold_control_l4b == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + parm { + name "xn__inputsopacity_gain_mult_control_krb" + label "inputs:opacity_gain_mult" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputsopacity_gain_mult_jeb" + label "Opacity Gain Mult" + type color + size 3 + default { "1" "1" "1" } + help "A multiplier applied to the volume density" + disablewhen "{ xn__inputsopacity_gain_mult_control_krb == block } { xn__inputsopacity_gain_mult_control_krb == none }" + range { 0 10 } + parmtag { "usdvaluetype" "color3f" } + } + parm { + name "xn__inputscolor_mult_control_5fb" + label "inputs:color_mult" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputscolor_mult_41a" + label "Color Mult" + type color + size 3 + default { "1" "1" "1" } + help "The albedo of the volume" + disablewhen "{ xn__inputscolor_mult_control_5fb == block } { xn__inputscolor_mult_control_5fb == none }" + range { 0 10 } + parmtag { "usdvaluetype" "color3f" } + } + parm { + name "xn__inputsincandescence_gain_mult_control_c1b" + label "inputs:incandescence_gain_mult" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputsincandescence_gain_mult_bob" + label "Incandescence Gain Mult" + type color + size 3 + default { "1" "1" "1" } + help "A multiplier applied to the volume emission" + disablewhen "{ xn__inputsincandescence_gain_mult_control_c1b == block } { xn__inputsincandescence_gain_mult_control_c1b == none }" + range { 0 10 } + parmtag { "usdvaluetype" "color3f" } + } + parm { + name "xn__inputsanisotropy_control_5fb" + label "inputs:anisotropy" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "add" "![BUTTONS_set_add]Add if Exists" + "multiply" "![BUTTONS_set_multiply]Multiply if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputsanisotropy_41a" + label "Anisotropy" + type float + default { "0" } + help "Value in the interval [-1,1] that defines how foward (1) or backward (-1) scattering the volume is. A value of 0.0 indicates an isotropic volume." + disablewhen "{ xn__inputsanisotropy_control_5fb == block } { xn__inputsanisotropy_control_5fb == none }" + range { 0 10 } + parmtag { "usdvaluetype" "float" } + } + } + + parm { + name "xn__inputslabel_control_06a" + label "inputs:label" + type string + default { "none" } + menujoin { + "set" "![BUTTONS_set_or_create]Set or Create" + "setexisting" "![BUTTONS_set_if_exists]Set if Exists" + "block" "![BUTTONS_set_block]Block" + "none" "![BUTTONS_set_nothing]Do Nothing" + } + parmtag { "sidefx::look" "icon" } + } + parm { + name "xn__inputslabel_zta" + label "Label" + type string + default { "" } + help "label used in light aovs" + disablewhen "{ xn__inputslabel_control_06a == block } { xn__inputslabel_control_06a == none }" + parmtag { "usdvaluetype" "string" } + } +} diff --git a/scripts/update_hdas.py b/scripts/update_hdas.py new file mode 100644 index 0000000..0f8ab4e --- /dev/null +++ b/scripts/update_hdas.py @@ -0,0 +1,2525 @@ +# Copyright 2026 DreamWorks Animation LLC +# SPDX-License-Identifier: Apache-2.0 +""" +Generate the Houdini plugin artifacts in moonray_dcc_plugins from RDL2 metadata. + +Every file this writes is derived data: the shader/light/geometry attribute +descriptions come from rdl2_json_exporter, which reads the proxy DSOs on +RDL2_DSO_PATH. Outputs, relative to --output-dir: + + otls/Vop::DW_MOONRAY::::.hda one VOP HDA per shading class + moonray_nodes.json serialized class/parm metadata + soho/parameters/HdMoonrayRendererPlugin_{Light,Geometry,Global,Aov}.ds + soho/parameters/moonray_Override.ds + soho/parameters/moonray_.ds + +Runtime dependencies: + - hython / hou (Houdini writes the .hda and .ds files itself) + - rdl2_json_exporter on $PATH, with $RDL2_DSO_PATH set to the proxy DSOs + - pxr Python modules (optional; falls back to static output tags) + +To run this script: + source /scripts/setup.sh + hython update_houdini_hdas.py --output-dir /houdini +""" +from __future__ import absolute_import, print_function + +import argparse +import json +import logging +import os +import re +import shutil +import subprocess + +import hou +from pxr import Sdf, Sdr, Usd, UsdLux + + +logger = logging.getLogger(__name__) + +MOONRAY_DATA_JSON_FILE = os.path.join(os.path.dirname(__file__), "usd_attribute_map.json") +# The default output directory is the "houdini" subdirectory of the current +# working directory, which is expected to be the root of the moonray_dcc_plugins repo. +# This is where the script will write moonray_nodes.json and all generated HDAs and .ds files. +DEFAULT_OUTPUT_DIR = os.path.join(os.getcwd(), 'houdini') +MOONSHINE_DATA_FILE = "moonray_nodes.json" + +MR_TYPE_CAMERA = 'Camera' +MR_TYPE_DISPLACEMENT = 'Displacement' +MR_TYPE_DISPLAY_FILTER = 'DisplayFilter' +MR_TYPE_GEOMETRY = 'Geometry' +MR_TYPE_HAIR_LAYERABLE = 'DwaBaseHairLayerable' +MR_TYPE_LAYERABLE = 'DwaBaseLayerable' +MR_TYPE_LIGHT = 'Light' +MR_TYPE_LIGHT_FILTER = 'LightFilter' +MR_TYPE_LIGHT_SET = 'LightSet' +MR_TYPE_MAP = 'Map' +MR_TYPE_MATERIAL = 'Material' +MR_TYPE_DWA_BASE = 'DwaBase' +MR_TYPE_NORMALMAP = 'NormalMap' +MR_TYPE_RENDER_OUTPUT = 'RenderOutput' +MR_TYPE_TRACESET = 'TraceSet' +MR_TYPE_VOLUME = 'Volume' + +BOOL = 'Bool' +BOOLVECTOR = 'BoolVector' +INT = 'Int' +INTVECTOR = 'IntVector' +FLOAT = 'Float' +FLOATVECTOR = 'FloatVector' +DOUBLE = 'Double' +DOUBLEVECTOR = 'DoubleVector' +VEC2F = 'Vec2f' +VEC2FVECTOR = 'Vec2fVector' +VEC3D = 'Vec3d' +VEC3F = 'Vec3f' +VEC3FVECTOR = 'Vec3fVector' +VEC4F = 'Vec4f' +VEC4FVECTOR = 'Vec4fVector' +MAT4F = 'Mat4f' +MAT4FVECTOR = 'Mat4fVector' +MAT4D = 'Mat4d' +MAT4DVECTOR = 'Mat4dVector' +MAT3F = 'Mat3f' +MAT3FVECTOR = 'Mat3fVector' +RGB = 'Rgb' +RGBVECTOR = 'RgbVector' +RGBA = 'Rgba' +RGBAVECTOR = 'RgbaVector' +SCENEOBJECT = 'SceneObject*' +SCENEOBJECTVECTOR = 'SceneObjectVector' +SCENEOBJECTINDEXABLE = 'SceneObjectIndexable' +STRING = 'String' +STRINGVECTOR = 'StringVector' + +BIND_SUFFIX = "_bind" +HANDLED_PARM_TYPES = [ + hou.parmTemplateType.Float, + hou.parmTemplateType.Int, + hou.parmTemplateType.String, + hou.parmTemplateType.Toggle, +] + +ARRAY_TYPE_MAP = { + 'FloatVector': (float, 1), + 'IntVector': (int, 1), + 'RgbVector': (float, 3), + 'SceneObjectVector': (str, 1), + 'StringVector': (str, 1), + 'Vec2fVector': (float, 2), + 'Vec3fVector': (float, 3), + 'Vec4fVector': (float, 4), +} + +RAMP_COMPONENT_INTERPOLATIONS = 'interpolation_types' +RAMP_COMPONENT_VALUES = 'values' +RAMP_COMPONENT_POSITIONS = 'positions' + +RAMP_MOONRAY_NONE = 0 +RAMP_MOONRAY_LINEAR = 1 +RAMP_MOONRAY_CATMULL_ROM = 5 +RAMP_MOONRAY_MONOTONE_CUBIC = 6 +RAMP_MOONRAY_SMOOTH = 4 + +RAMP_INTERP_LOOKUP = { + hou.rampBasis.Constant: RAMP_MOONRAY_NONE, + hou.rampBasis.Linear: RAMP_MOONRAY_LINEAR, + hou.rampBasis.CatmullRom: RAMP_MOONRAY_CATMULL_ROM, + hou.rampBasis.MonotoneCubic: RAMP_MOONRAY_MONOTONE_CUBIC, + hou.rampBasis.Bezier: RAMP_MOONRAY_SMOOTH, + hou.rampBasis.BSpline: RAMP_MOONRAY_SMOOTH, + hou.rampBasis.Hermite: RAMP_MOONRAY_SMOOTH, +} + +TAG_IS_MOONRAY_PARM = "moonray::is_parm" +TAG_SHADER_IS_PARM = "sidefx::shader_isparm" +DEFAULT_MOONRAY_PARM_TAGS = {TAG_IS_MOONRAY_PARM: "1"} +DISPLAY_LOGARITHMIC = 'logarithmic' + +IGNORE_CODE_MISMATCHES = ( + 'AttributeMap', + 'ImageMap', + 'MeshLight', + 'SpotLight', + 'StampMap', +) + +VAR_SKIP_MOONRAY_BUGS = 'DWA_SKIP_MOONRAY_BUILD_BUGS' +VAR_CLASSES_JSON = 'MOONRAY_CLASSES_JSON' + +VOP_TYPES = ( + MR_TYPE_DISPLACEMENT, + MR_TYPE_DISPLAY_FILTER, + MR_TYPE_HAIR_LAYERABLE, + MR_TYPE_LAYERABLE, + MR_TYPE_MAP, + MR_TYPE_MATERIAL, + MR_TYPE_NORMALMAP, + MR_TYPE_VOLUME, + MR_TYPE_DWA_BASE, +) + +VOPS_WITH_CUSTOM_UIS = set(( + "AttributeMap", + "DwaSwitchMaterial", + "ImageMap", + "ImageNormalMap", + "SwitchColorMap", + "SwitchFloatMap", + "SwitchMaterial", +)) + +RENDER_PROPERTIES = ( + 'label', + 'static', + 'side_type', + 'reverse_normals', + 'visible_in_camera', + 'visible_shadow', + 'visible_diffuse_reflection', + 'visible_diffuse_transmission', + 'visible_glossy_reflection', + 'visible_glossy_transmission', + 'visible_mirror_reflection', + 'visible_mirror_transmission', + 'visible_volume', + 'ray_epsilon', + 'shadow_ray_epsilon', +) + +DEPRECATED_PREFIX = "_deprecated_" + +# Documentation URL embedded in each HDA's HelpUrl section. Empty means no +# HelpUrl section is written; set it with --help-url. +HELP_URL = os.environ.get('MOONRAY_HDA_HELP_URL', '') + +MOONRAY_TO_USD_TYPE = { + "Int": "int", + "Bool": "bool", + "Float": "float", + "Double": "double", + "String": "string", + "Rgb": "color3f", + "RgbVector": "color3f[]", + "Vec2f": "float2", + "Vec3f": "float3", + "FloatVector": "float[]", +} + +try: + with open(MOONRAY_DATA_JSON_FILE, 'r') as file: + USD_ATTRIBUTE_MAP = json.load(file) +except Exception: + USD_ATTRIBUTE_MAP = {} + +def _decode(value): + if value is None: + return '' + if hasattr(value, 'decode'): + return value.decode() + return value + + +def ensure_directory(path): + if not os.path.isdir(path): + os.makedirs(path) + + +def validate_public_packages(package_string): + """Refuse a package set that would put proprietary shaders in a public repo. + + moonshine_dwa and friends carry DreamWorks' closed source shaders. The + generator itself is package agnostic: it builds a node for every scene + class it is given, so the package set is the only thing keeping those + shaders out of the public artifacts. + """ + for pkg in package_string.split(): + if 'dwa' in pkg.lower(): + raise ValueError( + "DWA package detected: '{0}'. Public builds must not use DWA " + "packages. Pass --internal to build the internal plugin set.".format(pkg) + ) + + +def get_major_moonshine_version(package_string): + try: + return package_string.partition("moonshine-")[2].split()[0].split(".")[0] + except Exception: + raise ValueError( + "Couldn't determine major moonshine version from arg: {0}".format( + package_string) + ) + + +def rdla_to_usd_type(type_name): + type_map = { + BOOL: Sdf.ValueTypeNames.Bool, + BOOLVECTOR: Sdf.ValueTypeNames.BoolArray, + INT: Sdf.ValueTypeNames.Int, + INTVECTOR: Sdf.ValueTypeNames.IntArray, + FLOAT: Sdf.ValueTypeNames.Float, + FLOATVECTOR: Sdf.ValueTypeNames.FloatArray, + DOUBLE: Sdf.ValueTypeNames.Double, + DOUBLEVECTOR: Sdf.ValueTypeNames.DoubleArray, + VEC2F: Sdf.ValueTypeNames.Float2, + VEC2FVECTOR: Sdf.ValueTypeNames.Float2Array, + VEC3D: Sdf.ValueTypeNames.Vector3d, + VEC3F: Sdf.ValueTypeNames.Vector3f, + VEC3FVECTOR: Sdf.ValueTypeNames.Vector3fArray, + VEC4F: Sdf.ValueTypeNames.Float4, + VEC4FVECTOR: Sdf.ValueTypeNames.Float4Array, + MAT4F: Sdf.ValueTypeNames.FloatArray, + MAT4FVECTOR: Sdf.ValueTypeNames.FloatArray, + MAT4D: Sdf.ValueTypeNames.DoubleArray, + MAT4DVECTOR: Sdf.ValueTypeNames.DoubleArray, + MAT3F: Sdf.ValueTypeNames.FloatArray, + MAT3FVECTOR: Sdf.ValueTypeNames.FloatArray, + RGB: Sdf.ValueTypeNames.Color3f, + RGBVECTOR: Sdf.ValueTypeNames.Color3fArray, + RGBA: Sdf.ValueTypeNames.Color4f, + RGBAVECTOR: Sdf.ValueTypeNames.Color4fArray, + SCENEOBJECT: Usd.Relationship, + SCENEOBJECTVECTOR: Usd.Relationship, + SCENEOBJECTINDEXABLE: Usd.Relationship, + STRING: Sdf.ValueTypeNames.String, + STRINGVECTOR: Sdf.ValueTypeNames.StringArray, + } + usd_type = type_map.get(type_name) + if usd_type is None: + raise ValueError( + "Unknown type name for USD class '{0}'. A new rdl2 attribute type has " + "appeared; add it to rdla_to_usd_type.".format(type_name)) + return usd_type + + +class MoonrayBuildError(Exception): + pass + + +def build_error(message): + print(message) + if os.environ.get(VAR_SKIP_MOONRAY_BUGS, '0') == '1': + return + logger.error(message) + message += "\n\n (To bypass build errors and force a build, set: {} = 1)".format( + VAR_SKIP_MOONRAY_BUGS) + raise MoonrayBuildError(message) + + +class MoonrayParm(object): + + __slots__ = [ + '_aliases', + '_houdini_label', + '_is_filepath', + '_order', + 'bindable', + 'cast', + 'default_value', + 'disable_when', + 'display', + 'enable_if', + 'enclosing_folder_name', + 'fake_bind', + 'interface', + 'is_multiparm', + 'help', + 'houdini_name', + 'max', + 'menu', + 'menu_values', + 'min', + 'moonray_class', + 'moonray_name', + 'moonray_type', + 'ramp_is_color', + 'ramp_parm_name', + 'ramp_component', + 'subgroup', + 'tuple_size', + 'unrepresentableDefault', + ] + + def __init__(self, moonray_class): + self._aliases = [] + self._houdini_label = '' + self._is_filepath = False + self._order = -1 + self.bindable = False + self.cast = str + self.default_value = [] + self.disable_when = '' + self.display = '' + self.enable_if = '' + self.enclosing_folder_name = '' + self.fake_bind = False + self.houdini_name = '' + self.interface = None + self.is_multiparm = False + self.help = '' + self.max = None + self.menu = [] + self.menu_values = [] + self.min = None + self.moonray_class = moonray_class + self.moonray_name = '' + self.moonray_type = '' + self.ramp_is_color = False + self.ramp_parm_name = None + self.ramp_component = None + self.subgroup = '' + self.tuple_size = 0 + self.unrepresentableDefault = None + + @property + def aliases(self): + return self._aliases + + @aliases.setter + def aliases(self, new_aliases): + self._aliases = list(new_aliases) + + @property + def bind_name(self): + return self.houdini_name + BIND_SUFFIX + + @property + def houdini_label(self): + if self._houdini_label: + return self._houdini_label + if self.houdini_name == "auto_bump": + return "Auto Bump (BROKEN: MOONRAY-3339)" + return self._moonray_name_to_label(self.moonray_name) + + @property + def is_filepath(self): + return self._is_filepath + + @property + def menu_default(self): + idx = self.menu_values.index(str(self.default_value[0])) + return self.menu[idx] + + @property + def order(self): + return self._order + + def _moonray_name_to_label(self, name): + label = [word.title() if word and word[0].islower() else word + for word in name.split("_") if word] + label = " ".join(label) + if self.enclosing_folder_name and label.startswith(self.enclosing_folder_name + " "): + label = label.replace(self.enclosing_folder_name + " ", "") + return label + + def _multiparm_template(self, parm_template): + parm_template.setName(parm_template.name() + "#") + default_count = len(self.default_value) + if self.unrepresentableDefault is not None: + default_count = 0 + folder = hou.FolderParmTemplate( + self.houdini_name, + self.houdini_label, + folder_type=hou.folderType.MultiparmBlock, + default_value=default_count, + ) + folder.setParmTemplates((parm_template,)) + return folder + + def _ramp_default_tag(self): + lines = [] + ramp = self.get_ramp_default_value() + if ramp is None: + return '' + if self.ramp_is_color: + line = "{idx}pos ( {pos} ) {idx}c ( {r} {g} {b} ) {idx}interp ( {basis} )" + for i in range(len(list(ramp.keys()))): + pos = list(ramp.keys())[i] + value = list(ramp.values())[i] + basis = ramp.basis()[i].name().lower() + lines.append(line.format( + idx=i + 1, + pos=pos, + r=value[0], + g=value[1], + b=value[2], + basis=basis, + )) + else: + line = "{idx}pos ( {pos} ) {idx}value ( {val} ) {idx}interp ( {basis} )" + for i in range(len(list(ramp.keys()))): + pos = list(ramp.keys())[i] + value = list(ramp.values())[i] + basis = ramp.basis()[i].name().lower() + lines.append(line.format( + idx=i + 1, + pos=pos, + val=value, + basis=basis, + )) + return " ".join(lines) + + def enable_if_to_disable_when(self, moonray_class): + from collections import OrderedDict + + if not self.enable_if: + return + + prefix = "OrderedDict(" + if not (self.enable_if.startswith(prefix) and self.enable_if.endswith(")")): + raise ValueError("Bad Enable If: {0}".format(self.enable_if)) + + import ast + try: + enable_if_items = ast.literal_eval(self.enable_if[len(prefix):-1]) + enable_if_dict = OrderedDict(enable_if_items) + except Exception: + raise ValueError("Bad Enable If: {0}".format(self.enable_if)) + if not isinstance(enable_if_dict, OrderedDict): + raise ValueError("Bad Enable If: {0}".format(self.enable_if)) + + disable_when = [] + for parm_name in enable_if_dict: + value = enable_if_dict[parm_name] + if value == 'true': + value = 1 + elif value == 'false': + value = 0 + target_parm = moonray_class.find_parameter(parm_name) + if not target_parm: + build_error( + "{0}'s attribute '{1}' references an invalid attribute '{2}' " + "in its enable if expression!".format( + moonray_class.moonray_name, + self.houdini_name, + parm_name, + ) + ) + return + + if target_parm.menu: + value = str(value) + if value in target_parm.menu: + pass + elif value in target_parm.menu_values: + idx = target_parm.menu_values.index(str(value)) + value = target_parm.menu[idx] + else: + raise ValueError( + "{0} parm '{1}' should be disabled when '{2} != {3}' - " + "however, {2} is a menu and that is not a valid menu option!" + .format( + moonray_class.moonray_name, + self.houdini_name, + parm_name, + value, + ) + ) + if " " in value: + value = '"{0}"'.format(value) + + disable_when.append("{{ {0} != {1} }}".format(parm_name, value)) + self.disable_when = " ".join(disable_when) + + @staticmethod + def from_rdl2_json_exporter(name, data, moonray_class): + parm = MoonrayParm(moonray_class) + parm.moonray_name = name + if " " in name: + raise ValueError("SPACE IN NAME: {0}".format(name)) + + parm._order = data['order'] + parm.moonray_type = str(data['attrType']) + parm.cast, parm.tuple_size = ARRAY_TYPE_MAP.get(parm.moonray_type, (str, 0)) + parm.is_multiparm = parm.moonray_type in [ + FLOATVECTOR, + INTVECTOR, + RGBVECTOR, + SCENEOBJECTVECTOR, + STRINGVECTOR, + VEC2FVECTOR, + VEC3FVECTOR, + VEC4FVECTOR, + ] + + default = data['default'] + if default is None or parm.moonray_type in [SCENEOBJECT]: + default = [] + elif parm.moonray_type in [INT, FLOAT, DOUBLE, BOOL, STRING]: + default = [default] + elif parm.is_multiparm: + if any(default): + parm.unrepresentableDefault = default + elif parm.moonray_type == MAT4D: + default = [item for sublist in default for item in sublist] + + if default and isinstance(default[0], float): + for i in range(len(default)): + default[i] = float("{0:.5f}".format(default[i])) + parm.default_value = default + parm.aliases = data.get("aliases", []) + parm.bindable = data.get("bindable", False) + parm.interface = data.get("interface") + + if moonray_class.houdini_context == 'Vop' and \ + parm.moonray_type == SCENEOBJECT and \ + parm.interface in ( + MR_TYPE_LAYERABLE, + MR_TYPE_DISPLACEMENT, + MR_TYPE_HAIR_LAYERABLE, + MR_TYPE_MATERIAL, + MR_TYPE_DWA_BASE, + MR_TYPE_MAP, + MR_TYPE_NORMALMAP, + MR_TYPE_RENDER_OUTPUT, + MR_TYPE_VOLUME, + ): + parm.fake_bind = True + + parm._is_filepath = data.get("filename", False) + + if 'enum' in data: + enum_dict = data['enum'] + labels = list(enum_dict.keys()) + labels.sort(key=lambda a: enum_dict[a]) + parm.menu = [str(label) for label in labels] + parm.menu_values = [str(enum_dict[label]) for label in labels] + + meta = data.get("metadata", {}) + parm.houdini_name = data.get('houdini_name', parm.moonray_name) + parm.help = meta.get("comment", "") + enable_if = meta.get("enable if", '') + parm.disable_when = meta.get('disable when', '').replace("'", '"') + parm.subgroup = meta.get('subgroup', '') + parm.display = meta.get("display") + parm.ramp_is_color = meta.get('structure_type') == "ramp_color" + parm.ramp_parm_name = meta.get('structure_name') + parm.ramp_component = meta.get('structure_path') + + if parm.disable_when and enable_if: + print("WARNING: '{0}' has an 'enable if' and a 'disable_when'! " + "Preferring the 'disable_when' field.".format(name)) + elif not parm.disable_when: + parm.enable_if = enable_if + + if "min" in meta: + value = str(meta["min"]) + if value[-1] == "f": + value = float(value[:-1]) + elif "." in value: + value = float(value) + else: + value = int(value) + parm.min = value + if "max" in meta: + value = str(meta["max"]) + if value[-1] == "f": + value = float(value[:-1]) + elif "." in value: + value = float(value) + else: + value = int(value) + parm.max = value + + label = meta.get("display name") + if label and label[0].isupper(): + parm._houdini_label = label + + return parm + + def get_usd_type(self): + if self.is_filepath: + return Sdf.ValueTypeNames.Asset + if self.menu or self.fake_bind: + return Sdf.ValueTypeNames.Token + if self.is_reference() and self.moonray_class.houdini_context == 'Vop': + return Sdf.ValueTypeNames.Token + return rdla_to_usd_type(self.moonray_type) + + def get_ramp_default_value(self): + return self.get_ramp_default_value_from_name(self.moonray_class, self.ramp_parm_name) + + @staticmethod + def get_ramp_default_value_from_name(moonray_class, ramp_parm_name): + if not moonray_class or not ramp_parm_name: + return None + ramp_components = {} + for parm in moonray_class.parms: + name = parm.ramp_parm_name + if name and name == ramp_parm_name: + ramp_components[parm.ramp_component] = parm.default_value + + ramp_interps = dict([(value, key) for key, value in RAMP_INTERP_LOOKUP.items()]) + values = ramp_components[RAMP_COMPONENT_VALUES] + pos = ramp_components[RAMP_COMPONENT_POSITIONS] + interps = ramp_components[RAMP_COMPONENT_INTERPOLATIONS] + interps = [ramp_interps[i] for i in interps] + return hou.Ramp(interps, pos, values) + + def houdini_bind_type(self): + if self.interface is None: + interface = '' + else: + interface = str(self.interface) + if interface == MR_TYPE_NORMALMAP: + return "vector4" + elif interface == MR_TYPE_VOLUME: + return "volume" + elif interface in ( + MR_TYPE_LAYERABLE, + MR_TYPE_HAIR_LAYERABLE, + MR_TYPE_MATERIAL, + MR_TYPE_DWA_BASE): + return "surface" + elif interface == MR_TYPE_DISPLACEMENT: + return "displacement" + elif interface == MR_TYPE_RENDER_OUTPUT: + return "struct_FuzzySet" + elif interface == MR_TYPE_MAP: + return "vector" + if self.moonray_type in [VEC3F, VEC3D, VEC2F, RGB, MR_TYPE_NORMALMAP]: + return "vector" + if self.moonray_type in [VEC4F]: + return "vector4" + elif self.moonray_type in [FLOAT, DOUBLE]: + return "float" + elif self.moonray_type in [INT, BOOL]: + return "int" + elif self.moonray_type in [STRING, SCENEOBJECT]: + return "string" + elif self.moonray_type in [MAT4F, MAT4D]: + return "matrix" + return None + + def houdini_parm_template(self, int_menus=False, name_prefix="", + moonray_type=None, use_moonray_name=False, + alt_name=None, skip_multiparm=False): + name = name_prefix + self.houdini_name + if use_moonray_name: + name = name_prefix + self.moonray_name + elif alt_name: + name = alt_name + if not moonray_type: + moonray_type = self.moonray_type + + if self.menu: + if not int_menus: + pt = hou.StringParmTemplate( + name, + self.houdini_label, + 1, + default_value=(self.menu_default,), + help=self.help, + disable_when=self.disable_when, + tags=DEFAULT_MOONRAY_PARM_TAGS, + ) + menu_labels = [label.title() if label.islower() else label + for label in self.menu] + pt.setMenuItems(self.menu) + pt.setMenuLabels(menu_labels) + return pt + else: + def_value = str(self.default_value[0]) + default_idx = self.menu_values.index(def_value) + pt = hou.IntParmTemplate( + name, self.houdini_label, 1, + default_value=[default_idx], + join_with_next=self.bindable, + help=self.help, + disable_when=self.disable_when, + min=self.min if self.min is not None else 0, + max=self.max if self.max is not None else 10, + tags=DEFAULT_MOONRAY_PARM_TAGS, + ) + pt.setMenuItems(self.menu_values) + pt.setMenuLabels(self.menu) + return pt + + elif self.ramp_parm_name: + if self.ramp_component and self.ramp_component != RAMP_COMPONENT_VALUES: + return None + label = self._moonray_name_to_label(self.ramp_parm_name) + ramp_type = hou.rampParmType.Color if self.ramp_is_color else hou.rampParmType.Float + pt = hou.RampParmTemplate( + self.ramp_parm_name, + label, + ramp_type, + default_value=len(self.default_value), + disable_when=self.disable_when, + ) + key = "rampcolordefault" if self.ramp_is_color else "rampfloatdefault" + pt.setTags({ + key: self._ramp_default_tag(), + TAG_IS_MOONRAY_PARM: "1", + }) + return pt + + elif moonray_type in [INT, INTVECTOR]: + pt = hou.IntParmTemplate( + name, self.houdini_label, 1, + default_value=self.default_value, + help=self.help, + disable_when=self.disable_when, + min=self.min if self.min is not None else 0, + max=self.max if self.max is not None else 10, + tags=DEFAULT_MOONRAY_PARM_TAGS, + ) + if self.display == DISPLAY_LOGARITHMIC: + pt.setLook(hou.parmLook.Logarithmic) + if self.is_multiparm: + return self._multiparm_template(pt) + return pt + + elif moonray_type in [FLOAT, DOUBLE, FLOATVECTOR]: + look = hou.parmLook.Logarithmic if self.display == DISPLAY_LOGARITHMIC else hou.parmLook.Regular + pt = hou.FloatParmTemplate( + name, + self.houdini_label, + 1, + default_value=self.default_value[:1], + help=self.help, + disable_when=self.disable_when, + min=self.min if self.min is not None else 0.0, + max=self.max if self.max is not None else 10.0, + tags=DEFAULT_MOONRAY_PARM_TAGS, + look=look, + ) + if self.is_multiparm: + return self._multiparm_template(pt) + return pt + + elif moonray_type in [VEC2F, VEC3F, VEC3D, MAT4D]: + return hou.FloatParmTemplate( + name, + self.houdini_label, + len(self.default_value), + default_value=self.default_value, + help=self.help, + disable_when=self.disable_when, + tags=DEFAULT_MOONRAY_PARM_TAGS, + ) + + elif moonray_type == BOOL: + return hou.ToggleParmTemplate( + name, + self.houdini_label, + bool(self.default_value[0]), + help=self.help, + disable_when=self.disable_when, + tags=DEFAULT_MOONRAY_PARM_TAGS, + ) + + elif moonray_type in [RGB, RGBVECTOR]: + if moonray_type == RGBVECTOR and self.default_value and isinstance(self.default_value[0], list): + def_value = self.default_value[0] + else: + def_value = self.default_value + if self.display == "tmi": + parm_look = hou.parmLook.Regular + naming_scheme = hou.parmNamingScheme.XYZW + else: + parm_look = hou.parmLook.ColorSquare + naming_scheme = hou.parmNamingScheme.RGBA + pt = hou.FloatParmTemplate( + name, + self.houdini_label, + 3, + default_value=def_value, + look=parm_look, + naming_scheme=naming_scheme, + help=self.help, + disable_when=self.disable_when, + tags=DEFAULT_MOONRAY_PARM_TAGS, + ) + if self.is_multiparm: + return self._multiparm_template(pt) + return pt + + elif moonray_type in [STRING, STRINGVECTOR, SCENEOBJECT, SCENEOBJECTVECTOR]: + if moonray_type in [SCENEOBJECT, SCENEOBJECTVECTOR]: + str_type = hou.stringParmType.NodeReference + elif self.is_filepath: + str_type = hou.stringParmType.FileReference + else: + str_type = hou.stringParmType.Regular + + pt = hou.StringParmTemplate( + name, + self.houdini_label, + 1, + string_type=str_type, + default_value=self.default_value, + help=self.help, + disable_when=self.disable_when, + is_hidden=self.fake_bind, + tags=DEFAULT_MOONRAY_PARM_TAGS, + ) + if self.is_multiparm and not skip_multiparm: + return self._multiparm_template(pt) + return pt + + print("\tWARNING: Unable to make Houdini Parm for {0} ({1})".format( + self.houdini_name, moonray_type)) + return None + + def is_reference(self): + is_scene_object = self.moonray_type in ( + SCENEOBJECT, SCENEOBJECTVECTOR, SCENEOBJECTINDEXABLE) + return is_scene_object and not self.fake_bind + + def serialize(self): + data = { + 'moonray_name': self.moonray_name, + 'moonray_type': self.moonray_type, + 'default_value': self.default_value, + 'houdini_name': self.houdini_name, + 'houdini_label': self.houdini_label, + 'order': self.order, + } + if self.interface: + data['interface'] = self.interface + if self.aliases: + data['aliases'] = self.aliases + if self.display: + data['display'] = self.display + if self.bindable: + data['bindable'] = self.bindable + if self.is_filepath: + data['is_filepath'] = self.is_filepath + if self.help: + data['help'] = self.help + if self.menu: + data['menu'] = self.menu + data['menu_values'] = self.menu_values + if self.fake_bind: + data['fake_bind'] = self.fake_bind + if self.ramp_is_color: + data['ramp_is_color'] = self.ramp_is_color + if self.ramp_parm_name: + data['ramp_parm_name'] = self.ramp_parm_name + if self.ramp_component: + data['ramp_parm_type'] = self.ramp_component + return data + + +class MoonrayClass(object): + + __slots__ = [ + 'parms', 'parms_dict', 'moonray_name', 'versionless_moonray_name', + 'version', 'moonray_type', 'folders_with_parms', 'folders_sorted', + 'houdini_context', 'houdini_name', '_hda', + ] + + def __init__(self, name, mr_type): + self._hda = None + self.parms = [] + self.parms_dict = {} + self.moonray_name = name + self.versionless_moonray_name = re.sub(r'_v[0-9]*$', '', name) + x = name.rfind('_v') + self.version = int(name[x + 2:]) if x >= 0 else 1 + self.moonray_type = mr_type + self.folders_with_parms = {} + self.folders_sorted = [] + self.houdini_context = 'Vop' if mr_type in VOP_TYPES else 'Object' + self.houdini_name = self.houdini_context + '::DW_MOONRAY::' + self.versionless_moonray_name + '::' + str(self.version) + + @property + def hda(self): + if self._hda: + return self._hda + category = hou.nodeTypeCategories()[self.houdini_context] + nt = category.nodeType(self.houdini_name) + if nt: + return nt.definition() + return None + + @hda.setter + def hda(self, hda): + self._hda = hda + + @property + def icon_name(self): + if self.versionless_moonray_name == 'AbcGeometry': + return 'SOP_alembic' + icons = { + MR_TYPE_DISPLACEMENT: 'SOP_vdbfrompolygons', + MR_TYPE_DISPLAY_FILTER: 'VOP_shadinglayer', + MR_TYPE_MATERIAL: 'VIEW_materials', + MR_TYPE_LIGHT_FILTER: 'SOP_cloudlight', + MR_TYPE_LAYERABLE: 'VOP_raytrace', + MR_TYPE_HAIR_LAYERABLE: 'VOP_pbrhair', + MR_TYPE_MAP: 'NETWORKS_root', + MR_TYPE_VOLUME: 'VOP_texture3d', + MR_TYPE_NORMALMAP: 'SOP_normal', + MR_TYPE_DWA_BASE: 'VIEW_materials', + } + return icons.get(self.moonray_type, 'DIALOG_question') + + @property + def lop_hda(self): + name = 'Lop::' + self.houdini_name.partition('::')[2] + nt = hou.lopNodeTypeCategory().nodeType(name) + if nt: + return nt.definition() + return None + + def add_parms_to_hda(self, verbose=True, hda=None): + if not hda: + hda = self.hda + if not hda: + return + + # Start with empty parm template group for fresh builds + ptg = hou.ParmTemplateGroup() + node_cat = hda.nodeTypeCategory() + tab_categories = (hou.vopNodeTypeCategory(), hou.lopNodeTypeCategory()) + folder_type = hou.folderType.Tabs if node_cat in tab_categories else hou.folderType.Collapsible + + for folder_name in self.folders_sorted: + if not ptg.findFolder(folder_name): + folder = hou.FolderParmTemplate('folder', folder_name, folder_type=folder_type) + ptg.append(folder) + + last_ungrouped_parm = None + for parm in self.parms: + name = parm.ramp_parm_name if parm.ramp_parm_name else parm.houdini_name + if name in self.ignore_parm_names() or name == 'shadow_exclusion_mappings': + continue + folder_name = self.folder_name_for_parameter(parm) + if node_cat == hou.vopNodeTypeCategory(): + parm.enclosing_folder_name = folder_name + pt = parm.houdini_parm_template() + if not pt: + continue + + if verbose: + print("\tADDING PARM: {0}".format(pt.name())) + if pt.help(): + print("\t\t{0}".format(pt.help())) + + if node_cat == hou.objNodeTypeCategory(): + if pt.name() in RENDER_PROPERTIES: + folder_name = 'Render Properties' + elif not folder_name: + folder_name = self.versionless_moonray_name + folder = ptg.findFolder(folder_name) + if not folder: + folder = hou.FolderParmTemplate('folder', folder_name, folder_type=folder_type) + ptg.append(folder) + ptg.appendToFolder(folder, pt) + elif node_cat == hou.vopNodeTypeCategory(): + if folder_name: + if not parm.subgroup: + ptg.appendToFolder(folder_name, pt) + else: + subfolder_pt = None + subfolder_name = '_folder_' + parm.subgroup.replace(' ', '_') + for a_pt in ptg.findFolder(folder_name).parmTemplates(): + if a_pt.name() == subfolder_name: + subfolder_pt = a_pt + break + if not subfolder_pt: + subfolder_pt = hou.FolderParmTemplate( + subfolder_name, + parm.subgroup, + folder_type=hou.folderType.Collapsible, + ) + ptg.appendToFolder(folder_name, subfolder_pt) + ptg.appendToFolder(subfolder_pt, pt) + else: + if last_ungrouped_parm: + ptg.insertAfter(last_ungrouped_parm, pt) + elif ptg.parmTemplates(): + ptg.insertBefore(ptg.parmTemplates()[0].name(), pt) + else: + ptg.append(pt) + last_ungrouped_parm = pt.name() + else: + if not folder_name and self.folders_sorted and node_cat == hou.lopNodeTypeCategory(): + folder_name = 'Other Settings' + if folder_name: + folder = ptg.findFolder(folder_name) + if not folder: + folder = hou.FolderParmTemplate('folder', folder_name, folder_type=folder_type) + ptg.append(folder) + ptg.appendToFolder(folder, pt) + else: + ptg.append(pt) + + hda.setParmTemplateGroup(ptg) + self.configure_output_tag(hda) + self.tag_ramp_parms(hda, verbose=verbose) + if node_cat == hou.vopNodeTypeCategory() and hda.extraInfo() != '* moonray': + hda.setExtraInfo('* moonray') + + def configure_output_tag(self, hda): + if self.houdini_context != 'Vop': + return + outputs = HDAVopBuilder.OUTPUT_CONNECTIONS.get(self.moonray_type) + ptg = hda.parmTemplateGroup() + if not outputs: + return + name = outputs.split("\t")[2] + if self.find_parameter(name): + raise ValueError( + "ERROR! {}: attribute name {} is same as the output name.".format( + self.moonray_name, name)) + output_tags = self.get_output_tag() + if not output_tags: + return + + pt = ptg.find(name) + if pt: + cur_tags = pt.tags() + invalid_name = 'sidefx:shader_isparm' + if invalid_name in cur_tags: + del cur_tags[invalid_name] + cur_tags.update(output_tags) + if cur_tags != pt.tags(): + print(" Updating Output Tags! {} -> {}".format(pt.tags(), cur_tags)) + pt.setTags(cur_tags) + ptg.replace(name, pt) + hda.setParmTemplateGroup(ptg) + else: + pt = hou.IntParmTemplate( + name, name, 1, + is_hidden=True, + is_label_hidden=True, + tags=output_tags, + ) + ptg.addParmTemplate(pt) + hda.setParmTemplateGroup(ptg) + + def find_parameter(self, parm_name): + return self.parms_dict.get(parm_name) + + def folder_name_for_parameter(self, parm): + for folder_name, parm_names in self.folders_with_parms.items(): + if parm.moonray_name in parm_names or ( + parm.ramp_parm_name and parm.ramp_parm_name in parm_names): + return folder_name + return None + + @staticmethod + def from_rdl2_json_exporter(name, data): + node = MoonrayClass(name, data['type']) + attributes = data.get('attributes') + if attributes: + for parm_name, parm_data in attributes.items(): + parm = MoonrayParm.from_rdl2_json_exporter(parm_name, parm_data, node) + if parm.houdini_name == 'node_xform' and parm.moonray_type == MAT4D: + continue + node.parms.append(parm) + node.parms.sort(key=lambda a: a.order) + node.rebuild_parm_dict() + for parm in node.parms: + parm.enable_if_to_disable_when(node) + for parm in node.parms: + if parm.ramp_parm_name: + parm.get_ramp_default_value() + + grouping = data.get('grouping') + if grouping: + node.folders_sorted = grouping['order'] + node.folders_with_parms = grouping['groups'] + return node + + def get_output_tag(self): + shader = Sdr.Registry().GetShaderNodeByName(self.moonray_name) + if shader and shader.GetOutputNames(): + outputname = shader.GetOutputNames()[0] + output = shader.GetShaderOutput(outputname) + outputtype = str(output.GetTypeAsSdfType()[0]) + elif self.moonray_type in HDAVopBuilder.OUTPUT_TAG_TYPE: + outputname, outputtype = HDAVopBuilder.OUTPUT_TAG_TYPE[self.moonray_type] + else: + return {} + return { + 'sidefx::shader_parmname': outputname, + 'sidefx::shader_parmtype': outputtype, + TAG_SHADER_IS_PARM: '0', + } + + def ignore_parm_names(self): + black_list = { + 'Object::DW_MOONRAY::InstanceGeometry::1': + ['positions', 'orientations', 'scales', 'velocities', 'xform_list'], + } + result = black_list.get(self.houdini_name, []) + if self.moonray_type == MR_TYPE_GEOMETRY: + result = list(result) + ['primitive_attributes', 'part_list', 'static'] + if self.moonray_name != 'InstanceGeometry': + result.append('references') + if self.versionless_moonray_name.endswith('Geometry'): + result.extend(['shadow_group', 'shadow_group_mode']) + if self.versionless_moonray_name.endswith('Material'): + result.extend(['diffuse_lightset', 'specular_lightset']) + return result + + def rebuild_parm_dict(self): + self.parms_dict.clear() + for parm in self.parms: + self.parms_dict[parm.houdini_name] = parm + self.parms_dict[parm.moonray_name] = parm + for alias in parm.aliases: + self.parms_dict[alias] = parm + + def serialize(self): + parms = {} + for parm in self.parms: + parms[parm.moonray_name] = parm.serialize() + return { + 'moonray_name': self.moonray_name, + 'moonray_type': self.moonray_type, + 'parms': parms, + 'folders_sorted': self.folders_sorted, + 'folders_with_parms': self.folders_with_parms, + } + + def set_tab_menu(self, menu='DW Moonray'): + return None + + def tag_ramp_parms(self, hda, verbose): + if self.houdini_context != 'Vop': + return + ramp_parms = [p for p in self.parms if p.ramp_parm_name] + if not ramp_parms: + return + ptg = hda.parmTemplateGroup() + tag_map = { + 'interpolation_types': 'rampbasis_var', + 'positions': 'rampkeys_var', + 'values': 'rampvalues_var', + } + for ramp_parm in ramp_parms: + pt_name = ramp_parm.ramp_parm_name + pt = ptg.find(pt_name) + if not pt: + continue + cur_tags = pt.tags() + tag_name = tag_map.get(ramp_parm.ramp_component) + cur_tags.update({tag_name: ramp_parm.moonray_name}) + if cur_tags != pt.tags(): + if verbose: + print(" Updating Ramp Tags! {} -> {}".format(pt.tags(), cur_tags)) + pt.setTags(cur_tags) + ptg.replace(pt_name, pt) + hda.setParmTemplateGroup(ptg) + + +class HDABuilder(object): + + _houdini_create_bindings = { + MR_TYPE_DISPLACEMENT: ("/mat", "subnet"), + MR_TYPE_DISPLAY_FILTER: ("/mat", "subnet"), + MR_TYPE_LIGHT_FILTER: ("/obj", "subnet"), + MR_TYPE_MAP: ("/mat", "subnet"), + MR_TYPE_LAYERABLE: ("/mat", "subnet"), + MR_TYPE_HAIR_LAYERABLE: ("/mat", "subnet"), + MR_TYPE_MATERIAL: ("/mat", "subnet"), + MR_TYPE_DWA_BASE: ("/mat", "subnet"), + MR_TYPE_NORMALMAP: ("/mat", "subnet"), + MR_TYPE_VOLUME: ("/mat", "subnet"), + } + + def __init__(self, hda, moonray_class): + self._hda = hda + self._moonray_class = moonray_class + + @property + def hda(self): + return self._hda + + @property + def moonray_class(self): + return self._moonray_class + + def _add_houdini_event_script(self, script_name, method_name, pass_kwargs=False): + code = "kwargs['node'].hm().wrapper(kwargs['node']).{}({})".format( + method_name, 'kwargs' if pass_kwargs else '') + section = self.hda.sections().get(script_name) + if not section: + print(" Adding {0} Script".format(script_name)) + self.hda.addSection(script_name, code) + self.hda.setExtraFileOption('{0}/IsPython'.format(script_name), True) + elif section.contents() != code and self.moonray_class.moonray_name not in IGNORE_CODE_MISMATCHES: + print(" Script code mis-match! {0}".format(script_name)) + + def _add_python_module(self): + if self.moonray_class.moonray_name in IGNORE_CODE_MISMATCHES: + return + if not self.hda.sections().get('PythonModule'): + code = self._default_python_module() + if not code: + return + self.hda.addSection('PythonModule', code) + self.hda.setExtraFileOption('PythonModule/IsPython', True) + else: + cur_code = self.hda.sections().get('PythonModule').contents() + code = self._default_python_module() + if cur_code != code: + print(' PythonModule != default script!!') + + def _default_python_module(self): + # The internal build gave each node category a python module providing a + # wrapper object that implemented on_create/on_input_changed/etc. None of + # those modules were open sourced, so every branch here collapsed to the + # same stub whose wrapper() returns None. Installing the event handlers + # against that stub makes every node raise + # AttributeError: 'NoneType' object has no attribute 'on_create' + # as soon as it is created. All 125 HDAs shipped in moonray_dcc_plugins + # carry no PythonModule, OnCreated or OnInputChanged section at all, so + # emit nothing and match them. An internal fork that restores a real + # module here gets every event handler back automatically. + return None + + @classmethod + def can_create_hda(cls, moonray_class): + return moonray_class.moonray_type in cls._houdini_create_bindings + + def add_python_scripts(self): + if not self._default_python_module(): + return + self._add_python_module() + self._add_houdini_event_script('OnCreated', 'on_create') + + def cleanup_hda(self): + self.update_url() + + @classmethod + def create_hda(cls, moonray_class, directory): + if not cls.can_create_hda(moonray_class): + print("WARNING: Cannot create HDA for Node Type '{0}'".format( + moonray_class.moonray_type)) + return None + + ensure_directory(directory) + file_path = os.path.join(directory, moonray_class.houdini_name + '.hda') + label = 'Moonray {0}'.format(moonray_class.versionless_moonray_name) + parent_path, base = cls._houdini_create_bindings[moonray_class.moonray_type] + parent_node = hou.node(parent_path) + if parent_node is None: + raise MoonrayBuildError( + "Houdini network '{0}' does not exist in this session, so the HDA for " + "'{1}' cannot be built. Run under hython with a default scene.".format( + parent_path, moonray_class.moonray_name)) + hda_source = parent_node.createNode(base) + node = None + try: + node = hda_source.createDigitalAsset( + name=moonray_class.houdini_name, + description=label, + hda_file_name=file_path, + ) + hda = node.type().definition() + hda.updateFromNode(node) + if moonray_class.houdini_context == 'Object': + hda.setMaxNumInputs(1) + node.matchCurrentDefinition() + except Exception: + logger.exception("Failed to create HDA %s", moonray_class.houdini_name) + raise MoonrayBuildError( + "Failed to create HDA for '{0}'".format(moonray_class.moonray_name) + ) + finally: + # createDigitalAsset replaces hda_source with an instance of the new + # asset type, so node and hda_source can name the same underlying + # node. Destroying one then the other would raise from inside the + # finally and mask the real result, so guard both. + for leftover in (node, hda_source): + if leftover is None: + continue + try: + leftover.destroy() + except Exception: + pass + + moonray_class.hda = hda + hda.setIcon(moonray_class.icon_name) + moonray_class.set_tab_menu() + moonray_class.add_parms_to_hda() + return hda + + def set_houdini_parm_names(self): + """Set houdini_name to moonray_name for all parms (fresh build).""" + for parm in self.moonray_class.parms: + parm.houdini_name = parm.moonray_name + self.moonray_class.rebuild_parm_dict() + self.validate_disable_when() + + def update_url(self): + if not HELP_URL: + return + section_name = 'HelpUrl' + if not self.hda.sections().get(section_name): + self.hda.addSection(section_name, HELP_URL) + + def validate_disable_when(self): + no_changes = True + for parm in self.moonray_class.parms: + exp = parm.disable_when + if not exp: + continue + conditions = [] + for condition in exp.split('}'): + if not condition: + continue + bits = condition.split() + if len(bits) < 4: + continue + var = bits[1] + conditional = bits[2] + value = ' '.join(bits[3:]) + conditional_parm = None + for moonray_parm in self.moonray_class.parms: + if moonray_parm.moonray_name == var: + conditional_parm = moonray_parm + break + if not conditional_parm: + raise ValueError( + "{0} -- Invalid variable '{1}' in 'disable when' expression: {2}".format( + self.moonray_class.moonray_name, var, exp)) + conditions.append("{{ {0} {1} {2} }}".format(var, conditional, value)) + new_exp = ' '.join(conditions) + if conditions: + parm.disable_when = new_exp + if exp != new_exp: + no_changes = False + parm.disable_when = new_exp + return no_changes + + +class HDAVopBuilder(HDABuilder): + + OUTPUT_CONNECTIONS = { + MR_TYPE_MATERIAL: " output\tsurface\tsurface\tMaterial", + MR_TYPE_DWA_BASE: " output\tsurface\tsurface\tDwaBase", + MR_TYPE_LAYERABLE: " output\tsurface\tsurface\tDwaBaseLayerable", + MR_TYPE_HAIR_LAYERABLE: " output\tsurface\tsurface\tDwaBaseHairLayerable", + MR_TYPE_NORMALMAP: " output\tvector4\tnormalmap\tNormalMap", + MR_TYPE_MAP: " output\tvector\tmap\tMap", + MR_TYPE_DISPLACEMENT: " output\tdisplacement\tdisplacement\tDisplacement", + MR_TYPE_VOLUME: " output\tvolume\tvolume\tVolume", + MR_TYPE_DISPLAY_FILTER: " output\tstruct_FuzzySet\tdisplayfilter\tDisplayFilter", + } + + OUTPUT_TAG_TYPE = { + MR_TYPE_DISPLACEMENT: ('out', 'float3'), + MR_TYPE_MAP: ('out', 'float3'), + MR_TYPE_NORMALMAP: ('out', 'float3'), + MR_TYPE_MATERIAL: ('out', 'token'), + MR_TYPE_VOLUME: ('out', 'token'), + MR_TYPE_DWA_BASE: ('out', 'token'), + } + + def _does_parm_need_input(self, mr_parm): + return not mr_parm.is_multiparm + + def _generate_header(self): + return [ + '# Dialog script for {0} automatically generated'.format(self.hda.nodeTypeName()), + '', + '{', + ' name\t' + self.hda.nodeTypeName(), + ' script\t' + self.moonray_class.moonray_name, + ' label\t"{0}"'.format(self.hda.description()), + '', + ' rendermask\tmoonray', + ' externalshader 1', + ' shadertype\tgeneric', + ] + + def add_python_scripts(self): + super(HDAVopBuilder, self).add_python_scripts() + # Same guard as the base class: without a python module to call into, + # these handlers would only raise on every node. + if not self._default_python_module(): + return + self._add_houdini_event_script('OnInputChanged', 'on_input_changed', pass_kwargs=True) + if self.moonray_class.moonray_type == MR_TYPE_DISPLAY_FILTER: + self._add_houdini_event_script('OnLoaded', 'on_loaded') + self._add_houdini_event_script('OnDeleted', 'on_deleted') + self._add_houdini_event_script('OnNameChanged', 'on_name_changed') + + def cleanup_hda(self): + super(HDAVopBuilder, self).cleanup_hda() + self.fix_disable_when() + self.update_parameter_inputs() + self.update_output_connections() + + def deprecate_unused_inputs(self, dialog_script): + header, inputs, outputs, inputflags, signature, tail = self.parse_dialog_script(dialog_script) + new_inputs = [] + mr_parm_names = [p.houdini_name for p in self.moonray_class.parms if self._does_parm_need_input(p)] + for i, input_line in enumerate(inputs): + line_name = input_line.split()[2] + if line_name not in mr_parm_names and not line_name.startswith(DEPRECATED_PREFIX): + input_type = input_line.split()[1] + new_name = '{0}{1}'.format(DEPRECATED_PREFIX, line_name) + input_line = '\tinput\t{type}\t{name}\t"{label}"'.format( + type=input_type, + name=new_name, + label=new_name, + ) + inputflags[i] = '\tinputflags\t{0}\t0'.format(new_name) + new_inputs.append(input_line) + return '\n'.join(header + new_inputs + outputs + inputflags + signature + tail) + + def fix_disable_when(self): + broken_parms = [] + for parm in self.moonray_class.parms: + if parm.disable_when and '"' in parm.disable_when: + broken_parms.append(parm) + if not broken_parms: + return + + dialog_script = self.hda.sections()['DialogScript'] + dialog_contents = dialog_script.contents() + header, inputs, outputs, inputflags, signature, tail = self.parse_dialog_script(dialog_contents) + new_tail = tail[:] + for parm in broken_parms: + start_line = 'name "{0}"'.format(parm.houdini_name) + found_start = False + for i, line in enumerate(tail): + if not found_start: + if line.strip() == start_line: + found_start = True + else: + if line.strip() == '}': + raise ValueError('Missing disablewhen!!') + elif line.strip().startswith('disablewhen'): + prefix = line.split('disablewhen', 1)[0] + new_tail[i] = '{0}disablewhen "{1}"'.format( + prefix, parm.disable_when.replace('"', '\\"')) + break + dialog_contents = '\n'.join(header + inputs + outputs + inputflags + signature + new_tail) + if dialog_script.contents().strip() != dialog_contents.strip(): + dialog_script.setContents(dialog_contents) + + def parse_dialog_script(self, contents): + header = [] + inputs = [] + outputs = [] + inputflags = [] + signature = [] + tail = [] + + lines = contents.splitlines() + finish = False + is_header = True + for line in lines: + first = line.split()[0] if line else '' + if is_header: + if first in ('input', 'output', 'inputflags', 'signature'): + is_header = False + else: + header.append(line) + continue + if finish: + tail.append(line) + continue + if first == 'input': + inputs.append(line) + elif first == 'output': + outputs.append(line) + elif first == 'inputflags': + inputflags.append(line) + elif first == 'signature': + signature.append(line) + finish = True + + clean_inputs = [] + stripped_inputs = [] + for line in inputs: + if line.split()[:3] in stripped_inputs: + continue + stripped_inputs.append(line.split()[:3]) + line = line.replace('\tbsdf', '\tsurface').replace('\tint ', '\tdisplacement ') + line = line.replace('_bind', '') + clean_inputs.append(line) + + clean_inputflags = [] + stripped_inputs = [] + for line in inputflags: + if line.split()[:3] in stripped_inputs: + continue + stripped_inputs.append(line.split()[:3]) + clean_inputflags.append(line) + + header = self._generate_header() + return header, clean_inputs, outputs, clean_inputflags, signature, tail + + def update_parameter_inputs(self): + dialog_script = self.hda.sections()['DialogScript'] + dialog_contents = dialog_script.contents() + dialog_contents = self.deprecate_unused_inputs(dialog_contents) + for parm in self.moonray_class.parms: + dialog_contents = self.update_dialog_script(parm, dialog_contents) + if dialog_contents.strip().split() != dialog_script.contents().strip().split(): + dialog_script.setContents(dialog_contents) + if not self.validate_parameter_inputs(): + raise OSError('Something went wrong with the vop inputs!') + + def update_output_connections(self): + dialog_script = self.hda.sections()['DialogScript'] + dialog_contents = self.deprecate_unused_inputs(dialog_script.contents()) + if not dialog_contents: + return + header, inputs, outputs, inputflags, signature, tail = self.parse_dialog_script(dialog_contents) + outputs = [self.OUTPUT_CONNECTIONS[self.moonray_class.moonray_type]] + # The signature has to cover the outputs as well as the inputs, and + # every type past the input count needs a matching default in the + # outputoverrides block, or Houdini rejects the whole DialogScript with + # "Expected more data for signature" and the node loads with no + # parameters at all. update_dialog_script built the signature before + # the outputs existed, so finish it here. + signature = [self.build_signature_line(inputs, outputs)] + tail = self.set_output_overrides(tail, outputs) + dialog_contents = '\n'.join(header + inputs + outputs + inputflags + signature + tail) + if dialog_script.contents().strip().split() != dialog_contents.strip().split(): + dialog_script.setContents(dialog_contents) + + @staticmethod + def build_signature_line(inputs, outputs): + types = ''.join(entry.split()[1] + ' ' for entry in (inputs + outputs)) + return '\tsignature\t"Default Inputs"\tdefault\t{ ' + types + '}' + + # Placeholder defaults for an output connector, by its VEX type. The value + # is not meaningful (the entry is declared "auto"), but the shape has to + # look like the type. + OUTPUT_OVERRIDE_DEFAULTS = { + 'vector': '(0,0,0)', + 'vector4': '(0,0,0,0)', + 'displacement': '(0,0,0)', + } + + @classmethod + def set_output_overrides(cls, tail, outputs): + entries = [] + for entry in outputs: + default = cls.OUTPUT_OVERRIDE_DEFAULTS.get(entry.split()[1], '(0)') + entries.append('\t___begin\tauto') + entries.append('\t\t\t{0}'.format(default)) + + new_tail = [] + i = 0 + while i < len(tail): + line = tail[i] + new_tail.append(line) + if line.split()[:1] != ['outputoverrides']: + i += 1 + continue + # Copy the opening brace, replace the body, keep the closing brace. + i += 1 + while i < len(tail) and tail[i].strip() != '{': + new_tail.append(tail[i]) + i += 1 + if i >= len(tail): + break + new_tail.append(tail[i]) + i += 1 + depth = 1 + while i < len(tail) and depth: + if tail[i].strip() == '}': + depth -= 1 + if not depth: + new_tail.extend(entries) + new_tail.append(tail[i]) + i += 1 + return new_tail + + def update_dialog_script(self, parm, dialog_script): + if not self._does_parm_need_input(parm): + return dialog_script + header, inputs, outputs, inputflags, signature, tail = self.parse_dialog_script(dialog_script) + bind_type = parm.houdini_bind_type() + if not bind_type: + raise ValueError( + "Unbindable Parameter Type: {0} {1} on {2}. This rdl2 type has no " + "Houdini VOP equivalent to bind an input to. Either give the shader " + "a representable type, or exclude the shader by adding it to " + "UpdateHDAs.BLOCK_TYPES.".format( + parm.houdini_name, parm.moonray_type, + self.moonray_class.moonray_name)) + label_more_than_one_word = ' ' in parm.houdini_label + line = '\tinput\t{type}\t{name}\t{quote}{label}{quote}'.format( + type=bind_type, + name=parm.houdini_name, + label=parm.houdini_label, + quote='"' if label_more_than_one_word else '', + ) + is_invisible = '0' + if not parm.bindable and not parm.fake_bind: + is_invisible = '1' + flag_line = '\tinputflags\t{0}\t{1}'.format(parm.houdini_name, is_invisible) + + new_inputs = [] + added_line = False + for input_line in inputs: + line_name = input_line.split()[2] + if line_name == parm.houdini_name: + added_line = True + input_line = line + new_inputs.append(input_line) + + if not added_line: + for i, input_line in enumerate(inputs): + line_name = input_line.split()[2] + if line_name.startswith(DEPRECATED_PREFIX): + inputflag_name = inputflags[i].split()[1] + if inputflag_name != line_name: + raise IndexError('Corrupt Dialog Script -- Index mismatch for {0}'.format(line_name)) + inputflags[i] = flag_line + new_inputs[i] = line + added_line = True + break + + if not added_line: + new_inputs.append(line) + inputs = new_inputs + + stripped_inputs = [l.split()[:3] for l in inputflags] + if flag_line.split()[:3] not in stripped_inputs: + inputflags.append(flag_line) + + signature = [self.build_signature_line(inputs, outputs)] + return '\n'.join(header + inputs + outputs + inputflags + signature + tail) + + def validate_parameter_inputs(self): + dialog_script = self.hda.sections()['DialogScript'] + dialog_contents = self.deprecate_unused_inputs(dialog_script.contents()) + parm_lines = self.parse_dialog_script(dialog_contents)[1] + input_names = [line.split()[2] for line in parm_lines] + valid = True + for mr_parm in self.moonray_class.parms: + if not self._does_parm_need_input(mr_parm): + continue + name = mr_parm.houdini_name + if name not in input_names: + valid = False + print('Missing Input: {0}'.format(name)) + continue + input_names.remove(name) + if input_names: + for name in input_names: + if name.startswith(DEPRECATED_PREFIX) or not name.endswith(BIND_SUFFIX): + continue + valid = False + print('Unused Input: {0}'.format(name)) + return valid + + +def get_hda_builder(moonray_class, hda=None): + if not hda: + hda = moonray_class.hda + if moonray_class.houdini_context == 'Vop': + return HDAVopBuilder(hda, moonray_class) + return HDABuilder(hda, moonray_class) + + +class UpdateHDAs(object): + + export_metadata = {} + + # Classes deliberately excluded from every output. These are MoonRay's + # implementations of shaders that USD already defines, so Houdini/Solaris + # supplies the authoring node natively; generating DW_MOONRAY duplicates + # would give artists two nodes for the same UsdShade prim. Filtering + # happens at ingest, so a name listed here is absent from the HDAs, + # moonray_nodes.json and the .ds files alike. + BLOCK_TYPES = [ + 'UsdPreviewSurface', + 'UsdPrimvarReader_float', + 'UsdPrimvarReader_float2', + 'UsdPrimvarReader_float3', + 'UsdPrimvarReader_int', + 'UsdPrimvarReader_normal', + 'UsdPrimvarReader_point', + 'UsdPrimvarReader_vector', + 'UsdUVTexture', + 'UsdTransform2d', + ] + + # Unit test DSOs. These ship in moonray's rdl2dso directory but are + # fixtures for the shader test suite, not shaders anyone renders with. + # TestInputs* in particular declare a parameter of every rdl2 type, + # including Mat3f and Mat4f, which have no Houdini equivalent to bind to. + BLOCK_PREFIXES = ('Test',) + + @classmethod + def is_blocked(cls, class_name): + return (class_name in cls.BLOCK_TYPES + or class_name.startswith(cls.BLOCK_PREFIXES)) + + SKIP_TYPES = [ + 'ShadowSet', + 'LightFilterSet', + 'GeometrySet', + 'LayerSet', + 'LightSet', + 'Layer', + 'Metadata', + 'RenderOutput', + 'UserData', + 'TraceSet', + 'Joint', + 'SceneVariables', + 'UsdGeometry', + 'UsdInstanceGeometry', + ] + BLOCK_TYPES + + def __init__(self, moonshine_packages, destination_directory): + self.destination_directory = destination_directory + self.destination_hda_directory = os.path.join(destination_directory, 'otls') + self.destination_json = os.path.join(destination_directory, MOONSHINE_DATA_FILE) + ensure_directory(self.destination_hda_directory) + self.moonray_classes = self.moonray_classes_from_rdl(moonshine_packages) + self.node_dict = self.get_moonshine_package_versions() + + def get_moonshine_package_versions(self): + """Build the 'packages' block of moonray_nodes.json. + + The exporter embeds its own version strings (--rdl2_version / + --moonray_version), so use those when present. + """ + pkg_versions = {} + exported = getattr(type(self), 'export_metadata', {}) or {} + for key, pkg in (('moonray version', 'moonray'), + ('scene_rdl2_version', 'scene_rdl2')): + version = exported.get(key) + if version and version != 'unspecified': + pkg_versions['{0}_folio'.format(pkg)] = '{0}-{1}'.format(pkg, version) + + return {'packages': pkg_versions} + + @classmethod + def moonray_classes_from_rdl(cls, moonshine_packages): + result = [] + data = cls._export_scene_classes() + cls.export_metadata = { + key: value for key, value in data.items() if key != 'scene_classes' + } + for node_name, node_data in data['scene_classes'].items(): + if cls.is_blocked(node_name): + continue + result.append(MoonrayClass.from_rdl2_json_exporter(node_name, node_data)) + result.sort(key=lambda a: a.moonray_name) + return result + + @classmethod + def _export_scene_classes(cls): + """Return the rdl2_json_exporter document describing every scene class. + + Reading a previously exported file is preferred when running inside a + DCC. Moonshine's USD build and Houdini's own USD cannot be loaded into + one process, so exporting up front in a plain shell and passing the + result in keeps the two apart. See --classes-json. + """ + classes_json = os.environ.get(VAR_CLASSES_JSON) + if classes_json: + print('Reading scene classes from {0}'.format(classes_json)) + with open(classes_json) as file_pointer: + return json.load(file_pointer) + + env = os.environ.copy() + # rdl2_json_exporter with no --out streams every scene class (built-ins + # plus everything on RDL2_DSO_PATH) to stdout as a single JSON doc. + exporter = os.environ.get('RDL2_JSON_EXPORTER', 'rdl2_json_exporter') + command = [exporter] + if not env.get('RDL2_DSO_PATH'): + raise ValueError( + 'RDL2_DSO_PATH is not set. Source /scripts/setup.sh, or point ' + 'it at /rdl2dso.proxy before running. Alternatively export the ' + 'scene classes separately and pass them with --classes-json.') + print('=' * 80) + print(' '.join(command)) + print(' RDL2_DSO_PATH={0}'.format(env['RDL2_DSO_PATH'])) + print('=' * 80) + process = subprocess.Popen( + command, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env=env, + ) + output, err = process.communicate() + output = _decode(output) + err = _decode(err) + if process.returncode != 0: + raise ValueError('Something went wrong finding the moonshine package: {0}'.format(err)) + return json.loads(output) + + def main(self): + self.update_hdas() + self.save_node_dict() + self.remove_hda_backups() + + def remove_hda_backups(self): + # Houdini drops a numbered copy into /backup every time an HDA is + # saved, and each asset is saved several times while it is built. That + # leaves close to a thousand files nobody wants, and they would be + # copied straight into moonray_dcc_plugins along with the assets. + backup_dir = os.path.join(self.destination_hda_directory, 'backup') + if os.path.isdir(backup_dir): + shutil.rmtree(backup_dir, ignore_errors=True) + print('Removed intermediate HDA backups: {0}'.format(backup_dir)) + + def update_hdas(self): + for moonray_class in self.moonray_classes: + if moonray_class.houdini_context != 'Vop': + continue + if moonray_class.moonray_name in self.SKIP_TYPES: + continue + if not HDABuilder.can_create_hda(moonray_class): + print('{0}\n\tUnable to create operator type {1}'.format( + moonray_class.houdini_name, moonray_class.moonray_type)) + continue + + print('{0}\n\tNew Operator!'.format(moonray_class.houdini_name)) + HDABuilder.create_hda(moonray_class, self.destination_hda_directory) + builder = get_hda_builder(moonray_class) + builder.add_python_scripts() + builder.set_houdini_parm_names() + if not builder.validate_disable_when(): + moonray_class.add_parms_to_hda(verbose=False) + builder.cleanup_hda() + + def save_node_dict(self): + for moonray_class in self.moonray_classes: + self.node_dict[moonray_class.moonray_name] = moonray_class.serialize() + print('Writing JSON: {0}'.format(self.destination_json)) + with open(self.destination_json, 'w') as file_pointer: + json.dump(self.node_dict, file_pointer, indent=4) + + +def is_numerical_type(moonray_type): + prefixes = ['Float', 'Double', 'Int', 'Mat', 'Rgb', 'Vec'] + for prefix in prefixes: + if moonray_type.startswith(prefix): + return True + return False + + +def create_control_menu(moonray_type): + menu = ['set', 'setexisting'] + labels = [ + '![BUTTONS_set_or_create]Set or Create', + '![BUTTONS_set_if_exists]Set if Exists', + ] + if is_numerical_type(moonray_type): + menu.extend(['add', 'multiply']) + labels.extend([ + '![BUTTONS_set_add]Add if Exists', + '![BUTTONS_set_multiply]Multiply if Exists', + ]) + menu.extend(['block', 'none']) + labels.extend(['![BUTTONS_set_block]Block', '![BUTTONS_set_nothing]Do Nothing']) + return menu, labels + + +class LopDialogScriptBuilder(object): + _usd_prim_type_attr = None + + def __init__(self, dest_dir, moonray_classes): + self.dest_dir = dest_dir + self.moonraylights = [] + self.moonray_classes = moonray_classes + self.shader_class = {} + self.light_class = {} + self.lf_class = {} + self.geometry_class = {} + self.cam_class = {} + for moonray_class in self.moonray_classes: + name = moonray_class.moonray_name + moonray_type = moonray_class.moonray_type + if moonray_type == 'Light': + self.light_class[name] = moonray_class + elif moonray_type == 'LightFilter': + self.lf_class[name] = moonray_class + elif moonray_type == 'Geometry': + self.geometry_class[name] = moonray_class + elif moonray_type.endswith('Map'): + self.shader_class[name] = moonray_class + elif moonray_type.endswith('Layerable'): + self.shader_class[name] = moonray_class + elif moonray_type in ['Displacement', 'Material', 'Volume']: + self.shader_class[name] = moonray_class + elif moonray_type == 'Camera': + self.cam_class[name] = moonray_class + + @property + def usd_prim_type_attr(self): + if LopDialogScriptBuilder._usd_prim_type_attr is None: + LopDialogScriptBuilder._usd_prim_type_attr = { + 'CylinderLight': UsdLux.CylinderLight.GetSchemaAttributeNames(), + 'DiskLight': UsdLux.DiskLight.GetSchemaAttributeNames(), + 'DistantLight': UsdLux.DistantLight.GetSchemaAttributeNames(), + 'EnvLight': UsdLux.DomeLight.GetSchemaAttributeNames(), + 'RectLight': UsdLux.RectLight.GetSchemaAttributeNames(), + 'SphereLight': UsdLux.SphereLight.GetSchemaAttributeNames(), + 'MeshLight': UsdLux.GeometryLight.GetSchemaAttributeNames(), + 'SpotLight': UsdLux.DiskLight.GetSchemaAttributeNames(), + } + return LopDialogScriptBuilder._usd_prim_type_attr + + def __add_light_type_parm(self, group): + parm_name = 'class' + hide_when = '' + prefix = 'moonray:' + moonray_type = 'String' + control_pt = self.__create_control_parm(parm_name, prefix, hide_when, moonray_type, + default_value='set', is_hidden=True) + control_pt_name = control_pt.name() + pt = hou.StringParmTemplate('moonray:' + parm_name, parm_name, 1, is_hidden=True) + extra_disable_when = '{{ {} == block }} {{ {} == none }}'.format(control_pt_name, control_pt_name) + pt.setDisableWhen(pt.disableWhen() + extra_disable_when) + expression = """ + parm = hou.parm("lighttype") + if parm: + value = parm.eval() + label = parm.menuLabels()[value] + if label == "Geometry": + label = "Mesh" + elif label == "Rectangle": + label = "Rect" + return label + "Light" + else: + parm = hou.parm("primtype") + value = parm.eval() + if value == "UsdLuxDomeLight": + return "EnvLight" + """ + pt.setDefaultExpression([expression]) + pt.setDefaultExpressionLanguage([hou.scriptLanguage.Python]) + pt.setTags({'usdvaluetype': 'token'}) + group.append(control_pt) + group.append(pt) + + def __build_parms_for_class(self, group, moonray_class, prefix, + folder_hidewhen_dict, parm_hidewhen_dict, + parm_name_dict, skip_usd_attr, + ft=hou.folderType.Tabs): + for folder_name in moonray_class.folders_sorted: + if not group.findFolder(folder_name): + folder = hou.FolderParmTemplate('folder', folder_name, folder_type=ft) + folder.setConditional(hou.parmCondType.HideWhen, folder_hidewhen_dict.get(folder_name)) + group.append(folder) + group.hideFolder(folder_name, True) + + usd_attr_list = USD_ATTRIBUTE_MAP.get(moonray_class.moonray_name) + for parm in moonray_class.parms: + usdvaluetype = str(parm.get_usd_type()) + if not usdvaluetype: + continue + attr_name = parm.moonray_name + attr_prefix = prefix + skip_multiparm = usdvaluetype in ['string[]'] + if usd_attr_list and attr_name in usd_attr_list and attr_name not in ['inner_cone_angle']: + if skip_usd_attr: + continue + attr_prefix = '' + attr_name = usd_attr_list[attr_name] + + pt_name, control_pt_name = parm_name_dict.get(attr_name, ('', '')) + pt = group.find(pt_name) + if not pt: + hide_when = parm_hidewhen_dict.get(attr_name) + control_pt = self.__create_control_parm(attr_name, attr_prefix, hide_when, parm.moonray_type) + if moonray_class.moonray_type == 'Camera': + pt = parm.houdini_parm_template( + int_menus=False, + name_prefix=attr_prefix, + moonray_type=parm.moonray_type, + use_moonray_name=False, + alt_name=attr_name, + ) + else: + if attr_name != parm.moonray_name: + pt = parm.houdini_parm_template( + int_menus=False, + name_prefix=attr_prefix, + moonray_type=parm.moonray_type, + use_moonray_name=False, + alt_name=attr_name, + skip_multiparm=skip_multiparm, + ) + else: + pt = parm.houdini_parm_template( + int_menus=False, + name_prefix=attr_prefix, + moonray_type=parm.moonray_type, + use_moonray_name=True, + alt_name=None, + skip_multiparm=skip_multiparm, + ) + if not pt: + continue + pt.setConditional(hou.parmCondType.HideWhen, hide_when) + control_pt_name = control_pt.name() + disable_when = '{{ {} == block }} {{ {} == none }}'.format(control_pt_name, control_pt_name) + pt.setDisableWhen(disable_when) + if usdvaluetype: + pt.setTags({'usdvaluetype': usdvaluetype}) + folder_name = moonray_class.folder_name_for_parameter(parm) + if folder_name and group.findFolder(folder_name): + group.appendToFolder(folder_name, control_pt) + group.appendToFolder(folder_name, pt) + group.hideFolder(folder_name, False) + else: + group.append(control_pt) + group.append(pt) + parm_name_dict[attr_name] = (pt.name(), control_pt_name) + + def __build_parms_for_class_list(self, moonray_class_list, prefix, group, + parm_name_dict, is_usd_primtype, + skip_usd_attr, create_hide_when=True, + ft=hou.folderType.Tabs): + folder_hidewhen_dict = {} + parm_hidewhen_dict = {} + if create_hide_when: + folder_hidewhen_dict, parm_hidewhen_dict = self.__create_hidewhen_dict( + moonray_class_list, is_usd_primtype, skip_usd_attr) + self.__update_light_hidewhen( + folder_hidewhen_dict, + parm_hidewhen_dict, + moonray_class_list, + skip_usd_attr, + ) + for moonray_class in moonray_class_list: + self.__build_parms_for_class( + group, + moonray_class, + prefix, + folder_hidewhen_dict, + parm_hidewhen_dict, + parm_name_dict, + skip_usd_attr, + ft, + ) + + def __build_settings(self, folder_name, parm_list, group, attr_prefix='moonray:', + added_parm_names=None): + if added_parm_names is None: + added_parm_names = set() + folder = hou.FolderParmTemplate('folder', folder_name, folder_type=hou.folderType.Tabs) + group.append(folder) + for parm in parm_list: + attr_name = parm.moonray_name + pt = parm.houdini_parm_template(int_menus=False, name_prefix=attr_prefix, use_moonray_name=True) + if not pt: + # logger.warning( + # "Skipping unsupported parm template for %s.%s (%s)", + # folder_name, + # attr_name, + # parm.moonray_type, + # ) + continue + + control_pt = self.__create_control_parm(attr_name, attr_prefix, '', parm.moonray_type) + duplicate_names = [ + parm_name for parm_name in (control_pt.name(), pt.name()) + if parm_name in added_parm_names + ] + if duplicate_names: + # logger.warning( + # "Skipping duplicate parm(s) for %s.%s: %s", + # folder_name, + # attr_name, + # ', '.join(duplicate_names), + # ) + continue + + control_pt_name = control_pt.name() + extra = '{{ {} == block }} {{ {} == none }}'.format(control_pt_name, control_pt_name) + pt.setDisableWhen(pt.disableWhen() + extra) + usdvaluetype = str(parm.get_usd_type()) + if usdvaluetype: + pt.setTags({'usdvaluetype': usdvaluetype}) + group.appendToFolder(folder_name, control_pt) + group.appendToFolder(folder_name, pt) + added_parm_names.update((control_pt.name(), pt.name())) + + def __create_hidewhen_dict(self, moonray_class_list, is_usd_type, skip_usd_attr): + folder_hide_dict = {} + parm_hide_dict = {} + for moonray_class in moonray_class_list: + class_name = moonray_class.moonray_name + hide_when = self.__get_hide_when_string(class_name, is_usd_type) + for folder_name in moonray_class.folders_sorted: + cur_hide_when = folder_hide_dict.get(folder_name) + if cur_hide_when: + folder_hide_dict[folder_name] = '{{ {} {} }}'.format( + cur_hide_when[2:-2], hide_when[2:-2]) + else: + folder_hide_dict[folder_name] = hide_when + + usd_attr_list = self.usd_prim_type_attr.get(class_name) + for parm in moonray_class.parms: + attr_name = parm.moonray_name + if skip_usd_attr and usd_attr_list and attr_name in usd_attr_list: + continue + cur_hide_when = parm_hide_dict.get(attr_name) + if cur_hide_when: + parm_hide_dict[attr_name] = '{{ {} {} }}'.format( + cur_hide_when[2:-2], hide_when[2:-2]) + else: + parm_hide_dict[attr_name] = hide_when + return folder_hide_dict, parm_hide_dict + + def __update_light_hidewhen(self, folder_hide_dict, parm_hide_dict, + moonray_class_list, skip_usd_attr): + hide_when = '{{ createprims == on }}' + updated = [] + for moonray_class in moonray_class_list: + if moonray_class.moonray_type != 'Light': + continue + class_name = moonray_class.moonray_name + for folder_name in moonray_class.folders_sorted: + if folder_name in updated: + continue + cur_hide_when = folder_hide_dict.get(folder_name) + if cur_hide_when: + folder_hide_dict[folder_name] = '{{ {} {} }}'.format( + cur_hide_when[2:-2], hide_when[2:-2]) + updated.append(folder_name) + + usd_attr_list = self.usd_prim_type_attr.get(class_name) + for parm in moonray_class.parms: + attr_name = parm.moonray_name + if attr_name in updated: + continue + if skip_usd_attr and usd_attr_list and attr_name in usd_attr_list: + continue + cur_hide_when = parm_hide_dict.get(attr_name) + if cur_hide_when: + parm_hide_dict[attr_name] = '{{ {} {} }}'.format( + cur_hide_when[2:-2], hide_when[2:-2]) + updated.append(attr_name) + + def __create_control_parm(self, parm_name, prefix, hide_when, moonray_type, + default_value='none', is_hidden=False): + name = '{}{}_control'.format(prefix, parm_name) + label = '{}{}'.format(prefix, parm_name) + pt = hou.StringParmTemplate( + name, + label, + 1, + default_value=[default_value], + is_hidden=is_hidden, + ) + menu, labels = create_control_menu(moonray_type) + pt.setMenuItems(menu) + pt.setMenuLabels(labels) + pt.setMenuType(hou.menuType.ControlNextParameter) + pt.setConditional(hou.parmCondType.HideWhen, hide_when) + pt.setTags({'sidefx::look': 'icon'}) + return pt + + def __get_hide_when_string(self, class_name, is_usd_type): + if is_usd_type: + return '{{ primtype != UsdLux{} }}'.format(self.__get_usdclass_name(class_name)) + return '{{ primtype != {} }}'.format(class_name) + + def __get_usdclass_name(self, moonray_class_name): + if moonray_class_name == 'SpotLight': + return 'DiskLight' + elif moonray_class_name == 'EnvLight': + return 'DomeLight' + elif moonray_class_name == 'MeshLight': + return 'GeometryLight' + return moonray_class_name + + def __get_shared_parms(self, geometry_class_list): + common_settings = {} + count = {} + number = 0 + for moonray_class in self.geometry_class.values(): + if moonray_class.moonray_name in geometry_class_list: + number += 1 + for parm in moonray_class.parms: + attr_name = parm.moonray_name + if number == 1: + common_settings[attr_name] = parm + count[attr_name] = 1 + elif attr_name in common_settings: + count[attr_name] = count[attr_name] + 1 + for attr_name, attr_count in list(count.items()): + if attr_count != number and attr_name in common_settings: + del common_settings[attr_name] + return list(common_settings.keys()), list(common_settings.values()) + + def __get_moonrayclass_parms(self, moonray_class_name, attr_name_list=None): + parm_list = [] + for moonray_class in self.moonray_classes: + if moonray_class.moonray_name == moonray_class_name: + if not attr_name_list: + return moonray_class.parms + for parm in moonray_class.parms: + if parm.moonray_name in attr_name_list: + parm_list.append(parm) + return parm_list + + def __save_ds_file(self, group, filename): + script = '#include "$HFS/houdini/soho/parameters/CommonMacros.ds"\n' + group.asDialogScript() + soho_dir = os.path.join(self.dest_dir, 'soho', 'parameters') + ensure_directory(soho_dir) + dest_file = os.path.join(soho_dir, filename) + with open(dest_file, 'w') as file_pointer: + file_pointer.write(script) + + def build_moonray_class(self, prefix, moonray_class): + group = hou.ParmTemplateGroup() + self.__build_parms_for_class( + group, + moonray_class, + prefix, + {}, + {}, + {}, + False, + ) + self.__save_ds_file(group, 'moonray_{0}.ds'.format(moonray_class.moonray_name)) + + def build_moonray_override(self): + shaders = sorted(list(self.shader_class.keys())) + lights = sorted(list(self.light_class.keys())) + lfs = sorted(list(self.lf_class.keys())) + cams = sorted(list(self.cam_class.keys())) + geos = sorted(list(self.geometry_class.keys())) + + group = hou.ParmTemplateGroup() + category = hou.MenuParmTemplate( + 'category', + 'Category', + menu_items=['Shader', 'Light', 'Camera', 'Light Filter', 'Geometry'], + is_button_strip=True, + ) + script = """ + parm = hou.pwd().parm("category") + selected = parm.eval() + tokens = parm.parmTemplate().menuItems() + menulist = [] + token = tokens[selected] + if token == "Shader": + menulist = %s + elif token == "Light": + menulist = %s + elif token == "Camera": + menulist = %s + elif token == "Light Filter": + menulist = %s + elif token == "Geometry": + menulist = %s + return menulist + """ % (shaders, lights, cams, lfs, geos) + primtype = hou.StringParmTemplate( + 'primtype', + 'Primitive Type', + 1, + item_generator_script=script, + menu_type=hou.menuType.StringReplace, + script_callback='hou.phm().wrapper(hou.pwd()).load_ds()', + script_callback_language=hou.scriptLanguage.Python, + ) + group.append(category) + group.append(primtype) + self.__save_ds_file(group, 'moonray_Override.ds') + + for a_class in self.shader_class.values(): + self.build_moonray_class('inputs:', a_class) + + others = list(self.light_class.values()) + list(self.lf_class.values()) + \ + list(self.geometry_class.values()) + list(self.cam_class.values()) + for a_class in others: + if a_class.moonray_name.find('Deform') != -1 or a_class.moonray_name.startswith('Willow'): + self.build_moonray_class('procedural:', a_class) + elif a_class in self.geometry_class.values(): + self.build_moonray_class('primvars:moonray:', a_class) + else: + self.build_moonray_class('moonray:', a_class) + + def build_moonray_geometry(self): + geo_dict = { + 'BoxGeometry': [], + 'RdlCurveGeometry': [], + 'RdlInstancerGeometry': [], + 'RdlMeshGeometry': [], + 'RdlPointGeometry': [], + 'SphereGeometry': [], + 'VdbGeometry': [], + } + geo_label_dict = { + 'BoxGeometry': 'Box', + 'RdlCurveGeometry': 'RdlCurve', + 'RdlInstancerGeometry': 'RdlInstancer', + 'RdlMeshGeometry': 'RdlMesh', + 'RdlPointGeometry': 'RdlPoint', + 'SphereGeometry': 'Sphere', + 'VdbGeometry': 'Vdb', + } + _parm_name_list, parm_list = self.__get_shared_parms(list(geo_dict.keys())) + group = hou.ParmTemplateGroup() + group.setLabel('Moonray') + added_parm_names = set() + self.__build_settings('Common Properties', parm_list, group, 'primvars:moonray:', added_parm_names) + for class_name, attr_list in geo_dict.items(): + parm_list = self.__get_moonrayclass_parms(class_name, attr_list) + if parm_list: + self.__build_settings( + geo_label_dict.get(class_name, class_name), + parm_list, + group, + 'primvars:moonray:', + added_parm_names, + ) + self.__save_ds_file(group, 'HdMoonrayRendererPlugin_Geometry.ds') + + def build_moonray_lights(self): + group = hou.ParmTemplateGroup() + group.setLabel('Moonray') + parm_name_dict = {} + moonray_class_list = [] + for moonray_class in self.moonray_classes: + if moonray_class.moonray_type == 'Light': + moonray_class_list.append(moonray_class) + self.__add_light_type_parm(group) + self.__build_parms_for_class_list( + moonray_class_list, + 'moonray:', + group, + parm_name_dict, + True, + True, + ) + self.__save_ds_file(group, 'HdMoonrayRendererPlugin_Light.ds') + + def build_moonray_global(self): + group = hou.ParmTemplateGroup() + group.setLabel('Moonray') + parm_name_dict = {} + moonray_class_list = [] + for moonray_class in self.moonray_classes: + if moonray_class.moonray_name == 'SceneVariables': + moonray_class_list.append(moonray_class) + break + self.__build_parms_for_class_list( + moonray_class_list, + 'moonray:sceneVariable:', + group, + parm_name_dict, + False, + True, + False, + hou.folderType.Tabs, + ) + self.__save_ds_file(group, 'HdMoonrayRendererPlugin_Global.ds') + + def build_moonray_renderVar(self): + group = hou.ParmTemplateGroup() + group.setLabel('Moonray') + parm_name_dict = {} + moonray_class_list = [] + for moonray_class in self.moonray_classes: + if moonray_class.moonray_name == 'RenderOutput': + moonray_class_list.append(moonray_class) + break + self.__build_parms_for_class_list( + moonray_class_list, + 'parameters:moonray:', + group, + parm_name_dict, + True, + True, + False, + hou.folderType.Tabs, + ) + self.__save_ds_file(group, 'HdMoonrayRendererPlugin_Aov.ds') + + +def main(): + global HELP_URL + parser = argparse.ArgumentParser( + description='Build public Moonray HDAs and LOP .ds files against Moonshine.') + parser.add_argument( + 'moonshine_packages', + help="Optional package label(s) recorded in moonray_nodes.json, e.g. 'moonshine-15.0'. " + "Shader data always comes from rdl2_json_exporter on RDL2_DSO_PATH.", + type=str, + nargs='*', + default=[], + ) + parser.add_argument( + '--output-dir', + default=DEFAULT_OUTPUT_DIR, + help='Destination directory for HDAs, metadata JSON, and LOP .ds files (default: {}).'.format( + DEFAULT_OUTPUT_DIR), + ) + parser.add_argument( + '--classes-json', + default=os.environ.get(VAR_CLASSES_JSON), + help='Read the scene class definitions from this file, as produced by ' + '"rdl2_json_exporter --out ", instead of running the exporter. ' + 'Use this when running under hython: Moonshine is built against its own ' + 'USD, which cannot share a process with the USD inside Houdini, so the ' + 'export has to happen in a separate shell. Defaults to ${}.'.format( + VAR_CLASSES_JSON), + ) + parser.add_argument( + '--internal', + action='store_true', + help='Build the internal plugin set. Public builds refuse a package set ' + 'containing DWA packages, because moonshine_dwa shaders must not end ' + 'up in the public moonray_dcc_plugins repo. Pass this only when the ' + 'output is going somewhere internal.', + ) + parser.add_argument( + '--help-url', + default=HELP_URL, + help='Documentation URL to embed in each HDA as its HelpUrl section. ' + 'Defaults to $MOONRAY_HDA_HELP_URL; when empty no HelpUrl is written.', + ) + + args = parser.parse_args() + HELP_URL = args.help_url + if args.classes_json: + os.environ[VAR_CLASSES_JSON] = args.classes_json + pkgs = ' '.join(args.moonshine_packages) + if args.internal: + print('Building the INTERNAL plugin set; proprietary shaders are allowed.') + else: + validate_public_packages(pkgs) + + ensure_directory(args.output_dir) + ensure_directory(os.path.join(args.output_dir, 'otls')) + ensure_directory(os.path.join(args.output_dir, 'soho', 'parameters')) + + print('=' * 80) + print('Public Moonshine build') + print(' Packages : {0}'.format(pkgs)) + print(' Output dir : {0}'.format(args.output_dir)) + print('=' * 80) + + updater = UpdateHDAs( + moonshine_packages=pkgs, + destination_directory=args.output_dir, + ) + updater.main() + + builder = LopDialogScriptBuilder(args.output_dir, updater.moonray_classes) + builder.build_moonray_lights() + builder.build_moonray_geometry() + builder.build_moonray_override() + builder.build_moonray_global() + builder.build_moonray_renderVar() + + print('=' * 80) + print('Public Moonshine build complete.') + print(' HDAs -> {0}'.format(os.path.join(args.output_dir, 'otls'))) + print(' Metadata -> {0}'.format(os.path.join(args.output_dir, MOONSHINE_DATA_FILE))) + print(' DS files -> {0}'.format(os.path.join(args.output_dir, 'soho', 'parameters'))) + print('=' * 80) + + +if __name__ == '__main__': + main() \ No newline at end of file