管理着色器时,将所有着色器始终编译并保存在内存中是否有意义?还是只在内存中保留我需要的着色器,并卸载那些暂时未使用的着色器会更好?
最佳答案
根据应用程序,最重要的因素可能是您不希望出现阻塞情况,即当前帧需要使用已卸载着色器的 Material ,并且您必须在帧可以继续渲染之前重新加载/编译它,因此会阻塞渲染并可能导致帧速率出现问题。如果您可以避免这种情况并在需要着色器之前预先重新加载着色器,那么应该没问题。
但我首先会进行一些内存分析,以查看着色器占用了多少内存 - 在我看来,这就像一个微优化(除非您加载的着色器数量惊人地多)。我的猜测是,通过专注于纹理,您会节省更多内存。
关于c++ - 内存中着色器的数量在多大程度上影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9874339/