Я искал в сети ресурсы, связанные с визуализацией эффекта цветения с помощью GLSL, но ничего не нашел. Хотя учебник на веб-сайте Philip Rideout является хорошим, он работает очень плохо на моем графическом процессоре Nvidia.
Кто-нибудь может подсказать мне, как я должен подойти к этой проблеме и построить довольно эффективную реализацию эффекта цветения?
Ответы:
Как упомянул Тревор в своем комментарии, единственным вариантом может быть уменьшение размера ядра или дальнейшая понижающая дискретизация.
Но внимательно ли вы прочитали учебник, на который вы ссылались? Есть подсказка об использовании аппаратной фильтрации, которую автор называет «хитрой» версией. Это, вероятно, лучший трюк, который вы можете использовать, чтобы оптимизировать эффект цветения, не влияя на его качество.
источник
Я решил очень похожую проблему (смазывание, но фильтр Блума размывает) с двумя проходами.
На первом проходе я размываю в направлении X, а на втором проходе размываю в направлении Y.
Я не знаю, откуда у меня есть этот трюк, но он снижает сложность времени с n² до 2n.
Это работает только для ядер, у которых нет направления (поэтому вы не можете оптимизировать ядро bokeh таким образом).
источник