2016-05-11 3 views
0

Я читал, что если мы отбираем образец в точном центре текселя; то результаты GL_NEAREST и GL_LINEAR будут давать одинаковые результаты. Попытка выяснить, как.Точный центр отбора проб тока texel

p0 p1 p2

p3 p4 p5

p6 p7 р8

Пусть p4 мой текущий текселя выборки. Если вы используете GL_NEAREST, предполагается найти тексель с центром, ближайшим к текущему текселю. Если моя точка выборки находится точно в центре p4; будет ли он давать средние значения p1, p3, p5 и p7 для GL_NEAREST, что в точности совпадает с GL_LINEAR?

Как GL_NEAREST и GL_LINEAR становятся идентичными?

Да, тогда я хочу получить точный центр моего текущего текселя p4, чтобы получить те же результаты для GL_NEAREST и GL_LINEAR. Как найти точный центр тока texel

ответ

1

Как GL_NEAREST и GL_LINEAR становятся идентичными?

Идеализированная точка отсчета математически упадет в какой-то точке между четырьмя идеализированными точками текселя. Фильтр GL_LINEAR возвращает средневзвешенное значение четырех текселей на основе расстояния между каждым текселем и фактической координатой образца.

Если точка находится точно над верхней частью одной точки выборки, тогда вес остальных трех должен быть равен нулю.

Как найти точный центр текущего тексела

трудный вопрос - это зависит от треугольников вы подаете, как они раскладывают на экране, а также размер текстуры вы рендеринга. Нет такой вещи, как «текущий тексель».

Если вы действительно хотите получить точную копию 1: 1, вы также можете просто использовать glBlitFramebuffer или что-то в этом роде ...

Смежные вопросы