OpenGL: точные текстуры возможны? - PullRequest
3 голосов
/ 13 октября 2010

Это для 2D-игры с OpenGL:

Возможно ли использование OpenGL для отображения текстуры абсолютно нефильтрованной, не растянутой или размытой?

Так что, когда у меня есть BMP, и я конвертирую его в текстуру OpenGL, а затем извлекаю эту текстуру и конвертирую обратно, у меня нет никаких изменений или потери качества / данных?

Ответы [ 2 ]

7 голосов
/ 13 октября 2010

Конечно, просто отключите фильтрацию, это сделано путем установки GL_MIN_FILTER и GL_MAG_FILTER в GL_NEAREST.Также убедитесь, что вы рисуете текстуру в подходящем размере, чтобы тексели были того же размера, что и пиксели.

3 голосов
/ 26 ноября 2010

Как уже говорил Матиас, нужно установить GL_MIN_FILTER и GL_MAG_FITLER на GL_NEAREST (через glTexParameter*).

Но для рендеринга с идеальным пикселем есть еще одна важная вещь - вы не хотите, чтобы ваша текстура была масштабирована до степени двойки. Самый простой способ - указать текстуру с помощью цели привязки GL_TEXTURE_RECTANGLE вместо GL_TEXTURE_2D. На такой связанной текстуре координаты текстуры находятся не в диапазоне (0..1,0..1), как обычно, а вместо этого (0..w, 0..h). Таким образом, вы можете легко индексировать по текстам.

...