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.