管理着色器时,是否有必要在所有时间编译所有这些并在内存中?或者最好只在内存中使用着色器,并卸载那些暂时没用过的着色器?
答案 0 :(得分:2)
根据应用程序的不同,最重要的因素可能是您不希望遇到阻塞情况,当前帧需要使用已卸载着色器的材质,并且必须在帧继续渲染之前重新加载/编译它因此阻止渲染并可能导致帧速率打嗝。如果您可以避免这种情况并在需要之前先重新加载着色器,那么应该没问题。
但是我会首先进行一些内存分析,看看着色器占用了多少内存 - 在我看来,这似乎是一个微优化(除非你有一些非常大量的加载着色器)。我猜你会通过专注于纹理来节省更多的内存。