QuiltiX icon indicating copy to clipboard operation
QuiltiX copied to clipboard

Connections between nodes with multiple outputs ("multioutput") are not correctly handled

Open kwokcb opened this issue 7 months ago • 4 comments

Issue

Separate and combine types and connections are improperly set / created

Environment

Tested with 0.4.1.

Test

If you create a separate node and then a combine node and connect the combine to a color3, the

  1. Separate node remains the incorrect type of "float" - which has no definition
  2. The input connections on the combine node do not specify which output to route to the combine. Perhaps this is a general "multioutput" issue?

Errors when the document get's validated.

Node interface doesn't support this output type: <separate3 name="Separate3" type="float" xpos="-7.002825605060728" ypos="2.48722845391956">
Mismatched types in port connection: <input name="base" type="float" value="1" nodegraph="NG_main" output="output_Combine3_out">

Could not find a nodedef for node 'Separate3'
Could not find a nodedef for node 'Separate3'

This is the resulting MaterialX file:

<?xml version="1.0"?>
<materialx version="1.38">
  <nodegraph name="NG_main">
    <separate3 name="Separate3" type="float" xpos="-7.002825605060728" ypos="2.48722845391956">
      <input name="in" type="color3" value="0, 0.894118, 0.14902" />
    </separate3>
    <combine3 name="Combine3" type="color3" xpos="-4.030665817358112" ypos="2.0648689051407674">
      <input name="in1" type="float" value="0" nodename="Separate3" />
      <input name="in2" type="float" value="0" nodename="Separate3" />
      <input name="in3" type="float" value="0" nodename="Separate3" />
    </combine3>
    <output name="output_Combine3_out" type="color3" nodename="Combine3" />
  </nodegraph>
  <surfacematerial name="USD_Default" type="material" xpos="3.6367873479362176" ypos="0.9333624596469625">
    <input name="surfaceshader" type="surfaceshader" nodename="Standard_surface" />
  </surfacematerial>
  <standard_surface name="Standard_surface" type="surfaceshader" xpos="-1.3527374062034248" ypos="1.0335230787321623">
    <input name="base" type="float" value="1" nodegraph="NG_main" output="output_Combine3_out" />
    <input name="base_color" type="color3" value="0.8, 0.8, 0.8" />
    <input name="diffuse_roughness" type="float" value="0" />
    <input name="metalness" type="float" value="0.8" />
    <input name="specular" type="float" value="1" />
    <input name="specular_color" type="color3" value="1, 1, 1" />
    <input name="specular_roughness" type="float" value="0.1" />
    <input name="specular_IOR" type="float" value="1.5" />
    <input name="specular_anisotropy" type="float" value="0" />
    <input name="specular_rotation" type="float" value="0" />
    <input name="transmission" type="float" value="0" />
    <input name="transmission_color" type="color3" value="1, 1, 1" />
    <input name="transmission_depth" type="float" value="0" />
    <input name="transmission_scatter" type="color3" value="0, 0, 0" />
    <input name="transmission_scatter_anisotropy" type="float" value="0" />
    <input name="transmission_dispersion" type="float" value="0" />
    <input name="transmission_extra_roughness" type="float" value="0" />
    <input name="subsurface" type="float" value="0" />
    <input name="subsurface_color" type="color3" value="1, 1, 1" />
    <input name="subsurface_radius" type="color3" value="1, 1, 1" />
    <input name="subsurface_scale" type="float" value="1" />
    <input name="subsurface_anisotropy" type="float" value="0" />
    <input name="sheen" type="float" value="0" />
    <input name="sheen_color" type="color3" value="1, 1, 1" />
    <input name="sheen_roughness" type="float" value="0.3" />
    <input name="coat" type="float" value="1" />
    <input name="coat_color" type="color3" value="0.6, 0.45, 1" />
    <input name="coat_roughness" type="float" value="0.1" />
    <input name="coat_anisotropy" type="float" value="0" />
    <input name="coat_rotation" type="float" value="0" />
    <input name="coat_IOR" type="float" value="2.5" />
    <input name="coat_normal" type="vector3" value="0, 0, 0" />
    <input name="coat_affect_color" type="float" value="0" />
    <input name="coat_affect_roughness" type="float" value="0" />
    <input name="thin_film_thickness" type="float" value="0" />
    <input name="thin_film_IOR" type="float" value="1.5" />
    <input name="emission" type="float" value="0" />
    <input name="emission_color" type="color3" value="1, 1, 1" />
    <input name="opacity" type="color3" value="1, 1, 1" />
    <input name="thin_walled" type="boolean" value="false" />
    <input name="normal" type="vector3" value="0, 0, 0" />
    <input name="tangent" type="vector3" value="0, 0, 0" />
  </standard_surface>
</materialx>

kwokcb avatar Nov 16 '23 13:11 kwokcb