Есть ли какой-либо алгоритм для того, чтобы проецировать изображения на неплоскую (деформированную) поверхность?
Это не деформировано слишком много. Это - действительно гладкая поверхность, покрытая высококачественной, надежной калькой. У меня есть 3-мерная модель его. Как может я texturise это с проектором?
Я хочу записать программу в C\C ++\C# для Windows, который смог бы к texturise любая поверхность, данная 3-мерной моделью с помощью проектора.
Мне нужны алгоритм или библиотеки с открытым исходным кодом, содержащие алгоритмы.
Это совсем не так. ясно, какой алгоритм будет использовать стандартная библиотека текстурирования, и это, вероятно, не истинная проекция, поэтому, если точность важна, вам многим нужно сделать это самостоятельно (или провести некоторое исследование того, какие конкретные алгоритмы используются для данной библиотеки).
Основной алгоритм прост. По сути, вам просто нужно найти, где линия, исходящая из точки вашей проекции, пересекает вашу поверхность.Более подробно:
С другой стороны, если ваша поверхность описана математически, для этого может быть простое уравнение, как, например, если бы вы отображали плоскость на сферу.
Да, есть такой алгоритм. Если вы действительно не хотите реализовать его самостоятельно, вероятно, проще позволить существующей реализации 3D графики сделать эту работу за вас - и OpenGL, и DirectX позволят вам наложить текстуру на поверхность 3D модели. Учебники по NeHe включают пример основной идеи с использованием OpenGL.