最近我在使用OpenGL时遇到了一些问题。我想要在单次绘制调用中使用大量(超过15k)小型的2D纹理(128x128)。但是我无法高效地完成这个任务。目前我发现的方法及其问题如下:
- 据我所知,多纹理的标准解决方案是使用GL_TEXTURE_2D_ARRAY,但通常它的最大尺寸远远不够
- 作为替代方案,我可以使用GL_TEXTURE_3D,通常允许更大的深度,但是据我了解,我必须手动生成mipmap(或者干脆不使用?),如果有成千上万层,则可能由于浮点误差在层之间产生颜色渗透
- 我可以尝试使用纹理图集的GL_TEXTURE_2D_ARRAY,但那样我还必须考虑如何解决mipmapping或wrapping等问题以及颜色渗透的问题。 请问是否有更好的方法,如果有,请推荐一个,或者说出我已经概述的三种方法中哪个更好,我是否忽略了什么问题?