確認環境 : MaterialX 1.39.1
MaterialX Graph Editorでimage_color3、tiledimage_color3の色空間(Colorspace)のUIパラメータがないことに気づきました。
MaterialX Graph Editorでは以下のようにノードを指定しました。
右上がオリジナルのテクスチャです(色空間はsRGB)。
左上のプレビューでは色が少し白寄りになっています。これは、テクスチャ画像をsRGBのままOpenPBRのbase_colorに渡しているのが原因と思われます。
USDやMaterialXのマテリアルでは、「色」はすべてリニアに統一する必要があります。
色空間については「[Omniverse] マテリアルの割り当て その8 (MDLでテクスチャを使用)」の「リニアワークフローとは?」をご参照くださいませ。
対処方法
いったんmtlx形式でファイル出力し、mtlxファイルをVS Codeなどで追加修正するのが早そうです。
"OpenPBR_tex_colorspace.mtlx"というファイル名で保存しました。
これをVS Codeで開きます。
以下の内容になりました。
<?xml version="1.0"?>
<materialx version="1.39" colorspace="lin_rec709">
<surfacematerial name="surfacematerial" type="material" xpos="8.550725" ypos="-0.232759">
<input name="surfaceshader" type="surfaceshader" nodename="open_pbr_surface_surfaceshader" />
</surfacematerial>
<open_pbr_surface name="open_pbr_surface_surfaceshader" type="surfaceshader" xpos="6.594203" ypos="-1.508621">
<input name="base_color" type="color3" nodename="tiledimage_color3" />
</open_pbr_surface>
<tiledimage name="tiledimage_color3" type="color3" xpos="4.913043" ypos="-1.172414">
<input name="file" type="filename" value="..\wood_BaseColor.png" fileprefix="" />
</tiledimage>
</materialx>
マテリアルの最終出力でcolorspaceは"lin_rec709"となっています。
<materialx version="1.39" colorspace="lin_rec709">
これはリニア(Linear)の明示となります。
"tiledimage"タグでは、inputタグでファイル名を指定しています。
しかし、ここにcolorspaceの指定はありません。
MaterialXサンプルのmtlxファイル(chess_set)を見ます。
これはOpenPBRではなくStandardSurfaceですが、テクスチャ指定部はOpenPBRでも同じ仕様を使います。
<image name="diffuse2" type="color3">
<input name="file" type="filename" value="chess_set/bishop_black_base_color.jpg" colorspace="srgb_texture" />
</image>
「色」についてはcolorspace="srgb_texture"をつけるのがよさそうです。
VS Codeで以下のように置き換えました。
<tiledimage name="tiledimage_color3" type="color3" xpos="4.913043" ypos="-1.172414">
<input name="file" type="filename" value="..\wood_BaseColor.png" fileprefix="" colorspace="srgb_texture" />
</tiledimage>
これをMaterialX Graph Editorで再読み込みします。
これで正しい色合いになりました。
なお、テクスチャイメージでこのsRGBの色空間を指定する必要があるのは「色」(color3)のみです。
これはbase_colorやemission_color(発光)などの色を表す要素のみが対象になります。
Metallic Map, Roughness Map, Normal Mapなどではfloatやvector3を出力するため未指定でOKです(色ではない)。
これらはそのままリニアで扱われます。