Glitch podczas przesuwania kamery w OpenGL

Piszę silnik gry oparty na kafelkach dla iPhone'a i działa on ogólnie poza następującą usterką. Zasadniczo kamera zawsze trzyma odtwarzacz na środku ekranu i porusza się, by podążać za odtwarzaczem poprawnie i rysuje wszystko poprawnie, gdy stoi. Jednak gdy gracz się porusza, kafelki powierzchni, po której gracz idzie po usterce, jak pokazano:

http://img41.imageshack.us/img41/9422/movingy.png

W porównaniu do stacjonarnego (poprawne):

http://img689.imageshack.us/img689/7026/still.png

Czy ktoś ma jakiś pomysł, dlaczego to może być?

Dziękuję za dotychczasowe odpowiedzi. Błąd zmiennoprzecinkowy był moją pierwszą myślą i próbowałem nieco zwiększyć rozmiar płytek, ale to nie pomogło. Zmiana glClearColor na czerwony nadal pozostawia czarne luki, więc może nie jest to błąd zmiennoprzecinkowy. Ponieważ kafelki na ogół używają różnych tekstur, nie wiem, czy można użyć tablic wierzchołków (zawsze myślałem, że ta sama tekstura musi być zastosowana do wszystkiego w tablicy, popraw mnie, jeśli się mylę), a ja nie sądzę, że VBO jest dostępny w OpenGL ES. Poprawienie filtrowania do najbliższego sąsiada poprawiło się, ale usterka nadal występuje co dziesięć ramek, a wynik pikselowy oznacza, że ​​i tak nie jest to rozwiązanie opłacalne.

Główna różnica między tym, co teraz robię, a tym, co robiłem w przeszłości, polega na tym, że tym razem poruszam kamerą, a nie nieruchomymi obiektami na świecie (tj. Kafelkami, gracz wciąż się porusza). Kod, którego używam do przenoszenia kamery to:

void Camera::CentreAtPoint( GLfloat x, GLfloat y )
{
 glMatrixMode(GL_PROJECTION); 
 glLoadIdentity();
 glOrthof(x - size.x / 2.0f, x + size.x / 2.0f, y + size.y / 2.0f, y - size.y / 2.0f, 0.01f, 5.0f);
 glMatrixMode(GL_MODELVIEW);
}  

Czy jest jakiś problem z robieniem tego w ten sposób, a jeśli tak, to czy istnieje rozwiązanie?

questionAnswers(3)

yourAnswerToTheQuestion