love.graphics.setStencilTest (Français)
Disponible depuis LÖVE 0.10.0 |
Avec love.graphics.stencil, elle ont remplacé love.graphics.setStencil. |
Configure ou désactive le test de stencil.
Lorsque le test de stencil est activé, Toutes les formes géométriques tracées après coup seront découpées (clipped) / stencilées en fonction d'une comparaison entre les arguments de cette fonction et des valeurs de stencil de chaque pixel que les formes géométriques touchent. Les valeurs de stencil des pixels sont affectées par love.graphics.stencil.
À partir de la version 11.0, un tampon de stencil doit être réglé ou demandé par love.graphics.setCanvas lorsque les stencils sont utilisé avec un Canvas. love.graphics.setCanvas{canvas, stencil=true} est une méthode simple pour utiliser un tampon de stencil temporaire fourni automatiquement dans ce cas.
|
Contents
Fonction
Synopsis
love.graphics.setStencilTest( comparemode, comparevalue )
Arguments
CompareMode (Français) comparemode
- Le type de comparaison a effectuer pour chaque pixel.
number (Français) comparevalue
- La valeur à utiliser lors d'une comparaison avec la valeur de stencil de chauqe pixel. doit être comrpris entre 0 et 255.
Retourne
Rien.
Fonction
Disables stencil testing.
Synopsis
love.graphics.setStencilTest( )
Arguments
Aucun.
Returns
Rien.
Exemples
Tracer des cercles masqués par un rectangle
local function myStencilFunction()
love.graphics.rectangle("fill", 225, 200, 350, 300)
end
function love.draw()
-- Trace un rectangle en tant que stencil. Chaque pixel touché par le rectangle aura sa valeur de stencil à 1. Le reste à 0.
love.graphics.stencil(myStencilFunction, "replace", 1)
-- N'autorise le rendu que sur les pixels dont la valeur est plus grande (greater) que 0.
love.graphics.setStencilTest("greater", 0)
love.graphics.setColor(1, 0, 0, 0.45)
love.graphics.circle("fill", 300, 300, 150, 50)
love.graphics.setColor(0, 255, 0, 0.45)
love.graphics.circle("fill", 500, 300, 150, 50)
love.graphics.setColor(0, 0, 255, 0.45)
love.graphics.circle("fill", 400, 400, 150, 50)
love.graphics.setStencilTest()
end
Tracer un cercle avec un trou
local function myStencilFunction()
-- Trace un petit cercle en tant que stencil. Ce sera le trou.
love.graphics.circle("fill", 400, 300, 50)
end
function love.draw()
-- Chaque pixel touché par le cercle aura sa valeur de stencil à 1. Le reste à 0.
love.graphics.stencil(myStencilFunction, "replace", 1)
-- Configure le test de stencil pour n'autoriser le rendu que sur les pixels pour lesquels la valeur de stencil est égal à 0.
-- Cela correspondra à tous les pixels, *à l'exception de* ceux qui sont touchés par le cercles tracé comme un stencil.
love.graphics.setStencilTest("equal", 0)
love.graphics.circle("fill", 400, 300, 150)
love.graphics.setStencilTest()
end
Tracer deux triangles masqués par des couleurs différentes
local function myStencilFunction()
love.graphics.circle("fill", 400, 300, 60, 25)
end
function love.draw()
-- Chaque pixel touché par le cercle aura sa valeur à 1, le reste à 0.
love.graphics.stencil(myStencilFunction, "replace", 1)
-- N'autorise le rendu que sur les pixels dont la valeur de stencil est plus grand (greater) que 0.
love.graphics.setStencilTest("greater", 0)
love.graphics.setColor(0.6, 0, 0.5)
love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350)
-- N'autorise à présent le rendu que sur les pixels dont la valeur de stencil est égal à 0.
love.graphics.setStencilTest("equal", 0)
love.graphics.setColor(0.55, 0.85, 0.5)
love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350)
love.graphics.setStencilTest()
end
La page de wiki love.graphics.stencil (Français) inclus d'avantage d'exemples.
Voir également
Autre 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