Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
197 stars 9 forks source link

"Linear Lighting" or Gamma Correction #1819

Open Geenz opened 3 years ago

Geenz commented 3 years ago

(Disclaimer: this issue is being created for general public tracking of a feature under consideration for development. Please do not make any assumptions about the viability or likelihood of this feature being released any time soon. The same applies to any features that would be dependent upon this landing first that may be mentioned below. This is here to discuss rationale, risk factors, potential content impact, possible outcomes, and to give a more focused thread of conversation to the feature being outlined below.)

Is your feature request related to a problem? Please describe.

As it stands today, lighting is "kind of sort of linear" in Neos. This is due to Unity's built in PBS system which requires some semblance of gamma correction. However, there's still some things that aren't quite calculated in the proper color space- such as light falloff and ambient occlusion. Although this is isn't a problem in and of itself depending on one's stylistic choices, this will only become further complicated down the road as additional graphics features are added to further enable said stylistic choices by users.

Relevant issues

63 #1561 #1423 #1192 #619 #1760

Describe the solution you'd like

It would be good to have a general color management solution inside of Neos to better enable a wide variety of use cases in terms of enabling users to "pick a style" and author to that style.

Describe alternatives you've considered

Adding more graphics features that are gonna become more difficult to maintain later without this first.

Additional context

Given the eventual completion of desktop mode, this will also enable Neos to better support HDR display output as well down the road, something that's become pretty important in the entertainment space generally.

Additionally custom shader support, if we ever support it in whatever form we may support it in, will become far more difficult to support without this landing first

Content Impact

Going from gamma to linear lighting is not as trivial as "flipping a switch" effectively. This requires deep changes to how Neos stores and handles textures - even requiring us to store color space information for textures and colors as a whole.

This has several side effects, both transparent to users and immediately obvious to users:

Potential Outcomes

If gamma correction is introduced into Neos' pipeline, you can likely expect at least one of the following outcomes depending upon community feedback and internal testing.

Geenz commented 3 years ago

Some questions and answers given the above that have already been considered:

kulzae commented 3 years ago

Id say its better to bite the bullet and switch now than down the road when theres more content to be affected by it

InsaneGrox commented 3 years ago

Id say its better to bite the bullet and switch now than down the road when theres more content to be affected by it

Agreed.