我试图通过将我的纹理组合成数组纹理来优化我的代码(我意识到我不能使用纹理图集,因为大多数纹理都是重复的(在地面等))。我在 PyGame 和 PyOpenGL 工作,我以前从未使用过着色器。是否可以将单个阵列纹理与glBindTexture(GL_TEXTURE_2D_ARRAY, texname)
并使用 3d 纹理坐标或其他东西来访问不同的图层?没有着色器甚至可能吗?
目前,我使用此函数为每个纹理调用 glDrawArrays:
def DRAW(im, array):
glBindTexture(GL_TEXTURE_2D,im)
glTexCoordPointer(2, GL_FLOAT, 32, array)
glNormalPointer(GL_FLOAT, 32, array[2:])
glVertexPointer(3, GL_FLOAT, 32, array[5:])
glDrawArrays(GL_QUADS,0,len(array)/8)