Проблема с разделением шейдера DFT на два прохода - PullRequest
0 голосов
/ 09 июля 2020

Я работаю над созданием шейдера FFT для 2D-изображений.

Первый шейдер вычисляет 2D DFT за один проход. Результат этого шейдера кажется правильным.

Однако, когда я использую второй шейдер, который использует два прохода, сначала вычисляя 1D DFT по строкам, а затем по столбцам 1D DFT, вывод не соответствует первому.

https://repl.it/@SukantPal / Inside-Pixi JS -Experiment-GPU-based-FFT-filter # script. js

Я использую фильтры Pixi JS для шейдера. Чтобы запустить первый шейдер, просто удалите метод applyFilter из FFTFilter, и он будет использовать однопроходный шейдер.

Некоторые дополнительные примечания:

  • Я использую Среднее значение RGB для представления входного сигнала.
  • Запуск однопроходного шейдера может привести к зависанию вашего компьютера / графического процессора на некоторое время. )

    Ввод:

    enter image description here

    Correct DFT:

    enter image description here

    Wrong DFT:

    введите описание изображения здесь

1 Ответ

0 голосов
/ 09 июля 2020

Я обнаружил проблему - я был достаточно глуп, чтобы установить TAU на 3,14 вместо 6,28!

...