AcademySoftwareFoundation / AcademySoftwareFoundation/OpenPBR
Ability to tint specular highlights without affecting grazing angles
- Dominant language
- CSS
- Stars
- 793
- Forks
- 44
- PR merge metrics
- No merged PRs in 30d
Description
Currently, the only way to affect the color of the dielectric reflection lobe is `specular_color`, which affects all angles equally.
However, for compatibility with other material models (e.g. the classic Disney BSDF, or glTF's [KHR_materials_specular](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_specular/README.md)), it would be useful to have a parameter for only affecting normal-incidence angles while leaving the grazing angles as they are.
More specifically, in a Schlick-style Fresnel term, this parameter would only affect F0, not F90. This can be implemented in combination with the proper dielectric Fresnel term by computing `real_F0` from the IOR, then computing the Fresnel value using the dielectric term, and then remapping from the `real_F0 .. 1.0` range to `F0 .. F90`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the issue's proposed Schlick-style Fresnel calculation and the linked glTF KHR_materials_specular extension, then compare the desired F0-only tint with the existing specular_color behavior. Done means defining the parameter and updating the OpenPBR specification and reference implementation so normal-incidence tint changes without altering grazing-angle response.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100