Difference between revisions of "love.graphics.drawLayer (日本語)"

m (w.i.p.)
m (translation updated.)
Line 3: Line 3:
  
 
== 関数 ==
 
== 関数 ==
アレイテ・クスチャをレイヤに描画します。
+
アレイ・テクスチャをレイヤに描画します。
 
=== 概要 ===
 
=== 概要 ===
 
<source lang="lua">
 
<source lang="lua">
Line 45: Line 45:
 
ありません。
 
ありません。
 
=== 注釈 ===
 
=== 注釈 ===
The specified layer index overrides any layer index set on the Quad via [[Quad:setLayer]].
+
指定されたレイヤのインデックスは [[Quad:setLayer (日本語)|Quad:setLayer]] で設定した [[Quad (日本語)|Quad]] レイヤのインデックスの設定を上書きします。
  
 
== 関数 ==
 
== 関数 ==
Line 74: Line 74:
 
ありません。
 
ありません。
 
=== 注釈 ===
 
=== 注釈 ===
The specified layer index overrides any layer index set on the Quad via [[Quad:setLayer]].
+
指定されたレイヤのインデックスは [[Quad:setLayer (日本語)|Quad:setLayer]] で設定した [[Quad (日本語)|Quad]] レイヤのインデックスの設定を上書きします。
  
 
== 注釈 ==
 
== 注釈 ==
In order to use an Array Texture or other non-2D texture types as the main texture in a custom [[Shader]], the [[love.graphics.newShader|void effect()]] variant must be used in the pixel shader, and MainTex must be declared as an ArrayImage or sampler2DArray like so: <code>uniform ArrayImage MainTex;</code>.
+
カスタム・[[Shader (日本語)|シェーダ]]のメインテクスチャとしてアレイ・テクスチャ、またはそれ以外の非二次元テクスチャ形式を用いるには、ピクセル・シェーダーで [[love.graphics.newShader (日本語)|void effect()]] の異形を使用します。また、このように ArrayImage または sampler2DArray で MainTex を宣言してください: <code>uniform ArrayImage MainTex;</code>.
  
 
== 用例 ==
 
== 用例 ==
Line 99: Line 99:
  
 
void effect() {
 
void effect() {
     // Texel uses a third component of the texture coordinate for the layer index, when an Array Texture is passed in.
+
     // アレイ・テクスチャが渡されたとき、テクセルはレイヤ・インデックスに対して第三構成要素のテクスチャ座標を使用します。
     // love sets up the texture coordinates to contain the layer index specified in love.graphics.drawLayer, when
+
     // LOVE がアレイ・テクスチャをレンダリングするとき love.graphics.drawLayer で指定された
     // rendering the Array Texture.
+
     // レイヤ・インデックスがあるテクスチャ座標を設定します。
 
     love_PixelColor = Texel(MainTex, VaryingTexCoord.xyz) * VaryingColor;
 
     love_PixelColor = Texel(MainTex, VaryingTexCoord.xyz) * VaryingColor;
 
}
 
}

Revision as of 14:01, 24 July 2019

LÖVE 11.0 から使用可能
この関数は以前のバージョンでは非対応です。

アレイ・テクスチャをレイヤに描画します。

関数

アレイ・テクスチャをレイヤに描画します。

概要

love.graphics.drawLayer( texture, layerindex, x, y, r, sx, sy, ox, oy, kx, ky )

引数

Texture texture
描画対象のアレイ・テクスチャ。
number layerindex
描画時に使用するレイヤのインデックス。
number x (0)
x-軸でのテクスチャ描画位置。
number y (0)
y-軸でのテクスチャ描画位置。
number r (0)
方向 (弧度)。
number sx (1)
尺度変更係数 (x-軸)。
number sy (sx)
尺度変更係数 (x-軸)。
number ox (0)
原点の支距 (x-軸)。
number oy (0)
原点の支距 (y-軸)。
number kx (0)
剪断係数 (x-軸)。
number ky (0)
剪断係数 (y-軸)。

返値

ありません。

関数

指定された Quad を用いてアレイ・テクスチャをレイヤに描画します。

概要

love.graphics.drawLayer( texture, layerindex, quad, x, y, r, sx, sy, ox, oy, kx, ky )

引数

Texture texture
描画対象のアレイ・テクスチャ。
number layerindex
描画時に使用するレイヤのインデックス。
Quad quad
描画時に使用するテクスチャのレイヤにおけるサブセクション (小区分)。
number x (0)
x-軸でのテクスチャ描画位置。
number y (0)
y-軸でのテクスチャ描画位置。
number r (0)
方向 (弧度)。
number sx (1)
尺度変更係数 (x-軸)。
number sy (sx)
尺度変更係数 (x-軸)。
number ox (0)
原点の支距 (x-軸)。
number oy (0)
原点の支距 (y-軸)。
number kx (0)
剪断係数 (x-軸)。
number ky (0)
剪断係数 (y-軸)。

返値

ありません。

注釈

指定されたレイヤのインデックスは Quad:setLayer で設定した Quad レイヤのインデックスの設定を上書きします。

関数

指定された Transform を用いてアレイ・テクスチャをレイヤに描画します。

概要

love.graphics.drawLayer( texture, layerindex, transform )

引数

Texture texture
描画対象のアレイ・テクスチャ。
number layerindex
描画時に使用するレイヤのインデックス。
Transform transform
Transform オブジェクト。

返値

ありません。

関数

指定された QuadTransform を用いてアレイ・テクスチャをレイヤに描画します。

概要

love.graphics.drawLayer( texture, layerindex, quad, transform )

引数

Texture texture
描画対象のアレイ・テクスチャ。
number layerindex
描画時に使用するレイヤのインデックス。
Quad quad
描画時に使用するテクスチャのレイヤにおけるサブセクション (小区分)。
Transform transform
Transform オブジェクト。

返値

ありません。

注釈

指定されたレイヤのインデックスは Quad:setLayer で設定した Quad レイヤのインデックスの設定を上書きします。

注釈

カスタム・シェーダのメインテクスチャとしてアレイ・テクスチャ、またはそれ以外の非二次元テクスチャ形式を用いるには、ピクセル・シェーダーで void effect() の異形を使用します。また、このように ArrayImage または sampler2DArray で MainTex を宣言してください: uniform ArrayImage MainTex;.

用例

アレイ・イメージを多層レイヤーへ描画します

function love.load()
    local sprites = {"sprite1.png", "sprite2.png"}
    image = love.graphics.newArrayImage(sprites)
end

function love.draw()
    love.graphics.drawLayer(image, 1, 50, 50)
    love.graphics.drawLayer(image, 2, 250, 50)
end

love.graphics.drawLayer でカスタム・シェーダを使用します

shader = love.graphics.newShader[[
uniform ArrayImage MainTex;

void effect() {
    // アレイ・テクスチャが渡されたとき、テクセルはレイヤ・インデックスに対して第三構成要素のテクスチャ座標を使用します。
    // LOVE がアレイ・テクスチャをレンダリングするとき love.graphics.drawLayer で指定された
    // レイヤ・インデックスがあるテクスチャ座標を設定します。
    love_PixelColor = Texel(MainTex, VaryingTexCoord.xyz) * VaryingColor;
}
]]

function love.load()
    local sprites = {"sprite1.png", "sprite2.png"}
    image = love.graphics.newArrayImage(sprites)
end

function love.draw()
    love.graphics.setShader(shader)
    love.graphics.drawLayer(image, 1, 50, 50)
    love.graphics.drawLayer(image, 2, 250, 50)
end

関連



そのほかの言語