2
在管理着色器的時候,是否有意義地將它們全部編譯並存儲在內存中?還是隻有內存中需要的着色器才更好?並且卸載那些尚未使用過一段時間的着色器?內存中着色器的數量對性能有多大影響?
在管理着色器的時候,是否有意義地將它們全部編譯並存儲在內存中?還是隻有內存中需要的着色器才更好?並且卸載那些尚未使用過一段時間的着色器?內存中着色器的數量對性能有多大影響?
根據應用程序的不同,最重要的因素可能是您不希望出現阻擋情況,即當前幀需要使用未加載着色器的材質,並且必須在幀可以繼續之前重新加載/編譯它渲染,從而阻止渲染並可能導致幀率的呃逆。如果你可以避免這種情況並在你需要之前搶先重新加載着色器,那麼它應該沒問題。
但是我會先做一些內存分析,看看着色器佔用了多少內存 - 在我看來,就像微型優化(除非你有一些晦澀的大量加載着色器)。我的猜測是你可以通過關注紋理節省更多的內存。