При рисовании текстур OpenGL ES они, похоже, «привязываются» к круглым пиксельным местоположениям, как если бы округление было округлено. то есть. рисунок (x: 1.1, y: 5.4) на самом деле рисует на (x: 1, y: 5). Это заставляет текстуры казаться «прыгать» при прокрутке, а не плавно перемещаться.Невозможно нарисовать текстуры OpenGL ES в некруглых местах
Да, я использую плавающие типы для моих вершин и т.д.
рисования линий и т.д. отлично работает с некруглыми местами.
Есть только два фактора в месте текселя:
перевод видовом:
glTranslatef(viewWidth/2.0f, viewHeight/2.0f, 0.0f);
Место Жеребьевка:
glVertexPointer(...); // see below
Я использую следующий код для рисования текстуры:
glTranslatef(scrollX, scrollY, 0.0f);
...
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
// Overlay map.
glTexCoordPointer(2, GL_FLOAT, 0, textureSTs);
glBindTexture(GL_TEXTURE_2D, texture.glTtextureKeyD);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
GLfloat vertices[] = {
x1, y2,
x1, y1,
x2, y1,
x2, y2,
};
glVertexPointer(2, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
Я что-то упустил?
Что такое типы для scrollX и scrollY? возможно, вы обрабатываете их как ints, даже если они плавают? – fazo