Skip to content

Add KHR_materials_retroreflection extension#2610

Open
mklefrancois wants to merge 4 commits into
KhronosGroup:mainfrom
mklefrancois:khr-materials-retroreflection
Open

Add KHR_materials_retroreflection extension#2610
mklefrancois wants to merge 4 commits into
KhronosGroup:mainfrom
mklefrancois:khr-materials-retroreflection

Conversation

@mklefrancois

Copy link
Copy Markdown

Overview

This PR proposes a new Khronos extension, KHR_materials_retroreflection, which adds a physically-plausible retroreflective response to any glTF material model.

It is based on the Minimal Retroreflective Microfacet (MRM) model of Portsmouth et al., JCGT 15(1), 2026: a BSDF is made retroreflective by substituting the outgoing view direction V with its reflection about the surface normal before evaluation and sampling, redirecting the specular peak into the back-scatter direction. This produces the bright highlight seen on high-visibility clothing, glass-bead road markings, and safety signs. The model preserves reciprocity and energy conservation under reflection-symmetric NDFs (GGX, Beckmann, Phong).

A retroreflectionFactor linearly blends between the standard material (0.0) and the retroreflective material (1.0), matching OpenPBR's specular_retroreflectivity parameter. An optional retroreflectionTexture provides a per-texel multiplier.

Contents

  • Extension specification (README.md)
  • JSON schema (material.KHR_materials_retroreflection.schema.json)
retroreflection

Status

Draft

Relationship to other work

Aligns with the retroreflection models in OpenPBR 1.1 and MaterialX.

Known implementations

Contributors

@CLAassistant

CLAassistant commented Jul 7, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Comment thread extensions/2.0/Khronos/KHR_materials_retroreflection/README.md
Comment thread extensions/2.0/Khronos/KHR_materials_retroreflection/README.md Outdated
Comment thread extensions/2.0/Khronos/KHR_materials_retroreflection/README.md Outdated
Comment thread extensions/2.0/Khronos/KHR_materials_retroreflection/README.md Outdated
Comment thread extensions/2.0/Khronos/KHR_materials_retroreflection/README.md Outdated
Comment thread extensions/2.0/Khronos/KHR_materials_retroreflection/README.md Outdated
NBickford-NV and others added 3 commits July 17, 2026 05:18
- Changed wording to apply only to the metallic and dielectric BRDFs of the material model.
  - I decided to go with Bastian's "metallic and dielectric" wording after all, since the Fresnel term in each one is affected.
  - I also decided to go with code formatting instead of equations for the Retroreflection section, so we use exactly the same variable names and formatting as Appendix B.
  - A few small tweaks and additions here and there, but mostly uses Bastian's wording.
- Removed sample asset references and section
- Removed clamping on `retroreflectionTexture`
- Changed the lobe discussion section to say why this doesn't apply to clearcoat and sheen lobes based on Monday's WG conversations
- Added Bastian and Alexey as contributors
…ts-2026-07-17

Edits from last week's extension review
@emackey emackey added the PBR Physically Based Rendering label Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PBR Physically Based Rendering

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants