Difference between revisions of "Shader Variables (日本語)"

m (translation updated)
m (ピクセル・シェーダー組み込み変数)
Line 29: Line 29:
 
{{param|vec4 array|love_Canvases[]|[[love.graphics.setCanvas (日本語)|love.graphics.setCanvas]] により複数のキャンバスが設定される場合および[[love.graphics.newShader (日本語)#ピクセル・シェーダー関数|エフェクト]]関数が <code>effect</code> の代わりに使用される場合、配列はキャンバスごとのピクセルの色として設定するために使用されます。シェーダーにおける配列は 0-基数であることに注意してください。'''エフェクト'''関数が使用される場合、ピクセル・シェーダーは書きこみ可能です。}}
 
{{param|vec4 array|love_Canvases[]|[[love.graphics.setCanvas (日本語)|love.graphics.setCanvas]] により複数のキャンバスが設定される場合および[[love.graphics.newShader (日本語)#ピクセル・シェーダー関数|エフェクト]]関数が <code>effect</code> の代わりに使用される場合、配列はキャンバスごとのピクセルの色として設定するために使用されます。シェーダーにおける配列は 0-基数であることに注意してください。'''エフェクト'''関数が使用される場合、ピクセル・シェーダーは書きこみ可能です。}}
  
{{param|vec2|love_PixelCoord|画面上のピクセル座標です。これは <code>vec4 エフェクト</code>として [[love.graphics.newShader (日本語)#ピクセル・シェーダー関数|シェーダー関数]] へ渡される <code>screen_coords</code> と同じものです}}
+
{{param|vec2|love_PixelCoord|画面上のピクセル座標です。これは <code>vec4 エフェクト</code>として[[love.graphics.newShader (日本語)#ピクセル・シェーダー関数|シェーダー関数]]へ渡される <code>screen_coords</code> と同じものです}}
 
   
 
   
 
=== 注釈 ===
 
=== 注釈 ===

Revision as of 15:12, 3 July 2019

LÖVE 0.9.0 から使用可能
これらの組み込みシェーダー変数は以前のバージョンでは非対応です。

頂点、およびピクセル・シェーダーで用いる LÖVE の組み込み変数です。特に断りがない限り読み取り専用です。

グローバル組み込み変数

mat4 TransformMatrix
love.graphics.translate および関連関数により影響を受ける変換行列。注意点として、自動バッチ処理をした頂点は CPU で変換後に TransformMatrix で単位行列として扱われます。
mat4 ProjectionMatrix
直交射影行列
mat4 TransformProjectionMatrix
結合された変換行列および射影行列。頂点シェーダーの位置関数で transform_projection は引数として使用されます。
vec4 VaryingTexCoord
補完された頂点ごとのテクスチャ座標です。位置関数が呼び出される前に頂点シェーダーにて自動的に VertexTexCoord の値を設定します。 texture_coordsピクセル・シェーダー・エフェクト関数の引数として使用されます。頂点シェーダーで書き込み可能です。この変数は頂点シェーダーにあるテクスチャの座標を変更するために使用してください。
vec4 VaryingColor
頂点ごとに補完された色です。位置関数が呼び出される前に、頂点シェーダーで LÖVE 0.10.0 以降では ConstantColor * gammaCorrectColor(VertexColor) を、または 0.9.2 以前では VertexColor の値を自動設定します。 colorピクセル・シェーダー・エフェクト関数の引数として使用されます。頂点シェーダーにおいては書き込み可能です。この関数は頂点シェーダーにある各頂点または定数色を変更するために使用してください。
LÖVE 0.9.1 から使用可能
この組み込みシェーダー変数は以前のバージョンでは非対応です。
vec4 love_ScreenSize
x および y 要素の変数に格納された現在表示されている画面(または Canvas) の幅と高さです。 z および w 要素は LÖVE により内部的に使用されます。それは love_ScreenSize.xy または vec2(love_ScreenSize) により vec2 へ変換することができます。

頂点シェーダー組み込み変数

vec4 VertexPosition
頂点の事前変形された位置です。vertex_position頂点シェーダーの位置関数の引数として使用されます。ベクトルの第三、第四要素において通常は (0, 1) です。
vec4 VertexTexCoord
頂点のテクスチャ座標です。ベクトルの第三、第四要素において通常は (0, 1) です。 Mesh に対してカスタム・テクスチャの座標を可能にします。
vec4 VertexColor
Mesh, SpriteBatch, または Text オブジェクトならば、頂点の色、スプライト、またはテキスト文字は各頂点の色で描画されるか、 LÖVE 0.9.2 以前では大域色は love.graphics.setColor で設定されます。なお、ガンマ補正は適用されません。
LÖVE 0.10.0 から使用可能
この組み込みシェーダー変数は以前のバージョンでは非対応です。
vec4 ConstantColor
大域色は love.graphics.setColor で設定されます。大域ガンマ補正が有効ならば、常にガンマ補正処理が行われます。

ピクセル・シェーダー組み込み変数

vec4 array love_Canvases[]
love.graphics.setCanvas により複数のキャンバスが設定される場合およびエフェクト関数が effect の代わりに使用される場合、配列はキャンバスごとのピクセルの色として設定するために使用されます。シェーダーにおける配列は 0-基数であることに注意してください。エフェクト関数が使用される場合、ピクセル・シェーダーは書きこみ可能です。
vec2 love_PixelCoord
画面上のピクセル座標です。これは vec4 エフェクトとしてシェーダー関数へ渡される screen_coords と同じものです

注釈

描画処理でテクスチャへアクセスしたい場合、適切な型の uniform (ユニフォーム) の名前として MainTex を定義します。すなわち uniform Image MainTex; です。

関連

そのほかの言語