Граница QUADS
Всем привет. Мне опять нужна помощь))
Я столкнулся со следующей проблемой...я рисую сетку из прямоугольников, и на каждый меш накладываю текстуру...Если буду рисовать GL_QUAD_STRIP, то всё хорошо, но если просто GL_QUADS, то границы стаовятся видными.
Как мне исправить это??? Пробовал
не помогло.
Я столкнулся со следующей проблемой...я рисую сетку из прямоугольников, и на каждый меш накладываю текстуру...Если буду рисовать GL_QUAD_STRIP, то всё хорошо, но если просто GL_QUADS, то границы стаовятся видными.
Как мне исправить это??? Пробовал
|
не помогло.
P.S. 151 страница
Gl.glPolygonMode(Gl.GL_FRONT, Gl.GL_LINE);
Gl.glBegin(Gl.GL_TRIANGLES);
Gl.glEdgeFlag(0);
Gl.glVertex2f(20.0f, 20.0f);
Gl.glVertex2f(20.0f, -20.0f);
Gl.glVertex2f(-20.0f, 20.0f);
Gl.glVertex2f(-20.0f, 20.0f);
Gl.glVertex2f(20.0f, -20.0f);
Gl.glVertex2f(-20.0f, -20.0f);
Gl.glEdgeFlag(1);
Gl.glVertex2f(20.0f, 20.0f);
Gl.glVertex2f(60.0f, 0.0f);
Gl.glEdgeFlag(0);
Gl.glVertex2f(20.0f, -20.0f);
Gl.glEdgeFlag(1);
Gl.glVertex2f(20.0f, -20.0f);
Gl.glVertex2f(0.0f, -60.0f);
Gl.glEdgeFlag(0);
Gl.glVertex2f(-20.0f, -20.0f);
Gl.glEdgeFlag(1);
Gl.glVertex2f(-20.0f, -20.0f);
Gl.glVertex2f(-60.0f, 0.0f);
Gl.glEdgeFlag(0);
Gl.glVertex2f(-20.0f, 20.0f);
Gl.glEdgeFlag(1);
Gl.glVertex2f(-20.0f, 20.0f);
Gl.glVertex2f(0.0f, 60.0f);
Gl.glEdgeFlag(0);
Gl.glVertex2f(20.0f, 20.0f);
Gl.glEdgeFlag(1);
Gl.glEnd();
for (int j = 0; j < N; j++)
{
for (int i = 0; i < M; i++)
{
Gl.glBindTexture(Gl.GL_TEXTURE_2D, Textur[i][j]);
Gl.glBegin(Gl.GL_QUADS);
Gl.glTexCoord2d(0, 1);
Gl.glVertex3d(Vertex[i][j].X, Vertex[i][j].Y, Vertex[i][j].Z);
Gl.glTexCoord2d(1, 1);
Gl.glVertex3d(Vertex[i + 1][j].X, Vertex[i + 1][j].Y, Vertex[i + 1][j].Z);
Gl.glTexCoord2d(1, 0);
Gl.glVertex3d(Vertex[i + 1][j + 1].X, Vertex[i + 1][j + 1].Y, Vertex[i + 1][j + 1].Z);
Gl.glTexCoord2d(0, 0);
Gl.glVertex3d(Vertex[i][j + 1].X, Vertex[i][j + 1].Y, Vertex[i][j + 1].Z);
Gl.glEnd();
}
}
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
А я потом ставил уже
Короче, артефакты так и не пропали… но это не в текстуре проблема:
Если я использую GL_LINEAR, то получаю артефакты:
Если я использую GL_NEAREST, то артефакты пропали:
Но как видно, значительно ухудшилось качество, а мне это недопустимо…
Но из этого видно, что дела не в изображениях для текстуры. так в чем же?