Version: 2020.2
言語: 日本語
GPU インスタンシング
CullingGroup API

スパーステクスチャ

スパーステクスチャ (Sparse texture、タイル化されたテクスチャ、または メガテクスチャとも呼ばれます) は、そのままグラフィックメモリーにのせるには大きすぎるテクスチャのことを言います。Unity はそれらを扱う際、「タイル」と呼ぶ小さな四角形に分割します。個々のタイルは必要に応じて読み込まれます。例えば、カメラにスパーステクスチャの一部分しか映っていない場合、現在映っている部分のタイルだけがメモリー上に必要になります。

タイリング以外では、スパーステクスチャは他のテクスチャと同じように作動します。特殊な変更無しでシェーダーに使う事ができますし、ミップマップの使用、あらゆるテクスチャフィルタリングモードの使用なども可能です。なんらかの理由で個別のタイルが読み込めなかった場合、その結果は常に同じではありません (読み込めなかったタイル部分を黒色で表示する GPU もありますが、このような挙動が標準というわけではありません)。

ハードウェアやプラットフォームのすべてがスパーステクスチャをサポートしているわけではありません。例えば、DirectX のシステムでは、DX11.2(Windows8.1) とかなり最近の GPU を必要とします。OpenGL では、ARB_sparse_texture の拡張サポートが必要です。スパーステクスチャは、圧縮されていないテクスチャ形式のみをサポートします。

スパーステクスチャをスクリプトから操作する方法に関しては、スクリプトリファレンス SparseTexture を参照してください。

サンプルプロジェクト

スパーステクスチャの簡単なサンプルプロジェクトは こちら から入手できます。

サンプルプロジェクトのスパーステクスチャ
サンプルプロジェクトのスパーステクスチャ

このサンプルでは、単純なプロシージャルなテクスチャパターンを使用していて、カメラを動かしてテクスチャの異なる部分を映すことができます。このサンプルプロジェクトを試すには、最近の GPU と DirectX11.2 (Windows 8.1) システム、または ARB_sparse_texture をサポートする OpenGL を使用する必要があります。

GPU インスタンシング
CullingGroup API