Version: Unity 6.0 (6000.0)
言語 : 日本語
ミップマップストリーミングによる GPU テクスチャメモリの最適化
ミップマップストリーミングの有効化

ミップマップストリーミングの概要

ミップマップストリーミングを使用して、GPU メモリ内のテクスチャのサイズを制限します。

ミップマップストリーミングシステムの仕組み

Unity では、カメラビューの各テクスチャについて、すべてのミップマップレベルをロードするのではなく、指定したレベルまでのみを自動的に計算してロードします。つまり、テクスチャごとに一部のミップマップレベルのみをディスクから CPU と GPU に転送します。

Unity では、できるだけ解像度の高いミップマップレベルをロードしますが、設定したメモリ制限に解像度の高いミップマップレベルが収まらない場合は、低いミップマップレベルを使用します。メモリ制限の設定の詳細は、ミップマップストリーミングの設定 を参照してください。

Unity ではミップマップレベルを GPU にキャッシュし、ディスクと CPU からミップマップレベルが繰り返しロードされるのを防ぎます。

制限

  • Unity は、Terrain (地形) テクスチャのミップマップストリーミングをサポートしていません。常に最高解像度のミップマップレベルを必要とするためです。
  • Unity は、テクスチャ配列、キューブマップ配列、3D テクスチャのミップマップストリーミングをサポートしていません。
  • Graphics.DrawMeshNow などの API を使用してテクスチャを描画する場合、ミップマップレベルの計算に必要な情報が得られません。Texture2D.requestedMipmapLevel API を使用してテクスチャのミップマップレベルを手動で設定するか、テクスチャのミップマップストリーミングを無効にします。
  • テクスチャのタイリングとオフセットに特殊な _ST プロパティを使用していないテクスチャは、正しいミップマップレベルを計算できない場合があります。_ST プロパティの詳細は、Cg/HLSL でシェーダープロパティを参照する を参照してください。
ミップマップストリーミングによる GPU テクスチャメモリの最適化
ミップマップストリーミングの有効化