在iPad上运行。
将256x256的纹理映射到四边形。我试图渲染它与实际图像完全相同的大小。四边形看起来正确(形状正确,纹理映射正确),但它只是实际.png大小的75%。
不确定原因。
代码的特征如下(摘录如下):
屏幕是768x1024。 Windows也是768x1024。
glViewport(0, 0, 768, 1024); // aspect ratio 1:1.333
glOrthof(-0.5f, 0.5f, -0.666f, 0.666f, -1.0f, 1.0f); // matching aspect ratio with 0,0 centered
// Sets up an array of values to use as the sprite vertices.
//.25 of 1024 is 256 pixels so the quad (centered on 0,0) spans -0.125,
//-0.125 to 0.125, 0.125 (bottom left corner and upper right corner)
GLfloat spriteVertices[] = {
-0.125f, -0.125f,
0.125f, -0.125f,
-0. 125f, 0.125f,
0.125f, 0.125f,
};
// Sets up an array of values for the texture coordinates.
const GLshort spriteTexcoords[] = {
0, 0,
1, 0,
0, 1,
1, 1,
};
然后拨打适当的电话:
glVertexPointer(2, GL_FLOAT, 0, spriteVertices);
glTexCoordPointer(2, GL_SHORT, 0, spriteTexcoords);
然后
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
渲染时为什么我的精灵小于256x256?
答案 0 :(得分:3)
您的输出为192x192(大约),因为您的四边形大小错误。它是0.25x0.25,“单位长度”方向是X,它是768宽,所以它是0.25 * 768 = 192.如果你切换glOrthof
使得顶部/底部是-0.5和+0.5(适当的话)修正X)它会起作用。