Ajout du projet Depths sur Git
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="lin_rec709">
|
||||
<nodedef name="ND_disney_brdf_2012_surface" node="disney_brdf_2012" nodegroup="pbr">
|
||||
<input name="baseColor" type="color3" value="0.16, 0.16, 0.16" />
|
||||
<input name="metallic" type="float" value="0" />
|
||||
<input name="subsurface" type="float" value="0" />
|
||||
<input name="specular" type="float" value="0.5" />
|
||||
<input name="roughness" type="float" value="0.5" />
|
||||
<input name="specularTint" type="float" value="0" />
|
||||
<input name="anisotropic" type="float" value="0" />
|
||||
<input name="sheen" type="float" value="0" />
|
||||
<input name="sheenTint" type="float" value="0.5" />
|
||||
<input name="clearcoat" type="float" value="0" />
|
||||
<input name="clearcoatGloss" type="float" value="1" />
|
||||
<output name="out" type="surfaceshader" />
|
||||
</nodedef>
|
||||
<implementation name="IM_disney_brdf_2012_surface_brdf_explorer" nodedef="ND_disney_brdf_2012_surface" target="brdf_explorer" file="https://github.com/wdas/brdf/blob/master/src/brdfs/disney.brdf" />
|
||||
</materialx>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="lin_rec709">
|
||||
<nodedef name="ND_disney_bsdf_2015_surface" node="disney_bsdf_2015" nodegroup="pbr">
|
||||
<input name="baseColor" type="color3" value="0.16, 0.16, 0.16" />
|
||||
<input name="metallic" type="float" value="0" />
|
||||
<input name="roughness" type="float" value="0.5" />
|
||||
<input name="anisotropic" type="float" value="0" />
|
||||
<input name="specularTint" type="float" value="0" />
|
||||
<input name="sheen" type="float" value="0" />
|
||||
<input name="sheenTint" type="float" value="0.5" />
|
||||
<input name="clearcoat" type="float" value="0" />
|
||||
<input name="clearcoatGloss" type="float" value="1" />
|
||||
<input name="specTrans" type="float" value="0" />
|
||||
<input name="ior" type="float" value="1.5" />
|
||||
<input name="scatterDistance" type="vector3" value="0, 0, 0" />
|
||||
<input name="flatness" type="float" value="0" />
|
||||
<input name="diffTrans" type="float" value="0" />
|
||||
<input name="thin" type="boolean" value="false" uniform="true" />
|
||||
<output name="out" type="surfaceshader" />
|
||||
</nodedef>
|
||||
<implementation name="IM_disney_bsdf_2015_surface_pbrt" nodedef="ND_disney_bsdf_2015_surface" target="pbrt" file="https://github.com/mmp/pbrt-v3/blob/master/src/materials/disney.cpp" function="DisneyMaterial::DisneyMaterial">
|
||||
<input name="baseColor" type="color3" implname="color" />
|
||||
<input name="ior" type="float" implname="eta" />
|
||||
</implementation>
|
||||
</materialx>
|
||||
+726
@@ -0,0 +1,726 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38">
|
||||
<nodedef name="ND_gltf_pbr_surfaceshader" node="gltf_pbr" nodegroup="pbr" doc="glTF PBR" version="2.0.1" isdefaultversion="true">
|
||||
<input name="base_color" type="color3" value="1, 1, 1" uimin="0, 0, 0" uimax="1, 1, 1" uiname="Base Color" uifolder="Base" />
|
||||
<input name="metallic" type="float" value="1" uimin="0" uimax="1" uiname="Metallic" uifolder="Base" />
|
||||
<input name="roughness" type="float" value="1" uimin="0" uimax="1" uiname="Roughness" uifolder="Base" />
|
||||
<input name="normal" type="vector3" defaultgeomprop="Nworld" uiname="Normal" uifolder="Base" />
|
||||
<input name="tangent" type="vector3" defaultgeomprop="Tworld" uiname="Tangent" uifolder="Base" />
|
||||
<input name="occlusion" type="float" value="1" uimin="0" uimax="1" uiname="Occlusion" uifolder="Base" />
|
||||
<input name="transmission" type="float" value="0" uimin="0" uimax="1" uiname="Transmission" uifolder="Base" />
|
||||
<input name="specular" type="float" value="1" uimin="0" uimax="1" uiname="Specular" uifolder="Base" />
|
||||
<input name="specular_color" type="color3" value="1, 1, 1" uimin="0, 0, 0" uisoftmax="1, 1, 1" uiname="Specular Color" uifolder="Base" />
|
||||
<input name="ior" uniform="true" type="float" value="1.5" uimin="1" uisoftmax="3" uiname="Index of Refraction" uifolder="Base" />
|
||||
<input name="alpha" type="float" value="1" uimin="0" uimax="1" uiname="Alpha" uifolder="Alpha" />
|
||||
<input name="alpha_mode" uniform="true" type="integer" enum="OPAQUE, MASK, BLEND" enumvalues="0, 1, 2" value="0" uiname="Alpha Mode" uifolder="Alpha" />
|
||||
<input name="alpha_cutoff" uniform="true" type="float" value="0.5" uimin="0" uimax="1" uiname="Alpha Cutoff" uifolder="Alpha" />
|
||||
<input name="iridescence" type="float" value="0" uimin="0" uimax="1" uiname="Iridescence" uifolder="Iridescence" />
|
||||
<input name="iridescence_ior" uniform="true" type="float" value="1.3" uimin="1" uisoftmax="3" uiname="Iridescence Index of Refraction" uifolder="Iridescence" />
|
||||
<input name="iridescence_thickness" type="float" value="100" uimin="0" uisoftmin="100" uisoftmax="400" uiname="Iridescence Thickness" uifolder="Iridescence" />
|
||||
<input name="sheen_color" type="color3" value="0, 0, 0" uimin="0, 0, 0" uimax="1, 1, 1" uiname="Sheen Color" uifolder="Sheen" />
|
||||
<input name="sheen_roughness" type="float" value="0" uimin="0" uimax="1" uiname="Sheen Roughness" uifolder="Sheen" />
|
||||
<input name="clearcoat" type="float" value="0" uimin="0" uimax="1" uiname="Clearcoat" uifolder="Clearcoat" />
|
||||
<input name="clearcoat_roughness" type="float" value="0" uimin="0" uimax="1" uiname="Clearcoat Roughness" uifolder="Clearcoat" />
|
||||
<input name="clearcoat_normal" type="vector3" defaultgeomprop="Nworld" uiname="Clearcoat Normal" uifolder="Clearcoat" />
|
||||
<input name="emissive" type="color3" value="0, 0, 0" uimin="0, 0, 0" uimax="1, 1, 1" uiname="Emissive" uifolder="Emission" />
|
||||
<input name="emissive_strength" uniform="true" type="float" value="1" uimin="0" uiname="Emissive Strength" uifolder="Emission" />
|
||||
<input name="thickness" uniform="false" type="float" value="0" uimin="0" uiname="Thickness" uifolder="Volume" />
|
||||
<input name="attenuation_distance" uniform="true" type="float" uimin="0" uiname="Attenuation Distance" uifolder="Volume" />
|
||||
<input name="attenuation_color" uniform="true" type="color3" value="1, 1, 1" uimin="0, 0, 0" uimax="1, 1, 1" uiname="Attenuation Color" uifolder="Volume" />
|
||||
<output name="out" type="surfaceshader" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="IMPL_gltf_pbr_surfaceshader" nodedef="ND_gltf_pbr_surfaceshader">
|
||||
|
||||
<!-- Volume -->
|
||||
|
||||
<convert name="attenuation_color_vec" type="vector3">
|
||||
<input name="in" type="color3" interfacename="attenuation_color" />
|
||||
</convert>
|
||||
|
||||
<ln name="ln_attenuation_color_vec" type="vector3">
|
||||
<input name="in" type="vector3" nodename="attenuation_color_vec" />
|
||||
</ln>
|
||||
|
||||
<divide name="ln_attenuation_color_vec_over_distance" type="vector3">
|
||||
<input name="in1" type="vector3" nodename="ln_attenuation_color_vec" />
|
||||
<input name="in2" type="float" interfacename="attenuation_distance" />
|
||||
</divide>
|
||||
|
||||
<multiply name="attenuation_coeff" type="vector3">
|
||||
<input name="in1" type="vector3" nodename="ln_attenuation_color_vec_over_distance" />
|
||||
<input name="in2" type="float" value="-1" />
|
||||
</multiply>
|
||||
|
||||
<anisotropic_vdf name="isotropic_volume" type="VDF">
|
||||
<!-- No scattering yet, so absorption_coeff == attenuation_coeff -->
|
||||
<input name="absorption" type="vector3" nodename="attenuation_coeff" />
|
||||
<input name="scattering" type="vector3" value="0, 0, 0" />
|
||||
<input name="anisotropy" type="float" value="0" />
|
||||
</anisotropic_vdf>
|
||||
|
||||
<!-- Base layer -->
|
||||
|
||||
<!-- Compute F0 and F90 of dielectric component -->
|
||||
<subtract name="one_minus_ior" type="float">
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" interfacename="ior" />
|
||||
</subtract>
|
||||
|
||||
<add name="one_plus_ior" type="float">
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" interfacename="ior" />
|
||||
</add>
|
||||
|
||||
<divide name="ior_div" type="float">
|
||||
<input name="in1" type="float" nodename="one_minus_ior" />
|
||||
<input name="in2" type="float" nodename="one_plus_ior" />
|
||||
</divide>
|
||||
|
||||
<multiply name="dielectric_f0_from_ior" type="float">
|
||||
<input name="in1" type="float" nodename="ior_div" />
|
||||
<input name="in2" type="float" nodename="ior_div" />
|
||||
</multiply>
|
||||
|
||||
<multiply name="dielectric_f0_from_ior_specular_color" type="color3">
|
||||
<input name="in1" type="color3" interfacename="specular_color" />
|
||||
<input name="in2" type="float" nodename="dielectric_f0_from_ior" />
|
||||
</multiply>
|
||||
|
||||
<min name="clamped_dielectric_f0_from_ior_specular_color" type="color3">
|
||||
<input name="in1" type="color3" nodename="dielectric_f0_from_ior_specular_color" />
|
||||
<input name="in2" type="float" value="1" />
|
||||
</min>
|
||||
|
||||
<multiply name="dielectric_f0" type="color3">
|
||||
<input name="in1" type="color3" nodename="clamped_dielectric_f0_from_ior_specular_color" />
|
||||
<input name="in2" type="float" interfacename="specular" />
|
||||
</multiply>
|
||||
|
||||
<multiply name="dielectric_f90" type="color3">
|
||||
<input name="in1" type="color3" value="1, 1, 1" />
|
||||
<input name="in2" type="float" interfacename="specular" />
|
||||
</multiply>
|
||||
|
||||
<!-- Roughness -->
|
||||
|
||||
<roughness_anisotropy name="roughness_uv" type="vector2">
|
||||
<input name="roughness" type="float" interfacename="roughness" />
|
||||
</roughness_anisotropy>
|
||||
|
||||
<!-- Dielectric -->
|
||||
|
||||
<oren_nayar_diffuse_bsdf name="diffuse_bsdf" type="BSDF">
|
||||
<input name="color" type="color3" interfacename="base_color" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</oren_nayar_diffuse_bsdf>
|
||||
|
||||
<dielectric_bsdf name="transmission_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1" />
|
||||
<input name="tint" type="color3" interfacename="base_color" />
|
||||
<input name="ior" type="float" interfacename="ior" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_uv" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" interfacename="tangent" />
|
||||
<input name="scatter_mode" type="string" value="T" />
|
||||
</dielectric_bsdf>
|
||||
|
||||
<generalized_schlick_bsdf name="reflection_bsdf" type="BSDF">
|
||||
<input name="color0" type="color3" nodename="dielectric_f0" />
|
||||
<input name="color90" type="color3" nodename="dielectric_f90" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_uv" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" interfacename="tangent" />
|
||||
<input name="scatter_mode" type="string" value="R" />
|
||||
</generalized_schlick_bsdf>
|
||||
|
||||
<mix name="transmission_mix" type="BSDF">
|
||||
<input name="bg" type="BSDF" nodename="diffuse_bsdf" />
|
||||
<input name="fg" type="BSDF" nodename="transmission_bsdf" />
|
||||
<input name="mix" type="float" interfacename="transmission" />
|
||||
</mix>
|
||||
|
||||
<layer name="dielectric_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="reflection_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="transmission_mix" />
|
||||
</layer>
|
||||
|
||||
<!-- Thin-film + Dielectric
|
||||
Note: Due to limitations in codegen, the base layer BSDF is duplicated (#1035). -->
|
||||
|
||||
<dielectric_bsdf name="tf_transmission_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1" />
|
||||
<input name="tint" type="color3" interfacename="base_color" />
|
||||
<input name="ior" type="float" interfacename="ior" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_uv" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" interfacename="tangent" />
|
||||
<input name="scatter_mode" type="string" value="T" />
|
||||
</dielectric_bsdf>
|
||||
|
||||
<generalized_schlick_bsdf name="tf_reflection_bsdf" type="BSDF">
|
||||
<input name="color0" type="color3" nodename="dielectric_f0" />
|
||||
<input name="color90" type="color3" nodename="dielectric_f90" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_uv" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" interfacename="tangent" />
|
||||
<input name="scatter_mode" type="string" value="R" />
|
||||
</generalized_schlick_bsdf>
|
||||
|
||||
<mix name="tf_transmission_mix" type="BSDF">
|
||||
<input name="bg" type="BSDF" nodename="diffuse_bsdf" />
|
||||
<input name="fg" type="BSDF" nodename="tf_transmission_bsdf" />
|
||||
<input name="mix" type="float" interfacename="transmission" />
|
||||
</mix>
|
||||
|
||||
<layer name="tf_dielectric_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="tf_reflection_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="tf_transmission_mix" />
|
||||
</layer>
|
||||
|
||||
<thin_film_bsdf name="dielectric_thinfilm_bsdf" type="BSDF">
|
||||
<input name="thickness" type="float" interfacename="iridescence_thickness" />
|
||||
<input name="ior" type="float" interfacename="iridescence_ior" />
|
||||
</thin_film_bsdf>
|
||||
|
||||
<layer name="iridescent_dielectric_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="dielectric_thinfilm_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="tf_dielectric_bsdf" />
|
||||
</layer>
|
||||
|
||||
<mix name="mix_iridescent_dielectric_bsdf" type="BSDF">
|
||||
<input name="bg" type="BSDF" nodename="dielectric_bsdf" />
|
||||
<input name="fg" type="BSDF" nodename="iridescent_dielectric_bsdf" />
|
||||
<input name="mix" type="float" interfacename="iridescence" />
|
||||
</mix>
|
||||
|
||||
<!-- Metal -->
|
||||
|
||||
<generalized_schlick_bsdf name="metal_bsdf" type="BSDF">
|
||||
<input name="color0" type="color3" interfacename="base_color" />
|
||||
<input name="color90" type="color3" value="1, 1, 1" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_uv" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" interfacename="tangent" />
|
||||
</generalized_schlick_bsdf>
|
||||
|
||||
<!-- Thin-film + Metal
|
||||
Note: Due to limitations in codegen, the base layer BSDF is duplicated (#1035). -->
|
||||
|
||||
<generalized_schlick_bsdf name="tf_metal_bsdf" type="BSDF">
|
||||
<input name="color0" type="color3" interfacename="base_color" />
|
||||
<input name="color90" type="color3" value="1, 1, 1" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_uv" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" interfacename="tangent" />
|
||||
</generalized_schlick_bsdf>
|
||||
|
||||
<thin_film_bsdf name="metal_thinfilm_bsdf" type="BSDF">
|
||||
<input name="thickness" type="float" interfacename="iridescence_thickness" />
|
||||
<input name="ior" type="float" interfacename="iridescence_ior" />
|
||||
</thin_film_bsdf>
|
||||
|
||||
<layer name="iridescent_metal_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="metal_thinfilm_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="tf_metal_bsdf" />
|
||||
</layer>
|
||||
|
||||
<mix name="mix_iridescent_metal_bsdf" type="BSDF">
|
||||
<input name="bg" type="BSDF" nodename="metal_bsdf" />
|
||||
<input name="fg" type="BSDF" nodename="iridescent_metal_bsdf" />
|
||||
<input name="mix" type="float" interfacename="iridescence" />
|
||||
</mix>
|
||||
|
||||
<!-- Dielectric/metal mix -->
|
||||
|
||||
<mix name="base_mix" type="BSDF">
|
||||
<input name="bg" type="BSDF" nodename="mix_iridescent_dielectric_bsdf" />
|
||||
<input name="fg" type="BSDF" nodename="mix_iridescent_metal_bsdf" />
|
||||
<input name="mix" type="float" interfacename="metallic" />
|
||||
</mix>
|
||||
|
||||
<!-- Sheen layer -->
|
||||
|
||||
<!-- Compute sheen intensity = max(sheen_color.r, sheen_color.g, sheen_color.b) -->
|
||||
<extract name="sheen_color_r" type="float">
|
||||
<input name="in" type="color3" interfacename="sheen_color" />
|
||||
<input name="index" type="integer" value="0" />
|
||||
</extract>
|
||||
|
||||
<extract name="sheen_color_g" type="float">
|
||||
<input name="in" type="color3" interfacename="sheen_color" />
|
||||
<input name="index" type="integer" value="1" />
|
||||
</extract>
|
||||
|
||||
<extract name="sheen_color_b" type="float">
|
||||
<input name="in" type="color3" interfacename="sheen_color" />
|
||||
<input name="index" type="integer" value="2" />
|
||||
</extract>
|
||||
|
||||
<max name="sheen_color_max_rg" type="float">
|
||||
<input name="in1" type="float" nodename="sheen_color_r" />
|
||||
<input name="in2" type="float" nodename="sheen_color_g" />
|
||||
</max>
|
||||
|
||||
<max name="sheen_intensity" type="float">
|
||||
<input name="in1" type="float" nodename="sheen_color_max_rg" />
|
||||
<input name="in2" type="float" nodename="sheen_color_b" />
|
||||
</max>
|
||||
|
||||
<multiply name="sheen_roughness_sq" type="float">
|
||||
<input name="in1" type="float" interfacename="sheen_roughness" />
|
||||
<input name="in2" type="float" interfacename="sheen_roughness" />
|
||||
</multiply>
|
||||
|
||||
<divide name="sheen_color_normalized" type="color3">
|
||||
<input name="in1" type="color3" interfacename="sheen_color" />
|
||||
<input name="in2" type="float" nodename="sheen_intensity" />
|
||||
</divide>
|
||||
|
||||
<sheen_bsdf name="sheen_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" nodename="sheen_intensity" />
|
||||
<input name="color" type="color3" nodename="sheen_color_normalized" />
|
||||
<input name="roughness" type="float" nodename="sheen_roughness_sq" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</sheen_bsdf>
|
||||
|
||||
<layer name="sheen_layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="sheen_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="base_mix" />
|
||||
</layer>
|
||||
|
||||
<!-- Clearcoat -->
|
||||
|
||||
<roughness_anisotropy name="clearcoat_roughness_uv" type="vector2">
|
||||
<input name="roughness" type="float" interfacename="clearcoat_roughness" />
|
||||
</roughness_anisotropy>
|
||||
|
||||
<dielectric_bsdf name="clearcoat_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" interfacename="clearcoat" />
|
||||
<input name="roughness" type="vector2" nodename="clearcoat_roughness_uv" />
|
||||
<input name="ior" type="float" value="1.5" />
|
||||
<input name="normal" type="vector3" interfacename="clearcoat_normal" />
|
||||
<input name="tangent" type="vector3" interfacename="tangent" />
|
||||
</dielectric_bsdf>
|
||||
|
||||
<layer name="clearcoat_layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="clearcoat_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="sheen_layer" />
|
||||
</layer>
|
||||
|
||||
<!-- Emission -->
|
||||
|
||||
<multiply name="emission_color" type="color3">
|
||||
<input name="in1" type="color3" interfacename="emissive" />
|
||||
<input name="in2" type="float" interfacename="emissive_strength" />
|
||||
</multiply>
|
||||
|
||||
<uniform_edf name="emission" type="EDF">
|
||||
<input name="color" type="color3" nodename="emission_color" />
|
||||
</uniform_edf>
|
||||
|
||||
<!-- Alpha -->
|
||||
|
||||
<ifgreatereq name="opacity_mask_cutoff" type="float">
|
||||
<input name="value1" type="float" interfacename="alpha" />
|
||||
<input name="value2" type="float" interfacename="alpha_cutoff" />
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" value="0" />
|
||||
</ifgreatereq>
|
||||
|
||||
<ifequal name="opacity_mask" type="float">
|
||||
<input name="value1" type="integer" interfacename="alpha_mode" />
|
||||
<input name="value2" type="integer" value="1" />
|
||||
<input name="in1" type="float" nodename="opacity_mask_cutoff" />
|
||||
<input name="in2" type="float" interfacename="alpha" />
|
||||
</ifequal>
|
||||
|
||||
<ifequal name="opacity" type="float">
|
||||
<input name="value1" type="integer" interfacename="alpha_mode" />
|
||||
<input name="value2" type="integer" value="0" />
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" nodename="opacity_mask" />
|
||||
</ifequal>
|
||||
|
||||
<!-- Surface -->
|
||||
|
||||
<surface name="shader_constructor" type="surfaceshader">
|
||||
<input name="bsdf" type="BSDF" nodename="clearcoat_layer" />
|
||||
<input name="edf" type="EDF" nodename="emission" />
|
||||
<input name="opacity" type="float" nodename="opacity" />
|
||||
</surface>
|
||||
<output name="out" type="surfaceshader" nodename="shader_constructor" />
|
||||
</nodegraph>
|
||||
|
||||
<!--
|
||||
Node: <gltf_colorimage> Supplemental Node
|
||||
Multiply a color4 image modulated by uniform color and geometry color. Default uniform and geometry colors are 1,1,1,1 which results in no change to the image.
|
||||
-->
|
||||
<nodedef name="ND_gltf_colorimage" node="gltf_colorimage" version="1.0" isdefaultversion="true" nodegroup="texture2d">
|
||||
<input name="file" type="filename" uniform="true" value="" uifolder="Image" />
|
||||
<input name="default" type="color4" value="0, 0, 0, 0" uifolder="Image" />
|
||||
<input name="texcoord" type="vector2" defaultgeomprop="UV0" uifolder="Image" />
|
||||
<input name="pivot" type="vector2" value="0, 1" uifolder="Image" />
|
||||
<input name="scale" type="vector2" value="1, 1" uifolder="Image" />
|
||||
<input name="rotate" type="float" value="0" unit="degree" unittype="angle" uimin="0" uimax="360" uifolder="Image" />
|
||||
<input name="offset" type="vector2" value="0, 0" uifolder="Image" />
|
||||
<input name="operationorder" type="integer" value="1" uifolder="Image" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" uifolder="Image" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" uifolder="Image" />
|
||||
<input name="filtertype" type="string" uniform="true" value="linear" enum="closest,linear,cubic" uifolder="Image" />
|
||||
<input name="color" type="color4" value="1, 1, 1, 1" uifolder="Color" />
|
||||
<input name="geomcolor" type="color4" value="1, 1, 1, 1" uifolder="Color" uiname="Geometry Color" />
|
||||
<output name="outcolor" type="color3" value="0, 0, 0" />
|
||||
<output name="outa" type="float" value="0" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="NG_gltf_colorimage" nodedef="ND_gltf_colorimage">
|
||||
<gltf_image name="image" type="color4">
|
||||
<input name="file" type="filename" uniform="true" interfacename="file" />
|
||||
<input name="default" type="color4" interfacename="default" />
|
||||
<input name="texcoord" type="vector2" interfacename="texcoord" />
|
||||
<input name="pivot" type="vector2" interfacename="pivot" />
|
||||
<input name="scale" type="vector2" interfacename="scale" />
|
||||
<input name="rotate" type="float" interfacename="rotate" />
|
||||
<input name="offset" type="vector2" interfacename="offset" />
|
||||
<input name="operationorder" type="integer" value="0" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" />
|
||||
<input name="filtertype" type="string" uniform="true" interfacename="filtertype" />
|
||||
</gltf_image>
|
||||
<multiply name="modulate_color" type="color4">
|
||||
<input name="in1" type="color4" interfacename="color" />
|
||||
<input name="in2" type="color4" nodename="image" />
|
||||
</multiply>
|
||||
<multiply name="modulate_geomcolor" type="color4">
|
||||
<input name="in1" type="color4" nodename="modulate_color" />
|
||||
<input name="in2" type="color4" interfacename="geomcolor" />
|
||||
</multiply>
|
||||
<separate4 name="separate_color" type="multioutput">
|
||||
<input name="in" type="color4" nodename="modulate_geomcolor" />
|
||||
</separate4>
|
||||
<combine3 name="combine_color" type="color3">
|
||||
<input name="in1" type="float" nodename="separate_color" output="outr" />
|
||||
<input name="in2" type="float" nodename="separate_color" output="outg" />
|
||||
<input name="in3" type="float" nodename="separate_color" output="outb" />
|
||||
</combine3>
|
||||
<dot name="separate_alpha" type="float">
|
||||
<input name="in" type="float" nodename="separate_color" output="outa" />
|
||||
</dot>
|
||||
<output name="outcolor" type="color3" nodename="combine_color" />
|
||||
<output name="outa" type="float" nodename="separate_alpha" />
|
||||
</nodegraph>
|
||||
|
||||
<!---
|
||||
Node: <gltf_image>
|
||||
color3 image lookup which matches glTF
|
||||
-->
|
||||
<nodedef name="ND_gltf_image_color3_color3_1_0" node="gltf_image" version="1.0" isdefaultversion="true" nodegroup="texture2d">
|
||||
<input name="file" type="filename" uniform="true" value="" />
|
||||
<input name="factor" type="color3" value="1,1,1" />
|
||||
<input name="default" type="color3" value="0, 0, 0" />
|
||||
<input name="texcoord" type="vector2" defaultgeomprop="UV0" />
|
||||
<input name="pivot" type="vector2" value="0, 1" />
|
||||
<input name="scale" type="vector2" value="1, 1" />
|
||||
<input name="rotate" type="float" value="0" unit="degree" unittype="angle" uimin="0" uimax="360" />
|
||||
<input name="offset" type="vector2" value="0, 0" />
|
||||
<input name="operationorder" type="integer" value="0" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="filtertype" type="string" uniform="true" value="linear" enum="closest,linear,cubic" />
|
||||
<output name="out" type="color3" value="0, 0, 0" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_NG_gltf_image_color3_color3_1_0" nodedef="ND_gltf_image_color3_color3_1_0">
|
||||
<image name="image" type="color3">
|
||||
<input name="file" type="filename" uniform="true" interfacename="file" />
|
||||
<input name="default" type="color3" interfacename="default" />
|
||||
<input name="texcoord" type="vector2" nodename="place2d" />
|
||||
<input name="uaddressmode" type="string" uniform="true" interfacename="uaddressmode" />
|
||||
<input name="vaddressmode" type="string" uniform="true" interfacename="vaddressmode" />
|
||||
<input name="filtertype" type="string" uniform="true" interfacename="filtertype" />
|
||||
</image>
|
||||
<divide name="invert_scale" type="vector2">
|
||||
<input name="in1" type="vector2" value="1.0, 1.0" />
|
||||
<input name="in2" type="vector2" interfacename="scale" />
|
||||
</divide>
|
||||
<multiply name="negate_rotate" type="float">
|
||||
<input name="in1" type="float" interfacename="rotate" />
|
||||
<input name="in2" type="float" value="-1.0" />
|
||||
</multiply>
|
||||
<multiply name="negate_offset" type="vector2">
|
||||
<input name="in1" type="vector2" interfacename="offset" />
|
||||
<input name="in2" type="vector2" value="-1.0, 1.0" />
|
||||
</multiply>
|
||||
<place2d name="place2d" type="vector2">
|
||||
<input name="texcoord" type="vector2" interfacename="texcoord" />
|
||||
<input name="pivot" type="vector2" interfacename="pivot" />
|
||||
<input name="scale" type="vector2" nodename="invert_scale" />
|
||||
<input name="rotate" type="float" nodename="negate_rotate" />
|
||||
<input name="offset" type="vector2" nodename="negate_offset" />
|
||||
<input name="operationorder" type="integer" interfacename="operationorder" />
|
||||
</place2d>
|
||||
<multiply name="scale_image" type="color3">
|
||||
<input name="in1" type="color3" interfacename="factor" />
|
||||
<input name="in2" type="color3" nodename="image" />
|
||||
</multiply>
|
||||
<output name="out" type="color3" nodename="scale_image" />
|
||||
</nodegraph>
|
||||
|
||||
<!---
|
||||
Node: <gltf_image>
|
||||
color4 image lookup which matches glTF
|
||||
-->
|
||||
<nodedef name="ND_gltf_image_color4_color4_1_0" node="gltf_image" version="1.0" isdefaultversion="true" nodegroup="texture2d">
|
||||
<input name="file" type="filename" uniform="true" value="" />
|
||||
<input name="factor" type="color4" value="1,1,1,1" />
|
||||
<input name="default" type="color4" value="0, 0, 0, 0" />
|
||||
<input name="texcoord" type="vector2" defaultgeomprop="UV0" />
|
||||
<input name="pivot" type="vector2" value="0, 1" />
|
||||
<input name="scale" type="vector2" value="1, 1" />
|
||||
<input name="rotate" type="float" value="0" unit="degree" unittype="angle" uimin="0" uimax="360" />
|
||||
<input name="offset" type="vector2" value="0, 0" />
|
||||
<input name="operationorder" type="integer" value="1" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="filtertype" type="string" uniform="true" value="linear" enum="closest,linear,cubic" />
|
||||
<output name="out" type="color4" value="0, 0, 0, 0" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_gltf_image_color4_color4_1_0" nodedef="ND_gltf_image_color4_color4_1_0">
|
||||
<image name="image" type="color4">
|
||||
<input name="file" type="filename" uniform="true" interfacename="file" />
|
||||
<input name="default" type="color4" interfacename="default" />
|
||||
<input name="texcoord" type="vector2" nodename="place2d" />
|
||||
<input name="uaddressmode" type="string" uniform="true" interfacename="uaddressmode" />
|
||||
<input name="vaddressmode" type="string" uniform="true" interfacename="vaddressmode" />
|
||||
<input name="filtertype" type="string" uniform="true" interfacename="filtertype" />
|
||||
</image>
|
||||
<divide name="invert_scale" type="vector2">
|
||||
<input name="in1" type="vector2" value="1.0, 1.0" />
|
||||
<input name="in2" type="vector2" interfacename="scale" />
|
||||
</divide>
|
||||
<multiply name="negate_rotate" type="float">
|
||||
<input name="in1" type="float" interfacename="rotate" />
|
||||
<input name="in2" type="float" value="-1.0" />
|
||||
</multiply>
|
||||
<multiply name="negate_offset" type="vector2">
|
||||
<input name="in1" type="vector2" interfacename="offset" />
|
||||
<input name="in2" type="vector2" value="-1.0, 1.0" />
|
||||
</multiply>
|
||||
<place2d name="place2d" type="vector2">
|
||||
<input name="texcoord" type="vector2" interfacename="texcoord" />
|
||||
<input name="pivot" type="vector2" interfacename="pivot" />
|
||||
<input name="scale" type="vector2" nodename="invert_scale" />
|
||||
<input name="rotate" type="float" nodename="negate_rotate" />
|
||||
<input name="offset" type="vector2" nodename="negate_offset" />
|
||||
<input name="operationorder" type="integer" interfacename="operationorder" />
|
||||
</place2d>
|
||||
<multiply name="scale_image" type="color4">
|
||||
<input name="in1" type="color4" interfacename="factor" />
|
||||
<input name="in2" type="color4" nodename="image" />
|
||||
</multiply>
|
||||
<output name="out" type="color4" nodename="scale_image" />
|
||||
</nodegraph>
|
||||
|
||||
<!---
|
||||
Node: <gltf_image>
|
||||
float image lookup which matches glTF
|
||||
-->
|
||||
<nodedef name="ND_gltf_image_float_float_1_0" node="gltf_image" version="1.0" isdefaultversion="true" nodegroup="texture2d">
|
||||
<input name="file" type="filename" uniform="true" value="" />
|
||||
<input name="factor" type="float" value="1" />
|
||||
<input name="default" type="float" value="0" />
|
||||
<input name="texcoord" type="vector2" defaultgeomprop="UV0" />
|
||||
<input name="pivot" type="vector2" value="0, 1" />
|
||||
<input name="scale" type="vector2" value="1, 1" />
|
||||
<input name="rotate" type="float" value="0" unit="degree" unittype="angle" uimin="0" uimax="360" />
|
||||
<input name="offset" type="vector2" value="0, 0" />
|
||||
<input name="operationorder" type="integer" value="0" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="filtertype" type="string" uniform="true" value="linear" enum="closest,linear,cubic" />
|
||||
<output name="out" type="float" value="0" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_gltf_image_float_float_1_0" nodedef="ND_gltf_image_float_float_1_0">
|
||||
<image name="image" type="float">
|
||||
<input name="file" type="filename" uniform="true" interfacename="file" />
|
||||
<input name="default" type="float" interfacename="default" />
|
||||
<input name="texcoord" type="vector2" nodename="place2d" />
|
||||
<input name="uaddressmode" type="string" uniform="true" interfacename="uaddressmode" />
|
||||
<input name="vaddressmode" type="string" uniform="true" interfacename="vaddressmode" />
|
||||
<input name="filtertype" type="string" uniform="true" interfacename="filtertype" />
|
||||
</image>
|
||||
<divide name="invert_scale" type="vector2">
|
||||
<input name="in1" type="vector2" value="1.0, 1.0" />
|
||||
<input name="in2" type="vector2" interfacename="scale" />
|
||||
</divide>
|
||||
<multiply name="negate_rotate" type="float">
|
||||
<input name="in1" type="float" interfacename="rotate" />
|
||||
<input name="in2" type="float" value="-1.0" />
|
||||
</multiply>
|
||||
<multiply name="negate_offset" type="vector2">
|
||||
<input name="in1" type="vector2" interfacename="offset" />
|
||||
<input name="in2" type="vector2" value="-1.0, 1.0" />
|
||||
</multiply>
|
||||
<place2d name="place2d" type="vector2">
|
||||
<input name="texcoord" type="vector2" interfacename="texcoord" />
|
||||
<input name="pivot" type="vector2" interfacename="pivot" />
|
||||
<input name="scale" type="vector2" nodename="invert_scale" />
|
||||
<input name="rotate" type="float" nodename="negate_rotate" />
|
||||
<input name="offset" type="vector2" nodename="negate_offset" />
|
||||
<input name="operationorder" type="integer" interfacename="operationorder" />
|
||||
</place2d>
|
||||
<multiply name="scale_image" type="float">
|
||||
<input name="in1" type="float" interfacename="factor" />
|
||||
<input name="in2" type="float" nodename="image" />
|
||||
</multiply>
|
||||
<output name="out" type="float" nodename="scale_image" />
|
||||
</nodegraph>
|
||||
|
||||
<!---
|
||||
Node: <gltf_image>
|
||||
vector3 image lookup which matches glTF
|
||||
-->
|
||||
<nodedef name="ND_gltf_image_vector3_vector3_1_0" node="gltf_image" version="1.0" isdefaultversion="true" nodegroup="texture2d">
|
||||
<input name="file" type="filename" uniform="true" value="" />
|
||||
<input name="default" type="vector3" value="0, 0, 0" />
|
||||
<input name="texcoord" type="vector2" defaultgeomprop="UV0" />
|
||||
<input name="pivot" type="vector2" value="0, 1" />
|
||||
<input name="scale" type="vector2" value="1, 1" />
|
||||
<input name="rotate" type="float" value="0" unit="degree" unittype="angle" uimin="0" uimax="360" />
|
||||
<input name="offset" type="vector2" value="0, 0" />
|
||||
<input name="operationorder" type="integer" value="0" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="filtertype" type="string" uniform="true" value="linear" enum="closest,linear,cubic" />
|
||||
<output name="out" type="vector3" value="0, 0, 0" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_gltf_image_vector3_vector3_1_0" nodedef="ND_gltf_image_vector3_vector3_1_0">
|
||||
<image name="image" type="vector3">
|
||||
<input name="file" type="filename" uniform="true" interfacename="file" />
|
||||
<input name="default" type="vector3" interfacename="default" />
|
||||
<input name="texcoord" type="vector2" nodename="place2d" />
|
||||
<input name="uaddressmode" type="string" uniform="true" interfacename="uaddressmode" />
|
||||
<input name="vaddressmode" type="string" uniform="true" interfacename="vaddressmode" />
|
||||
<input name="filtertype" type="string" uniform="true" interfacename="filtertype" />
|
||||
</image>
|
||||
<divide name="invert_scale" type="vector2">
|
||||
<input name="in1" type="vector2" value="1.0, 1.0" />
|
||||
<input name="in2" type="vector2" interfacename="scale" />
|
||||
</divide>
|
||||
<multiply name="negate_rotate" type="float">
|
||||
<input name="in1" type="float" interfacename="rotate" />
|
||||
<input name="in2" type="float" value="-1.0" />
|
||||
</multiply>
|
||||
<multiply name="negate_offset" type="vector2">
|
||||
<input name="in1" type="vector2" interfacename="offset" />
|
||||
<input name="in2" type="vector2" value="-1.0, 1.0" />
|
||||
</multiply>
|
||||
<place2d name="place2d" type="vector2">
|
||||
<input name="texcoord" type="vector2" interfacename="texcoord" />
|
||||
<input name="pivot" type="vector2" interfacename="pivot" />
|
||||
<input name="scale" type="vector2" nodename="invert_scale" />
|
||||
<input name="rotate" type="float" nodename="negate_rotate" />
|
||||
<input name="offset" type="vector2" nodename="negate_offset" />
|
||||
<input name="operationorder" type="integer" interfacename="operationorder" />
|
||||
</place2d>
|
||||
<output name="out" type="vector3" nodename="image" />
|
||||
</nodegraph>
|
||||
|
||||
<!---
|
||||
Node: <gltf_normalmap>
|
||||
normalmap image lookup which matches glTF
|
||||
-->
|
||||
<nodedef name="ND_gltf_normalmap_vector3_1_0" node="gltf_normalmap" version="1.0" isdefaultversion="true" nodegroup="texture2d">
|
||||
<input name="file" type="filename" uniform="true" value="" />
|
||||
<input name="default" type="vector3" value="0.5, 0.5, 1" />
|
||||
<input name="texcoord" type="vector2" defaultgeomprop="UV0" />
|
||||
<input name="pivot" type="vector2" value="0, 1" />
|
||||
<input name="scale" type="vector2" value="1, 1" />
|
||||
<input name="rotate" type="float" value="0" unit="degree" unittype="angle" uimin="0" uimax="360" />
|
||||
<input name="offset" type="vector2" value="0, 0" />
|
||||
<input name="operationorder" type="integer" value="0" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="filtertype" type="string" uniform="true" value="linear" enum="closest,linear,cubic" />
|
||||
<output name="out" type="vector3" value="0, 0, 0" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_gltf_normalmap_vector3_1_0" nodedef="ND_gltf_normalmap_vector3_1_0">
|
||||
<image name="image" type="vector3">
|
||||
<input name="file" type="filename" uniform="true" interfacename="file" />
|
||||
<input name="default" type="vector3" interfacename="default" />
|
||||
<input name="texcoord" type="vector2" nodename="place2d" />
|
||||
<input name="uaddressmode" type="string" uniform="true" interfacename="uaddressmode" />
|
||||
<input name="vaddressmode" type="string" uniform="true" interfacename="vaddressmode" />
|
||||
<input name="filtertype" type="string" uniform="true" interfacename="filtertype" />
|
||||
</image>
|
||||
<normalmap name="normalmap" type="vector3">
|
||||
<input name="in" type="vector3" nodename="image" />
|
||||
</normalmap>
|
||||
<divide name="invert_scale" type="vector2">
|
||||
<input name="in1" type="vector2" value="1.0, 1.0" />
|
||||
<input name="in2" type="vector2" interfacename="scale" />
|
||||
</divide>
|
||||
<multiply name="negate_rotate" type="float">
|
||||
<input name="in1" type="float" interfacename="rotate" />
|
||||
<input name="in2" type="float" value="-1.0" />
|
||||
</multiply>
|
||||
<multiply name="negate_offset" type="vector2">
|
||||
<input name="in1" type="vector2" interfacename="offset" />
|
||||
<input name="in2" type="vector2" value="-1.0, 1.0" />
|
||||
</multiply>
|
||||
<place2d name="place2d" type="vector2" nodedef="ND_place2d_vector2">
|
||||
<input name="texcoord" type="vector2" interfacename="texcoord" />
|
||||
<input name="pivot" type="vector2" interfacename="pivot" />
|
||||
<input name="scale" type="vector2" nodename="invert_scale" />
|
||||
<input name="rotate" type="float" nodename="negate_rotate" />
|
||||
<input name="offset" type="vector2" nodename="negate_offset" />
|
||||
<input name="operationorder" type="integer" interfacename="operationorder" />
|
||||
</place2d>
|
||||
<output name="out" type="vector3" nodename="normalmap" />
|
||||
</nodegraph>
|
||||
|
||||
<!--
|
||||
Node: <gltf_iridescence>
|
||||
normalmap image lookup which matches glTF
|
||||
-->
|
||||
<nodedef name="ND_gltf_iridescence_thickness_float_1_0" node="gltf_iridescence_thickness" version="1.0" isdefaultversion="true" nodegroup="texture2d">
|
||||
<input name="file" type="filename" uniform="true" value="" uifolder="Image" />
|
||||
<input name="default" type="vector3" value="0, 0, 0" uifolder="Image" />
|
||||
<input name="texcoord" type="vector2" defaultgeomprop="UV0" uifolder="Image" />
|
||||
<input name="pivot" type="vector2" value="0, 0" uifolder="Image" />
|
||||
<input name="scale" type="vector2" value="1, 1" uifolder="Image" />
|
||||
<input name="rotate" type="float" value="0" uifolder="Image" />
|
||||
<input name="offset" type="vector2" value="0, 0" uifolder="Image" />
|
||||
<input name="uaddressmode" type="string" uniform="true" value="periodic" uifolder="Image" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="vaddressmode" type="string" uniform="true" value="periodic" uifolder="Image" enum="constant,clamp,periodic,mirror" />
|
||||
<input name="filtertype" type="string" uniform="true" value="linear" enum="closest,linear,cubic" uifolder="Image" />
|
||||
<input name="thicknessMin" type="float" value="100" uifolder="Thickness" />
|
||||
<input name="thicknessMax" type="float" value="400" uifolder="Thickness" />
|
||||
<output name="out" type="float" value="0" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_gltf_iridescence_thickness_float_1_0" nodedef="ND_gltf_iridescence_thickness_float_1_0">
|
||||
<mix name="mixThickness" type="float" nodedef="ND_mix_float">
|
||||
<input name="fg" type="float" interfacename="thicknessMin" />
|
||||
<input name="bg" type="float" interfacename="thicknessMax" />
|
||||
<input name="mix" type="float" nodename="extract" />
|
||||
</mix>
|
||||
<gltf_image name="thickness_image" type="vector3">
|
||||
<input name="file" type="filename" uniform="true" interfacename="file" />
|
||||
<input name="default" type="vector3" interfacename="default" />
|
||||
<input name="texcoord" type="vector2" interfacename="texcoord" />
|
||||
<input name="pivot" type="vector2" interfacename="pivot" />
|
||||
<input name="scale" type="vector2" interfacename="scale" />
|
||||
<input name="rotate" type="float" interfacename="rotate" />
|
||||
<input name="offset" type="vector2" interfacename="offset" />
|
||||
<input name="uaddressmode" type="string" uniform="true" interfacename="uaddressmode" />
|
||||
<input name="vaddressmode" type="string" uniform="true" interfacename="vaddressmode" />
|
||||
<input name="filtertype" type="string" uniform="true" interfacename="filtertype" />
|
||||
</gltf_image>
|
||||
<extract name="extract" type="float">
|
||||
<input name="in" type="vector3" nodename="thickness_image" />
|
||||
<input name="index" type="integer" uniform="true" value="1" />
|
||||
</extract>
|
||||
<output name="out" type="float" nodename="mixThickness" />
|
||||
</nodegraph>
|
||||
|
||||
</materialx>
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
|
||||
<!-- LamaAdd for BSDFs -->
|
||||
<nodedef name="ND_lama_add_bsdf" node="LamaAdd" nodegroup="pbr" version="1.0" isdefaultversion="true">
|
||||
<input name="material1" uiname="Material 1" type="BSDF" doc="First material to add." />
|
||||
<input name="material2" uiname="Material 2" type="BSDF" doc="Second material to add." />
|
||||
<input name="weight1" uiname="Weight 1" type="float" uimin="0.0" uimax="1.0" value="1.0" doc="Weight of the first material." />
|
||||
<input name="weight2" uiname="Weight 2" type="float" uimin="0.0" uimax="1.0" value="0.0" doc="Weight of the second material." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_lama_add_bsdf" nodedef="ND_lama_add_bsdf">
|
||||
<multiply name="mul1" type="BSDF">
|
||||
<input name="in1" type="BSDF" interfacename="material1" />
|
||||
<input name="in2" type="float" interfacename="weight1" />
|
||||
</multiply>
|
||||
<multiply name="mul2" type="BSDF">
|
||||
<input name="in1" type="BSDF" interfacename="material2" />
|
||||
<input name="in2" type="float" interfacename="weight2" />
|
||||
</multiply>
|
||||
<add name="add1" type="BSDF">
|
||||
<input name="in1" type="BSDF" nodename="mul1" />
|
||||
<input name="in2" type="BSDF" nodename="mul2" />
|
||||
</add>
|
||||
<output name="out" type="BSDF" nodename="add1" />
|
||||
</nodegraph>
|
||||
|
||||
<!-- LamaAdd for EDFs -->
|
||||
<nodedef name="ND_lama_add_edf" node="LamaAdd" nodegroup="pbr" version="1.0" isdefaultversion="true">
|
||||
<input name="material1" uiname="Material 1" type="EDF" doc="First material to add." />
|
||||
<input name="material2" uiname="Material 2" type="EDF" doc="Second material to add." />
|
||||
<input name="weight1" uiname="Weight 1" type="float" uimin="0.0" uimax="1.0" value="1.0" doc="Weight of the first material." />
|
||||
<input name="weight2" uiname="Weight 2" type="float" uimin="0.0" uimax="1.0" value="0.0" doc="Weight of the second material." />
|
||||
<output name="out" type="EDF" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_lama_add_edf" nodedef="ND_lama_add_edf">
|
||||
<multiply name="mul1" type="EDF">
|
||||
<input name="in1" type="EDF" interfacename="material1" />
|
||||
<input name="in2" type="float" interfacename="weight1" />
|
||||
</multiply>
|
||||
<multiply name="mul2" type="EDF">
|
||||
<input name="in1" type="EDF" interfacename="material2" />
|
||||
<input name="in2" type="float" interfacename="weight2" />
|
||||
</multiply>
|
||||
<add name="add1" type="EDF">
|
||||
<input name="in1" type="EDF" nodename="mul1" />
|
||||
<input name="in2" type="EDF" nodename="mul2" />
|
||||
</add>
|
||||
<output name="out" type="EDF" nodename="add1" />
|
||||
</nodegraph>
|
||||
|
||||
</materialx>
|
||||
Vendored
+159
@@ -0,0 +1,159 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<nodedef name="ND_lama_conductor" node="LamaConductor" nodegroup="pbr" doc="Lama conductor" version="1.0" isdefaultversion="true">
|
||||
<input name="tint" type="color3" value="1, 1, 1" uiname="Tint" uifolder="Main"
|
||||
doc="Overall color multiplier. It should be used with parcimony, as a non-white value breaks physicality. The prefered way to define the color of a conductor is through the Fresnel attributes right below." />
|
||||
<input name="fresnelMode" type="integer" uniform="true" enum="Scientific,Artistic" enumvalues="0,1" value="0" uiname="Fresnel Mode" uifolder="Main"
|
||||
doc="Fresnel mode" />
|
||||
<input name="IOR" type="vector3" value="0.180000007153,0.419999986887,1.37000000477" uiname="IOR" uifolder="Main"
|
||||
doc="Index of refraction (often denoted by eta), defining the color reflected by the surface in the normal direction." />
|
||||
<input name="extinction" type="vector3" value="3.42000007629,2.34999990463,1.76999998093" uiname="Extinction" uifolder="Main"
|
||||
doc="Extinction coefficient (often denoted by kappa), influencing how the reflected color curve evolves between its value in the normal direction (or 0 degree), and 1 when reaching 90 degrees. A null value does not deviate the curve at all." />
|
||||
<input name="reflectivity" type="color3" value="0.9450, 0.7772, 0.3737" uiname="Reflectivity" uifolder="Main"
|
||||
doc="Color reflected by the surface in the normal direction." />
|
||||
<input name="edgeColor" type="color3" value="0.9979, 0.9813, 0.7523" uiname="Edge Color" uifolder="Main"
|
||||
doc="Indicates how the reflected color curve evolves between its value in the normal direction (or 0 degree), and 1 when reaching 90 degrees. Note that this color is unlikely to be reached, and just bends the curve towards it when reaching grazing angles. A null value does not deviate the curve at all." />
|
||||
<input name="roughness" type="float" value="0.1" uimin="0.0" uimax="1.0" uiname="Roughness" uifolder="Main"
|
||||
doc="Micro-facet distribution roughness." />
|
||||
<input name="normal" type="vector3" defaultgeomprop="Nworld" uiname="Normal" uifolder="Main"
|
||||
doc="Shading normal, typically defined by bump or normal mapping. Defaults to the smooth surface normal if not set." />
|
||||
<input name="anisotropy" type="float" value="0.0" uimin="-1.0" uimax="1.0" uiname="Anisotropy" uifolder="Anisotropy"
|
||||
doc="Defines the amount of anisotropy, changing the co-tangent axis roughness from the original value to 1 (or to 0 with a negative value)." />
|
||||
<input name="anisotropyDirection" type="vector3" defaultgeomprop="Tworld" uiname="Direction" uifolder="Anisotropy"
|
||||
doc="Overrides the surface tangent as the anisotropy direction." />
|
||||
<input name="anisotropyRotation" type="float" value="0.0" uiname="Rotation" uifolder="Anisotropy"
|
||||
doc="Rotates the anisotropy direction (possibly overriden by the previous attribute) around the normal, from 0 to 360 degrees." />
|
||||
<input name="iridescenceThickness" type="float" value="0.0" uimin="0.0" uisoftmax="200.0" uiname="Thickness" uifolder="Iridescence"
|
||||
doc="Thin film thickness in nanometers, driving the iridescent effect." />
|
||||
<input name="iridescenceIOR" type="float" value="1.5" uimin="1.0" uimax="3.0" uiname="IOR" uifolder="Iridescence"
|
||||
doc="Thin film index of refraction, driving the iridescent effect." />
|
||||
<input name="exteriorIOR" type="float" value="1.0" uimin="1.0" uimax="3.0" uiname="Exterior IOR" uifolder="Advanced"
|
||||
doc="Defines what the IOR of the exterior medium is (can be either the outside medium, eg. air or water, or in case of a layered material, the top layer medium, like plexiglass or varnish)." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="IMPL_lama_conductor" nodedef="ND_lama_conductor">
|
||||
|
||||
<!-- IOR -->
|
||||
<ifgreater name="exterior_ior_switch" type="float">
|
||||
<input name="in1" type="float" interfacename="iridescenceIOR" />
|
||||
<input name="in2" type="float" interfacename="exteriorIOR" />
|
||||
<input name="value1" type="float" interfacename="iridescenceThickness" />
|
||||
<input name="value2" type="float" value="0" />
|
||||
</ifgreater>
|
||||
<artistic_ior name="artistic_ior" type="multioutput">
|
||||
<input name="reflectivity" type="color3" interfacename="reflectivity" />
|
||||
<input name="edge_color" type="color3" interfacename="edgeColor" />
|
||||
</artistic_ior>
|
||||
<convert name="convert_ior" type="color3">
|
||||
<input name="in" type="vector3" interfacename="IOR" />
|
||||
</convert>
|
||||
<convert name="convert_extinction" type="color3">
|
||||
<input name="in" type="vector3" interfacename="extinction" />
|
||||
</convert>
|
||||
<switch name="eta_switch" type="color3">
|
||||
<input name="in1" type="color3" nodename="convert_ior" />
|
||||
<input name="in2" type="color3" nodename="artistic_ior" output="ior" />
|
||||
<input name="which" type="integer" interfacename="fresnelMode" />
|
||||
</switch>
|
||||
<switch name="kappa_switch" type="color3">
|
||||
<input name="in1" type="color3" nodename="convert_extinction" />
|
||||
<input name="in2" type="color3" nodename="artistic_ior" output="extinction" />
|
||||
<input name="which" type="integer" interfacename="fresnelMode" />
|
||||
</switch>
|
||||
<divide name="relative_eta" type="color3">
|
||||
<input name="in1" type="color3" nodename="eta_switch" />
|
||||
<input name="in2" type="float" nodename="exterior_ior_switch" />
|
||||
</divide>
|
||||
<divide name="relative_kappa" type="color3">
|
||||
<input name="in1" type="color3" nodename="kappa_switch" />
|
||||
<input name="in2" type="float" nodename="exterior_ior_switch" />
|
||||
</divide>
|
||||
|
||||
<!-- Roughness -->
|
||||
<subtract name="roughness_inverse" type="float">
|
||||
<input name="in1" type="float" value="1.0" />
|
||||
<input name="in2" type="float" interfacename="roughness" />
|
||||
</subtract>
|
||||
<ifgreatereq name="delta" type="float">
|
||||
<input name="in1" type="float" nodename="roughness_inverse" />
|
||||
<input name="in2" type="float" interfacename="roughness" />
|
||||
<input name="value1" type="float" interfacename="anisotropy" />
|
||||
<input name="value2" type="float" value="0" />
|
||||
</ifgreatereq>
|
||||
<multiply name="roughness_additional" type="float">
|
||||
<input name="in1" type="float" interfacename="anisotropy" />
|
||||
<input name="in2" type="float" nodename="delta" />
|
||||
</multiply>
|
||||
<add name="roughness_bitangent" type="float">
|
||||
<input name="in1" type="float" interfacename="roughness" />
|
||||
<input name="in2" type="float" nodename="roughness_additional" />
|
||||
</add>
|
||||
<clamp name="roughness_bitangent_clamped" type="float">
|
||||
<input name="in" type="float" nodename="roughness_bitangent" />
|
||||
</clamp>
|
||||
<combine2 name="roughness_linear" type="vector2">
|
||||
<input name="in1" type="float" interfacename="roughness" />
|
||||
<input name="in2" type="float" nodename="roughness_bitangent_clamped" />
|
||||
</combine2>
|
||||
<power name="roughness_anisotropic_squared" type="vector2">
|
||||
<input name="in1" type="vector2" nodename="roughness_linear" />
|
||||
<input name="in2" type="float" value="2" />
|
||||
</power>
|
||||
<max name="roughness_anisotropic_squared_clamped" type="vector2">
|
||||
<input name="in1" type="vector2" nodename="roughness_anisotropic_squared" />
|
||||
<input name="in2" type="float" value="0.000001" />
|
||||
</max>
|
||||
|
||||
<!-- Tangent -->
|
||||
<multiply name="tangent_rotate_degree" type="float">
|
||||
<input name="in1" type="float" interfacename="anisotropyRotation" />
|
||||
<input name="in2" type="float" value="-360" />
|
||||
</multiply>
|
||||
<rotate3d name="tangent_rotate" type="vector3">
|
||||
<input name="in" type="vector3" interfacename="anisotropyDirection" />
|
||||
<input name="amount" type="float" nodename="tangent_rotate_degree" />
|
||||
<input name="axis" type="vector3" interfacename="normal" />
|
||||
</rotate3d>
|
||||
<normalize name="tangent_rotate_normalize" type="vector3">
|
||||
<input name="in" type="vector3" nodename="tangent_rotate" />
|
||||
</normalize>
|
||||
|
||||
<!-- BRDF -->
|
||||
<conductor_bsdf name="conductor_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="ior" type="color3" nodename="relative_eta" />
|
||||
<input name="extinction" type="color3" nodename="relative_kappa" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_anisotropic_squared_clamped" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" nodename="tangent_rotate_normalize" />
|
||||
<input name="distribution" type="string" value="ggx" />
|
||||
</conductor_bsdf>
|
||||
|
||||
<!-- BRDF + Thin film -->
|
||||
<divide name="iridescence_relative_ior" type="float">
|
||||
<input name="in1" type="float" interfacename="iridescenceIOR" />
|
||||
<input name="in2" type="float" interfacename="exteriorIOR" />
|
||||
</divide>
|
||||
<thin_film_bsdf name="thin_film_bsdf" type="BSDF">
|
||||
<input name="thickness" type="float" interfacename="iridescenceThickness" />
|
||||
<input name="ior" type="float" nodename="iridescence_relative_ior" />
|
||||
</thin_film_bsdf>
|
||||
|
||||
<!-- Layered BRDF -->
|
||||
<layer name="thin_film_conductor_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="thin_film_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="conductor_bsdf" />
|
||||
</layer>
|
||||
|
||||
<!-- Tinted BRDF -->
|
||||
<multiply name="tinted_bsdf" type="BSDF">
|
||||
<input name="in1" type="BSDF" nodename="thin_film_conductor_bsdf" />
|
||||
<input name="in2" type="color3" interfacename="tint" />
|
||||
</multiply>
|
||||
|
||||
<!-- Output -->
|
||||
<output name="out" type="BSDF" nodename="tinted_bsdf" />
|
||||
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
Vendored
+165
@@ -0,0 +1,165 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<nodedef name="ND_lama_dielectric" node="LamaDielectric" nodegroup="pbr" doc="Lama dielectric" version="1.0" isdefaultversion="true">
|
||||
<input name="reflectionTint" type="color3" value="1.0, 1.0, 1.0" uiname="Reflection Tint" uifolder="Main"
|
||||
doc="Color multiplier for external reflection. It should be used with parcimony, as a non-white value breaks physicality." />
|
||||
<input name="transmissionTint" type="color3" value="1.0, 1.0, 1.0" uiname="Transmission Tint" uifolder="Main"
|
||||
doc="Color multiplier for rays going inside the medium (covers external transmission and internal reflection). It should be used with parcimony, as a non-white value breaks physicality. The prefered way to define the color of a dielectric is through the Interior attributes right below." />
|
||||
<input name="fresnelMode" type="integer" uniform="true" enum="Scientific,Artistic" enumvalues="0,1" value="0" uiname="Fresnel Mode" uifolder="Main"
|
||||
doc="Fresnel mode" />
|
||||
<input name="IOR" type="float" value="1.5" uimin="1.0" uimax="3.0" uiname="IOR" uifolder="Main"
|
||||
doc="Index of refraction (often denoted by eta), defining the amount reflected by the surface in the normal direction, and how the rays are bent by refraction." />
|
||||
<input name="reflectivity" type="float" value="0.04" uiname="Reflectivity" uifolder="Main"
|
||||
doc="Reflectivity" />
|
||||
<input name="roughness" type="float" value="0.1" uimin="0.0" uimax="1.0" uiname="Roughness" uifolder="Main"
|
||||
doc="Micro-facet distribution roughness." />
|
||||
<input name="normal" type="vector3" defaultgeomprop="Nworld" uiname="Normal" uifolder="Main"
|
||||
doc="Shading normal, typically defined by bump or normal mapping. Defaults to the smooth surface normal if not set." />
|
||||
<input name="anisotropy" type="float" value="0.0" uimin="-1.0" uimax="1.0" uiname="Anisotropy" uifolder="Anisotropy"
|
||||
doc="Defines the amount of anisotropy, changing the co-tangent axis roughness from the original value to 1 (or to 0 with a negative value)." />
|
||||
<input name="direction" type="vector3" defaultgeomprop="Tworld" uiname="Direction" uifolder="Anisotropy"
|
||||
doc="Overrides the surface tangent as the anisotropy direction." />
|
||||
<input name="rotation" type="float" value="0.0" uiname="Rotation" uifolder="Anisotropy"
|
||||
doc="Rotates the anisotropy direction (possibly overriden by the previous attribute) around the normal, from 0 to 360 degrees." />
|
||||
<input name="exteriorIOR" type="float" value="1.0" uimin="1.0" uimax="3.0" uiname="Exterior IOR" uifolder="Advanced"
|
||||
doc="Defines what the IOR of the exterior medium is (can be either the outside medium, eg. air or water, or in case of a layered material, the top layer medium, like plexiglass or varnish)." />
|
||||
<input name="absorptionColor" type="color3" value="1.0, 1.0, 1.0" uiname="Absorption Color" uifolder="Interior"
|
||||
doc="Absorption color" />
|
||||
<input name="absorptionRadius" type="float" value="1.0" uiname="Absorption Radius" uifolder="Interior"
|
||||
doc="Absorption radius" />
|
||||
<input name="scatterColor" type="color3" value="0.0, 0.0, 0.0" uiname="Scatter Color" uifolder="Interior"
|
||||
doc="Scatter color" />
|
||||
<input name="scatterAnisotropy" type="float" value="0.0" uimin="-1.0" uimax="1.0" uiname="Scatter Anisotropy" uifolder="Interior"
|
||||
doc="Scatter anisotropy" />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="IMPL_lama_dielectric" nodedef="ND_lama_dielectric">
|
||||
|
||||
<!-- IOR -->
|
||||
<convert name="reflectivity_color" type="color3">
|
||||
<input name="in" type="float" interfacename="reflectivity" uivisible="false" />
|
||||
</convert>
|
||||
<artistic_ior name="artistic_ior" type="multioutput">
|
||||
<input name="reflectivity" type="color3" nodename="reflectivity_color" />
|
||||
<input name="edge_color" type="color3" value="0.0, 0.0, 0.0" />
|
||||
</artistic_ior>
|
||||
<switch name="fresnel_mode_switch" type="float">
|
||||
<input name="in1" type="float" interfacename="IOR" />
|
||||
<input name="in2" type="float" nodename="artistic_ior" output="ior" channels="r" />
|
||||
<input name="which" type="integer" interfacename="fresnelMode" />
|
||||
</switch>
|
||||
<divide name="relative_ior" type="float">
|
||||
<input name="in1" type="float" nodename="fresnel_mode_switch" />
|
||||
<input name="in2" type="float" interfacename="exteriorIOR" />
|
||||
</divide>
|
||||
|
||||
<!-- Roughness -->
|
||||
<subtract name="roughness_inverse" type="float">
|
||||
<input name="in1" type="float" value="1.0" />
|
||||
<input name="in2" type="float" interfacename="roughness" />
|
||||
</subtract>
|
||||
<ifgreatereq name="delta" type="float">
|
||||
<input name="in1" type="float" nodename="roughness_inverse" />
|
||||
<input name="in2" type="float" interfacename="roughness" />
|
||||
<input name="value1" type="float" interfacename="anisotropy" />
|
||||
<input name="value2" type="float" value="0" />
|
||||
</ifgreatereq>
|
||||
<multiply name="roughness_additional" type="float">
|
||||
<input name="in1" type="float" interfacename="anisotropy" />
|
||||
<input name="in2" type="float" nodename="delta" />
|
||||
</multiply>
|
||||
<add name="roughness_bitangent" type="float">
|
||||
<input name="in1" type="float" interfacename="roughness" />
|
||||
<input name="in2" type="float" nodename="roughness_additional" />
|
||||
</add>
|
||||
<clamp name="roughness_bitangent_clamped" type="float">
|
||||
<input name="in" type="float" nodename="roughness_bitangent" />
|
||||
</clamp>
|
||||
<combine2 name="roughness_linear" type="vector2">
|
||||
<input name="in1" type="float" interfacename="roughness" />
|
||||
<input name="in2" type="float" nodename="roughness_bitangent_clamped" />
|
||||
</combine2>
|
||||
<power name="roughness_anisotropic_squared" type="vector2">
|
||||
<input name="in1" type="vector2" nodename="roughness_linear" />
|
||||
<input name="in2" type="float" value="2" />
|
||||
</power>
|
||||
<max name="roughness_anisotropic_squared_clamped" type="vector2">
|
||||
<input name="in1" type="vector2" nodename="roughness_anisotropic_squared" />
|
||||
<input name="in2" type="float" value="0.000001" />
|
||||
</max>
|
||||
|
||||
<!-- Tangent -->
|
||||
<multiply name="tangent_rotate_degree" type="float">
|
||||
<input name="in1" type="float" interfacename="rotation" />
|
||||
<input name="in2" type="float" value="-360" />
|
||||
</multiply>
|
||||
<subtract name="tangent_rotate_degree_offset" type="float">
|
||||
<input name="in1" type="float" nodename="tangent_rotate_degree" />
|
||||
<input name="in2" type="float" value="0" />
|
||||
</subtract>
|
||||
<rotate3d name="tangent_rotate" type="vector3">
|
||||
<input name="in" type="vector3" interfacename="direction" />
|
||||
<input name="amount" type="float" nodename="tangent_rotate_degree_offset" />
|
||||
<input name="axis" type="vector3" interfacename="normal" />
|
||||
</rotate3d>
|
||||
<normalize name="tangent_rotate_normalize" type="vector3">
|
||||
<input name="in" type="vector3" nodename="tangent_rotate" />
|
||||
</normalize>
|
||||
|
||||
<!-- Interior -->
|
||||
<divide name="absorption" type="color3">
|
||||
<input name="in1" type="color3" interfacename="absorptionColor" />
|
||||
<input name="in2" type="float" interfacename="absorptionRadius" />
|
||||
</divide>
|
||||
<convert name="absorption_vector" type="vector3">
|
||||
<input name="in" type="color3" nodename="absorption" />
|
||||
</convert>
|
||||
<convert name="scatter_vector" type="vector3">
|
||||
<input name="in" type="color3" interfacename="scatterColor" />
|
||||
</convert>
|
||||
<anisotropic_vdf name="interior_vdf" type="VDF">
|
||||
<input name="absorption" type="vector3" nodename="absorption_vector" />
|
||||
<input name="scattering" type="vector3" nodename="scatter_vector" />
|
||||
<input name="anisotropy" type="float" interfacename="scatterAnisotropy" />
|
||||
</anisotropic_vdf>
|
||||
|
||||
<!-- BTDF -->
|
||||
<dielectric_bsdf name="transmission_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="tint" type="color3" interfacename="transmissionTint" />
|
||||
<input name="ior" type="float" nodename="relative_ior" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_anisotropic_squared_clamped" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" nodename="tangent_rotate_normalize" />
|
||||
<input name="distribution" type="string" value="ggx" />
|
||||
<input name="scatter_mode" type="string" value="T" />
|
||||
</dielectric_bsdf>
|
||||
<layer name="transmission_layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="transmission_bsdf" />
|
||||
<input name="base" type="VDF" nodename="interior_vdf" />
|
||||
</layer>
|
||||
|
||||
<!-- BRDF -->
|
||||
<dielectric_bsdf name="reflection_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="tint" type="color3" interfacename="reflectionTint" />
|
||||
<input name="ior" type="float" nodename="relative_ior" />
|
||||
<input name="roughness" type="vector2" nodename="roughness_anisotropic_squared_clamped" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" nodename="tangent_rotate_normalize" />
|
||||
<input name="distribution" type="string" value="ggx" />
|
||||
<input name="scatter_mode" type="string" value="R" />
|
||||
</dielectric_bsdf>
|
||||
|
||||
<!-- BSDF -->
|
||||
<layer name="dielectric_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="reflection_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="transmission_layer" />
|
||||
</layer>
|
||||
|
||||
<!-- Output -->
|
||||
<output name="out" type="BSDF" nodename="dielectric_bsdf" />
|
||||
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
Vendored
+35
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<nodedef name="ND_lama_diffuse" node="LamaDiffuse" nodegroup="pbr" version="1.0" isdefaultversion="true">
|
||||
<input name="color" uiname="Color" type="color3" value="0.18, 0.18, 0.18"
|
||||
doc="Diffuse color (aka albedo), defining what ratio of light is reflected for each color channel." />
|
||||
<input name="roughness" uiname="Roughness" type="float" uimin="0.0" uimax="1.0" value="0.0" doc="Micro-facet distribution (Oren-Nayar) roughness." />
|
||||
<input name="normal" uiname="Normal" type="vector3" defaultgeomprop="Nworld"
|
||||
doc="Shading normal, typically defined by bump or normal mapping. Defaults to the smooth surface normal if not set." />
|
||||
<input name="energyCompensation" uiname="Energy Compensation" uifolder="Advanced" type="float" uniform="true" uimin="0.0" uimax="1.0" value="1.0"
|
||||
doc="Indicates how much energy should be added to compensate for the loss inherent to the Oren-Nayar model, ranging from no compensation at all, to the expected energy from multiple scattering between the micro-facets. This prevents overly dark results when roughness is high." />
|
||||
<input name="lobeName" uiname="Lobe Name" uifolder="Advanced" type="string" uniform="true" value="diffuse"
|
||||
doc="Defines the name that can be used in LPE AOVs for this lobe." />
|
||||
<input name="matte" uiname="Matte" uifolder="Advanced" type="string" uniform="true" value=""
|
||||
doc="Defines the name that can be used by the matte system, to output the weight of this lobe in the final material as an AOV." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="NG_lama_diffuse" nodedef="ND_lama_diffuse">
|
||||
<multiply name="roughness_squared" type="float">
|
||||
<input name="in1" type="float" interfacename="roughness" />
|
||||
<input name="in2" type="float" interfacename="roughness" />
|
||||
</multiply>
|
||||
<multiply name="half_roughness_squared" type="float">
|
||||
<input name="in1" type="float" nodename="roughness_squared" />
|
||||
<input name="in2" type="float" value="0.5" />
|
||||
</multiply>
|
||||
<oren_nayar_diffuse_bsdf name="oren_nayar" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="color" type="color3" interfacename="color" />
|
||||
<input name="roughness" type="float" nodename="half_roughness_squared" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</oren_nayar_diffuse_bsdf>
|
||||
<output name="out" type="BSDF" nodename="oren_nayar" />
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
Vendored
+20
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<nodedef name="ND_lama_emission" node="LamaEmission" nodegroup="pbr" doc="Lama emission" version="1.0" isdefaultversion="true">
|
||||
<input name="color" type="color3" value="1.0, 1.0, 1.0" uiname="Color" uifolder="Main"
|
||||
doc="Color being uniformly emitted in all directions above the surface." />
|
||||
<output name="out" type="EDF" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="IMPL_lama_emission" nodedef="ND_lama_emission">
|
||||
|
||||
<!-- EDF -->
|
||||
<uniform_edf name="emission" type="EDF">
|
||||
<input name="color" type="color3" interfacename="color" />
|
||||
</uniform_edf>
|
||||
|
||||
<!-- Output -->
|
||||
<output name="out" type="EDF" nodename="emission" />
|
||||
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<!-- LamaLayer for BSDFs -->
|
||||
<nodedef name="ND_lama_layer_bsdf" node="LamaLayer" nodegroup="pbr" version="1.0" isdefaultversion="true">
|
||||
<input name="materialTop" uiname="Material Top" type="BSDF"
|
||||
doc="Material used for the top slab. If not set, the base material will be used by itself." />
|
||||
<input name="materialBase" uiname="Material Base" type="BSDF"
|
||||
doc="Base material, right under the top one." />
|
||||
<input name="topMix" uiname="Top Mix" type="float" uimin="0.0" uimax="1.0" value="1.0"
|
||||
doc="Defines how visible the top material is." />
|
||||
<!-- NOTE: The topThickness feature isn't supported by the MaterialX definitions of the nodes right now. -->
|
||||
<input name="topThickness" uiname="Top Thickness" type="float" uimin="0.0" value="0.0"
|
||||
doc="Thickness of the top slab. It is only relevant for interior effects associated with the top material, such as absorption. If the top material is itself a layer node, this value is passed on to its base component. And if the top material is a mix or add, this value is passed on to both child materials." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_lama_layer_bsdf" nodedef="ND_lama_layer_bsdf">
|
||||
<multiply name="mul" type="BSDF">
|
||||
<input name="in1" type="BSDF" interfacename="materialTop" />
|
||||
<input name="in2" type="float" interfacename="topMix" />
|
||||
</multiply>
|
||||
<layer name="layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="mul" />
|
||||
<input name="base" type="BSDF" interfacename="materialBase" />
|
||||
</layer>
|
||||
<output name="out" type="BSDF" nodename="layer" />
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
|
||||
<!-- LamaMix for BSDFs -->
|
||||
<nodedef name="ND_lama_mix_bsdf" node="LamaMix" nodegroup="pbr" version="1.0" isdefaultversion="true">
|
||||
<input name="material1" uiname="Material 1" type="BSDF"
|
||||
doc="First material to mix." />
|
||||
<input name="material2" uiname="Material 2" type="BSDF"
|
||||
doc="Second material to mix." />
|
||||
<input name="mix" type="float" uimin="0.0" uimax="1.0" value="0.0"
|
||||
doc="Defines the balance between the two materials, ranging from 0 (Material 1 only) to 1 (Material 2 only). Can also be seen as a Material 2 over Material 1 mask." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_lama_mix_bsdf" nodedef="ND_lama_mix_bsdf">
|
||||
<mix name="mix" type="BSDF">
|
||||
<input name="fg" type="BSDF" interfacename="material2" />
|
||||
<input name="bg" type="BSDF" interfacename="material1" />
|
||||
<input name="mix" type="float" interfacename="mix" />
|
||||
</mix>
|
||||
<output name="out" type="BSDF" nodename="mix" />
|
||||
</nodegraph>
|
||||
|
||||
<!-- LamaMix for EDFs -->
|
||||
<nodedef name="ND_lama_mix_edf" node="LamaMix" nodegroup="pbr" version="1.0" isdefaultversion="true">
|
||||
<input name="material1" uiname="Material 1" type="EDF"
|
||||
doc="First material to mix." />
|
||||
<input name="material2" uiname="Material 2" type="EDF"
|
||||
doc="Second material to mix." />
|
||||
<input name="mix" type="float" uimin="0.0" uimax="1.0" value="0.0"
|
||||
doc="Defines the balance between the two materials, ranging from 0 (Material 1 only) to 1 (Material 2 only). Can also be seen as a Material 2 over Material 1 mask." />
|
||||
<output name="out" type="EDF" />
|
||||
</nodedef>
|
||||
<nodegraph name="NG_lama_mix_edf" nodedef="ND_lama_mix_edf">
|
||||
<mix name="mix" type="EDF">
|
||||
<input name="fg" type="EDF" interfacename="material2" />
|
||||
<input name="bg" type="EDF" interfacename="material1" />
|
||||
<input name="mix" type="float" interfacename="mix" />
|
||||
</mix>
|
||||
<output name="out" type="EDF" nodename="mix" />
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<nodedef name="ND_lama_sheen" node="LamaSheen" nodegroup="pbr" doc="Lama sheen" version="1.0" isdefaultversion="true">
|
||||
<input name="color" type="color3" value="1, 1, 1" uiname="Color" uifolder="Main"
|
||||
doc="Amount of sheen to add, per channel. When this node is used as top material in a stack, the more sheen is added, the less energy will be transmitted to the base material." />
|
||||
<input name="roughness" type="float" value="0.1" uimin="0.0" uimax="1.0" uiname="Roughness" uifolder="Main"
|
||||
doc="Roughness of the sheen effect. Very rough sheen can be used to create a rough diffuse look (when combined with a diffuse node by a stack or mix)." />
|
||||
<input name="normal" type="vector3" defaultgeomprop="Nworld" uiname="Normal" uifolder="Main"
|
||||
doc="Shading normal, typically defined by bump or normal mapping. Defaults to the smooth surface normal if not set." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="IMPL_lama_sheen" nodedef="ND_lama_sheen">
|
||||
|
||||
<!-- Roughness -->
|
||||
<multiply name="roughness_compressed" type="float">
|
||||
<input name="in1" type="float" interfacename="roughness" />
|
||||
<input name="in2" type="float" value="0.9" />
|
||||
</multiply>
|
||||
<add name="roughness_remapped" type="float">
|
||||
<input name="in1" type="float" nodename="roughness_compressed" />
|
||||
<input name="in2" type="float" value="0.1" />
|
||||
</add>
|
||||
<power name="roughness_squared" type="float">
|
||||
<input name="in1" type="float" nodename="roughness_remapped" />
|
||||
<input name="in2" type="float" value="2" />
|
||||
</power>
|
||||
|
||||
<!-- BRDF -->
|
||||
<sheen_bsdf name="sheen_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="color" type="color3" interfacename="color" />
|
||||
<input name="roughness" type="float" nodename="roughness_squared" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</sheen_bsdf>
|
||||
|
||||
<!-- Output -->
|
||||
<output name="out" type="BSDF" nodename="sheen_bsdf" />
|
||||
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<nodedef name="ND_lama_sss" node="LamaSSS" nodegroup="pbr" doc="Lama SSS" version="1.0" isdefaultversion="true">
|
||||
<input name="color" type="color3" value="0.18, 0.18, 0.18" uiname="Color" uifolder="Main"
|
||||
doc="Diffuse color (aka albedo), defining what ratio of light is reflected -- or transmitted -- for each color channel." />
|
||||
<input name="normal" type="vector3" defaultgeomprop="Nworld" uiname="Normal" uifolder="Main"
|
||||
doc="Shading normal, typically defined by bump or normal mapping. Defaults to the smooth surface normal if not set." />
|
||||
<input name="sssRadius" type="color3" value="0.0, 0.0, 0.0" uiname="Radius" uifolder="SSS"
|
||||
doc="Diffuse Mean Free Path, expressed for each color channel in mm. Indicates on average how much the light travels under the surface before being scattered. The higher the value, the softer the result will be. If null, the computation simplifies to a Lambertian lobe." />
|
||||
<input name="sssScale" type="float" value="1.0" uiname="Scale" uifolder="SSS"
|
||||
doc="Multiplies the radius, to adjust its scale to the scene at hand. If null, the computation simplifies to a Lambertian lobe." />
|
||||
<input name="sssMode" type="integer" uniform="true" enum="Path-traced Davis,Path-traced exponential,Diffusion Burley,Diffusion Burley (mean free path)" enumvalues="0,1,2,3" value="0" uiname="Mode" uifolder="Main"
|
||||
doc="Selects what method should be used to compute sub-surface scattering. Proposes two path-traced variants, and a more traditional approximate diffusion model." />
|
||||
<input name="sssIOR" type="float" value="1.0" uimin="1.0" uimax="2.0" uiname="IOR" uifolder="SSS"
|
||||
doc="Index of refraction use to trigger cases of total internal reflections, when the paths are reaching the surface after having travelled under it. Can be used to avoid excessive glow in highly curved regions (corners, creases, ...)." />
|
||||
<input name="sssAnisotropy" type="float" value="0.0" uimin="-1.0" uimax="1.0" uiname="Anisotropy" uifolder="SSS"
|
||||
doc="Higher values makes light scatter predominantly forward under the surface, making the object look less diffuse and more transparent." />
|
||||
<input name="sssBleed" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Bleed" uifolder="SSS"
|
||||
doc="Controls the depth of light bleed in the subsurface medium. Has the effect of increasing the distance light travels in the medium while preserving fine detail, compared to increasing the Mean Free Path." />
|
||||
<input name="sssFollowTopology" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Follow Topology" uifolder="SSS"
|
||||
doc="Controls how strongly normals are considered in the subsurface computation." />
|
||||
<input name="sssSubset" type="string" uniform="true" value="" uiname="Subset" uifolder="SSS"
|
||||
doc="Specifies trace subset for inclusion/exclusion when struck by a ray indirectly." />
|
||||
<input name="sssContinuationRays" type="integer" value="0" uiname="Continuation Rays" uifolder="SSS"
|
||||
doc="When enabled, ignores internal geometry and jumps to the last surface." />
|
||||
<input name="sssUnitLength" type="float" value="0.00328" uiname="Unit Length" uifolder="SSS"
|
||||
doc="Specifies what unit length the scene is using. It is a multiplier on the mean free path or diffuse mean free path which is expressed in mm. The default value of 0.00328 converts between feet and mm." />
|
||||
<input name="mode" type="integer" uniform="true" enum="Reflection,Transmission,Reflection(with direct illumination)" enumvalues="0,1,2" value="0" uiname="Mode" uifolder="Advanced"
|
||||
doc="If the subsurface is enabled, Reflection: should be used when both the camera and the light are outside of the object. Reflection(with direct illumination): should be used when both the camera and the light are outside of the object. This mode also computes the direct illumination at the sss ray exit point. Transmission: should be used when the light is inside the object while the camera is outside. " />
|
||||
<input name="albedoInversionMethod" type="integer" enum="Pixar,Chiang" enumvalues="0,1" value="0" uiname="Albedo Inversion Method" uifolder="Advanced"
|
||||
doc="Decides which albedo inversion methods is used. Pixar: Does the Pixar Path Traced SSS default albedo inversion. Chiang: Does Chiang's albedo inversion (with no dmfp remapping). The look is closer to Arnold Standard Surface randomwalk." />
|
||||
<input name="diffuseLobeName" type="string" uniform="true" value="diffuse" uiname="Diffuse Lobe Name" uifolder="Advanced"
|
||||
doc="Defines the name that can be used in LPE AOVs for the diffuse lobe (when the SSS radius is null)." />
|
||||
<input name="sssEntryLobeName" type="string" uniform="true" value="irradiance" uiname="SSS Entry Lobe Name" uifolder="Advanced"
|
||||
doc="Defines the name that can be used in LPE AOVs for the SSS Entry lobe." />
|
||||
<input name="sssExitLobeName" type="string" uniform="true" value="" uiname="SSS Exit Lobe Name" uifolder="Advanced"
|
||||
doc="Defines the name that can be used in LPE AOVs for the SSS Exit lobe." />
|
||||
<input name="sssId" type="integer" uniform="true" value="0" enum="0, 1" enumvalues="0, 1" uiname="SSS Id" uifolder="Advanced"
|
||||
doc="SSS ID" />
|
||||
<input name="matte" type="string" uniform="true" value="" uiname="Matte" uifolder="Advanced"
|
||||
doc="Defines the name that can be used by the matte system, to output the weight of this lobe in the final material as an AOV." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="IMPL_lama_sss" nodedef="ND_lama_sss">
|
||||
|
||||
<!-- DMFP -->
|
||||
<convert name="subsurface_radius_vector" type="vector3">
|
||||
<input name="in" type="color3" interfacename="sssRadius" />
|
||||
</convert>
|
||||
<multiply name="subsurface_radius_scaled" type="vector3">
|
||||
<input name="in1" type="vector3" nodename="subsurface_radius_vector" />
|
||||
<input name="in2" type="float" interfacename="sssScale" />
|
||||
</multiply>
|
||||
<multiply name="subsurface_multiply_unitlength" type="vector3">
|
||||
<input name="in1" type="vector3" nodename="subsurface_radius_scaled" />
|
||||
<input name="in2" type="float" interfacename="sssUnitLength" />
|
||||
</multiply>
|
||||
|
||||
<!-- BRDF -->
|
||||
<subsurface_bsdf name="subsurface_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="color" type="color3" interfacename="color" />
|
||||
<input name="radius" type="vector3" nodename="subsurface_multiply_unitlength" />
|
||||
<input name="anisotropy" type="float" interfacename="sssAnisotropy" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</subsurface_bsdf>
|
||||
|
||||
<!-- Output -->
|
||||
<output name="out" type="BSDF" nodename="subsurface_bsdf" />
|
||||
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
Vendored
+26
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38" colorspace="acescg">
|
||||
<nodedef name="ND_lama_translucent" node="LamaTranslucent" nodegroup="pbr" version="1.0" isdefaultversion="true">
|
||||
<input name="color" uiname="Color" type="color3" value="0.18, 0.18, 0.18"
|
||||
doc="Translucent color (aka albedo), defining what ratio of light is transmitted for each color channel." />
|
||||
<input name="roughness" uiname="Roughness" type="float" uimin="0.0" uimax="1.0" value="0.0"
|
||||
doc="Micro-facet distribution (Oren-Nayar) roughness." />
|
||||
<input name="normal" uiname="Normal" type="vector3" defaultgeomprop="Nworld"
|
||||
doc="Shading normal, typically defined by bump or normal mapping. Defaults to the smooth surface normal if not set." />
|
||||
<input name="energyCompensation" uiname="Energy Compensation" uifolder="Advanced" type="float" uniform="true" uimin="0.0" uimax="1.0" value="1.0"
|
||||
doc="Indicates how much energy should be added to compensate for the loss inherent to the Oren-Nayar model, ranging from no compensation at all, to the expected energy from multiple scattering between the micro-facets. This prevents overly dark results when roughness is high." />
|
||||
<input name="lobeName" uiname="Lobe Name" uifolder="Advanced" type="string" uniform="true" value="diffuse"
|
||||
doc="Defines the name that can be used in LPE AOVs for this lobe." />
|
||||
<input name="matte" uiname="Matte" uifolder="Advanced" type="string" uniform="true" value=""
|
||||
doc="Defines the name that can be used by the matte system, to output the weight of this lobe in the final material as an AOV." />
|
||||
<output name="out" type="BSDF" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="NG_lama_translucent" nodedef="ND_lama_translucent">
|
||||
<translucent_bsdf name="translucent_bsdf1" type="BSDF">
|
||||
<input name="color" type="color3" interfacename="color" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</translucent_bsdf>
|
||||
<output name="out" type="BSDF" nodename="translucent_bsdf1" />
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38">
|
||||
<!--
|
||||
OpenPBR Surface node definition
|
||||
-->
|
||||
<nodedef name="ND_open_pbr_surface_surfaceshader" node="open_pbr_surface" nodegroup="pbr" version="1.1" isdefaultversion="true"
|
||||
doc="OpenPBR Surface Shading Model" uiname="OpenPBR Surface">
|
||||
<input name="base_weight" type="float" value="1.0" uimin="0.0" uimax="1.0" uiname="Base Weight" uifolder="Base"
|
||||
doc="Multiplier on the intensity of the reflection from the diffuse and metallic base." />
|
||||
<input name="base_color" type="color3" value="0.8, 0.8, 0.8" uimin="0,0,0" uimax="1,1,1" uiname="Base Color" uifolder="Base"
|
||||
doc="Color of the reflection from the diffuse and metallic base." />
|
||||
<input name="base_diffuse_roughness" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Base Diffuse Roughness" uifolder="Base" uiadvanced="true"
|
||||
doc="Roughness of the diffuse reflection. Higher values cause the surface to appear flatter." />
|
||||
<input name="base_metalness" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Base Metalness" uifolder="Base"
|
||||
doc="Specifies how metallic the base material appears (dials the base from pure dielectric to pure metal)." />
|
||||
<input name="specular_weight" type="float" value="1.0" uimin="0.0" uisoftmax="1.0" uiname="Specular Weight" uifolder="Specular"
|
||||
doc="Multiplies the specular reflectivity." />
|
||||
<input name="specular_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Specular Color" uifolder="Specular"
|
||||
doc="Color of the specular reflection (controls the physical edge-tint for metals, and a non-physical overall tint for dielectrics)." />
|
||||
<input name="specular_roughness" type="float" value="0.3" uimin="0.0" uimax="1.0" uiname="Specular Roughness" uifolder="Specular"
|
||||
doc="The roughness of the specular reflection. Lower numbers produce sharper reflections, higher numbers produce blurrier reflections." />
|
||||
<input name="specular_ior" type="float" value="1.5" uimin="0.0" uisoftmin="1.0" uisoftmax="3.0" uiname="Specular Index of Refraction" uifolder="Specular"
|
||||
doc="Index of refraction of the dielectric base." />
|
||||
<input name="specular_roughness_anisotropy" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Specular Anisotropy" uifolder="Specular" uiadvanced="true"
|
||||
doc="The directional bias of the roughness of the metal/dielectric base, resulting in increasingly stretched highlights along the tangent direction." />
|
||||
<input name="transmission_weight" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Transmission Weight" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Mixture weight between the transparent and opaque dielectric base. The greater the value the more transparent the material." />
|
||||
<input name="transmission_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Transmission Color" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Controls color of the transparent base due to Beer's law volumetric absorption under the surface (reverts to a non-physical tint when transmission_depth is zero)." />
|
||||
<input name="transmission_depth" type="float" value="0.0" uimin="0.0" uisoftmax="1.0" uiname="Transmission Depth" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Specifies the distance light travels inside the transparent base before it becomes exactly the transmission_color according to Beer's law." />
|
||||
<input name="transmission_scatter" type="color3" value="0, 0, 0" uimin="0,0,0" uimax="1,1,1" uiname="Transmission Scatter" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Controls the color of light volumetrically scattered inside the transparent base. Suitable for materials with visually significant scattering such as honey, fruit juice, murky water, opalescent glass, or milky glass." />
|
||||
<input name="transmission_scatter_anisotropy" type="float" value="0.0" uimin="-1.0" uimax="1.0" uiname="Transmission Anisotropy" uifolder="Transmission" uiadvanced="true"
|
||||
doc="The amount of directional bias, or anisotropy, of the volumetric scattering in the transparent base." />
|
||||
<input name="transmission_dispersion_scale" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Transmission Dispersion Scale" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Linearly scales the amount of dispersion." />
|
||||
<input name="transmission_dispersion_abbe_number" type="float" value="20.0" uimin="0.0" uisoftmin="9.0" uisoftmax="91.0" uiname="Transmission Dispersion Abbe Number" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Physical Abbe number of the dielectric medium, describing how much the dielectric index of refraction varies across wavelengths." />
|
||||
<input name="subsurface_weight" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Subsurface Weight" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="Mixture weight which dials the opaque dielectric base between diffuse reflection and subsurface scattering. A value of 1.0 indicates full subsurface scattering and a value 0 for diffuse reflection only." />
|
||||
<input name="subsurface_color" type="color3" value="0.8, 0.8, 0.8" uimin="0,0,0" uimax="1,1,1" uiname="Subsurface Color" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="The observed reflection color of the subsurface scattering medium." />
|
||||
<input name="subsurface_radius" type="float" value="1.0" uimin="0.0" uisoftmax="1.0" uiname="Subsurface Radius" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="Length scale of the subsurface scattering mean free path." />
|
||||
<input name="subsurface_radius_scale" type="color3" value="1.0, 0.5, 0.25" uimin="0,0,0" uimax="1,1,1" uiname="Subsurface Radius Scale" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="RGB multiplier to subsurface_radius, giving the per-channel scattering mean-free-paths." />
|
||||
<input name="subsurface_scatter_anisotropy" type="float" value="0.0" uimin="-1.0" uimax="1.0" uiname="Subsurface Anisotropy" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="Controls the phase-function of subsurface scattering, where zero scatters light evenly, positive values scatter forwards, and negative values scatter backwards." />
|
||||
<input name="fuzz_weight" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Fuzz Weight" uifolder="Fuzz" uiadvanced="true"
|
||||
doc="The presence weight of a fuzz layer that can be used to approximate microfibers, for fabrics such as velvet and satin as well as dust grains." />
|
||||
<input name="fuzz_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Fuzz Color" uifolder="Fuzz" uiadvanced="true"
|
||||
doc="The color of the fuzz layer." />
|
||||
<input name="fuzz_roughness" type="float" value="0.5" uimin="0.0" uimax="1.0" uiname="Fuzz Roughness" uifolder="Fuzz" uiadvanced="true"
|
||||
doc="The roughness of the fuzz layer." />
|
||||
<input name="coat_weight" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Coat Weight" uifolder="Coat"
|
||||
doc="The presence weight of a reflective clear-coat layer on top of the material. Use for materials such as car paint or an oily layer." />
|
||||
<input name="coat_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Coat Color" uifolder="Coat"
|
||||
doc="The color of the clear-coat layer's transparency, due to absorption in the coat." />
|
||||
<input name="coat_roughness" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Coat Roughness" uifolder="Coat"
|
||||
doc="The roughness of the clear-coat reflections. The lower the value, the sharper the reflection." />
|
||||
<input name="coat_roughness_anisotropy" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Coat Anisotropy" uifolder="Coat" uiadvanced="true"
|
||||
doc="The directional bias of the roughness of the clear-coat layer, resulting in increasingly stretched highlights along the coat tangent direction." />
|
||||
<input name="coat_ior" type="float" value="1.6" uimin="0.0" uisoftmin="1.0" uisoftmax="3.0" uiname="Coat Index of Refraction" uifolder="Coat"
|
||||
doc="The index of refraction of the clear-coat layer." />
|
||||
<input name="coat_darkening" type="float" value="1.0" uimin="0.0" uimax="1.0" uiname="Coat Darkening" uifolder="Coat"
|
||||
doc="Modulates the physical coat darkening effect." />
|
||||
<input name="thin_film_weight" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Thin Film Weight" uifolder="Thin Film" uiadvanced="true"
|
||||
doc="Coverage weight of the thin-film. Use for materials such as multi-tone car paint or soap bubbles." />
|
||||
<input name="thin_film_thickness" type="float" value="0.5" uimin="0.0" uisoftmax="1.0" uiname="Thin Film Thickness" uifolder="Thin Film" uiadvanced="true"
|
||||
doc="The thickness of the thin-film layer on the base (in micrometers)." />
|
||||
<input name="thin_film_ior" type="float" value="1.4" uimin="0.0" uisoftmin="1.0" uisoftmax="3.0" uiname="Thin Film Index of Refraction" uifolder="Thin Film" uiadvanced="true"
|
||||
doc="The index of refraction of the thin-film." />
|
||||
<input name="emission_luminance" type="float" value="0.0" uimin="0.0" uisoftmax="1000.0" uiname="Emission Luminance" uifolder="Emission"
|
||||
doc="The amount of emitted light, as a luminance in nits." />
|
||||
<input name="emission_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Emission Color" uifolder="Emission"
|
||||
doc="The color of the emitted light." />
|
||||
<input name="geometry_opacity" type="float" value="1" uimin="0" uimax="1" uiname="Opacity" uifolder="Geometry"
|
||||
doc="The opacity of the entire material." />
|
||||
<input name="geometry_thin_walled" type="boolean" value="false" uiname="Thin Walled" uifolder="Geometry" uiadvanced="true"
|
||||
doc="If true the surface is double-sided and represents an infinitesimally thin shell. Suitable for extremely geometrically thin objects such as leaves or paper." />
|
||||
<input name="geometry_normal" type="vector3" defaultgeomprop="Nworld" uiname="Normal" uifolder="Geometry"
|
||||
doc="Input geometric normal" />
|
||||
<input name="geometry_coat_normal" type="vector3" defaultgeomprop="Nworld" uiname="Coat Normal" uifolder="Geometry"
|
||||
doc="Input normal for coat layer" />
|
||||
<input name="geometry_tangent" type="vector3" defaultgeomprop="Tworld" uiname="Tangent" uifolder="Geometry"
|
||||
doc="Input geometric tangent" />
|
||||
<input name="geometry_coat_tangent" type="vector3" defaultgeomprop="Tworld" uiname="Coat Tangent" uifolder="Geometry"
|
||||
doc="Input geometric tangent for coat layer" />
|
||||
<output name="out" type="surfaceshader" />
|
||||
</nodedef>
|
||||
</materialx>
|
||||
+432
@@ -0,0 +1,432 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38">
|
||||
<!--
|
||||
Autodesk Standard Surface node definition.
|
||||
-->
|
||||
<nodedef name="ND_standard_surface_surfaceshader" node="standard_surface" nodegroup="pbr" version="1.0.1" isdefaultversion="true" inherit="ND_standard_surface_surfaceshader_100"
|
||||
doc="Autodesk standard surface shader">
|
||||
<input name="base" type="float" value="1.0" uimin="0.0" uimax="1.0" uiname="Base" uifolder="Base"
|
||||
doc="Multiplier on the intensity of the diffuse reflection." />
|
||||
<input name="base_color" type="color3" value="0.8, 0.8, 0.8" uimin="0,0,0" uimax="1,1,1" uiname="Base Color" uifolder="Base"
|
||||
doc="Color of the diffuse reflection." />
|
||||
</nodedef>
|
||||
|
||||
<nodedef name="ND_standard_surface_surfaceshader_100" node="standard_surface" nodegroup="pbr" version="1.0.0" doc="Autodesk standard surface shader">
|
||||
<input name="base" type="float" value="0.8" uimin="0.0" uimax="1.0" uiname="Base" uifolder="Base"
|
||||
doc="Multiplier on the intensity of the diffuse reflection." />
|
||||
<input name="base_color" type="color3" value="1.0, 1.0, 1.0" uimin="0,0,0" uimax="1,1,1" uiname="Base Color" uifolder="Base"
|
||||
doc="Color of the diffuse reflection." />
|
||||
<input name="diffuse_roughness" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Diffuse Roughness" uifolder="Base" uiadvanced="true"
|
||||
doc="Roughness of the diffuse reflection. Higher values cause the surface to appear flatter and darker." />
|
||||
<input name="metalness" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Metalness" uifolder="Base"
|
||||
doc="Specifies how metallic the material appears. At its maximum, the surface behaves like a metal, using fully specular reflection and complex fresnel." />
|
||||
<input name="specular" type="float" value="1" uimin="0.0" uimax="1.0" uiname="Specular" uifolder="Specular"
|
||||
doc="Multiplier on the intensity of the specular reflection." />
|
||||
<input name="specular_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Specular Color" uifolder="Specular"
|
||||
doc="Color tint on the specular reflection." />
|
||||
<input name="specular_roughness" type="float" value="0.2" uimin="0.0" uimax="1.0" uiname="Specular Roughness" uifolder="Specular"
|
||||
doc="The roughness of the specular reflection. Lower numbers produce sharper reflections, higher numbers produce blurrier reflections." />
|
||||
<input name="specular_IOR" type="float" value="1.5" uimin="0.0" uisoftmin="1.0" uisoftmax="3.0" uiname="Index of Refraction" uifolder="Specular"
|
||||
doc="Index of refraction for specular reflection." />
|
||||
<input name="specular_anisotropy" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Specular Anisotropy" uifolder="Specular" uiadvanced="true"
|
||||
doc="The directional bias of reflected and transmitted light resulting in materials appearing rougher or glossier in certain directions." />
|
||||
<input name="specular_rotation" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Specular Rotation" uifolder="Specular" uiadvanced="true"
|
||||
doc="Rotation of the axis of specular anisotropy around the surface normal." />
|
||||
<input name="transmission" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Transmission" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Transmission of light through the surface for materials such as glass or water. The greater the value the more transparent the material." />
|
||||
<input name="transmission_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Transmission Color" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Color tint on the transmitted light." />
|
||||
<input name="transmission_depth" type="float" value="0" uimin="0.0" uisoftmax="100.0" uiname="Transmission Depth" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Specifies the distance light travels inside the material before its becomes exactly the transmission color according to Beer's law." />
|
||||
<input name="transmission_scatter" type="color3" value="0, 0, 0" uimin="0,0,0" uimax="1,1,1" uiname="Transmission Scatter" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Scattering coefficient of the interior medium. Suitable for a large body of liquid or one that is fairly thick, such as an ocean, honey, ice, or frosted glass." />
|
||||
<input name="transmission_scatter_anisotropy" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Transmission Anisotropy" uifolder="Transmission" uiadvanced="true"
|
||||
doc="The amount of directional bias, or anisotropy, of the scattering." />
|
||||
<input name="transmission_dispersion" type="float" value="0" uimin="0.0" uisoftmax="100.0" uiname="Transmission Dispersion" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Dispersion amount, describing how much the index of refraction varies across wavelengths." />
|
||||
<input name="transmission_extra_roughness" type="float" value="0" uimin="-1.0" uisoftmin="0.0" uimax="1.0" uiname="Transmission Roughness" uifolder="Transmission" uiadvanced="true"
|
||||
doc="Additional roughness on top of specular roughness. Positive values blur refractions more than reflections, and negative values blur refractions less." />
|
||||
<input name="subsurface" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Subsurface" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="The blend between diffuse reflection and subsurface scattering. A value of 1.0 indicates full subsurface scattering and a value 0 for diffuse reflection only." />
|
||||
<input name="subsurface_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Subsurface Color" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="The color of the subsurface scattering effect." />
|
||||
<input name="subsurface_radius" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Subsurface Radius" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="The mean free path. The distance which light can travel before being scattered inside the surface." />
|
||||
<input name="subsurface_scale" type="float" value="1" uimin="0.0" uisoftmax="10.0" uiname="Subsurface Scale" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="Scalar weight for the subsurface radius value." />
|
||||
<input name="subsurface_anisotropy" type="float" value="0" uimin="-1.0" uimax="1.0" uiname="Subsurface Anisotropy" uifolder="Subsurface" uiadvanced="true"
|
||||
doc="The direction of subsurface scattering. 0 scatters light evenly, positive values scatter forward and negative values scatter backward." />
|
||||
<input name="sheen" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Sheen" uifolder="Sheen" uiadvanced="true"
|
||||
doc="The weight of a sheen layer that can be used to approximate microfibers or fabrics such as velvet and satin." />
|
||||
<input name="sheen_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Sheen Color" uifolder="Sheen" uiadvanced="true"
|
||||
doc="The color of the sheen layer." />
|
||||
<input name="sheen_roughness" type="float" value="0.3" uimin="0.0" uimax="1.0" uiname="Sheen Roughness" uifolder="Sheen" uiadvanced="true"
|
||||
doc="The roughness of the sheen layer." />
|
||||
<input name="coat" type="float" value="0" uimin="0.0" uimax="1.0" uiname="Coat" uifolder="Coat"
|
||||
doc="The weight of a reflective clear-coat layer on top of the material. Use for materials such as car paint or an oily layer." />
|
||||
<input name="coat_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Coat Color" uifolder="Coat"
|
||||
doc="The color of the clear-coat layer's transparency." />
|
||||
<input name="coat_roughness" type="float" value="0.1" uimin="0.0" uimax="1.0" uiname="Coat Roughness" uifolder="Coat"
|
||||
doc="The roughness of the clear-coat reflections. The lower the value, the sharper the reflection." />
|
||||
<input name="coat_anisotropy" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Coat Anisotropy" uifolder="Coat" uiadvanced="true"
|
||||
doc="The amount of directional bias, or anisotropy, of the clear-coat layer." />
|
||||
<input name="coat_rotation" type="float" value="0.0" uimin="0.0" uimax="1.0" uiname="Coat Rotation" uifolder="Coat" uiadvanced="true"
|
||||
doc="The rotation of the anisotropic effect of the clear-coat layer." />
|
||||
<input name="coat_IOR" type="float" value="1.5" uimin="0.0" uisoftmin="1.0" uisoftmax="3.0" uiname="Coat Index of Refraction" uifolder="Coat"
|
||||
doc="The index of refraction of the clear-coat layer." />
|
||||
<input name="coat_normal" type="vector3" defaultgeomprop="Nworld" uiname="Coat normal" uifolder="Coat"
|
||||
doc="Input normal for clear-coat layer" />
|
||||
<input name="coat_affect_color" type="float" value="0" uimin="0" uimax="1" uiname="Coat Affect Color" uifolder="Coat" uiadvanced="true"
|
||||
doc="Controls the saturation of diffuse reflection and subsurface scattering below the clear-coat." />
|
||||
<input name="coat_affect_roughness" type="float" value="0" uimin="0" uimax="1" uiname="Coat Affect Roughness" uifolder="Coat" uiadvanced="true"
|
||||
doc="Controls the roughness of the specular reflection in the layers below the clear-coat." />
|
||||
<input name="thin_film_thickness" type="float" value="0" uimin="0.0" uisoftmax="2000.0" uiname="Thin Film Thickness" uifolder="Thin Film" uiadvanced="true"
|
||||
doc="The thickness of the thin film layer on a surface. Use for materials such as multitone car paint or soap bubbles." />
|
||||
<input name="thin_film_IOR" type="float" value="1.5" uimin="0.0" uisoftmin="1.0" uisoftmax="3.0" uiname="Thin Film Index of Refraction" uifolder="Thin Film" uiadvanced="true"
|
||||
doc="The index of refraction of the medium surrounding the material." />
|
||||
<input name="emission" type="float" value="0" uimin="0.0" uisoftmax="1.0" uiname="Emission" uifolder="Emission"
|
||||
doc="The amount of emitted incandescent light." />
|
||||
<input name="emission_color" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Emission Color" uifolder="Emission"
|
||||
doc="The color of the emitted light." />
|
||||
<input name="opacity" type="color3" value="1, 1, 1" uimin="0,0,0" uimax="1,1,1" uiname="Opacity" uifolder="Geometry"
|
||||
doc="The opacity of the entire material." />
|
||||
<input name="thin_walled" type="boolean" value="false" uiname="Thin Walled" uifolder="Geometry" uiadvanced="true"
|
||||
doc="If true the surface is double-sided and represents an infinitely thin shell. Suitable for thin objects such as tree leaves or paper." />
|
||||
<input name="normal" type="vector3" defaultgeomprop="Nworld" uiname="Normal" uifolder="Geometry"
|
||||
doc="Input geometric normal" />
|
||||
<input name="tangent" type="vector3" defaultgeomprop="Tworld" uiname="Tangent Input" uifolder="Geometry"
|
||||
doc="Input geometric tangent" />
|
||||
<output name="out" type="surfaceshader" />
|
||||
</nodedef>
|
||||
|
||||
<!--
|
||||
Association between implementation and definition.
|
||||
Note that version 1.0.1 only changes default values and thus reuses the same 1.0.0 nodegraph implementation.
|
||||
-->
|
||||
<implementation name="IMPL_standard_surface_surfaceshader_101" nodedef="ND_standard_surface_surfaceshader" nodegraph="NG_standard_surface_surfaceshader_100" />
|
||||
<implementation name="IMPL_standard_surface_surfaceshader_100" nodedef="ND_standard_surface_surfaceshader_100" nodegraph="NG_standard_surface_surfaceshader_100" />
|
||||
|
||||
<!--
|
||||
Autodesk Standard Surface nodegraph implementation.
|
||||
-->
|
||||
<nodegraph name="NG_standard_surface_surfaceshader_100">
|
||||
|
||||
<!-- Roughness influence by coat-->
|
||||
<!-- Calculate main specular roughness -->
|
||||
<multiply name="coat_affect_roughness_multiply1" type="float">
|
||||
<input name="in1" type="float" interfacename="coat_affect_roughness" />
|
||||
<input name="in2" type="float" interfacename="coat" />
|
||||
</multiply>
|
||||
<multiply name="coat_affect_roughness_multiply2" type="float">
|
||||
<input name="in1" type="float" nodename="coat_affect_roughness_multiply1" />
|
||||
<input name="in2" type="float" interfacename="coat_roughness" />
|
||||
</multiply>
|
||||
<mix name="coat_affected_roughness" type="float">
|
||||
<input name="fg" type="float" value="1.0" />
|
||||
<input name="bg" type="float" interfacename="specular_roughness" />
|
||||
<input name="mix" type="float" nodename="coat_affect_roughness_multiply2" />
|
||||
</mix>
|
||||
<roughness_anisotropy name="main_roughness" type="vector2">
|
||||
<input name="roughness" type="float" nodename="coat_affected_roughness" />
|
||||
<input name="anisotropy" type="float" interfacename="specular_anisotropy" />
|
||||
</roughness_anisotropy>
|
||||
<!-- Calculate transmission roughness -->
|
||||
<add name="transmission_roughness_add" type="float">
|
||||
<input name="in1" type="float" interfacename="specular_roughness" />
|
||||
<input name="in2" type="float" interfacename="transmission_extra_roughness" />
|
||||
</add>
|
||||
<clamp name="transmission_roughness_clamped" type="float">
|
||||
<input name="in" type="float" nodename="transmission_roughness_add" />
|
||||
</clamp>
|
||||
<mix name="coat_affected_transmission_roughness" type="float">
|
||||
<input name="fg" type="float" value="1.0" />
|
||||
<input name="bg" type="float" nodename="transmission_roughness_clamped" />
|
||||
<input name="mix" type="float" nodename="coat_affect_roughness_multiply2" />
|
||||
</mix>
|
||||
<roughness_anisotropy name="transmission_roughness" type="vector2">
|
||||
<input name="roughness" type="float" nodename="coat_affected_transmission_roughness" />
|
||||
<input name="anisotropy" type="float" interfacename="specular_anisotropy" />
|
||||
</roughness_anisotropy>
|
||||
|
||||
<!-- Tangent rotation -->
|
||||
<multiply name="tangent_rotate_degree" type="float">
|
||||
<input name="in1" type="float" interfacename="specular_rotation" />
|
||||
<input name="in2" type="float" value="360" />
|
||||
</multiply>
|
||||
<rotate3d name="tangent_rotate" type="vector3">
|
||||
<input name="in" type="vector3" interfacename="tangent" />
|
||||
<input name="amount" type="float" nodename="tangent_rotate_degree" />
|
||||
<input name="axis" type="vector3" interfacename="normal" />
|
||||
</rotate3d>
|
||||
<normalize name="tangent_rotate_normalize" type="vector3">
|
||||
<input name="in" type="vector3" nodename="tangent_rotate" />
|
||||
</normalize>
|
||||
<ifgreater name="main_tangent" type="vector3">
|
||||
<input name="value1" type="float" interfacename="specular_anisotropy" />
|
||||
<input name="value2" type="float" value="0.0" />
|
||||
<input name="in1" type="vector3" nodename="tangent_rotate_normalize" />
|
||||
<input name="in2" type="vector3" interfacename="tangent" />
|
||||
</ifgreater>
|
||||
|
||||
<!-- Coat tangent rotation -->
|
||||
<multiply name="coat_tangent_rotate_degree" type="float">
|
||||
<input name="in1" type="float" interfacename="coat_rotation" />
|
||||
<input name="in2" type="float" value="360" />
|
||||
</multiply>
|
||||
<rotate3d name="coat_tangent_rotate" type="vector3">
|
||||
<input name="in" type="vector3" interfacename="tangent" />
|
||||
<input name="amount" type="float" nodename="coat_tangent_rotate_degree" />
|
||||
<input name="axis" type="vector3" interfacename="coat_normal" />
|
||||
</rotate3d>
|
||||
<normalize name="coat_tangent_rotate_normalize" type="vector3">
|
||||
<input name="in" type="vector3" nodename="coat_tangent_rotate" />
|
||||
</normalize>
|
||||
<ifgreater name="coat_tangent" type="vector3">
|
||||
<input name="value1" type="float" interfacename="coat_anisotropy" />
|
||||
<input name="value2" type="float" value="0.0" />
|
||||
<input name="in1" type="vector3" nodename="coat_tangent_rotate_normalize" />
|
||||
<input name="in2" type="vector3" interfacename="tangent" />
|
||||
</ifgreater>
|
||||
|
||||
<!-- Colors influenced by coat ("coat gamma") -->
|
||||
<clamp name="coat_clamped" type="float">
|
||||
<input name="in" type="float" interfacename="coat" />
|
||||
</clamp>
|
||||
<multiply name="coat_gamma_multiply" type="float">
|
||||
<input name="in1" type="float" nodename="coat_clamped" />
|
||||
<input name="in2" type="float" interfacename="coat_affect_color" />
|
||||
</multiply>
|
||||
<add name="coat_gamma" type="float">
|
||||
<input name="in1" type="float" nodename="coat_gamma_multiply" />
|
||||
<input name="in2" type="float" value="1.0" />
|
||||
</add>
|
||||
<max name="base_color_nonnegative" type="color3">
|
||||
<input name="in1" type="color3" interfacename="base_color" />
|
||||
<input name="in2" type="float" value="0.0" />
|
||||
</max>
|
||||
<power name="coat_affected_diffuse_color" type="color3">
|
||||
<input name="in1" type="color3" nodename="base_color_nonnegative" />
|
||||
<input name="in2" type="float" nodename="coat_gamma" />
|
||||
</power>
|
||||
<max name="subsurface_color_nonnegative" type="color3">
|
||||
<input name="in1" type="color3" interfacename="subsurface_color" />
|
||||
<input name="in2" type="float" value="0.0" />
|
||||
</max>
|
||||
<power name="coat_affected_subsurface_color" type="color3">
|
||||
<input name="in1" type="color3" nodename="subsurface_color_nonnegative" />
|
||||
<input name="in2" type="float" nodename="coat_gamma" />
|
||||
</power>
|
||||
|
||||
<!-- Diffuse/Subsurface Layer -->
|
||||
<oren_nayar_diffuse_bsdf name="diffuse_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" interfacename="base" />
|
||||
<input name="color" type="color3" nodename="coat_affected_diffuse_color" />
|
||||
<input name="roughness" type="float" interfacename="diffuse_roughness" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</oren_nayar_diffuse_bsdf>
|
||||
<translucent_bsdf name="translucent_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="color" type="color3" nodename="coat_affected_subsurface_color" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</translucent_bsdf>
|
||||
<convert name="subsurface_radius_vector" type="vector3">
|
||||
<input name="in" type="color3" interfacename="subsurface_radius" />
|
||||
</convert>
|
||||
<multiply name="subsurface_radius_scaled" type="vector3">
|
||||
<input name="in1" type="vector3" nodename="subsurface_radius_vector" />
|
||||
<input name="in2" type="float" interfacename="subsurface_scale" />
|
||||
</multiply>
|
||||
<subsurface_bsdf name="subsurface_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="color" type="color3" nodename="coat_affected_subsurface_color" />
|
||||
<input name="radius" type="vector3" nodename="subsurface_radius_scaled" />
|
||||
<input name="anisotropy" type="float" interfacename="subsurface_anisotropy" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</subsurface_bsdf>
|
||||
<convert name="subsurface_selector" type="float">
|
||||
<input name="in" type="boolean" interfacename="thin_walled" />
|
||||
</convert>
|
||||
<mix name="selected_subsurface_bsdf" type="BSDF">
|
||||
<input name="fg" type="BSDF" nodename="translucent_bsdf" />
|
||||
<input name="bg" type="BSDF" nodename="subsurface_bsdf" />
|
||||
<input name="mix" type="float" nodename="subsurface_selector" />
|
||||
</mix>
|
||||
<mix name="subsurface_mix" type="BSDF">
|
||||
<input name="fg" type="BSDF" nodename="selected_subsurface_bsdf" />
|
||||
<input name="bg" type="BSDF" nodename="diffuse_bsdf" />
|
||||
<input name="mix" type="float" interfacename="subsurface" />
|
||||
</mix>
|
||||
|
||||
<!-- Sheen Layer -->
|
||||
<sheen_bsdf name="sheen_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" interfacename="sheen" />
|
||||
<input name="color" type="color3" interfacename="sheen_color" />
|
||||
<input name="roughness" type="float" interfacename="sheen_roughness" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
</sheen_bsdf>
|
||||
<layer name="sheen_layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="sheen_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="subsurface_mix" />
|
||||
</layer>
|
||||
|
||||
<!-- Transmission Layer -->
|
||||
<dielectric_bsdf name="transmission_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="tint" type="color3" interfacename="transmission_color" />
|
||||
<input name="ior" type="float" interfacename="specular_IOR" />
|
||||
<input name="roughness" type="vector2" nodename="transmission_roughness" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" nodename="main_tangent" />
|
||||
<input name="distribution" type="string" value="ggx" />
|
||||
<input name="scatter_mode" type="string" value="T" />
|
||||
</dielectric_bsdf>
|
||||
<mix name="transmission_mix" type="BSDF">
|
||||
<input name="fg" type="BSDF" nodename="transmission_bsdf" />
|
||||
<input name="bg" type="BSDF" nodename="sheen_layer" />
|
||||
<input name="mix" type="float" interfacename="transmission" />
|
||||
</mix>
|
||||
|
||||
<!-- Specular Layer -->
|
||||
<dielectric_bsdf name="specular_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" interfacename="specular" />
|
||||
<input name="tint" type="color3" interfacename="specular_color" />
|
||||
<input name="ior" type="float" interfacename="specular_IOR" />
|
||||
<input name="roughness" type="vector2" nodename="main_roughness" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" nodename="main_tangent" />
|
||||
<input name="distribution" type="string" value="ggx" />
|
||||
<input name="scatter_mode" type="string" value="R" />
|
||||
</dielectric_bsdf>
|
||||
<layer name="specular_layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="specular_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="transmission_mix" />
|
||||
</layer>
|
||||
|
||||
<!-- Metal Layer -->
|
||||
<multiply name="metal_reflectivity" type="color3">
|
||||
<input name="in1" type="color3" interfacename="base_color" />
|
||||
<input name="in2" type="float" interfacename="base" />
|
||||
</multiply>
|
||||
<multiply name="metal_edgecolor" type="color3">
|
||||
<input name="in1" type="color3" interfacename="specular_color" />
|
||||
<input name="in2" type="float" interfacename="specular" />
|
||||
</multiply>
|
||||
<artistic_ior name="artistic_ior" type="multioutput">
|
||||
<input name="reflectivity" type="color3" nodename="metal_reflectivity" />
|
||||
<input name="edge_color" type="color3" nodename="metal_edgecolor" />
|
||||
</artistic_ior>
|
||||
<conductor_bsdf name="metal_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1.0" />
|
||||
<input name="ior" type="color3" nodename="artistic_ior" output="ior" />
|
||||
<input name="extinction" type="color3" nodename="artistic_ior" output="extinction" />
|
||||
<input name="roughness" type="vector2" nodename="main_roughness" />
|
||||
<input name="normal" type="vector3" interfacename="normal" />
|
||||
<input name="tangent" type="vector3" nodename="main_tangent" />
|
||||
<input name="distribution" type="string" value="ggx" />
|
||||
</conductor_bsdf>
|
||||
<mix name="metalness_mix" type="BSDF">
|
||||
<input name="fg" type="BSDF" nodename="metal_bsdf" />
|
||||
<input name="bg" type="BSDF" nodename="specular_layer" />
|
||||
<input name="mix" type="float" interfacename="metalness" />
|
||||
</mix>
|
||||
|
||||
<!-- Thin-film Layer -->
|
||||
<thin_film_bsdf name="thin_film_bsdf" type="BSDF">
|
||||
<input name="thickness" type="float" interfacename="thin_film_thickness" />
|
||||
<input name="ior" type="float" interfacename="thin_film_IOR" />
|
||||
</thin_film_bsdf>
|
||||
<layer name="thin_film_layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="thin_film_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="metalness_mix" />
|
||||
</layer>
|
||||
|
||||
<!-- Coat Layer -->
|
||||
<mix name="coat_attenuation" type="color3">
|
||||
<input name="fg" type="color3" interfacename="coat_color" />
|
||||
<input name="bg" type="color3" value="1.0, 1.0, 1.0" />
|
||||
<input name="mix" type="float" interfacename="coat" />
|
||||
</mix>
|
||||
<multiply name="thin_film_layer_attenuated" type="BSDF">
|
||||
<input name="in1" type="BSDF" nodename="thin_film_layer" />
|
||||
<input name="in2" type="color3" nodename="coat_attenuation" />
|
||||
</multiply>
|
||||
<roughness_anisotropy name="coat_roughness_vector" type="vector2">
|
||||
<input name="roughness" type="float" interfacename="coat_roughness" />
|
||||
<input name="anisotropy" type="float" interfacename="coat_anisotropy" />
|
||||
</roughness_anisotropy>
|
||||
<dielectric_bsdf name="coat_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" interfacename="coat" />
|
||||
<input name="tint" type="color3" value="1.0, 1.0, 1.0" />
|
||||
<input name="ior" type="float" interfacename="coat_IOR" />
|
||||
<input name="roughness" type="vector2" nodename="coat_roughness_vector" />
|
||||
<input name="normal" type="vector3" interfacename="coat_normal" />
|
||||
<input name="tangent" type="vector3" nodename="coat_tangent" />
|
||||
<input name="distribution" type="string" value="ggx" />
|
||||
<input name="scatter_mode" type="string" value="R" />
|
||||
</dielectric_bsdf>
|
||||
<layer name="coat_layer" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="coat_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="thin_film_layer_attenuated" />
|
||||
</layer>
|
||||
|
||||
<!-- Emission Layer -->
|
||||
<subtract name="one_minus_coat_ior" type="float">
|
||||
<input name="in1" type="float" value="1.0" />
|
||||
<input name="in2" type="float" interfacename="coat_IOR" />
|
||||
</subtract>
|
||||
<add name="one_plus_coat_ior" type="float">
|
||||
<input name="in1" type="float" value="1.0" />
|
||||
<input name="in2" type="float" interfacename="coat_IOR" />
|
||||
</add>
|
||||
<divide name="coat_ior_to_F0_sqrt" type="float">
|
||||
<input name="in1" type="float" nodename="one_minus_coat_ior" />
|
||||
<input name="in2" type="float" nodename="one_plus_coat_ior" />
|
||||
</divide>
|
||||
<multiply name="coat_ior_to_F0" type="float">
|
||||
<input name="in1" type="float" nodename="coat_ior_to_F0_sqrt" />
|
||||
<input name="in2" type="float" nodename="coat_ior_to_F0_sqrt" />
|
||||
</multiply>
|
||||
<subtract name="one_minus_coat_ior_to_F0" type="float">
|
||||
<input name="in1" type="float" value="1.0" />
|
||||
<input name="in2" type="float" nodename="coat_ior_to_F0" />
|
||||
</subtract>
|
||||
<multiply name="emission_weight" type="color3">
|
||||
<input name="in1" type="color3" interfacename="emission_color" />
|
||||
<input name="in2" type="float" interfacename="emission" />
|
||||
</multiply>
|
||||
<uniform_edf name="emission_edf" type="EDF">
|
||||
<input name="color" type="color3" nodename="emission_weight" />
|
||||
</uniform_edf>
|
||||
<multiply name="coat_tinted_emission_edf" type="EDF">
|
||||
<input name="in1" type="EDF" nodename="emission_edf" />
|
||||
<input name="in2" type="color3" interfacename="coat_color" />
|
||||
</multiply>
|
||||
<generalized_schlick_edf name="coat_emission_edf" type="EDF">
|
||||
<input name="color0" type="color3" nodename="one_minus_coat_ior_to_F0" channels="rrr" />
|
||||
<input name="color90" type="color3" value="0.0, 0.0, 0.0" />
|
||||
<input name="exponent" type="float" value="5.0" />
|
||||
<input name="base" type="EDF" nodename="coat_tinted_emission_edf" />
|
||||
</generalized_schlick_edf>
|
||||
<mix name="blended_coat_emission_edf" type="EDF">
|
||||
<input name="fg" type="EDF" nodename="coat_emission_edf" />
|
||||
<input name="bg" type="EDF" nodename="emission_edf" />
|
||||
<input name="mix" type="float" interfacename="coat" />
|
||||
</mix>
|
||||
|
||||
<!-- Surface construction with opacity -->
|
||||
<!-- Node <surface> only supports monochromatic opacity so use the luminance of input opacity color -->
|
||||
<luminance name="opacity_luminance" type="color3">
|
||||
<input name="in" type="color3" interfacename="opacity" />
|
||||
</luminance>
|
||||
<surface name="shader_constructor" type="surfaceshader">
|
||||
<input name="bsdf" type="BSDF" nodename="coat_layer" />
|
||||
<input name="edf" type="EDF" nodename="blended_coat_emission_edf" />
|
||||
<input name="opacity" type="float" nodename="opacity_luminance" channels="r" />
|
||||
</surface>
|
||||
|
||||
<!-- Output -->
|
||||
<output name="out" type="surfaceshader" nodename="shader_constructor" />
|
||||
|
||||
</nodegraph>
|
||||
|
||||
</materialx>
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38">
|
||||
|
||||
<nodedef name="ND_standard_surface_to_gltf_pbr" node="standard_surface_to_gltf_pbr" nodegroup="translation">
|
||||
<input name="base" type="float" value="1" />
|
||||
<input name="base_color" type="color3" value="0.8, 0.8, 0.8" />
|
||||
<input name="metalness" type="float" value="0" />
|
||||
<input name="specular_roughness" type="float" value="0.2" />
|
||||
<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="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="0" />
|
||||
<input name="coat_color" type="color3" value="0, 0, 0" />
|
||||
<input name="coat_roughness" type="float" value="0.1" />
|
||||
<input name="emission" type="float" value="0" />
|
||||
<input name="emission_color" type="color3" value="1, 1, 1" />
|
||||
|
||||
<output name="base_color_out" type="color3" />
|
||||
<output name="metallic_out" type="float" />
|
||||
<output name="roughness_out" type="float" />
|
||||
<output name="transmission_out" type="float" />
|
||||
<output name="thickness_out" type="float" />
|
||||
<output name="attenuation_color_out" type="color3" />
|
||||
<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="emissive_out" type="color3" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="NG_standard_surface_to_gltf_pbr" nodedef="ND_standard_surface_to_gltf_pbr">
|
||||
|
||||
<!-- Coat attenuation -->
|
||||
<dotproduct name="has_coat_color" type="float">
|
||||
<input name="in1" type="vector3" interfacename="coat_color" channels="rgb" />
|
||||
<input name="in2" type="vector3" value="1,1,1" />
|
||||
</dotproduct>
|
||||
<multiply name="scaledBaseColor" type="color3">
|
||||
<input name="in1" type="color3" interfacename="base_color" />
|
||||
<input name="in2" type="float" interfacename="base" />
|
||||
</multiply>
|
||||
<mix name="coatAttenuation" type="color3">
|
||||
<input name="fg" type="color3" interfacename="coat_color" />
|
||||
<input name="bg" type="color3" value="1.0, 1.0, 1.0" />
|
||||
<input name="mix" type="float" interfacename="coat" />
|
||||
</mix>
|
||||
<multiply name="mixedBaseColor" type="color3">
|
||||
<input name="in1" type="color3" nodename="scaledBaseColor" />
|
||||
<input name="in2" type="color3" nodename="coatAttenuation" />
|
||||
</multiply>
|
||||
<divide name="constantOneThird" type="float">
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" value="3" />
|
||||
</divide>
|
||||
<multiply name="coatColor" type="color3">
|
||||
<input name="in1" type="color3" interfacename="coat_color" />
|
||||
<input name="in2" type="float" interfacename="coat" />
|
||||
</multiply>
|
||||
<dotproduct name="weightedCoat" type="float">
|
||||
<input name="in1" type="vector3" nodename="coatColor" channels="rgb" />
|
||||
<input name="in2" type="vector3" nodename="constantOneThird" channels="xxx" />
|
||||
</dotproduct>
|
||||
|
||||
<!-- Metallic roughness -->
|
||||
<ifequal name="base_color" type="color3">
|
||||
<input name="value1" type="float" nodename="has_coat_color" />
|
||||
<input name="value2" type="float" value="0" />
|
||||
<input name="in1" type="color3" nodename="scaledBaseColor" />
|
||||
<input name="in2" type="color3" nodename="mixedBaseColor" />
|
||||
</ifequal>
|
||||
<dot name="metallic" type="float">
|
||||
<input name="in" type="float" interfacename="metalness" />
|
||||
</dot>
|
||||
<dot name="roughness" type="float">
|
||||
<input name="in" type="float" interfacename="specular_roughness" />
|
||||
</dot>
|
||||
|
||||
<!-- Transmission -->
|
||||
<dot name="transmission" type="float">
|
||||
<input name="in" type="float" interfacename="transmission" />
|
||||
</dot>
|
||||
<dot name="thickness" type="float">
|
||||
<input name="in" type="float" interfacename="transmission_depth" />
|
||||
</dot>
|
||||
<dot name="attenuation_color" type="color3">
|
||||
<input name="in" type="color3" interfacename="transmission_color" />
|
||||
</dot>
|
||||
|
||||
<!-- Sheen -->
|
||||
<multiply name="sheen_color" type="color3">
|
||||
<input name="in1" type="color3" interfacename="sheen_color" />
|
||||
<input name="in2" type="float" interfacename="sheen" />
|
||||
</multiply>
|
||||
<ifgreater name="sheen_roughness" type="float">
|
||||
<input name="value1" type="float" interfacename="sheen" />
|
||||
<input name="value2" type="float" value="0" />
|
||||
<input name="in1" type="float" interfacename="sheen_roughness" />
|
||||
<input name="in2" type="float" value="0" />
|
||||
</ifgreater>
|
||||
|
||||
<!-- Clearcoat -->
|
||||
<ifequal name="clearcoat" type="float">
|
||||
<input name="value1" type="float" nodename="has_coat_color" />
|
||||
<input name="value2" type="float" value="0" />
|
||||
<input name="in1" type="float" interfacename="coat" />
|
||||
<input name="in2" type="float" nodename="weightedCoat" />
|
||||
</ifequal>
|
||||
<dot name="clearcoat_roughness" type="float">
|
||||
<input name="in" type="float" interfacename="coat_roughness" />
|
||||
</dot>
|
||||
|
||||
<!-- Emission -->
|
||||
<multiply name="emissive" type="color3">
|
||||
<input name="in1" type="color3" interfacename="emission_color" />
|
||||
<input name="in2" type="float" interfacename="emission" />
|
||||
</multiply>
|
||||
|
||||
<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="transmission_out" type="float" nodename="transmission" />
|
||||
<output name="thickness_out" type="float" nodename="thickness" />
|
||||
<output name="attenuation_color_out" type="color3" nodename="attenuation_color" />
|
||||
<output name="sheen_color_out" type="color3" nodename="sheen_color" />
|
||||
<output name="sheen_roughness_out" type="float" nodename="sheen_roughness" />
|
||||
<output name="clearcoat_out" type="float" nodename="clearcoat" />
|
||||
<output name="clearcoat_roughness_out" type="float" nodename="clearcoat_roughness" />
|
||||
<output name="emissive_out" type="color3" nodename="emissive" />
|
||||
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38">
|
||||
|
||||
<nodedef name="ND_standard_surface_to_UsdPreviewSurface" node="standard_surface_to_UsdPreviewSurface" nodegroup="translation">
|
||||
<input name="metalness" type="float" value="0" />
|
||||
<input name="base" type="float" value="1" />
|
||||
<input name="base_color" type="color3" value="0.8, 0.8, 0.8" />
|
||||
<input name="specular" type="float" value="1" />
|
||||
<input name="specular_color" type="color3" value="1, 1, 1" />
|
||||
<input name="specular_IOR" type="float" value="1.5" />
|
||||
<input name="specular_roughness" type="float" value="0.2" />
|
||||
<input name="coat" type="float" value="0" />
|
||||
<input name="coat_color" type="color3" value="1, 1, 1" />
|
||||
<input name="coat_roughness" type="float" value="0.1" />
|
||||
<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="normal" type="vector3" value="0.5, 0.5, 1.0" />
|
||||
|
||||
<output name="diffuseColor_out" type="color3" />
|
||||
<output name="emissiveColor_out" type="color3" />
|
||||
<output name="metallic_out" type="float" />
|
||||
<output name="roughness_out" type="float" />
|
||||
<output name="clearcoat_out" type="float" />
|
||||
<output name="clearcoatRoughness_out" type="float" />
|
||||
<output name="opacity_out" type="float" />
|
||||
<output name="ior_out" type="float" />
|
||||
<output name="normal_out" type="vector3" />
|
||||
</nodedef>
|
||||
|
||||
<nodegraph name="NG_standard_surface_to_UsdPreviewSurface" nodedef="ND_standard_surface_to_UsdPreviewSurface">
|
||||
|
||||
<!-- Constants -->
|
||||
<divide name="constantOneThird" type="float">
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" value="3" />
|
||||
</divide>
|
||||
|
||||
<!-- Diffuse/Specular -->
|
||||
<dot name="metallic" type="float">
|
||||
<input name="in" type="float" interfacename="metalness" />
|
||||
</dot>
|
||||
<multiply name="scaledBaseColor" type="color3">
|
||||
<input name="in1" type="color3" interfacename="base_color" />
|
||||
<input name="in2" type="float" interfacename="base" />
|
||||
</multiply>
|
||||
<mix name="coatAttenuation" type="color3">
|
||||
<input name="fg" type="color3" interfacename="coat_color" />
|
||||
<input name="bg" type="color3" value="1.0, 1.0, 1.0" />
|
||||
<input name="mix" type="float" interfacename="coat" />
|
||||
</mix>
|
||||
<multiply name="diffuseColor" type="color3">
|
||||
<input name="in1" type="color3" nodename="scaledBaseColor" />
|
||||
<input name="in2" type="color3" nodename="coatAttenuation" />
|
||||
</multiply>
|
||||
<dot name="roughness" type="float">
|
||||
<input name="in" type="float" interfacename="specular_roughness" />
|
||||
</dot>
|
||||
<dot name="ior" type="float">
|
||||
<input name="in" type="float" interfacename="specular_IOR" />
|
||||
</dot>
|
||||
|
||||
<!-- Clearcoat -->
|
||||
<multiply name="coatColor" type="color3">
|
||||
<input name="in1" type="color3" interfacename="coat_color" />
|
||||
<input name="in2" type="float" interfacename="coat" />
|
||||
</multiply>
|
||||
<dotproduct name="clearcoat" type="float">
|
||||
<input name="in1" type="vector3" nodename="coatColor" channels="rgb" />
|
||||
<input name="in2" type="vector3" nodename="constantOneThird" channels="xxx" />
|
||||
</dotproduct>
|
||||
<dot name="clearcoatRoughness" type="float">
|
||||
<input name="in" type="float" interfacename="coat_roughness" />
|
||||
</dot>
|
||||
|
||||
<!-- Emissive -->
|
||||
<multiply name="emissiveColor" type="color3">
|
||||
<input name="in1" type="color3" interfacename="emission_color" />
|
||||
<input name="in2" type="float" interfacename="emission" />
|
||||
</multiply>
|
||||
|
||||
<!-- Opacity -->
|
||||
<dotproduct name="opacity" type="float">
|
||||
<input name="in1" type="vector3" interfacename="opacity" channels="rgb" />
|
||||
<input name="in2" type="vector3" nodename="constantOneThird" channels="xxx" />
|
||||
</dotproduct>
|
||||
|
||||
<!-- Normal Map -->
|
||||
<subtract name="biasNormal" type="vector3">
|
||||
<input name="in1" type="vector3" interfacename="normal" />
|
||||
<input name="in2" type="float" value="0.5" />
|
||||
</subtract>
|
||||
<multiply name="normal" type="vector3">
|
||||
<input name="in1" type="vector3" nodename="biasNormal" />
|
||||
<input name="in2" type="float" value="2" />
|
||||
</multiply>
|
||||
|
||||
<output name="diffuseColor_out" type="color3" nodename="diffuseColor" />
|
||||
<output name="emissiveColor_out" type="color3" nodename="emissiveColor" />
|
||||
<output name="metallic_out" type="float" nodename="metallic" />
|
||||
<output name="roughness_out" type="float" nodename="roughness" />
|
||||
<output name="clearcoat_out" type="float" nodename="clearcoat" />
|
||||
<output name="clearcoatRoughness_out" type="float" nodename="clearcoatRoughness" />
|
||||
<output name="opacity_out" type="float" nodename="opacity" />
|
||||
<output name="ior_out" type="float" nodename="ior" />
|
||||
<output name="normal_out" type="vector3" nodename="normal" />
|
||||
</nodegraph>
|
||||
</materialx>
|
||||
Vendored
+396
@@ -0,0 +1,396 @@
|
||||
<?xml version="1.0"?>
|
||||
<materialx version="1.38">
|
||||
|
||||
<!-- ======================================================================== -->
|
||||
<!-- USD Preview Surface node definitions -->
|
||||
<!-- ======================================================================== -->
|
||||
|
||||
<!-- Node: UsdPreviewSurface -->
|
||||
<nodedef name="ND_UsdPreviewSurface_surfaceshader" node="UsdPreviewSurface" nodegroup="pbr" doc="USD preview surface shader" version="2.3" isdefaultversion="true">
|
||||
<input name="diffuseColor" type="color3" value="0.18, 0.18, 0.18" uimin="0,0,0" uimax="1,1,1" />
|
||||
<input name="emissiveColor" type="color3" value="0, 0, 0" uimin="0,0,0" uisoftmax="1,1,1" />
|
||||
<input name="useSpecularWorkflow" type="integer" value="0" uimin="0" uimax="1" uistep="1" />
|
||||
<input name="specularColor" type="color3" value="0, 0, 0" uimin="0,0,0" uimax="1,1,1" />
|
||||
<input name="metallic" type="float" value="0" uimin="0.0" uimax="1.0" />
|
||||
<input name="roughness" type="float" value="0.5" uimin="0.0" uimax="1.0" />
|
||||
<input name="clearcoat" type="float" value="0" uimin="0.0" uimax="1.0" />
|
||||
<input name="clearcoatRoughness" type="float" value="0.01" uimin="0.0" uimax="1.0" />
|
||||
<input name="opacity" type="float" value="1" uimin="0.0" uimax="1.0" />
|
||||
<input name="opacityThreshold" type="float" value="0" uimin="0.0" uimax="1.0" />
|
||||
<input name="ior" type="float" value="1.5" uimin="0.0" uisoftmin="1.0" uisoftmax="3.0" />
|
||||
<input name="normal" type="vector3" value="0, 0, 1" uimin="-1.0,-1.0,-1.0" uimax="1.0,1.0,1.0" uistep="0.01" />
|
||||
<input name="displacement" type="float" value="0" />
|
||||
<input name="occlusion" type="float" value="1" uimin="0.0" uimax="1.0" />
|
||||
<output name="out" type="surfaceshader" />
|
||||
</nodedef>
|
||||
|
||||
<!-- Node: UsdUVTexture -->
|
||||
<nodedef name="ND_UsdUVTexture" node="UsdUVTexture" nodegroup="texture2d" version="2.2" inherit="ND_UsdUVTexture_23">
|
||||
<output name="r" type="float" />
|
||||
<output name="g" type="float" />
|
||||
<output name="b" type="float" />
|
||||
<output name="a" type="float" />
|
||||
<output name="rgb" type="color3" />
|
||||
<output name="rgba" type="color4" />
|
||||
</nodedef>
|
||||
|
||||
<nodedef name="ND_UsdUVTexture_23" node="UsdUVTexture" nodegroup="texture2d" version="2.3" isdefaultversion="true">
|
||||
<input name="file" type="filename" value="" uniform="true" />
|
||||
<input name="st" type="vector2" defaultgeomprop="UV0" />
|
||||
<input name="wrapS" type="string" value="periodic" enum="black,clamp,periodic,mirror" uniform="true" />
|
||||
<input name="wrapT" type="string" value="periodic" enum="black,clamp,periodic,mirror" uniform="true" />
|
||||
<input name="fallback" type="color4" value="0, 0, 0, 1" />
|
||||
<input name="scale" type="color4" value="1, 1, 1, 1" uniform="true" />
|
||||
<input name="bias" type="color4" value="0, 0, 0, 0" uniform="true" />
|
||||
<output name="r" type="float" />
|
||||
<output name="g" type="float" />
|
||||
<output name="b" type="float" />
|
||||
<output name="a" type="float" />
|
||||
<output name="rgb" type="color3" />
|
||||
</nodedef>
|
||||
|
||||
<!-- Node: UsdPrimvarReader -->
|
||||
<nodedef name="ND_UsdPrimvarReader_integer" nodegroup="geometric" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" value="" uniform="true" />
|
||||
<input name="fallback" type="integer" value="0" />
|
||||
<output name="out" type="integer" />
|
||||
</nodedef>
|
||||
<nodedef name="ND_UsdPrimvarReader_boolean" nodegroup="geometric" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" value="" uniform="true" />
|
||||
<input name="fallback" type="boolean" value="false" />
|
||||
<output name="out" type="boolean" />
|
||||
</nodedef>
|
||||
<nodedef name="ND_UsdPrimvarReader_string" nodegroup="geometric" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" value="" uniform="true" />
|
||||
<input name="fallback" type="string" value="" />
|
||||
<output name="out" type="string" />
|
||||
</nodedef>
|
||||
<nodedef name="ND_UsdPrimvarReader_float" nodegroup="geometric" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" value="" uniform="true" />
|
||||
<input name="fallback" type="float" value="0" />
|
||||
<output name="out" type="float" />
|
||||
</nodedef>
|
||||
<nodedef name="ND_UsdPrimvarReader_vector2" nodegroup="geometric" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" value="" uniform="true" />
|
||||
<input name="fallback" type="vector2" value="0, 0" />
|
||||
<output name="out" type="vector2" />
|
||||
</nodedef>
|
||||
<nodedef name="ND_UsdPrimvarReader_vector3" nodegroup="geometric" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" value="" uniform="true" />
|
||||
<input name="fallback" type="vector3" value="0, 0, 0" />
|
||||
<output name="out" type="vector3" />
|
||||
</nodedef>
|
||||
<nodedef name="ND_UsdPrimvarReader_vector4" nodegroup="geometric" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" value="" uniform="true" />
|
||||
<input name="fallback" type="vector4" value="0, 0, 0, 0" />
|
||||
<output name="out" type="vector4" />
|
||||
</nodedef>
|
||||
<!-- TODO: Getting primvar of matrix type is not supported in MaterialX standard library.
|
||||
<nodedef name="ND_UsdPrimvarReader_matrix44" node="UsdPrimvarReader">
|
||||
<input name="varname" type="string" />
|
||||
<input name="fallback" type="matrix44" value="1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1" />
|
||||
<output name="out" type="matrix44" />
|
||||
</nodedef>
|
||||
-->
|
||||
|
||||
<!-- Node: UsdTransform2d -->
|
||||
<nodedef name="ND_UsdTransform2d" nodegroup="math" node="UsdTransform2d">
|
||||
<input name="in" type="vector2" value="0, 0" />
|
||||
<input name="rotation" type="float" value="0" />
|
||||
<input name="scale" type="vector2" value="1, 1" />
|
||||
<input name="translation" type="vector2" value="0, 0" />
|
||||
<output name="out" type="vector2" />
|
||||
</nodedef>
|
||||
|
||||
<!-- ======================================================================== -->
|
||||
<!-- USD Preview Surface nodegraph implementations -->
|
||||
<!-- ======================================================================== -->
|
||||
|
||||
<!-- Node: UsdPreviewSurface -->
|
||||
<nodegraph name="IMP_UsdPreviewSurface_surfaceshader" nodedef="ND_UsdPreviewSurface_surfaceshader">
|
||||
|
||||
<convert name="use_specular_workflow_float" type="float">
|
||||
<input name="in" type="integer" interfacename="useSpecularWorkflow" />
|
||||
</convert>
|
||||
|
||||
<!-- Compute the surface normal -->
|
||||
<multiply name="scale_normal" type="vector3">
|
||||
<input name="in1" type="vector3" interfacename="normal" />
|
||||
<input name="in2" type="float" value="0.5" />
|
||||
</multiply>
|
||||
<add name="bias_normal" type="vector3">
|
||||
<input name="in1" type="vector3" nodename="scale_normal" />
|
||||
<input name="in2" type="float" value="0.5" />
|
||||
</add>
|
||||
<normalmap name="surface_normal" type="vector3">
|
||||
<input name="in" type="vector3" nodename="bias_normal" />
|
||||
</normalmap>
|
||||
|
||||
<!-- Diffuse Layer -->
|
||||
<subtract name="inverse_metalness" type="float">
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" interfacename="metallic" />
|
||||
</subtract>
|
||||
<mix name="diffuse_bsdf_weight" type="float">
|
||||
<input name="fg" type="float" value="1.0" />
|
||||
<input name="bg" type="float" nodename="inverse_metalness" />
|
||||
<input name="mix" type="float" nodename="use_specular_workflow_float" />
|
||||
</mix>
|
||||
<oren_nayar_diffuse_bsdf name="diffuse_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" nodename="diffuse_bsdf_weight" />
|
||||
<input name="color" type="color3" interfacename="diffuseColor" />
|
||||
<input name="roughness" type="float" value="0" />
|
||||
<input name="normal" type="vector3" nodename="surface_normal" />
|
||||
</oren_nayar_diffuse_bsdf>
|
||||
|
||||
<!-- Transmission Layer -->
|
||||
<dielectric_bsdf name="transmission_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1" />
|
||||
<input name="tint" type="color3" value="1, 1, 1" />
|
||||
<input name="ior" type="float" interfacename="ior" />
|
||||
<input name="roughness" type="vector2" value="0.0, 0.0" />
|
||||
<input name="normal" type="vector3" nodename="surface_normal" />
|
||||
<input name="scatter_mode" type="string" value="T" />
|
||||
</dielectric_bsdf>
|
||||
<mix name="transmission_mix" type="BSDF">
|
||||
<input name="fg" type="BSDF" nodename="diffuse_bsdf" />
|
||||
<input name="bg" type="BSDF" nodename="transmission_bsdf" />
|
||||
<input name="mix" type="float" interfacename="opacity" />
|
||||
</mix>
|
||||
|
||||
<!-- Specular Workflow -->
|
||||
<roughness_anisotropy name="specular_roughness" type="vector2">
|
||||
<input name="roughness" type="float" interfacename="roughness" />
|
||||
<input name="anisotropy" type="float" value="0" />
|
||||
</roughness_anisotropy>
|
||||
<generalized_schlick_bsdf name="specular_bsdf1" type="BSDF">
|
||||
<input name="weight" type="float" value="1" />
|
||||
<input name="color0" type="color3" interfacename="specularColor" />
|
||||
<input name="color90" type="color3" value="1, 1, 1" />
|
||||
<input name="roughness" type="vector2" nodename="specular_roughness" />
|
||||
<input name="normal" type="vector3" nodename="surface_normal" />
|
||||
</generalized_schlick_bsdf>
|
||||
<layer name="specular_workflow_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="specular_bsdf1" />
|
||||
<input name="base" type="BSDF" nodename="transmission_mix" />
|
||||
</layer>
|
||||
|
||||
<!-- Metalness Workflow -->
|
||||
<subtract name="one_minus_ior" type="float">
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" interfacename="ior" />
|
||||
</subtract>
|
||||
<add name="one_plus_ior" type="float">
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" interfacename="ior" />
|
||||
</add>
|
||||
<divide name="R" type="float">
|
||||
<input name="in1" type="float" nodename="one_minus_ior" />
|
||||
<input name="in2" type="float" nodename="one_plus_ior" />
|
||||
</divide>
|
||||
<multiply name="R_sq" type="float">
|
||||
<input name="in1" type="float" nodename="R" />
|
||||
<input name="in2" type="float" nodename="R" />
|
||||
</multiply>
|
||||
<mix name="specular_color_metallic" type="color3">
|
||||
<input name="fg" type="color3" interfacename="diffuseColor" />
|
||||
<input name="bg" type="color3" value="1, 1, 1" />
|
||||
<input name="mix" type="float" interfacename="metallic" />
|
||||
</mix>
|
||||
<multiply name="specular_color_metallic_R_sq" type="color3">
|
||||
<input name="in1" type="color3" nodename="specular_color_metallic" />
|
||||
<input name="in2" type="float" nodename="R_sq" />
|
||||
</multiply>
|
||||
<mix name="F0" type="color3">
|
||||
<input name="fg" type="color3" nodename="specular_color_metallic" />
|
||||
<input name="bg" type="color3" nodename="specular_color_metallic_R_sq" />
|
||||
<input name="mix" type="float" interfacename="metallic" />
|
||||
</mix>
|
||||
<generalized_schlick_bsdf name="specular_bsdf2" type="BSDF">
|
||||
<input name="weight" type="float" value="1" />
|
||||
<input name="color0" type="color3" nodename="F0" />
|
||||
<input name="color90" type="color3" nodename="specular_color_metallic" />
|
||||
<input name="roughness" type="vector2" nodename="specular_roughness" />
|
||||
<input name="normal" type="vector3" nodename="surface_normal" />
|
||||
</generalized_schlick_bsdf>
|
||||
<layer name="metalness_specular_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="specular_bsdf2" />
|
||||
<input name="base" type="BSDF" nodename="transmission_mix" />
|
||||
</layer>
|
||||
<artistic_ior name="artistic_ior" type="multioutput">
|
||||
<input name="reflectivity" type="color3" interfacename="diffuseColor" />
|
||||
<input name="edge_color" type="color3" interfacename="diffuseColor" />
|
||||
</artistic_ior>
|
||||
<conductor_bsdf name="metalness_metal_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" value="1" />
|
||||
<input name="ior" type="color3" nodename="artistic_ior" output="ior" />
|
||||
<input name="extinction" type="color3" nodename="artistic_ior" output="extinction" />
|
||||
<input name="roughness" type="vector2" nodename="specular_roughness" />
|
||||
<input name="normal" type="vector3" nodename="surface_normal" />
|
||||
</conductor_bsdf>
|
||||
<mix name="metalness_workflow_bsdf" type="BSDF">
|
||||
<input name="fg" type="BSDF" nodename="metalness_metal_bsdf" />
|
||||
<input name="bg" type="BSDF" nodename="metalness_specular_bsdf" />
|
||||
<input name="mix" type="float" interfacename="metallic" />
|
||||
</mix>
|
||||
|
||||
<!-- Select Specular/Metalness workflow -->
|
||||
<mix name="workflow_selector_bsdf" type="BSDF">
|
||||
<input name="fg" type="BSDF" nodename="specular_workflow_bsdf" />
|
||||
<input name="bg" type="BSDF" nodename="metalness_workflow_bsdf" />
|
||||
<input name="mix" type="float" nodename="use_specular_workflow_float" />
|
||||
</mix>
|
||||
|
||||
<!-- Clearcoat Layer -->
|
||||
<roughness_anisotropy name="coat_roughness" type="vector2">
|
||||
<input name="roughness" type="float" interfacename="clearcoatRoughness" />
|
||||
<input name="anisotropy" type="float" value="0" />
|
||||
</roughness_anisotropy>
|
||||
<convert name="coat_F0" type="color3">
|
||||
<input name="in" type="float" nodename="R_sq" />
|
||||
</convert>
|
||||
<generalized_schlick_bsdf name="coat_dielectric_bsdf" type="BSDF">
|
||||
<input name="weight" type="float" interfacename="clearcoat" />
|
||||
<input name="color0" type="color3" nodename="coat_F0" />
|
||||
<input name="color90" type="color3" value="1, 1, 1" />
|
||||
<input name="roughness" type="vector2" nodename="coat_roughness" />
|
||||
<input name="normal" type="vector3" nodename="surface_normal" />
|
||||
</generalized_schlick_bsdf>
|
||||
<layer name="coat_bsdf" type="BSDF">
|
||||
<input name="top" type="BSDF" nodename="coat_dielectric_bsdf" />
|
||||
<input name="base" type="BSDF" nodename="workflow_selector_bsdf" />
|
||||
</layer>
|
||||
|
||||
<!-- Emission Layer -->
|
||||
<uniform_edf name="emission_edf" type="EDF">
|
||||
<input name="color" type="color3" interfacename="emissiveColor" />
|
||||
</uniform_edf>
|
||||
|
||||
<!-- Surface Shader Constructor -->
|
||||
<ifgreatereq name="cutout_opacity" type="float">
|
||||
<input name="value1" type="float" interfacename="opacity" />
|
||||
<input name="value2" type="float" interfacename="opacityThreshold" />
|
||||
<input name="in1" type="float" value="1" />
|
||||
<input name="in2" type="float" value="0" />
|
||||
</ifgreatereq>
|
||||
<surface name="surface_constructor" type="surfaceshader">
|
||||
<input name="bsdf" type="BSDF" nodename="coat_bsdf" />
|
||||
<input name="edf" type="EDF" nodename="emission_edf" />
|
||||
<input name="opacity" type="float" nodename="cutout_opacity" />
|
||||
</surface>
|
||||
|
||||
<!-- Output -->
|
||||
<output name="out" type="surfaceshader" nodename="surface_constructor" />
|
||||
</nodegraph>
|
||||
|
||||
<!-- Node: UsdUVTexture -->
|
||||
<nodegraph name="IMP_UsdUVTexture_22" nodedef="ND_UsdUVTexture">
|
||||
<image name="image_reader" type="color4">
|
||||
<input name="file" type="filename" interfacename="file" />
|
||||
<input name="default" type="color4" interfacename="fallback" />
|
||||
<input name="texcoord" type="vector2" interfacename="st" />
|
||||
<input name="uaddressmode" type="string" interfacename="wrapS" />
|
||||
<input name="vaddressmode" type="string" interfacename="wrapT" />
|
||||
</image>
|
||||
<multiply name="image_scale" type="color4">
|
||||
<input name="in1" type="color4" nodename="image_reader" />
|
||||
<input name="in2" type="color4" interfacename="scale" />
|
||||
</multiply>
|
||||
<add name="image_bias" type="color4">
|
||||
<input name="in1" type="color4" nodename="image_scale" />
|
||||
<input name="in2" type="color4" interfacename="bias" />
|
||||
</add>
|
||||
<output name="r" type="float" nodename="image_bias" channels="r" />
|
||||
<output name="g" type="float" nodename="image_bias" channels="g" />
|
||||
<output name="b" type="float" nodename="image_bias" channels="b" />
|
||||
<output name="a" type="float" nodename="image_bias" channels="a" />
|
||||
<output name="rgb" type="color3" nodename="image_bias" channels="rgb" />
|
||||
<output name="rgba" type="color4" nodename="image_bias" />
|
||||
</nodegraph>
|
||||
|
||||
<nodegraph name="IMP_UsdUVTexture_23" nodedef="ND_UsdUVTexture_23">
|
||||
<image name="image_reader" type="color4">
|
||||
<input name="file" type="filename" interfacename="file" />
|
||||
<input name="default" type="color4" interfacename="fallback" />
|
||||
<input name="texcoord" type="vector2" interfacename="st" />
|
||||
<input name="uaddressmode" type="string" interfacename="wrapS" />
|
||||
<input name="vaddressmode" type="string" interfacename="wrapT" />
|
||||
</image>
|
||||
<multiply name="image_scale" type="color4">
|
||||
<input name="in1" type="color4" nodename="image_reader" />
|
||||
<input name="in2" type="color4" interfacename="scale" />
|
||||
</multiply>
|
||||
<add name="image_bias" type="color4">
|
||||
<input name="in1" type="color4" nodename="image_scale" />
|
||||
<input name="in2" type="color4" interfacename="bias" />
|
||||
</add>
|
||||
<output name="r" type="float" nodename="image_bias" channels="r" />
|
||||
<output name="g" type="float" nodename="image_bias" channels="g" />
|
||||
<output name="b" type="float" nodename="image_bias" channels="b" />
|
||||
<output name="a" type="float" nodename="image_bias" channels="a" />
|
||||
<output name="rgb" type="color3" nodename="image_bias" channels="rgb" />
|
||||
</nodegraph>
|
||||
|
||||
<!-- Node: UsdPrimvarReader -->
|
||||
<nodegraph name="IMP_UsdPrimvarReader_integer" nodedef="ND_UsdPrimvarReader_integer">
|
||||
<geompropvalue name="primvar" type="integer">
|
||||
<input name="geomprop" type="string" interfacename="varname" />
|
||||
<input name="default" type="integer" interfacename="fallback" />
|
||||
</geompropvalue>
|
||||
<output name="out" type="integer" nodename="primvar" />
|
||||
</nodegraph>
|
||||
<nodegraph name="IMP_UsdPrimvarReader_boolean" nodedef="ND_UsdPrimvarReader_boolean">
|
||||
<geompropvalue name="primvar" type="boolean">
|
||||
<input name="geomprop" type="string" interfacename="varname" />
|
||||
<input name="default" type="boolean" interfacename="fallback" />
|
||||
</geompropvalue>
|
||||
<output name="out" type="boolean" nodename="primvar" />
|
||||
</nodegraph>
|
||||
<nodegraph name="IMP_UsdPrimvarReader_string" nodedef="ND_UsdPrimvarReader_string">
|
||||
<geompropvalue name="primvar" type="string">
|
||||
<input name="geomprop" type="string" interfacename="varname" />
|
||||
<input name="default" type="string" interfacename="fallback" />
|
||||
</geompropvalue>
|
||||
<output name="out" type="string" nodename="primvar" />
|
||||
</nodegraph>
|
||||
<nodegraph name="IMP_UsdPrimvarReader_float" nodedef="ND_UsdPrimvarReader_float">
|
||||
<geompropvalue name="primvar" type="float">
|
||||
<input name="geomprop" type="string" interfacename="varname" />
|
||||
<input name="default" type="float" interfacename="fallback" />
|
||||
</geompropvalue>
|
||||
<output name="out" type="float" nodename="primvar" />
|
||||
</nodegraph>
|
||||
<nodegraph name="IMP_UsdPrimvarReader_vector2" nodedef="ND_UsdPrimvarReader_vector2">
|
||||
<geompropvalue name="primvar" type="vector2">
|
||||
<input name="geomprop" type="string" interfacename="varname" />
|
||||
<input name="default" type="vector2" interfacename="fallback" />
|
||||
</geompropvalue>
|
||||
<output name="out" type="vector2" nodename="primvar" />
|
||||
</nodegraph>
|
||||
<nodegraph name="IMP_UsdPrimvarReader_vector3" nodedef="ND_UsdPrimvarReader_vector3">
|
||||
<geompropvalue name="primvar" type="vector3">
|
||||
<input name="geomprop" type="string" interfacename="varname" />
|
||||
<input name="default" type="vector3" interfacename="fallback" />
|
||||
</geompropvalue>
|
||||
<output name="out" type="vector3" nodename="primvar" />
|
||||
</nodegraph>
|
||||
<nodegraph name="IMP_UsdPrimvarReader_vector4" nodedef="ND_UsdPrimvarReader_vector4">
|
||||
<geompropvalue name="primvar" type="vector4">
|
||||
<input name="geomprop" type="string" interfacename="varname" />
|
||||
<input name="default" type="vector4" interfacename="fallback" />
|
||||
</geompropvalue>
|
||||
<output name="out" type="vector4" nodename="primvar" />
|
||||
</nodegraph>
|
||||
|
||||
<!-- Node: UsdTransform2d -->
|
||||
<nodegraph name="IMP_UsdTransform2d" nodedef="ND_UsdTransform2d">
|
||||
<place2d name="placement" type="vector2">
|
||||
<input name="texcoord" type="vector2" interfacename="in" />
|
||||
<input name="scale" type="vector2" interfacename="scale" />
|
||||
<input name="rotate" type="float" interfacename="rotation" />
|
||||
<input name="offset" type="vector2" interfacename="translation" />
|
||||
</place2d>
|
||||
<output name="out" type="vector2" nodename="placement" />
|
||||
</nodegraph>
|
||||
|
||||
</materialx>
|
||||
Reference in New Issue
Block a user