0
我想让我的OpenGL程序使用1纹理(纹理图集)。它是256 x 256.我加载它作为一个正常的纹理。
如果纹理从0,0到1,1,那么我相信每个正方形的大小是0.2。
的问题是只有第一和第三质感的工作。第二个是奇数,第4似乎是第2 + 3的质地和5日是第2,第3和第4放在一起
所以我建了一个简单的函数返回纹理COORDS
int yy = textureId/5;
int xx = textureId % 5;
float size = 1.0f/5;
float[] textureCoordinateDataMap = createTexture(size * xx,size * yy ,size, size);
public float[]createTexture(float x, float y, float xx, float yy)
{
float[] textureCoordinateDataMap =
{
// Front face
x, y,
x, yy,
xx, y,
x, yy,
xx, yy,
xx, y,
// Right face
x, y,
x, yy,
xx, y,
x, yy,
xx, yy,
xx, y,
// Back face
x, y,
x, yy,
xx, y,
x, yy,
xx, yy,
xx, y,
// Left face
x, y,
x, yy,
xx, y,
x, yy,
xx, yy,
xx, y,
// Top face
x, y,
x, yy,
xx, y,
x, yy,
xx, yy,
xx, y,
// Bottom face
x, y,
x, yy,
xx, y,
x, yy,
xx, yy,
xx, y,
};
return textureCoordinateDataMap;
}
我试图硬编码的值,只有那些工作是 0,0 0.4,0 0,0.4 0.4,0.4