Shader Translation: Complete translation between Standard Surface to gltf_pbr
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