我最近在我的项目中添加了一个纹理打包器,该打包器会将一定数量的纹理打包到单个纹理中,如下所示:
因此,举例来说,这个尺寸为582x1023像素。添加这些压缩纹理的目的显然是为了提高性能,因此我想为OpenGL(使用LWJGL)纹理查找最佳纹理大小。我发现的事情,一个得到广泛支持的最大纹理尺寸似乎是1024×1024,根据此为一例。这让我感到奇怪,因为显然很多纹理本身都比这更大,那么这些发生了什么呢?我很确定大多数显卡都支持更大的纹理。我是否可以合理地期望大多数图形卡能够处理4096x4096纹理(或什至更大)?
第二点(我希望这仍然是一个问题,但本质上可以归结为同一问题):纹理的大小应设置为2的幂(256x256、512x512、1024x1024、2048x2048等),并且应该我将小于其的填充纹理填充到下一个2的幂?根据2011年的这个问题,这不是必须的,但可以提高性能并避免出现小错误,而2012年的这个问题说您绝对应该填充纹理。因此,我意识到这些问题以前曾被问过,但它们的日期合理,答案已经更改,而且它们每个都只能部分回答我的问题。其他项目/如何处理?
TL; DR:大多数图形卡可以处理哪种纹理大小?最佳纹理大小是多少(或存在)?我应该将纹理宽度填充到下一个2的幂吗?