Difference between revisions of "love.graphics.setStencilTest (日本語)"
m |
m |
||
Line 1: | Line 1: | ||
− | {{newin (日本語)|[[0.10.0]]|100|type=関数|text=[[love.graphics.stencil (日本語)|love.graphics.stencil]] は [[love.graphics.setStencil (日本語)|love.graphics.setStencil]] と共に変更されました}} | + | {{newin (日本語)|[[0.10.0 (日本語)|0.10.0]]|100|type=関数|text=[[love.graphics.stencil (日本語)|love.graphics.stencil]] は [[love.graphics.setStencil (日本語)|love.graphics.setStencil]] と共に変更されました}} |
ステンシルにおけるテストを構成または無効にします。 | ステンシルにおけるテストを構成または無効にします。 | ||
− | + | ステンシルテストが有効な時、全ての形状は本関数の引数および形状に接触している各ピクセルのステンシル値との間による比較に基づきクリップ、またはステンシル処理されてから描画されます。ピクセルのステンシル値は [[love.graphics.stencil (日本語)|love.graphics.stencil]] による影響を受けます。 | |
− | + | {{notice|1=version [[11.0 (日本語)|11.0]] より、ステンシル・バッファの設定、または Canvas でステンシルを用いるときは [[love.graphics.setCanvas (日本語)|love.graphics.setCanvas]] で指定してください。この場合、 <code>love.graphics.setCanvas{canvas, stencil=true}</code> は自動作成された一時作業用のステンシル・バッファを用いるのに簡単な方法です。}} | |
== 関数 == | == 関数 == | ||
=== 概要 === | === 概要 === | ||
Line 41: | Line 41: | ||
love.graphics.setStencilTest("greater", 0) | love.graphics.setStencilTest("greater", 0) | ||
− | love.graphics.setColor( | + | love.graphics.setColor(1, 0, 0, 0.45) |
love.graphics.circle("fill", 300, 300, 150, 50) | love.graphics.circle("fill", 300, 300, 150, 50) | ||
− | love.graphics.setColor(0, 255, 0, | + | love.graphics.setColor(0, 255, 0, 0.45) |
love.graphics.circle("fill", 500, 300, 150, 50) | love.graphics.circle("fill", 500, 300, 150, 50) | ||
− | love.graphics.setColor(0, 0, | + | love.graphics.setColor(0, 255, 0, 0.45) |
love.graphics.circle("fill", 400, 400, 150, 50) | love.graphics.circle("fill", 400, 400, 150, 50) | ||
Line 85: | Line 85: | ||
-- 0 より大きいステンシル値を有するピクセルのみ表示を許可します。 | -- 0 より大きいステンシル値を有するピクセルのみ表示を許可します。 | ||
love.graphics.setStencilTest("greater", 0) | love.graphics.setStencilTest("greater", 0) | ||
− | love.graphics.setColor( | + | love.graphics.setColor(0.6, 0, 0.5) |
love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350) | love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350) | ||
-- 0 と等しいステンシル値を有するピクセルのみ表示を許可します。 | -- 0 と等しいステンシル値を有するピクセルのみ表示を許可します。 | ||
love.graphics.setStencilTest("equal", 0) | love.graphics.setStencilTest("equal", 0) | ||
− | love.graphics.setColor( | + | love.graphics.setColor(0.55, 0.85, 0.5) |
love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350) | love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350) | ||
Revision as of 10:45, 17 July 2019
LÖVE 0.10.0 から使用可能 |
love.graphics.stencil は love.graphics.setStencil と共に変更されました。 |
ステンシルにおけるテストを構成または無効にします。
ステンシルテストが有効な時、全ての形状は本関数の引数および形状に接触している各ピクセルのステンシル値との間による比較に基づきクリップ、またはステンシル処理されてから描画されます。ピクセルのステンシル値は love.graphics.stencil による影響を受けます。
version 11.0 より、ステンシル・バッファの設定、または Canvas でステンシルを用いるときは love.graphics.setCanvas で指定してください。この場合、 love.graphics.setCanvas{canvas, stencil=true} は自動作成された一時作業用のステンシル・バッファを用いるのに簡単な方法です。
|
Contents
関数
概要
love.graphics.setStencilTest( comparemode, comparevalue )
引数
CompareMode comparemode
- 各ピクセルの比較方法。
number comparevalue
- 各ピクセルのステンシル値を比較する時に使用される値。範囲は 0 から 255 までの間にする必要があります。
返値
ありません。
関数
ステンシルのテストを無効にします。
概要
love.graphics.setStencilTest( )
引数
なし。
返値
ありません。
用例
長方形によりマスクされた円を描画します。
local function myStencilFunction()
love.graphics.rectangle("fill", 225, 200, 350, 300)
end
function love.draw()
-- ステンシルで長方形を描画します。長方形に接触している各ピクセルのステンシル値は 1 に設定されます。それ以外は 0 です。
love.graphics.stencil(myStencilFunction, "replace", 1)
-- 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, 255, 0, 0.45)
love.graphics.circle("fill", 400, 400, 150, 50)
love.graphics.setStencilTest()
end
穴の開いた円を描画します。
local function myStencilFunction()
-- ステンシルで小型の円を描画します。これは穴が開いています。
love.graphics.circle("fill", 400, 300, 50)
end
function love.draw()
-- 円に接触している各ピクセルのステンシル値は 1 に設定されます。それ以外は 0 です。
love.graphics.stencil(myStencilFunction, "replace", 1)
-- ピクセルの表示でステンシル値が 0 と等しくて許可されている場合のみステンシルにおけるテストを構成します。
-- これはステンシルとして描画された円に接触している*以外*の全ピクセルが対象になります。
love.graphics.setStencilTest("equal", 0)
love.graphics.circle("fill", 400, 300, 150)
love.graphics.setStencilTest()
end
異なる色で 2 つのマスクされた三角形を描画します。
local function myStencilFunction()
love.graphics.circle("fill", 400, 300, 60, 25)
end
function love.draw()
-- 円に接触している各ピクセルのステンシル値は 1 に設定されます。それ以外は 0 です。
love.graphics.stencil(myStencilFunction, "replace", 1)
-- 0 より大きいステンシル値を有するピクセルのみ表示を許可します。
love.graphics.setStencilTest("greater", 0)
love.graphics.setColor(0.6, 0, 0.5)
love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350)
-- 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
追加の用例は love.graphics.stencil Wiki ページに掲載されています。
関数
そのほかの言語
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