Свертка GLSL с большим ядром в текстурной памяти - PullRequest
1 голос
/ 07 марта 2011

Я очень новичок в GLSL, но я пытаюсь написать сверточное ядро ​​с фрагментным шейдером для обработки изображений.Я смог сделать это очень хорошо, когда мое ядро ​​было маленьким (3х3) с использованием постоянной матрицы.Теперь, однако, я бы хотел использовать ядро ​​размером 9x9.Или в этом отношении произвольного размера.Первоначально я думал о настройке памяти текстур, содержащей ядро ​​свертки.Затем, используя 2D-сэмплер, я считывал текстурную память ядра и объединял ее с текстурной памятью изображения (также 2D-сэмплер).Это правильный путь?

Полагаю, вы могли бы также создать массив произвольного размера, содержащий коэффициенты.Это может работать для 81 коэффициента, но что произойдет, если вы хотите что-то большее?Например, 20х20?

В общем, если вам нужен доступ к нескольким крупным объектам в GLSL, какова правильная стратегия?Спасибо!Спасибо,

D

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Последовательный доступ:

  1. Атрибуты вершины

Случайный доступ:

  1. Буферы текстур / Унифицированные блоки , если источником является буфер
  2. Униформа , если источник небольшой
  3. Текстуры в противном случае
0 голосов
/ 07 марта 2011

Да, поскольку равномерное и постоянное пространство ограничено, использование текстуры в качестве замены является хорошей стратегией.

...