Проблема, с которой я сталкиваюсь, заключается в следующем.
У меня есть несколько 3D-сканирований головы, некоторые из них сделаны правильно (например, прикрепленный пример), но во многих легко увидеть, что у отсканированного человека голова была не точно выровнена с передней частью машины и, следовательно, с одной стороны текстуры ( и карта глубины), кажется, "шире" (точная причина в том, что одна сторона была взята больше сзади, это можно легко увидеть, если вы посмотрите на уши).
К счастью, когда я перехожу от цилиндрических координат к картезианским и отрисовываю лицо с помощью XNA, лицо симметрично.
Теперь дело в том, что я хотел бы, чтобы карты текстуры и глубины всех моих голов были такими же красивыми и симметричными, как и правильные (потому что позже я хочу выровнять их и выполнить PCA).
Идея, которая у меня есть на данный момент, заключается в том, что я мог бы интерполировать поверхности между всеми вершинами и из этих интерполяций брать новые вершины, которые одинаково удалены друг от друга.
Это решение кажется много работы и, возможно, его излишним.
Может быть, есть какой-то другой способ (например, получить эти данные интерполяции из DirectX / XNA, которые в любом случае должны их вычислять).
Я буду очень благодарен за полезные ответы.
Правильный пример:
http://i55.tinypic.com/332mio2.jpg
Неверный пример:
http://i54.tinypic.com/309ujvt.jpg