Skip to content

Add PhysicallyBased Translators#28

Merged
kwokcb merged 2 commits intomainfrom
pb_translation_graph
Feb 1, 2026
Merged

Add PhysicallyBased Translators#28
kwokcb merged 2 commits intomainfrom
pb_translation_graph

Conversation

@kwokcb
Copy link
Copy Markdown
Owner

@kwokcb kwokcb commented Feb 1, 2026

Changes

  • Port code over for translation graph / definition creation
  • Add "remapping" option which create a dot node to route from source BSDF to target BSDF inputs.
  • Generate translations for glTF, OpenPBR, and Standard Surface

Results

glTF
<?xml version="1.0"?>
<materialx version="1.39">
  <nodedef name="ND_physbased_pbr_surface_to_gltf_pbr" node="physbased_pbr_surface_to_gltf_pbr" nodegroup="translation" doc="Translator from 'physbased_pbr_surface' to 'gltf_pbr'" source_version="1.0" source="physbased_pbr_surface" target_version="2.0.1" target="gltf_pbr">
    <!--Inputs (inputs from source 'physbased_pbr_surface')-->
    <input name="name" type="string" value="Aluminum" />
    <input name="color" type="color3" value="1,1,1" />
    <input name="metalness" type="float" value="0.0" />
    <input name="specularColor" type="color3" value="1,1,1" />
    <input name="roughness" type="float" value="0.0" />
    <input name="ior" type="float" value="0.0" />
    <input name="complexIor" type="string" value="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" />
    <input name="density" type="float" value="0.0" />
    <input name="category" type="string" value="Metal" />
    <input name="description" type="string" value="" />
    <input name="sources" type="string" value="" />
    <input name="tags" type="string" value="" />
    <input name="reference" type="string" value="" />
    <input name="transmission" type="float" value="0.0" />
    <input name="transmissionDepth" type="float" value="0.0" />
    <input name="transmissionDispersion" type="float" value="0.0" />
    <input name="viscosity" type="float" value="0.0" />
    <input name="surfaceTension" type="float" value="0.0" />
    <input name="densityRange" type="vector2" value="0.0, 0.0" />
    <input name="acousticAbsorption" type="string" value="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" />
    <input name="subsurfaceRadius" type="vector3" value="0.0, 0.0, 0.0" />
    <input name="thinFilmThickness" type="float" value="0.0" />
    <input name="thinFilmIor" type="float" value="0.0" />
    <input name="group" type="string" value="" />
    <!--Outputs (inputs from target 'gltf_pbr' with '_out' suffix)-->
    <output name="base_color_out" type="color3" />
    <output name="metallic_out" type="float" />
    <output name="roughness_out" type="float" />
    <output name="normal_out" type="vector3" />
    <output name="tangent_out" type="vector3" />
    <output name="occlusion_out" type="float" />
    <output name="transmission_out" type="float" />
    <output name="specular_out" type="float" />
    <output name="specular_color_out" type="color3" />
    <output name="ior_out" type="float" />
    <output name="alpha_out" type="float" />
    <output name="alpha_mode_out" type="integer" />
    <output name="alpha_cutoff_out" type="float" />
    <output name="iridescence_out" type="float" />
    <output name="iridescence_ior_out" type="float" />
    <output name="iridescence_thickness_out" type="float" />
    <output name="sheen_color_out" type="color3" />
    <output name="sheen_roughness_out" type="float" />
    <output name="clearcoat_out" type="float" />
    <output name="clearcoat_roughness_out" type="float" />
    <output name="clearcoat_normal_out" type="vector3" />
    <output name="emissive_out" type="color3" />
    <output name="emissive_strength_out" type="float" />
    <output name="thickness_out" type="float" />
    <output name="attenuation_distance_out" type="float" />
    <output name="attenuation_color_out" type="color3" />
    <output name="anisotropy_strength_out" type="float" />
    <output name="anisotropy_rotation_out" type="float" />
    <output name="dispersion_out" type="float" />
  </nodedef>
  <nodegraph name="NG_physbased_pbr_surface_to_gltf_pbr" nodedef="ND_physbased_pbr_surface_to_gltf_pbr" doc="NodeGraph implementation of translator from 'physbased_pbr_surface' to 'gltf_pbr'" source_version="1.0" source="physbased_pbr_surface" target_version="2.0.1" target="gltf_pbr">
    <output name="base_color_out" type="color3" nodename="base_color" />
    <output name="metallic_out" type="float" nodename="metallic" />
    <output name="roughness_out" type="float" nodename="roughness" />
    <output name="normal_out" type="vector3" />
    <output name="tangent_out" type="vector3" />
    <output name="occlusion_out" type="float" />
    <output name="transmission_out" type="float" nodename="transmission" />
    <output name="specular_out" type="float" />
    <output name="specular_color_out" type="color3" nodename="specular_color" />
    <output name="ior_out" type="float" nodename="ior" />
    <output name="alpha_out" type="float" />
    <output name="alpha_mode_out" type="integer" />
    <output name="alpha_cutoff_out" type="float" />
    <output name="iridescence_out" type="float" />
    <output name="iridescence_ior_out" type="float" nodename="iridescence_ior" />
    <output name="iridescence_thickness_out" type="float" nodename="iridescence_thickness" />
    <output name="sheen_color_out" type="color3" />
    <output name="sheen_roughness_out" type="float" />
    <output name="clearcoat_out" type="float" />
    <output name="clearcoat_roughness_out" type="float" />
    <output name="clearcoat_normal_out" type="vector3" />
    <output name="emissive_out" type="color3" />
    <output name="emissive_strength_out" type="float" />
    <output name="thickness_out" type="float" />
    <output name="attenuation_distance_out" type="float" />
    <output name="attenuation_color_out" type="color3" />
    <output name="anisotropy_strength_out" type="float" />
    <output name="anisotropy_rotation_out" type="float" />
    <output name="dispersion_out" type="float" />
    <!--Routing source input: 'color' to target input: 'base_color'-->
    <dot name="base_color" type="color3">
      <input name="in" type="color3" interfacename="color" />
    </dot>
    <!--Routing source input: 'specularColor' to target input: 'specular_color'-->
    <dot name="specular_color" type="color3">
      <input name="in" type="color3" interfacename="specularColor" />
    </dot>
    <!--Routing source input: 'roughness' to target input: 'roughness'-->
    <dot name="roughness" type="color3">
      <input name="in" type="float" interfacename="roughness" />
    </dot>
    <!--Routing source input: 'metalness' to target input: 'metallic'-->
    <dot name="metallic" type="color3">
      <input name="in" type="float" interfacename="metalness" />
    </dot>
    <!--Routing source input: 'ior' to target input: 'ior'-->
    <dot name="ior" type="color3">
      <input name="in" type="float" interfacename="ior" />
    </dot>
    <!--Routing source input: 'transmission' to target input: 'transmission'-->
    <dot name="transmission" type="color3">
      <input name="in" type="float" interfacename="transmission" />
    </dot>
    <!--Routing source input: 'thinFilmThickness' to target input: 'iridescence_thickness'-->
    <dot name="iridescence_thickness" type="color3">
      <input name="in" type="float" interfacename="thinFilmThickness" />
    </dot>
    <!--Routing source input: 'thinFilmIor' to target input: 'iridescence_ior'-->
    <dot name="iridescence_ior" type="color3">
      <input name="in" type="float" interfacename="thinFilmIor" />
    </dot>
  </nodegraph>
</materialx>

Standard Surface
<?xml version="1.0"?>
<materialx version="1.39">
  <nodedef name="ND_physbased_pbr_surface_to_standard_surface" node="physbased_pbr_surface_to_standard_surface" nodegroup="translation" doc="Translator from 'physbased_pbr_surface' to 'standard_surface'" source_version="1.0" source="physbased_pbr_surface" target_version="1.0.0" target="standard_surface">
    <!--Inputs (inputs from source 'physbased_pbr_surface')-->
    <input name="name" type="string" value="Aluminum" />
    <input name="color" type="color3" value="1,1,1" />
    <input name="metalness" type="float" value="0.0" />
    <input name="specularColor" type="color3" value="1,1,1" />
    <input name="roughness" type="float" value="0.0" />
    <input name="ior" type="float" value="0.0" />
    <input name="complexIor" type="string" value="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" />
    <input name="density" type="float" value="0.0" />
    <input name="category" type="string" value="Metal" />
    <input name="description" type="string" value="" />
    <input name="sources" type="string" value="" />
    <input name="tags" type="string" value="" />
    <input name="reference" type="string" value="" />
    <input name="transmission" type="float" value="0.0" />
    <input name="transmissionDepth" type="float" value="0.0" />
    <input name="transmissionDispersion" type="float" value="0.0" />
    <input name="viscosity" type="float" value="0.0" />
    <input name="surfaceTension" type="float" value="0.0" />
    <input name="densityRange" type="vector2" value="0.0, 0.0" />
    <input name="acousticAbsorption" type="string" value="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" />
    <input name="subsurfaceRadius" type="vector3" value="0.0, 0.0, 0.0" />
    <input name="thinFilmThickness" type="float" value="0.0" />
    <input name="thinFilmIor" type="float" value="0.0" />
    <input name="group" type="string" value="" />
    <!--Outputs (inputs from target 'standard_surface' with '_out' suffix)-->
    <output name="base_out" type="float" />
    <output name="base_color_out" type="color3" />
    <output name="diffuse_roughness_out" type="float" />
    <output name="metalness_out" type="float" />
    <output name="specular_out" type="float" />
    <output name="specular_color_out" type="color3" />
    <output name="specular_roughness_out" type="float" />
    <output name="specular_IOR_out" type="float" />
    <output name="specular_anisotropy_out" type="float" />
    <output name="specular_rotation_out" type="float" />
    <output name="transmission_out" type="float" />
    <output name="transmission_color_out" type="color3" />
    <output name="transmission_depth_out" type="float" />
    <output name="transmission_scatter_out" type="color3" />
    <output name="transmission_scatter_anisotropy_out" type="float" />
    <output name="transmission_dispersion_out" type="float" />
    <output name="transmission_extra_roughness_out" type="float" />
    <output name="subsurface_out" type="float" />
    <output name="subsurface_color_out" type="color3" />
    <output name="subsurface_radius_out" type="color3" />
    <output name="subsurface_scale_out" type="float" />
    <output name="subsurface_anisotropy_out" type="float" />
    <output name="sheen_out" type="float" />
    <output name="sheen_color_out" type="color3" />
    <output name="sheen_roughness_out" type="float" />
    <output name="coat_out" type="float" />
    <output name="coat_color_out" type="color3" />
    <output name="coat_roughness_out" type="float" />
    <output name="coat_anisotropy_out" type="float" />
    <output name="coat_rotation_out" type="float" />
    <output name="coat_IOR_out" type="float" />
    <output name="coat_normal_out" type="vector3" />
    <output name="coat_affect_color_out" type="float" />
    <output name="coat_affect_roughness_out" type="float" />
    <output name="thin_film_thickness_out" type="float" />
    <output name="thin_film_IOR_out" type="float" />
    <output name="emission_out" type="float" />
    <output name="emission_color_out" type="color3" />
    <output name="opacity_out" type="color3" />
    <output name="thin_walled_out" type="boolean" />
    <output name="normal_out" type="vector3" />
    <output name="tangent_out" type="vector3" />
  </nodedef>
  <nodegraph name="NG_physbased_pbr_surface_to_standard_surface" nodedef="ND_physbased_pbr_surface_to_standard_surface" doc="NodeGraph implementation of translator from 'physbased_pbr_surface' to 'standard_surface'" source_version="1.0" source="physbased_pbr_surface" target_version="1.0.0" target="standard_surface">
    <output name="base_out" type="float" />
    <output name="base_color_out" type="color3" nodename="base_color" />
    <output name="diffuse_roughness_out" type="float" />
    <output name="metalness_out" type="float" nodename="metalness" />
    <output name="specular_out" type="float" />
    <output name="specular_color_out" type="color3" nodename="specular_color" />
    <output name="specular_roughness_out" type="float" nodename="specular_roughness" />
    <output name="specular_IOR_out" type="float" nodename="specular_IOR" />
    <output name="specular_anisotropy_out" type="float" />
    <output name="specular_rotation_out" type="float" />
    <output name="transmission_out" type="float" nodename="transmission" />
    <output name="transmission_color_out" type="color3" />
    <output name="transmission_depth_out" type="float" />
    <output name="transmission_scatter_out" type="color3" />
    <output name="transmission_scatter_anisotropy_out" type="float" />
    <output name="transmission_dispersion_out" type="float" nodename="transmission_dispersion" />
    <output name="transmission_extra_roughness_out" type="float" />
    <output name="subsurface_out" type="float" />
    <output name="subsurface_color_out" type="color3" />
    <output name="subsurface_radius_out" type="color3" nodename="subsurface_radius" />
    <output name="subsurface_scale_out" type="float" />
    <output name="subsurface_anisotropy_out" type="float" />
    <output name="sheen_out" type="float" />
    <output name="sheen_color_out" type="color3" />
    <output name="sheen_roughness_out" type="float" />
    <output name="coat_out" type="float" />
    <output name="coat_color_out" type="color3" />
    <output name="coat_roughness_out" type="float" />
    <output name="coat_anisotropy_out" type="float" />
    <output name="coat_rotation_out" type="float" />
    <output name="coat_IOR_out" type="float" />
    <output name="coat_normal_out" type="vector3" />
    <output name="coat_affect_color_out" type="float" />
    <output name="coat_affect_roughness_out" type="float" />
    <output name="thin_film_thickness_out" type="float" nodename="thin_film_thickness" />
    <output name="thin_film_IOR_out" type="float" nodename="thin_film_IOR" />
    <output name="emission_out" type="float" />
    <output name="emission_color_out" type="color3" />
    <output name="opacity_out" type="color3" />
    <output name="thin_walled_out" type="boolean" />
    <output name="normal_out" type="vector3" />
    <output name="tangent_out" type="vector3" />
    <!--Routing source input: 'color' to target input: 'base_color'-->
    <dot name="base_color" type="color3">
      <input name="in" type="color3" interfacename="color" />
    </dot>
    <!--Routing source input: 'specularColor' to target input: 'specular_color'-->
    <dot name="specular_color" type="color3">
      <input name="in" type="color3" interfacename="specularColor" />
    </dot>
    <!--Routing source input: 'roughness' to target input: 'specular_roughness'-->
    <dot name="specular_roughness" type="color3">
      <input name="in" type="float" interfacename="roughness" />
    </dot>
    <!--Routing source input: 'metalness' to target input: 'metalness'-->
    <dot name="metalness" type="color3">
      <input name="in" type="float" interfacename="metalness" />
    </dot>
    <!--Routing source input: 'ior' to target input: 'specular_IOR'-->
    <dot name="specular_IOR" type="color3">
      <input name="in" type="float" interfacename="ior" />
    </dot>
    <!--Routing source input: 'subsurfaceRadius' to target input: 'subsurface_radius'-->
    <dot name="subsurface_radius" type="color3">
      <input name="in" type="vector3" interfacename="subsurfaceRadius" />
    </dot>
    <!--Routing source input: 'transmission' to target input: 'transmission'-->
    <dot name="transmission" type="color3">
      <input name="in" type="float" interfacename="transmission" />
    </dot>
    <!--Routing source input: 'transmissionDispersion' to target input: 'transmission_dispersion'-->
    <dot name="transmission_dispersion" type="color3">
      <input name="in" type="float" interfacename="transmissionDispersion" />
    </dot>
    <!--Routing source input: 'thinFilmThickness' to target input: 'thin_film_thickness'-->
    <dot name="thin_film_thickness" type="color3">
      <input name="in" type="float" interfacename="thinFilmThickness" />
    </dot>
    <!--Routing source input: 'thinFilmIor' to target input: 'thin_film_IOR'-->
    <dot name="thin_film_IOR" type="color3">
      <input name="in" type="float" interfacename="thinFilmIor" />
    </dot>
  </nodegraph>
</materialx>

OpenPBR
<?xml version="1.0"?>
<materialx version="1.39">
  <nodedef name="ND_physbased_pbr_surface_to_open_pbr_surface" node="physbased_pbr_surface_to_open_pbr_surface" nodegroup="translation" doc="Translator from 'physbased_pbr_surface' to 'open_pbr_surface'" source_version="1.0" source="physbased_pbr_surface" target_version="1.1" target="open_pbr_surface">
    <!--Inputs (inputs from source 'physbased_pbr_surface')-->
    <input name="name" type="string" value="Aluminum" />
    <input name="color" type="color3" value="1,1,1" />
    <input name="metalness" type="float" value="0.0" />
    <input name="specularColor" type="color3" value="1,1,1" />
    <input name="roughness" type="float" value="0.0" />
    <input name="ior" type="float" value="0.0" />
    <input name="complexIor" type="string" value="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" />
    <input name="density" type="float" value="0.0" />
    <input name="category" type="string" value="Metal" />
    <input name="description" type="string" value="" />
    <input name="sources" type="string" value="" />
    <input name="tags" type="string" value="" />
    <input name="reference" type="string" value="" />
    <input name="transmission" type="float" value="0.0" />
    <input name="transmissionDepth" type="float" value="0.0" />
    <input name="transmissionDispersion" type="float" value="0.0" />
    <input name="viscosity" type="float" value="0.0" />
    <input name="surfaceTension" type="float" value="0.0" />
    <input name="densityRange" type="vector2" value="0.0, 0.0" />
    <input name="acousticAbsorption" type="string" value="0.0, 0.0, 0.0, 0.0, 0.0, 0.0" />
    <input name="subsurfaceRadius" type="vector3" value="0.0, 0.0, 0.0" />
    <input name="thinFilmThickness" type="float" value="0.0" />
    <input name="thinFilmIor" type="float" value="0.0" />
    <input name="group" type="string" value="" />
    <!--Outputs (inputs from target 'open_pbr_surface' with '_out' suffix)-->
    <output name="base_weight_out" type="float" />
    <output name="base_color_out" type="color3" />
    <output name="base_diffuse_roughness_out" type="float" />
    <output name="base_metalness_out" type="float" />
    <output name="specular_weight_out" type="float" />
    <output name="specular_color_out" type="color3" />
    <output name="specular_roughness_out" type="float" />
    <output name="specular_ior_out" type="float" />
    <output name="specular_roughness_anisotropy_out" type="float" />
    <output name="transmission_weight_out" type="float" />
    <output name="transmission_color_out" type="color3" />
    <output name="transmission_depth_out" type="float" />
    <output name="transmission_scatter_out" type="color3" />
    <output name="transmission_scatter_anisotropy_out" type="float" />
    <output name="transmission_dispersion_scale_out" type="float" />
    <output name="transmission_dispersion_abbe_number_out" type="float" />
    <output name="subsurface_weight_out" type="float" />
    <output name="subsurface_color_out" type="color3" />
    <output name="subsurface_radius_out" type="float" />
    <output name="subsurface_radius_scale_out" type="color3" />
    <output name="subsurface_scatter_anisotropy_out" type="float" />
    <output name="fuzz_weight_out" type="float" />
    <output name="fuzz_color_out" type="color3" />
    <output name="fuzz_roughness_out" type="float" />
    <output name="coat_weight_out" type="float" />
    <output name="coat_color_out" type="color3" />
    <output name="coat_roughness_out" type="float" />
    <output name="coat_roughness_anisotropy_out" type="float" />
    <output name="coat_ior_out" type="float" />
    <output name="coat_darkening_out" type="float" />
    <output name="thin_film_weight_out" type="float" />
    <output name="thin_film_thickness_out" type="float" />
    <output name="thin_film_ior_out" type="float" />
    <output name="emission_luminance_out" type="float" />
    <output name="emission_color_out" type="color3" />
    <output name="geometry_opacity_out" type="float" />
    <output name="geometry_thin_walled_out" type="boolean" />
    <output name="geometry_normal_out" type="vector3" />
    <output name="geometry_coat_normal_out" type="vector3" />
    <output name="geometry_tangent_out" type="vector3" />
    <output name="geometry_coat_tangent_out" type="vector3" />
  </nodedef>
  <nodegraph name="NG_physbased_pbr_surface_to_open_pbr_surface" nodedef="ND_physbased_pbr_surface_to_open_pbr_surface" doc="NodeGraph implementation of translator from 'physbased_pbr_surface' to 'open_pbr_surface'" source_version="1.0" source="physbased_pbr_surface" target_version="1.1" target="open_pbr_surface">
    <output name="base_weight_out" type="float" />
    <output name="base_color_out" type="color3" nodename="base_color" />
    <output name="base_diffuse_roughness_out" type="float" />
    <output name="base_metalness_out" type="float" nodename="base_metalness" />
    <output name="specular_weight_out" type="float" />
    <output name="specular_color_out" type="color3" nodename="specular_color" />
    <output name="specular_roughness_out" type="float" nodename="specular_roughness" />
    <output name="specular_ior_out" type="float" nodename="specular_ior" />
    <output name="specular_roughness_anisotropy_out" type="float" />
    <output name="transmission_weight_out" type="float" nodename="transmission_weight" />
    <output name="transmission_color_out" type="color3" />
    <output name="transmission_depth_out" type="float" />
    <output name="transmission_scatter_out" type="color3" />
    <output name="transmission_scatter_anisotropy_out" type="float" />
    <output name="transmission_dispersion_scale_out" type="float" />
    <output name="transmission_dispersion_abbe_number_out" type="float" nodename="transmission_dispersion_abbe_number" />
    <output name="subsurface_weight_out" type="float" />
    <output name="subsurface_color_out" type="color3" />
    <output name="subsurface_radius_out" type="float" nodename="subsurface_radius" />
    <output name="subsurface_radius_scale_out" type="color3" />
    <output name="subsurface_scatter_anisotropy_out" type="float" />
    <output name="fuzz_weight_out" type="float" />
    <output name="fuzz_color_out" type="color3" />
    <output name="fuzz_roughness_out" type="float" />
    <output name="coat_weight_out" type="float" />
    <output name="coat_color_out" type="color3" />
    <output name="coat_roughness_out" type="float" />
    <output name="coat_roughness_anisotropy_out" type="float" />
    <output name="coat_ior_out" type="float" />
    <output name="coat_darkening_out" type="float" />
    <output name="thin_film_weight_out" type="float" />
    <output name="thin_film_thickness_out" type="float" nodename="thin_film_thickness" />
    <output name="thin_film_ior_out" type="float" nodename="thin_film_ior" />
    <output name="emission_luminance_out" type="float" />
    <output name="emission_color_out" type="color3" />
    <output name="geometry_opacity_out" type="float" />
    <output name="geometry_thin_walled_out" type="boolean" />
    <output name="geometry_normal_out" type="vector3" />
    <output name="geometry_coat_normal_out" type="vector3" />
    <output name="geometry_tangent_out" type="vector3" />
    <output name="geometry_coat_tangent_out" type="vector3" />
    <!--Routing source input: 'color' to target input: 'base_color'-->
    <dot name="base_color" type="color3">
      <input name="in" type="color3" interfacename="color" />
    </dot>
    <!--Routing source input: 'specularColor' to target input: 'specular_color'-->
    <dot name="specular_color" type="color3">
      <input name="in" type="color3" interfacename="specularColor" />
    </dot>
    <!--Routing source input: 'roughness' to target input: 'specular_roughness'-->
    <dot name="specular_roughness" type="color3">
      <input name="in" type="float" interfacename="roughness" />
    </dot>
    <!--Routing source input: 'metalness' to target input: 'base_metalness'-->
    <dot name="base_metalness" type="color3">
      <input name="in" type="float" interfacename="metalness" />
    </dot>
    <!--Routing source input: 'ior' to target input: 'specular_ior'-->
    <dot name="specular_ior" type="color3">
      <input name="in" type="float" interfacename="ior" />
    </dot>
    <!--Routing source input: 'subsurfaceRadius' to target input: 'subsurface_radius'-->
    <dot name="subsurface_radius" type="color3">
      <input name="in" type="vector3" interfacename="subsurfaceRadius" />
    </dot>
    <!--Routing source input: 'transmission' to target input: 'transmission_weight'-->
    <dot name="transmission_weight" type="color3">
      <input name="in" type="float" interfacename="transmission" />
    </dot>
    <!--Routing source input: 'transmissionDispersion' to target input: 'transmission_dispersion_abbe_number'-->
    <dot name="transmission_dispersion_abbe_number" type="color3">
      <input name="in" type="float" interfacename="transmissionDispersion" />
    </dot>
    <!--Routing source input: 'thinFilmThickness' to target input: 'thin_film_thickness'-->
    <dot name="thin_film_thickness" type="color3">
      <input name="in" type="float" interfacename="thinFilmThickness" />
    </dot>
    <!--Routing source input: 'thinFilmIor' to target input: 'thin_film_ior'-->
    <dot name="thin_film_ior" type="color3">
      <input name="in" type="float" interfacename="thinFilmIor" />
    </dot>
  </nodegraph>
</materialx>

@kwokcb kwokcb merged commit 36b7ff7 into main Feb 1, 2026
@kwokcb kwokcb deleted the pb_translation_graph branch February 4, 2026 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant