Входные данные: 53490 3D-точек и для каждой точки (xyz) и цвета (rgb) головы
Вывод: 2D-изображение лица, если смотреть с определенного места/направления.
Платформа: Matlab C/C++
После изучения я обнаружил, что нужно выполнить шаги
- Перспективная проекция http://en.wikipedia.org/wiki/3D_projection
- Z-буферизация http://en.wikipedia.org/wiki/Z-buffering
- Модель отражения Фонга http://en.wikipedia.org/wiki/Phong_reflection_model
Я реализовал вышеуказанные 3 шага в Matlab. Но для выполнения требуется 8 минут. 2D-рендеринг — часть моего проекта; Я буду вызывать часть 2D-рендеринга 5000 раз позже. Я хочу, чтобы время выполнения было менее 1 секунды.
Основная часть (99,9%) времени уходит на z-буферизацию. Реализация выполняется по вики-ссылке.
Может ли кто-нибудь помочь мне сократить время в Matlab или предложить другую платформу? Будут полезны любые обучающие/демонстрационные ссылки для понимания вышеуказанных шагов.
заранее спасибо