Java LWJGL,openGL多纹理

Java LWJGL,openGL多纹理,java,opengl,lwjgl,Java,Opengl,Lwjgl,假设我有一个金字塔。。。我知道如何绘制它,我知道如何为整个金字塔设置纹理,但如何为每面墙设置不同的纹理 我通过添加这个GL11.glBindTexture(GL11.GL_texture_2D,texture.getTextureID())来设置纹理前GL11.glBegin(GL11.GL\u三角形) 我试图通过添加GL11.glBindTexture(GL11.GL_TEXTURE_2D,TEXTURE.getTextureID())来绑定纹理之后,但GL11.glBindTexture(G

假设我有一个金字塔。。。我知道如何绘制它,我知道如何为整个金字塔设置纹理,但如何为每面墙设置不同的纹理

我通过添加这个
GL11.glBindTexture(GL11.GL_texture_2D,texture.getTextureID())来设置纹理
GL11.glBegin(GL11.GL\u三角形)

我试图通过添加
GL11.glBindTexture(GL11.GL_TEXTURE_2D,TEXTURE.getTextureID())来绑定纹理之后,但
GL11.glBindTexture(GL11.GL_TEXTURE_2D,TEXTURE.getTextureID())
GL11.glBegin(GL11.GL\u三角形)之间,则代码>不起作用
GL11.glEnd()

编辑


我把每面墙都分开画了,效果很好,但我不喜欢那样。。。我觉得这很棘手。。。这是做我想做的事情的好方法吗?

我认为最好的方法是你所做的,把它们分开画出来。您通常希望每个“批次”指的是单个物料


如果你真的想,你可以将四种纹理打包成一张纸,让每面墙都用独特的texcoords挑出其中的一部分,但这可能是不必要的复杂性,除非你的性能受到太多批次的影响。

我认为在GL中没有直接的方法可以做到这一点。您可能希望将纹理组合成一个大图像,然后使用纹理坐标选择正确的子图像

即使您让它在有限数量的纹理上工作,例如通过切换纹理单元并在另一个上使用白色像素(或使用高级GLSL材料),它也可能无法扩展到性能: