MaterialX icon indicating copy to clipboard operation
MaterialX copied to clipboard

Shader Translation: Complete translation between Standard Surface to gltf_pbr

Open bowald opened this issue 4 months ago • 0 comments

In this Issue I have gather all missing inputs we should be able to add in the standard_surface_to_gltf_pbr.mtlx translation graph.

Each topic will have links to both the gltf spec/docs and standard surface docs, and the corresponding inputs for each shading model

Currently these inputs is missing:

  • [x] Alpha
  • [x] Normal, Tangent
  • [x] Specular
  • [x] Index of Refraction
  • [ ] Iridescence
  • [x] Emissive
  • [x] Dispersion

Alpha

glTF docs: Metallic-Roughness Material (in the docs alpha is the forth component of base color) Standard surface doc: 3.3 Transparency gltf_pbr inputs: alpha standard surface inputs: opacity

Normal, Tangent

gltf_pbr inputs: normal, tangent standard surface inputs: normal, tangent existing issue: Shader Translation: std surface to gltf_pbr does not handle normal input

Specular

gltf extension: KHR_materials_specular Standard surface docs: 3.7 Specular reflection gltf_pbr inputs: specular specular_color standard surface inputs: specular, specular_color

Index of Refraction

gltf extension: KHR_materials_ior Standard surface docs: 3.8 Specular transmission gltf_pbr inputs: ior standard surface inputs: specular_ior

Iridescence

gltf extension: KHR_materials_iridescence Standard surface docs: 3.6 Metal gltf_pbr inputs: iridescence, iridescence_ior, iridescence_thickness standard surface inputs: thin_film_thickness, thin_film_IOR

Both models use Belcour and Barla Belcour2017 to model iridescence, should be straight forward.

Emissive

gltf spec: Metallic-Roughness Material gltf extension: KHR_materials_emissive_strength Standard Surface docs: 3.5 Emission gltf_pbr inputs: emissive, emissive_strength standard surface inputs: emission, emission_color

Attenuation

gltf extension: KHR_materials_volume Standard surface docs: 3.8 Specular transmission gltf_pbr inputs: attenuation_distance standard surface inputs: transmission_depth

Dispersion

gltf extension: KHR_materials_dispersion Standard surface docs: 3.8 Specular transmission gltf_pbr inputs: Not implemented - Issue: Update glTF PBR implementation to support current Khronos definition standard surface inputs: transmission_dispersion

bowald avatar Sep 24 '25 14:09 bowald