我是OpenGL的新手,目前我正在尝试渲染一个有四个面的立方体,每个面都有不同的纹理.
众所周知,为每种面部类型设置单独的纹理会占用大量内存并使应用程序变慢.
目前我正在尝试使用纹理表作为精灵.我有图形文件,每个纹理16x16像素,256个精灵排列在一个正方形(16x16).
我知道
GL11.glTexCoord2f(1.0f, 0.0f);
GL11.glVertex3f(1.0f, 1.0f, 1.0f);
GL11.glTexCoord2f(0.0f, 0.0f);
GL11.glVertex3f(0.0f, 1.0f, 1.0f);
GL11.glTexCoord2f(0.0f, 1.0f);
GL11.glVertex3f(0.0f, 0.0f, 1.0f);
GL11.glTexCoord2f(1.0f, 1.0f);
GL11.glVertex3f(1.0f, 0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)
让我与整个精灵表所以矩形u和v的glTexCoord2f 具有小于1.0F.
我现在需要的是一个公式,将计算u和v纹理中的任何精灵的ID.
ID在纹理位图中如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 16 20 21 22 23 24...
Run Code Online (Sandbox Code Playgroud)
我想要一个u和v任何这些ID.最后一点没有得到很好的解释,所以如果你愿意,我会更好地解释它.
先感谢您!