Difference between revisions of "Shader Variables (日本語)"
m (→Pixel Shader built-in variables) |
m (→グローバル組み込み変数) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{newin (日本語)|[[0.9.0]]|090|type=組み込みシェーダー変数|plural=y}} | + | {{newin (日本語)|[[0.9.0 (日本語)|0.9.0]]|090|type=組み込みシェーダー変数|plural=y}} |
− | LÖVE | + | 頂点、およびピクセル・シェーダーで用いる LÖVE の組み込み変数です。特に断りがない限り読み取り専用です。 |
== グローバル組み込み変数 == | == グローバル組み込み変数 == | ||
− | {{param|mat4|TransformMatrix|[[love.graphics.translate (日本語)|love.graphics.translate]] | + | {{param|mat4|TransformMatrix|[[love.graphics.translate (日本語)|love.graphics.translate]] および関連関数により影響を受ける変換行列。注意点として、自動バッチ処理をした頂点は CPU で変換後に TransformMatrix で単位行列として扱われます。}} |
{{param|mat4|ProjectionMatrix|直交射影行列}} | {{param|mat4|ProjectionMatrix|直交射影行列}} | ||
Line 9: | Line 9: | ||
{{param|mat4|TransformProjectionMatrix|結合された変換行列および射影行列。[[love.graphics.newShader (日本語)#頂点シェーダー関数|頂点シェーダーの位置]]関数で <code>transform_projection</code> は引数として使用されます。}} | {{param|mat4|TransformProjectionMatrix|結合された変換行列および射影行列。[[love.graphics.newShader (日本語)#頂点シェーダー関数|頂点シェーダーの位置]]関数で <code>transform_projection</code> は引数として使用されます。}} | ||
− | {{param|vec4|VaryingTexCoord| | + | {{param|vec4|VaryingTexCoord|補完処理をした各頂点のテクスチャ座標です。[[love.graphics.newShader (日本語)#頂点シェーダー関数|position]] 関数の呼び出し前に頂点シェーダーにて自動的に <code>VertexTexCoord</code> の値を設定します。 <code>texture_coords</code> は[[love.graphics.newShader (日本語)#ピクセル・シェーダー関数|ピクセル・シェーダー・エフェクト]]関数の引数として使用されます。頂点シェーダーで書き込み可能です。この変数は頂点シェーダーにあるテクスチャの座標を変更するために使用してください。}} |
− | {{param|vec4|VaryingColor| | + | {{param|vec4|VaryingColor|各頂点の補完色です。[[love.graphics.newShader (日本語)#頂点シェーダー関数|position]] 関数の呼び出し前に、頂点シェーダーは LÖVE [[0.10.0]] 以降では <code>ConstantColor * gammaCorrectColor(VertexColor)</code> を、または [[0.9.2]] 以前では <code>VertexColor</code> の値を自動設定します。 <code>color</code> は[[love.graphics.newShader (日本語)#ピクセル・シェーダー関数|ピクセル・シェーダー・エフェクト]]関数の引数として使用されます。頂点シェーダーにおいては書き込み可能です。この関数は頂点シェーダーにある各頂点または定数色を変更するために使用してください。}} |
− | {{newin (日本語)|[[0.9.1]]|091|type=組み込みシェーダー変数}} | + | {{newin (日本語)|[[0.9.1 (日本語)|0.9.1]]|091|type=組み込みシェーダー変数}} |
− | {{param|vec4|love_ScreenSize|x および y 要素の変数に格納された現在表示されている画面(または Canvas) の幅と高さです。 z および w 要素は LÖVE により内部的に使用されます。それは <code>love_ScreenSize.xy</code> または <code>vec2(love_ScreenSize)</code> により | + | {{param|vec4|love_ScreenSize|x および y 要素の変数に格納された現在表示されている画面(または Canvas) の幅と高さです。 z および w 要素は LÖVE により内部的に使用されます。それは <code>love_ScreenSize.xy</code> または <code>vec2(love_ScreenSize)</code> により vec2 へ変換することができます。}} |
== 頂点シェーダー組み込み変数 == | == 頂点シェーダー組み込み変数 == | ||
Line 23: | Line 23: | ||
{{param|vec4|VertexColor|[[Mesh (日本語)|Mesh]], [[SpriteBatch (日本語)|SpriteBatch]], または [[Text (日本語)|Text]] オブジェクトならば、頂点の色、スプライト、またはテキスト文字は各頂点の色で描画されるか、 LÖVE [[0.9.2]] 以前では大域色は [[love.graphics.setColor (日本語)|love.graphics.setColor]] で設定されます。なお、[[love.graphics.isGammaCorrect (日本語)|ガンマ補正]]は適用されません。}} | {{param|vec4|VertexColor|[[Mesh (日本語)|Mesh]], [[SpriteBatch (日本語)|SpriteBatch]], または [[Text (日本語)|Text]] オブジェクトならば、頂点の色、スプライト、またはテキスト文字は各頂点の色で描画されるか、 LÖVE [[0.9.2]] 以前では大域色は [[love.graphics.setColor (日本語)|love.graphics.setColor]] で設定されます。なお、[[love.graphics.isGammaCorrect (日本語)|ガンマ補正]]は適用されません。}} | ||
− | {{newin (日本語)|[[0.10.0]]|100|type=組み込みシェーダー変数}} | + | {{newin (日本語)|[[0.10.0 (日本語)|0.10.0]]|100|type=組み込みシェーダー変数}} |
{{param|vec4|ConstantColor|大域色は [[love.graphics.setColor (日本語)|love.graphics.setColor]] で設定されます。大域[[love.graphics.isGammaCorrect (日本語)|ガンマ補正]]が有効ならば、常にガンマ補正処理が行われます。}} | {{param|vec4|ConstantColor|大域色は [[love.graphics.setColor (日本語)|love.graphics.setColor]] で設定されます。大域[[love.graphics.isGammaCorrect (日本語)|ガンマ補正]]が有効ならば、常にガンマ補正処理が行われます。}} | ||
== ピクセル・シェーダー組み込み変数 == | == ピクセル・シェーダー組み込み変数 == | ||
{{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> と同じものです}} | ||
+ | |||
+ | === 注釈 === | ||
+ | 描画処理でテクスチャへアクセスしたい場合、適切な型の uniform (ユニフォーム) の名前として <code>MainTex</code> を定義します。すなわち <code>uniform Image MainTex;</code> です。 | ||
== 関連 == | == 関連 == | ||
Line 34: | Line 39: | ||
== そのほかの言語 == | == そのほかの言語 == | ||
− | {{i18n|Shader_Variables}} | + | {{i18n (日本語)|Shader_Variables}} |
Latest revision as of 07:52, 23 September 2019
LÖVE 0.9.0 から使用可能 |
これらの組み込みシェーダー変数は以前のバージョンでは非対応です。 |
頂点、およびピクセル・シェーダーで用いる LÖVE の組み込み変数です。特に断りがない限り読み取り専用です。
グローバル組み込み変数
mat4 TransformMatrix
- love.graphics.translate および関連関数により影響を受ける変換行列。注意点として、自動バッチ処理をした頂点は CPU で変換後に TransformMatrix で単位行列として扱われます。
mat4 ProjectionMatrix
- 直交射影行列
mat4 TransformProjectionMatrix
- 結合された変換行列および射影行列。頂点シェーダーの位置関数で
transform_projection
は引数として使用されます。
vec4 VaryingTexCoord
- 補完処理をした各頂点のテクスチャ座標です。position 関数の呼び出し前に頂点シェーダーにて自動的に
VertexTexCoord
の値を設定します。texture_coords
はピクセル・シェーダー・エフェクト関数の引数として使用されます。頂点シェーダーで書き込み可能です。この変数は頂点シェーダーにあるテクスチャの座標を変更するために使用してください。
vec4 VaryingColor
- 各頂点の補完色です。position 関数の呼び出し前に、頂点シェーダーは 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 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-基数であることに注意してください。エフェクト関数が使用される場合、ピクセル・シェーダーは書きこみ可能です。
注釈
描画処理でテクスチャへアクセスしたい場合、適切な型の uniform (ユニフォーム) の名前として MainTex
を定義します。すなわち uniform Image MainTex;
です。