我正在研究一个带有块的小型2D体素引擎,每个块都有一个VBO来渲染。我遇到了一个我可以指定纹理坐标的问题,但我不知道如何告诉VBO用于VBO特定部分的纹理。这是可能的,如果是这样,那么最好的方法是什么?
答案 0 :(得分:0)
在您的情况下,您可以做的最好的事情就是模仿Minecraft使用的系统。您可以拥有一个包含所有子纹理的纹理(http://www.jimmyn.com/tutorials/tut1/minecrafttextures.bmp)。只需编写一个函数,根据网格中的索引计算纹理坐标。
如果您确实需要进行多纹理处理,则必须使用着色器。 LWJGL网站上有一个关于这个的教程,以及编写着色器的介绍:http://lwjgl.org/wiki/index.php?title=Main_Page
第三种解决方案当然只是为一个块中的每个纹理创建一个VBO。因此,具有两个块类型的块将具有2个VBO,并且您可以在绘制它们之间更改纹理。