Difference between revisions of "love.graphics.setStencilTest (日本語)"
(Created page with "{{newin (日本語)|0.10.0|100|type=関数|text=love.graphics.stencil は love.graphics.setStencil (日本語)|love.graphics.setSte...") |
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]]|100|type=関数|text=[[love.graphics.stencil (日本語)|love.graphics.stencil]] は [[love.graphics.setStencil (日本語)|love.graphics.setStencil]] と共に変更されました}} |
ステンシルにおけるテストを構成または無効にします。 | ステンシルにおけるテストを構成または無効にします。 | ||
Revision as of 05:21, 18 September 2017
LÖVE 0.10.0 から使用可能 |
love.graphics.stencil は love.graphics.setStencil と共に変更されました。 |
ステンシルにおけるテストを構成または無効にします。
ステンシルテストが有効な時、全ての形状は本関数の引数および形状に接触している各ピクセルのステンシル値との間による比較に基づきクリップ / ステンシル処理されてから描画されます。ピクセルのステンシル値は love.graphics.stencil による影響を受けます。
各々の Canvas はピクセルごとにステンシル値を独自に有しています。
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(255, 0, 0, 120)
love.graphics.circle("fill", 300, 300, 150, 50)
love.graphics.setColor(0, 255, 0, 120)
love.graphics.circle("fill", 500, 300, 150, 50)
love.graphics.setColor(0, 0, 255, 120)
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(155, 0, 128)
love.graphics.polygon("fill", 400, 200, 486, 350, 314, 350)
-- 0 と等しいステンシル値を有するピクセルのみ表示を許可します。
love.graphics.setStencilTest("equal", 0)
love.graphics.setColor(144, 214, 128)
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