Optical Properties of glTF KHR_materials_specular
The KHR_materials_specular extension expands the
standard glTF 2.0 physically based rendering (PBR) workflow by
reintroducing fine-grained specular controls that were intentionally
simplified in the core specification. By decoupling specular reflection
from the strict metallic-roughness model, this extension allows 3D
artists and real-time engines to define custom specular reflectance
intensity and chromatic specular highlights on dielectric (non-metallic)
surfaces.
Configurable Dielectric Reflectance Intensity (F0 Scaling)
In baseline glTF 2.0, non-metallic surfaces are hardcoded to a fixed specular reflectance at normal incidence (\(F_0\)) of 4% (linear 0.04), which represents an index of refraction (IOR) of approximately 1.5. While this value works well for common materials like basic plastics and matte surfaces, it fails to represent materials with lower or higher refractive properties.
KHR_materials_specular reintroduces the ability to scale
this reflectance value using the specularFactor and
specularTexture parameters. This allows accurate simulation
of:
- Low-reflectance dielectrics: Materials such as water (\(F_0 \approx 2\%\)) or velvet.
- High-reflectance dielectrics: Gemstones, diamonds (\(F_0 \approx 17\%\)), and crystalline structures that exhibit sharp, strong reflections without behaving like metals.
Chromatic Specular Reflections (Specular Color)
Under the core metallic-roughness workflow, only metals can have colored reflections, while all dielectrics are constrained to perfectly achromatic (white) highlights. This limitation prevents the realistic representation of many complex, non-conductive real-world materials.
Through the specularColorFactor and
specularColorTexture inputs, the extension restores colored
specular highlights for dielectrics. This enables:
- Tinted glazes and plastics: Clear or semi-translucent coatings that shift the color of reflected light.
- Complex organic surfaces: Materials like peacock feathers, beetle shells, and certain iridescent minerals where thin-film or microscopic structures tint the specular reflection while preserving the underlying diffuse color.
Independent Specular Masking
In real-time rendering, roughness describes the microfacet scattering of light, whereas specular intensity describes the actual quantity of reflected light. Without specular control, artists often misuse the roughness map or metallic map to fake variations in reflectivity, which produces physically incorrect results.
KHR_materials_specular reintroduces independent spatial
modulation via texture maps. This allows technical artists to map
variations in surface contaminants—such as subtle oily residue, water
spots, or dust layers—by altering the surface reflection intensity
directly, leaving the roughness channel strictly responsible for
blurriness.
Interaction with the Index of Refraction
When combined with the KHR_materials_ior extension,
KHR_materials_specular modifies the dielectric Fresnel
equation directly. The standard \(F_0\)
derived from the defined IOR can be modulated or tinted, providing
complete physical fidelity for advanced real-time rendering pipelines
without abandoning the simplicity and efficiency of glTF's underlying
PBR framework.