デフォルトでは、ミップマップストリーミングを有効にすると、シーン内のすべてのカメラでミップマップストリーミングが使用されます。
以下の手順に従ってください。
以下の手順に従ってください。
Streaming Controller コンポーネントの Mipmap Bias 設定を使用して、ミップマップストリーミングが自動的に選択するミップマップレベルよりも小さい、または大きいミップマップレベルを Unity に強制的にロードさせます。
Unity は、カメラビューのテクスチャのミップマップレベルに Mipmap Bias 値を追加します。例えば、Mipmap Bias を 2 に設定し、ミップマップストリーミングがテクスチャにミップマップレベル 1 を選択すると、Unity はミップマップレベル 3 (1 + 2) をロードします。
この設定は、StreamingController.streamingMipmapBias API を使用してコントロールすることもできます。
Unity がテクスチャに使用する最大 GPU メモリを設定するには、次の手順に従います。
メモリバジェットは、ミップマップストリーミングと、ミップマップストリーミングを使用しないテクスチャのすべてのミップマップレベルの両方に使用されます。例えば、Memory Budget を 100 MB に設定し、ミップマップストリーミングを使用しないテクスチャが 90 MB ある場合、ミップマップストリーミングのメモリバジェットは 10 MB です。
メモリバジェットを超えないように、Unity は以下の処理を行います。
Max Level Reduction プロパティを使用して、Unity が特定のレベルより小さいミップマップレベルを削除するのを停止できます。この値は、Unity が初めて起動した際にロードするミップマップレベルでもあります。例えば、Max Level Reduction を 2 に設定すると、Unity はレベル 2 以上のミップマップレベルのみをロードし、メモリに保持します。
Unity は、GPU メモリのミップマップレベルを Max Level Reduction 値よりも高い値で維持する必要があります。これは、Unity がメモリバジェットを超えることを示す可能性があります。
プロジェクトのメモリバジェットを見積もるには、次の手順に従います。
これにより、シーンの中で最もリソースを必要とする領域に利用できる十分なテクスチャメモリが確保され、テクスチャの解像度が低下するのを回避できます。メモリに余裕がある場合は、メモリバジェットを大きな値に設定することで、シーンで表示されていないテクスチャデータを GPU キャッシュに保持することができます。
注意エディターで Texture.desiredTextureMemory を使用する場合、合計サイズには Unity がエディターウィンドウを描画するために使用するテクスチャが含まれる場合があります。
以下の API を使用して、ランタイムのメモリバジェットを設定およびコントロールできます。
QualitySettings.streamingMipmapsActive。