Написать алгоритм генерации 3D теней для 2D картинок без фона

необходимо решить интересную задачу по генерации реалистичных теней, которые могут отбрасывать 2д обьекты на пол. На вход приходит 2д картинка без фона, параметры света, а на выходе надо получить 3D тень картинкой, и совместить с изначальной фоткой в растре.

Пример: надо генерировать релистичные (но упрощённые) тени с фото стула с ножками и поперечными перекладинами (фон уже вырезан), в зависимости от направления света на обьект. Тень должна реалистично начинаться от каждой ножки и так же видна тень от перекладин и сидения.

Из быстрых экспериментов стало ясно что сделать это вполне реально, как вариант: делаем 3D экструзию 2D контура (с вырезами) нашей картинки, далее размещаем на сцене и дальше просто крутим свет параметрами скрипта. Но возможно есть и другие варианты.


Проблема:
  • сложная математика и 3D моделирование это не моя компетенция, сообенно если надо всё довести до уровня стабильных результатов. Всё остальное - деплой, обёртка и размещение на сервере - по моей части. В остальном задача точно решаемая.

Методы решения:
  • моделирование в 3D
  • все варианты с трансформациями копии обьекта в 2D уже пробовал - не получается сделать реализм никак. На сложных обьектах ломается либо тень нереалистичная.

Технологии:
  • Blender - Python API
  • Unity/WebGL/OpenGL - Web
  • ThreeJS - Web
  • Предпочитетельней быстрый Web, но и серверное решение тоже подходит

Требования:
  • Полная автоматизация, то есть это должен быть скрипт которому скармливаем наше фото без фона и получаем тень обратно (реализовать локально под Win/Linux)
  • Угол, направление и интенсивность света - параметры на вход
  • Есть упрощения: так как тень у нас всё равно размытая это помогает срезать углы в скорости рендера и т.д. Нет необходимости идеально повторять обьект в 3д - достаточно повторить общую форму
  • Должно работать быстро <3сек

Просьба писать только исполнителям с реальным опытом решения подобных задач. Если опыта нет - можете попробовать сделать демку чтобы отклик стал предметный.

По отклику могу дать больше информации и примеры.

Читайте на 123ru.net