【发布时间】:2012-01-28 18:20:54
【问题描述】:
我正在使用 OpenGL 在我的游戏中绘制纹理。
glClear(GL_COLOR_BUFFER_BIT);
float w = 128;
float h = 128;
w *= scale;
h *= scale;
GLfloat vertices[] = {
w, 0,
w, h,
0, 0,
0, h
};
float u1 = 0;
float u2 = 1;
float v1 = 0;
float v2 = 1;
GLfloat texCoords[] = {
u2, v1,
u2, v2,
u1, v1,
u1, v2
};
glVertexPointer(2, GL_FLOAT, 0, vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
这是一个简单的例子来解释我的问题。我改变了比例变量,它只影响三角形顶点,不应该改变纹理坐标。当比例为 1 时,我有这张图片:
one http://dl.dropbox.com/u/21467/opengl/1.png
当我将比例更改为 0.99 时,我有这张图片:
two http://dl.dropbox.com/u/21467/opengl/3.png
如果您仔细观察,您会注意到纹理顶部的小条纹。为什么会出现,如何避免?
在我的真实游戏中,我绘制图块,如果我改变比例,我的图块开始出现这些条纹,结果我的游戏中出现了这种讨厌的条纹网格。有谁知道,怎么回事?
【问题讨论】:
-
谷歌关键词:像素完美渲染