love.graphics.isGammaCorrect (Français)
Disponible depuis LÖVE 0.10.0 |
Ce-tte function n'est pas supporté-e par des versions plus anciennes. |
Test si le rendu avec correction gamma est supporté et activé. Il peut être activé en réglant t.gammacorrect = true
dans love.conf.
Nous les périphériques ne supportent pas le rendu avec correction gamma, auquel cas il sera automatiquement désactivé et cette fonction retournera false (faux). C'est supporté sur les systèmes de bureau qui ont une carte ou processeur graphique capable d'utiliser OpenGL 3 / DirectX 10, et les périphériques iOS qui peuvent utiliser OpenGL ES 3.
Contents
Fonction
Synopsis
gammacorrect = love.graphics.isGammaCorrect( )
Arguments
Aucun.
Retourne
boolean (Français) gammacorrect
- True (vrai) si le rendu avec correction gamma est supporté et était activé dans love.conf, false (faux) dans les autres cas.
Notes
Lors que le rendu avec correction gamma est activé, de nombreuses fonctions et objets feront automatiquement la conversion de couleur entre les espaces de couleur sRGB et linéaire RGB afin que les mixages et calculs d'ombrage soient mathématiquement correctes (ce qui n'est pas le cas si ça n'est pas activé.)
- Les couleurs passées à love.graphics.setColor, love.graphics.clear, et Shader:sendColor vont être automatiquement convertir de l'espace sRGB à linéaire RGB.
- Les couleurs réglées dans les SpriteBatches, les textes avec des propriétés de couleurs séparés par caractères, ParticleSystems, points avec des couleurs différentes par point, Meshes (maillages) standard, et maillages personnalisés qui utilisent le nom d'attribut « VertexColor » vont automatiquement être convertit des espaces sRGB à RGB linéaire, lorsque ces objets sont tracés.
- Les Images auront leurs couleurs automatiquement converties de l'espace sRGB à RGB linéaire lorsqu'elles seront tracées (et lorsque leurs pixels seront récupérés par un Shader (ombreur)), à moins que le drapeau
linear = true
soit réglé lors de la création d'une Image.
- Tout ce qui est tracé à l'écran sera mixé en RGB linéaire et le résultat sera alors converti en sRGB pour l'affichage.
- Les Canvas qui utilisent le CanvasFormat (format de toile) « normal » ou « srgb » auront leur contenu mixé en RGB linéaire et le résultat sera conservé dans le canvas en sRGB, lorsqu'ils est tracé. Lorsque le Canvas lui-même est tracé, les couleurs de ses pixels seront convertits de sRGB à RGB linéaire de la même façon que les Images. Conserver les données de pixels des canvas enregistrées en sRGB permet une plus grande précision (moins de motifs) pour les couleurs les plus sombres comparées à « rgba8 ».
Comme la plupart des conversions sont gérées automatiquement, votre propre code n'a pas besoin de s'inquiéter des conversion de couleur entre sRGB et RGB linéaire lorsque le rendu avec correction gamma est activé, à l'exception de quelques cas :
- Si un maillage avc des attributs de vecteurs personnalisés est utilisé et un de ces attributs à pour but d'être utilisé comme couleur dans un Shader, et l'attribut n'est pas nommé « VertexColor ».
- Si un Shader utilisé a des variables uniformes / externes ou d'autres variables qui ont pour but d'être utilisées en tant que couleurs, et Shader:sendColor n'est pas utilisé.
Dans tous les cas, love.math.gammaToLinear peut être utilisé pour convertuir des valeurs de couleurs vers RGB linéaire dans le code Lua.
Dans le code d'ombrage, les fonctions suivantes sont disponibles si les conversions manuelles sont nécessaires. Elle ne font les conversion que si le rendu avec correction de couleur est actuellement activé. La définition du préprocesseur d'ombrage LOVE_GAMMA_CORRECT
sera configurée comm :
float/vec3/vec4 gammaCorrectColor(float/vec3/vec4 color)
(performant mais moins précis).float/vec3/vec4 gammaCorrectColorPrecise(float/vec3/vec4 color)
(plus lent mais exact, équivalent àlove.math.gammaToLinear
).float/vec3/vec4 unGammaCorrectColor(float/vec3/vec4 color)
(performant mais moins précis).float/vec3/vec4 unGammaCorrectColorPrecise(float/vec3/vec4 color)
(plus lent mais précis, équivalent àlove.math.linearToGamma
).
Vous pouvez en apprendre plus à propos de la correction gamma (en anglais) ici, ici, et ici.
Voir également
- love.graphics (Français)
- Config Files (Français)
- love.math.gammaToLinear (Français)
- love.math.linearToGamma (Français)
- Shader:sendColor (Français)
Autres langues
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info