Blender Principled BSDF と OpenPBR(MaterialX) + USD のメモ
対象
Blender 4.5+(4.5 から MaterialX 対応)
Colorspace
OpenPBR では color の colorspace はデフォでは ACEScg である.
Blender 5.0 から ACES 対応されました. https://zenn.dev/syoyo/articles/4bcc0e3f7024d8
ただ, 現状 Blender の bug のようで, USD + MaterialX export では color や texture colorSpace
は Linear Rec.709 の値が出力される...
(USD ファイルには colorspace 情報が出力されないため, 判定ができない)
Blender PrincipledBSDF と OpenPBR のマッピング
概ね一対一に対応する.
ただ base は PrincipledBSDF には weight はない
(1 レイヤーで物質のベースとなる色という概念から. base の割合は metallic などから算出. 一方 OpenPBR では多層レイヤーでそれぞれで weight がある)
Parameters
OpenPBR の定義
Base + diffuse

base_color(color3)
base_weight(Principled BSDF には無し(1 固定))
base_metalness(Blender Metallic に対応)
base_diffuse_roughness
geometry_normal(norml map)
geometry_tangent
Specular
GGX type の項目は無い
specular_color
specular_ior
specular_roughness
specular_roughness_anisotropy
specular_weight
Coat
coat_darkening
coat_ior
coat_roughness
coat_rougness_anisotropy
coat_weight
geometry_coat_normal
geometry_coat_tangent
Fuzz
Principle BSDF での Sheen に対応
fuzz_color
fuzz_weigfht
Subsurface
subsurface_color
subsurface_radius
subsurface_radius_scale
subsurface_scatter_anisotropy
subsurface_weight
Thin film
thin_film_ior
thin_film_thickness
thin_film_weight
geometry_thin_walled(bool)
Transmission
transmission_color
transmission_depth
transmission_dispersion_abbe_number
transmission_dispersion_scale
transmission_scatter
transmission_scatter_anisotropy
transmission_weight
Opacity
geometry_opacity(float. Blender で Alpha に対応)
ND_texcoord_vector2
primvar reader 設定がなく, デフォルトは Primary UVSet name を見る.
Primary UVSet name はデフォは "st" だが, 環境変数で変更可能!
ややこしいねぇ.
Discussion