love.graphics.newVolumeImage (日本語)
LÖVE 11.0 から使用可能 |
この関数は以前のバージョンでは非対応です。 |
この関数は love.update または love.draw などから繰り返し呼び出すと動作が重くなることがあります。もし、特定の資源を何度も使う必要がある場合は、一括で作成と格納を行うことで効率的に再利用できます! |
ボリューム・イメージは幅、全さと深度から成る 3D テクスチャです。直接的にボリューム・イメージのレンダリングはできませんが、 Shader のコードでのみ使用されます (および Shader:send によるシェーダへの送信)。
ボリューム・イメージをシェーダで使うには、 VolumeImage
または sampler3D
(Image
または sampler2D
ではない) 型を宣言します。シェーダ関数 Texel(VolumeImage image, vec3 texcoords)
はボリューム・イメージからピクセルの色を得るのに使用します。引数 vec3 はサンプル深度表現としての z 構成要素による正規化されたテクスチャ座標です (範囲は [0, 1])。
ボリューム・イメージの典型的な用法として配色分類で用いるシェーダの参照テーブルがあります。例えば、サンプリングにおいてピクセルの二点間の途中にあるテクスチャ座標は三次元のボリューム・イメージで全て補完して用いるため、小規模のボリューム・イメージを参照テーブルとして用いても滑らかな階調表示となります。
直接描画において一枚のアレイに複数の異なるスプライトを格納するとき、アレイ・イメージはボリューム・イメージよりも優れた選択肢となります。
関数
複数指定された統一寸法の画像ファイルからボリューム・イメージを作成します。
概要
image = love.graphics.newVolumeImage( layers, settings )
引数
table layers
- 配列にて、画像のファイルパス (または File, FileData, ImageData, あるいは CompressedImageData オブジェクト) を記したテーブル。テーブルには入れ子テーブルを指定できます。各サブテーブルは単一のミップマップを表しており、すべてのレイヤにはミップマップがあります。
table settings (nil)
- ボリューム・イメージの構成を設定するためのオプションテーブルであり、下記のフィールドがあります:
boolean mipmaps (false)
- True ならば画像でミップマップを使用しますが、 false ならば無効にします。圧縮テクスチャ形式の画像でなければ、ミップマップは自動生成されます。
boolean linear (false)
- True ならば ガンマ補正レンダリングが有効であるとき、画像のピクセルを sRGB ではなく線形として扱います。ほとんどの画像は sRGB として制作されています。
返値
Image image
- ボリューム・イメージのオブジェクト。
注釈
ボリューム・イメージは一部の旧型モバイル機器では対応していません。実行時に love.graphics.getTextureTypes で確認してください。
関連