Здесь задействованы два алгоритма.Первый использует исходное изображение и карту глубины для создания левого и правого изображения.Второй объединяет эти изображения в красно-голубой анаглиф.
Есть несколько способов выполнить первую часть.Один из них - взять исходное изображение и нанести на него текстуру на тонкую сетку, которая лежит в плоскости XY.Затем вы настраиваете значения Z каждой вершины в сетке в соответствии с соответствующим значением в карте глубины.Вы в основном создали текстурированный барельеф.Затем вы используете алгоритм 3D-рендеринга, чтобы визуализировать изображение из двух точек обзора, которые смещены по горизонтали на небольшое количество (по существу, из точки обзора левого и правого глаз человека, когда они будут смотреть на рельеф).
Возможно, существует способ прямого смещения пикселей влево и вправо, что является хорошим быстрым приближением к тому, что я описал выше.
Получив левое и правое изображения, вы пропускаете одно через голубой фильтр, а другое - одно.через красный фильтр.Если у вас есть источники RGB, это так же просто, как взять красный канал из одного изображения и объединить его с зеленым и синим каналами из другого изображения.
Анаглифы лучше всего работают с приглушенными цветами.Если у вас сильные праймериз, это будет выглядеть не так хорошо.Вы можете использовать алгоритм для уменьшения насыщенности цвета исходного изображения перед началом работы.