我正在写一个使用C# / OpenGl与OpenTK库的游戏程序,想要使用纹理图集。
我将我的纹理图集作为OpenGL中的纹理加载(尺寸为256x256),每个瓷砖为32x32。
要显示图集的第一个瓷砖,我使用了以下代码:
GL.Begin(BeginMode.Quads);
GL.TexCoord2(0, 0); GL.Vertex2(0, 0);
GL.TexCoord2(0.125f, 0); GL.Vertex2((32 * zoom), 0);
GL.TexCoord2(0.125f, 0.125f); GL.Vertex2((32 * zoom), (32 * zoom));
GL.TexCoord2(0, 0.125f); GL.Vertex2(0, (32 * zoom));
GL.End();
0.125是通过将1/8相除得出的,其中8是一行/列中的瓷砖数量。
我不知道如何用这种方法计算第二个瓷砖的坐标!我尝试在0和0.125的位置分别使用0.125和0.25,但没有任何效果。我猜测您不能在第一个(0)纹理坐标中使用大于零的值?
如果有人能够提供帮助或提供更好的解决方法,将不胜感激!