glTexParameter и фильтрация в OpenGL и GLSL? - PullRequest
2 голосов
/ 12 января 2011

У меня есть пара вопросов о glTexParameter и фильтрации

1) Какова область применения GLTexParameter (в частности, фильтрации)?Вот сценарий:

  • Привязка текстуры.Установите фильтры на LINEAR
  • Установите текстуру на "Sampler1" шейдера
  • Привязайте другую текстуру.Установите его фильтры на NEAREST
  • Установите эту текстуру на "Sampler2" шейдера
  • Draw

Когда я использую текстуры в шейдере, будет ли линейнаяа другой быть ближайшим?Или они оба будут ближайшими, потому что он назывался последним?

2) Можно ли установить метод фильтрации в GLSL?

Ответы [ 2 ]

5 голосов
/ 12 января 2011

1) Режим фильтрации - это параметр объекта текстуры, то есть режим фильтрации будет применяться только к тем объектам текстуры, которые были активны при установке режима фильтрации.

2) Режим фильтрации - это параметр сэмплера, который должен быть постоянным в течение всего выполнения шейдера. Как таковой он не может быть изменен изнутри шейдера. Однако можно обращаться к отдельным уровням текстуры и образцам без какой-либо применяемой фильтрации, которая может быть использована для реализации пользовательских методов фильтрации (хотя они будут гораздо менее эффективными).

2 голосов
/ 30 мая 2012

Меня тоже беспокоит то же самое, но когда я увидел ваш пост, я нашел решение, которое заключается в использовании как ближайшего, так и линейного в одном шейдере.

Сначала установите текстуру на линейную. Когда вам нужно ближайшее, вы просто зажимаете положение ультрафиолета к центру сетки пикселей. Я надеюсь, что результат будет зависеть от поведения линейной интерполяции.

...