コンピュート シェーダ
グラフィックハードウェアの性能とエミュレーション

スパーステクスチャ

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

スパーステクスチャは全テクスチャデータが一度にメモリに存在するのではないテクスチャです。これらは一般的に“タイル状のテクスチャ”や"メガテクスチャと呼ばれています。

ピクセルあたり32ビットで16384x16384のテクスチャを想像してみよう - それは1GBのメモリを取るでしょう。テクスチャは長方形の"タイルに分割され,各タイルはメモリ内か外のいずれかに存在することができます。カメラからの距離,プレイヤーが見えている世界での活動範囲などに基づいて,必要に応じてこれらのタイルをロードとアンロードすることができます。

それ以外では,スパーステクスチャは単にシェーダ内の他のテクスチャをのように振る舞い,ミップマップを持つことができ,その他すべてのテクスチャフィルタリングモードを使用することができます。存在しないのタイルを読み取るようなことが起きた場合は,未定義の結果を得ることになります(多くのGPU上での結果は黒色ですが,それは保証されたものではありません)。

ハードウェアおよびプラットフォームのすべてがスパーステクスチャをサポートしているのではないことに注意してください。例えば,DirectXのシステムでは,DX11.2(Windows8.1)を必要とします。そして,最近のGPUは,OpenGL上で,拡張されたサポートが必要ですARB_sparse_texture。スパーステクスチャもUnity Proのライセンスが必要です。

詳細は SparseTexture scripting classを参照してください。

コード例

小さな使用例は,大きなテクスチャを作成する地図のようなアプリケーションかもしれません。しかし,わずかでもカメラから見える部分は,いつでもメモリの中にある必要があります。 カメラが移動すると,新たに見えるタイルがロードされ,見えなくなったタイルはロードされません。

サンプルプロジェクト:SparseTextureExample.zip.この例では,簡単な手続き型テクスチャパターンが単一に生成されてます。これは,最近のGPUとDirectX11.2(Windows 8.1)システムが必要であること,またはARB_sparse_textureをサポートするOpenGLを使用することに注意してください。

コンピュート シェーダ
グラフィックハードウェアの性能とエミュレーション