TextureType (日本語)
LÖVE 11.0 から使用可能 |
この列挙型は以前のバージョンでは非対応です。 |
テクスチャの形式 (二次元、キューブマップなど)
定数
- 2d
- 幅と高さから構成される通常の二次元テクスチャ。
- array
- 複数の同一寸法から成る二次元テクスチャを単一オブジェクトにまとめたものです。テクスチャ・アトラスやスプライト・シートと似ていますが、スプライト・シートの滲みとそれ以外の問題を回避します。
- cube
- キューブマップは六面から構成されるテクスチャです。使用にはカスタム・シェーダ (および Shader:send) が必要です。キューブテクスチャのサンプリングをシェーダで行うには、テクスチャの座標ではなく三次元方向のベクトルを扱います。
- volume
- 幅、高度と深度から構成される三次元テクスチャ。使用にはカスタム・シェーダが必要です。ボリューム・テクスチャには第三軸から (日本語)テクスチャ・フィルタを適用することができます。
注釈
アレイテクスチャは love.graphics.drawLayer で、 love.graphics.drawと Quad は Quad:setLayerまたは、カスタムシェーダへ送信することでレンダリングできます。シェーダ内のアレイ・テクスチャ形式のレイヤにあるピクセルの取得時、取得対象のレイヤを決定するために第三テクスチャ座標の構成要素を使用します。
カスタムシェーダの使用時、各テクスチャ形式には各種 GLSL 形式があります。
Image
(またはsampler2D
) は二次元テクスチャです。ArrayImage
(またはsampler2DArray
) はアレイ・テクスチャです。CubeImage
(またはsamplerCube
) はキューブマップ・テクスチャです。VolumeImage
(またはsampler3D
)はボリューム・テクスチャです。
Texel
シェーダ関数は、シェーダで各種形式のテクスチャのサンプルを扱うために使用します。texture2D
, textureCube
などの形式ではなく Texel
を推奨します。理由として、 LÖVE の全バージョンで対応している GLSL はバージョン違いで前者 (texture2D
, textureCube
など) は動作しませんが Texel
は正常に動作します (GLSL 3 では texture2D
は廃止されておりますが、一般的な texture 関数を追加しています)。
各種テクスチャ形式の最大寸法は利用者のシステムにより異なります。必ず love.graphics.getSystemLimits で確認してください。
すべてのシステムで全部のテクスチャ形式に対応しているとは限りません。必ず love.graphics.getTextureTypes で確認してください。
どのシステムでも二次元とキューブ・テクスチャ形式には対応しています。アレイ・テクスチャは OpenGL 3 または OpenGL ES 3 に対応するシステムが必要です。ボリュームや三次元テクスチャは OpenGL 2 または OpenGL ES 3 に対応するシステムが必要です。
関連
- love.graphics (日本語)
- Texture (日本語)
- Texture:getTextureType (日本語)
- love.graphics.newImage (日本語)
- love.graphics.newArrayImage (日本語)
- love.graphics.newCubeImage (日本語)
- love.graphics.newVolumeImage (日本語)
- love.graphics.newCanvas (日本語)
- love.graphics.drawLayer (日本語)