У меня есть домашнее задание, где мне нужно реализовать фильтр искажения стекла, используя OpenGL. По сути, мне разрешено читать пиксель из одного изображения и записывать его в другое (ограничения учителя).
Результат фильтра должен быть примерно таким:
Есть ли учебник или код, объясняющий, как это работает?
Попробуйте шум смещения, что-то вроде:
new_pic (x, y) = old_pic (x + dx (x, y), y + dy (x, y))
где dx и dy — некоторые ограниченные гладкие функции, например:
дх (х, у) = 0
dy (x, y) = грех (y) * грех (x)
постскриптум После того, как вы поймете основную идею, вам, вероятно, понадобятся лучшие функции смещения, я рекомендую шум Perlin, вот отличная статья Кена Перлина:
http://www.noisemachine.com/talk1/