AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Mixing helpers should handle linear color picking roles better

Aperta
#1,400 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
Feature Request help wanted
Lingua principale
C++
Stelle
2.1k
Fork
503
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

The MixingHelpers classes in the apphelpers directory are intended to help applications build sensible tools for mixing (that is, choosing or picking) color values via a user interface, for example using RGB or HSV sliders.

The classes are intended to allow applications to provide a color mixing tool that could be used in either the linear working/rendering space or the more perceptually uniform display space. When mixing in display space, the slider response for the RGB sliders can be uniform. This will put middle gray near the middle of the slider. Alternatively, when mixing in the linear working space, the slider response needs to be non-linear in order to put middle gray near the middle of the slider (this is similar to a taper curve used for an audio fader). The MixingHelpers classes provide this functionality.

The non-linear slider behavior is controlled by the MixingColorSpaceManager::isPerceptuallyUniform method (if that returns false, the non-linear taper is activated).

If the color_picking role is defined by the config, the mixing color space is locked to be that role.

In the Sony Imageworks configs and the ACES config, the color_picking role was always set to a video-like space. Hence, isPerceptuallyUniform always returns true if the color_picking role is set.

However, recent discussion in the UX working group has revealed that some users prefer to mix colors in a linear color space such as ACEScg. In those cases, isPerceptuallyUniform should return false so that the non-linear taper may be applied to the sliders.

In order to address this, there needs to be a way to determine if a given color space is linear (and therefore not perceptually uniform). Since that could also be a generally useful feature and also require a certain amount of discussion, a separate issue, #1399, has been created for that task.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia nella directory apphelpers con le classi MixingHelpers e MixingColorSpaceManager::isPerceptuallyUniform, poi leggi issue #1399 per il metodo proposto per identificare gli spazi colore lineari. Il lavoro è completo quando i ruoli di selezione del colore possono usare uno spazio lineare mantenendo l’andamento non lineare dello slider, senza modificare il comportamento esistente degli spazi percettivamente uniformi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
computer-graphics
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.