AcademySoftwareFoundation / AcademySoftwareFoundation/OpenPBR

Ability to tint specular highlights without affecting grazing angles

Open
#77 5 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.