WaveFront - программа для расчета CGH
Технический отчет о разработке: Создание программной оболочки (PC) для расчета CGH (компьютерно синтезированных голограмм) с использованием в качестве объектов 2d транспарантов и 3d моделей.
![]()
Научно-исследовательская часть
Разработка данного ПО представляла собой междисциплинарный проект на стыке прикладной оптики и программирования. Работа над алгоритмической частью включала:
- Теоретический анализ: Глубокое изучение научных статей и классических формул расчета CGH как результата интерференции опорного пучка и множества светящихся точек объекта.
- Трансляция моделей: Перевод физических формул из теоретического вида в дискретный математический алгоритм для компьютерных вычислений на языке C#.
- Экспериментальная проверка ядра: Проведение тестов на эталонных моделях для подтверждения того, что программная реализация в Unity математически эквивалентна физическим процессам.
Функциональные возможности системы (Базовый модуль)
На основе верифицированного алгоритма была создана программная среда в Unity со следующим функционалом:
Конфигурация оборудования
- Параметры SLM: Разрешение матрицы (пиксели) и физический размер пикселя (мкм).
- Параметры лазера: Длины волн для трех каналов (RGB).
Работа с исходными данными
- Многослойность: Возможность загрузки до 6 независимых ч/б 2d изображений в качестве слоев объекта.
- Геометрические настройки: Для каждого изображения задаются физические размеры (x, y в мкм), точное расстояние от плоскости голограммы (z) и число точек расчета.
- Экспорт: Автоматизированное сохранение результата в формате PNG без сжатия и цветовых искажений.
Управление процессом расчета
- Выбор конкретной длины волны для генерации маски (одной или RGB).
- Ввод угла падения опорного пучка.
- Выбор предельного угла дифрации. Для сепарации точек которые не могут быть физически сформированы из-за разрешения дифракционной решетки.
- Визуальный мониторинг: общее количество точек в сцене и общее расчетное время (ETA).
Дополнительный модуль: Работа с 3D-геометрией
Для автоматизации создания голограмм 3d объектов, был разработан внутренний инструмент «Виртуального сканирования» объектов в среде Unity:
- Импорт 3D-моделей: Использование стандартных мешей с настройкой освещения.
- Объемная дискретизация: Алгоритм сканирует пространство размещения модели с определенным шагом, фиксируя координаты (x, y, z) и цвет каждой точки поверхности.
- Интеграция: Данные передаются в основное ядро для синтеза голограммы объемного объекта.
Заключение и верификация
В ходе финальных испытаний PNG распределения (сгенерированные по цветной 3d модели) выводились на амплитудный SLM. Оптическое восстановление изображения достаточно точно совпало с расчетными данными, что подтвердило точность алгоритма и работоспособность программной оболочки.
