Skip to content

Shader Translation: Complete translation between Standard Surface to gltf_pbr #2578

@bowald

Description

@bowald

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:

  • Alpha
  • Normal, Tangent
  • Specular
  • Index of Refraction
  • Iridescence
  • Emissive
  • 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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions