AcademySoftwareFoundation / AcademySoftwareFoundation/OpenPBR

Should non-physical tinting affect lower layers?

Open
#81 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
CSS
Stars
793
Forks
44
PR merge metrics
No merged PRs in 30d

Description

The spec currently mentions that if `specular_color` is used to affect the color of the specular reflection, he underlying layers (diffuse/SSS/transmission) should be tinted according to the complementary color to preserve energy.

This makes sense from a physical perspective. However, from what I can tell, these parameters are intended for artistic control rather than physically motivated. Therefore, I'd argue that affecting the lower layers is unintuitive and unexpected - for example, if a user wants to achieve a white object with a green specular highlight, they'd need to set the base_color to something like `(0.96, 1.0, 0.96)`. Instead, I'd suggest to scale the lower layer's intensity according to the maximum value across components, in order to preserve energy without tinting it.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the OpenPBR specification passage describing how specular_color affects diffuse, SSS, and transmission layers. Compare the current complementary-color tinting behavior with the proposed maximum-component intensity scaling, then determine the agreed energy-preserving behavior and update the specification accordingly.

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
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.