2012-05-19 147 views
1

可以說我有一個金字塔......我知道如何繪製它,並且我知道如何爲整個金字塔設置紋理,但是如何爲每個牆設置不同的紋理?LWJGL,openGL多紋理

我加入這個GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getTextureID());之前GL11.glBegin(GL11.GL_TRIANGLES);

我試圖通過每3線,設置金字塔的頂點座標後加入GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getTextureID());綁定的紋理,但GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getTextureID());不會工作,如果它是GL11.glBegin(GL11.GL_TRIANGLES);GL11.glEnd();之間設置了紋理

編輯

我單獨繪製每面牆上都和它的工作,但我不喜歡這樣...這看起來棘手,我...我那是做我想做的一個好方法?

回答

1

我認爲最好的方法就是你所做的,分開繪製它們。您通常希望每個'批'指的是一個單一的材料。

如果您確實想要將四種紋理打包到一張紙上,並讓每個牆都用獨特的texcoords選取其中的一部分,但這可能是不必要的複雜性,除非您的性能受到太多批次的影響。

1

我不認爲有一個直接的方式來做到這一點在GL中。您可能想要將紋理合併爲一個大圖像,然後使用紋理座標來選擇正確的子圖像。

即使你得到它的工作數量有限的紋理,例如通過切換紋理單元並在另一個紋理單元上使用白色像素(或使用高級GLSL材質),它可能不會縮放到性能:http://origin-developer.nvidia.com/docs/IO/8230/BatchBatchBatch.pdf