MaterialX with ND_tiledimage flips UV upsidedown with interchange import

Importing a MaterialX document with ND_image for texture maps works fine, but with ND_tiledimage, when it is not directly input into the surface in the MaterialX doc, Unreal creates extra UV nodes that flip the V, which makes the texture upsidedown, as shown below:

Below is the .mtlx file. Note that it uses ND_tiledimage, which works for the BaseColor and Metallness, but not for the spec roughness and normal map. In the MaterialX doc both of these pass though a node before inputting into surface, the image for normal map going through a ND_normalmap node and the spec roughness going through a ND_mix which becomes the lerp in Unreal.

<?xml version='1.0' encoding='utf-8'?>
<materialx version="1.38">
  <surfacematerial name="carBody_SG" type="material" nodedef="ND_surfacematerial">
    <input name="surfaceshader" type="surfaceshader" nodename="carBody_mtl" />
  </surfacematerial>
  <standard_surface name="carBody_mtl" type="surfaceshader" nodedef="ND_standard_surface_surfaceshader">
    <input name="base_color" type="color3" output="outColor" nodegraph="carBody_nodes" />
    <input name="base" type="float" value="0.8" />
    <input name="specular" type="float" value="0.5" />
    <input name="subsurface_radius" type="color3" value="0.2258, 0.0258, 0.0076" />
    <input name="subsurface_anisotropy" type="float" value="0.8" />
    <input name="subsurface_scale" type="float" value="0.1" />
    <input name="subsurface" type="float" value="0" />
    <input name="specular_roughness" type="float" output="outRoughness" nodegraph="carBody_nodes" />
    <input name="coat_normal" type="vector3" output="outNormal" nodegraph="carBody_nodes" />
    <input name="normal" type="vector3" output="outNormal" nodegraph="carBody_nodes" />
    <input name="subsurface_color" type="color3" output="outColor" nodegraph="carBody_nodes" />
    <input name="metalness" type="float" output="outMetal" nodegraph="carBody_nodes" />
  </standard_surface>
  <nodegraph name="carBody_nodes">
    <output name="outMetal" type="float" nodename="carBody_met" />
    <output name="outNormal" type="vector3" nodename="carBody_normalmap" />
    <output name="outColor" type="color3" nodename="carBody_dif" />
    <output name="outRoughness" type="float" nodename="carBody_roughness_lerp" />
    <tiledimage name="carBody_dif" type="color3" nodedef="ND_tiledimage_color3">
      <input name="file" type="filename" colorspace="srgb_texture" value="../textures/carBody_dif_Beetle_forMtlx.jpg" />
      <input name="default" type="color3" value="0.18, 0.18, 0.18" />
    </tiledimage>
    <tiledimage name="carBody_nor" type="vector3" nodedef="ND_tiledimage_vector3">
      <input name="file" type="filename" colorspace="Raw" value="../textures/carBody_nor_Beetle_forMtlx.png" />
      <input name="default" type="vector3" value="0.5, 0.5, 1.0" />
    </tiledimage>
    <mix name="carBody_roughness_lerp" type="float" nodedef="ND_mix_float">
      <input name="fg" type="float" value="0.2" />
      <input name="bg" type="float" value="0.4" />
      <input name="mix" type="float" nodename="carBody_spc" ldx_value="0" />
    </mix>
    <normalmap name="carBody_normalmap" type="vector3" nodedef="ND_normalmap">
      <input name="in" type="vector3" nodename="carBody_nor" />
    </normalmap>
    <tiledimage name="carBody_met" type="float" nodedef="ND_tiledimage_float">
      <input name="file" type="filename" value="../textures/carBody_met_Beetle_forMtlx.jpg" colorspace="Raw" />
    </tiledimage>
    <tiledimage name="carBody_spc" type="float" nodedef="ND_tiledimage_float">
      <input name="file" type="filename" value="../textures/carBody_spc_Beetle_forMtlx.jpg" colorspace="Raw" />
    </tiledimage>
  </nodegraph>
</materialx>

Let me add that this does not happen with ND_image. So not only is that a workaround, but also may be indicative of a solution in that Interchange should treat ND_tiledimage the same way it treats ND_image.

Hello @derekflood, thank you for reporting. That behaviour has already been removed for 5.6. You will no more have UV flipping.

Excellent, thanks!