ミップマップストリーミングによる GPU テクスチャメモリの最適化
ミップマップストリーミングの概要
ミップマップストリーミングを使用して、GPU メモリ内のテクスチャのサイズを制限します。
ミップマップストリーミングシステムの仕組み
Unity では、カメラビューの各テクスチャについて、すべてのミップマップレベルをロードするのではなく、指定したレベルまでのみを自動的に計算してロードします。つまり、テクスチャごとに一部のミップマップレベルのみをディスクから CPU と GPU に転送します。
Unity では、できるだけ解像度の高いミップマップレベルをロードしますが、設定したメモリ制限に解像度の高いミップマップレベルが収まらない場合は、低いミップマップレベルを使用します。メモリ制限の設定の詳細は、ミップマップストリーミングの設定 を参照してください。
Unity ではミップマップレベルを GPU にキャッシュし、ディスクと CPU からミップマップレベルが繰り返しロードされるのを防ぎます。
制限
- Unity は、Terrain (地形) テクスチャのミップマップストリーミングをサポートしていません。常に最高解像度のミップマップレベルを必要とするためです。
- Unity は、テクスチャ配列、キューブマップ配列、3D テクスチャのミップマップストリーミングをサポートしていません。
-
Graphics.DrawMeshNow などの API を使用してテクスチャを描画する場合、ミップマップレベルの計算に必要な情報が得られません。Texture2D.requestedMipmapLevel API を使用してテクスチャのミップマップレベルを手動で設定するか、テクスチャのミップマップストリーミングを無効にします。
- テクスチャのタイリングとオフセットに特殊な
_ST プロパティを使用していないテクスチャは、正しいミップマップレベルを計算できない場合があります。_ST プロパティの詳細は、Cg/HLSL でシェーダープロパティを参照する を参照してください。
ミップマップストリーミングによる GPU テクスチャメモリの最適化
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。