Странная тонкая линия или точки внизу моей текстуры opengl - PullRequest
0 голосов
/ 01 марта 2011

Я сделал приложение, похожее на это: http://www.youtube.com/watch?v=U2uH-jrsSxs (звук немного громкий и плохой).Проблема в том, что в нижней части каждой текстуры есть очень тонкая линия (точки).Это почти незаметно, но оно есть, и я понятия не имею, почему.Мой размер текстуры 256х256.Я тестировал ранние модели с размером текстуры 128x128. Думаю, там ничего не было, но я не уверен.Это не такая уж большая проблема, поскольку она очень тонкая, но я нахожу это раздражающим.Вот скриншот .Я выделил КРАСНЫМИ эти строки.Я новичок в OpenGL (ES), поэтому, вероятно, я сделал что-то не так.Любая помощь приветствуется.

1 Ответ

5 голосов
/ 01 марта 2011

Это будет из-за того, что OpenGL выложил текстуру, чтобы заполнить указанную область.Таким образом, тонкая линия, которую вы видите, будет самой вершиной этой текстуры, только начинающей повторяться снова.

Чтобы избежать этого, передайте текстуру CLAMP, а не REPEAT (повторение является синонимом тайлинга).Текстуры повторяются по умолчанию, поэтому вам понадобится строка, подобная этой:

    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP );

Если вы склонны к этому, есть обходной путь без участия кода.Просто отредактируйте исходную графику, чтобы в верхнем или левом краях не было пикселей.Так что переместите всю партию вниз на один пиксель и вправо на один пиксель внутри холста.Но тогда, конечно, вам нужно будет скорректировать свои координаты, если вы хотите, чтобы изображения появлялись в одном и том же месте.

...