スパーステクスチャを処理するためのクラス
スパーステクスチャは全テクスチャデータが一度にメモリに存在するのではないテクスチャです。これらは一般的に"タイル状のテクスチャ"や"メガテクスチャと呼ばれています。
ピクセルあたり 32 ビットで 16384x16384 のテクスチャを想像してみよう - それは 1GB のメモリを取るでしょう。テクスチャは長方形の"タイルに分割され、各タイルはメモリ内か外のいずれかに存在することができます。カメラからの距離、プレイヤーが見えている世界での活動範囲などに基づいて、必要に応じてこれらのタイルをロードとアンロードすることができます。
それ以外では、スパーステクスチャはシェーダー内の他のテクスチャと同じように扱えます - ミップマップを持たせる、テクスチャフィルタリングモードを使う、等々。存在しないタイルを読み取るようなことが起きた場合は、未定義の結果を得ることになります(多くの GPU 上では黒色になりますが、必ずそうなるとは限りません)。
すべてのハードウェアとプラットホームでスパーステクスチャがサポートされている訳ではないので、使用する前に SystemInfo.supportsSparseTextures をチェックしてください。例えば、 DirectX では、 DX11.2 (Windows 8.1) と、それなりに新しい GPU が必要になります。 OpenGL では、 ARB_sparse_texture エクステンションサポートが必要です。
スパーステクスチャを作成した後、 tileWidth と tileHeight のタイルサイズを照会します。タイルサイズはプラットフォームと GPU に依存します。
タイルをメモリに常駐し、その色のデータを更新するために UpdateTile や UpdateTileRaw を使用します。タイルをアンロードするために UnloadTile を使用します。
関連項目: Sparse Textures
isCreated | スパーステクスチャを実際に作成するか。(Read Only) |
tileHeight | スパーステクスチャタイルの高さを取得します。(Read Only) |
tileWidth | スパーステクスチャタイルの幅を取得します。(Read Only) |
SparseTexture | スパーステクスチャを作成する。 |
UnloadTile | スパーステクスチャファイルをアンロードします。 |
UpdateTile | カラー値を持つスパーステクスチャのタイルを更新します。 |
UpdateTileRaw | RAW のピクセル値でスパーステクスチャファイルを更新します。 |
hideFlags | オブジェクトは非表示、シーンに保存、ユーザーが編集可能、などを設定する。 |
name | オブジェクト名 |
anisoLevel | テクスチャの異方性フィルタリングのレベル |
dimension | テクスチャの次元 (タイプ)。読み取り専用。 |
filterMode | テクスチャのフィルタリングモード |
height | ピクセル単位でのテクスチャの高さ(読み取り専用) |
mipMapBias | ミップマップのバイアス |
width | ピクセル単位でのテクスチャの幅(読み取り専用) |
wrapMode | テクスチャのラップモード (リピートやクランプ) |
GetInstanceID | オブジェクトのインスタンス ID を返します |
ToString | ゲームオブジェクトの名前を返します |
GetNativeTexturePtr | テクスチャリソースへのネイティブ (グラフィックス API に内在する) ポインターを取得します。 |
Destroy | ゲームオブジェクトやコンポーネント、アセットを削除します |
DestroyImmediate | オブジェクト obj を破棄します。 |
DontDestroyOnLoad | 新しいシーンを読み込んでもオブジェクトが自動で破壊されないように設定します |
FindObjectOfType | タイプ type から最初に見つけたアクティブのオブジェクトを返します |
FindObjectsOfType | タイプから見つけたすべてのアクティブのオブジェクト配列を返します |
Instantiate | オブジェクト original のコピーを返します |
SetGlobalAnisotropicFilteringLimits | 異方性のリミットを設定します |
bool | オブジェクトが存在するかどうか |
operator != | 二つのオブジェクトが異なるオブジェクトを参照しているか比較します |
operator == | 2つのオブジェクト参照が同じオブジェクトを参照しているか比較します。 |