2012-03-23 4 views
1

Итак, у меня есть этот объект, смоделированный в моей 3d-программе, и я взял эти фотографии объекта в реальном мире со всех сторон, а также сверху и снизу, используя зеленый экран для сегментации с использованием технологий цветной манипуляции.Автоматическое картирование текстур орфографических изображений

Как вы примените эти орфографические изображения к объекту без вмешательства человека? То есть, я не хочу сам строить текстурную карту, используя фотошоп, но вместо этого использую изображения как входные данные и позволяю моей программе работать с картографией для меня.

Возможно ли это? Я знаю, что были бы швы и пустые пространства для перекрывающихся областей, но это вторичная проблема, которую мне придется решать позже, если мне удастся выполнить первую часть : P

Я думал о кубическом отображении, но потом мой объект должен быть зеркальным и зеркальным, вроде металла, и отражение будет меняться при вращении объекта.

Также я читал о разделении моей сетки на тонны крошечных треугольников, затем раскрашивая каждый из них на проецируемый цвет на соответствующем изображении, но как вы узнаете, что представляет собой соответствующий пиксель на фотографии?

+0

Cube Mapping and specular/reflection - это совершенно разные понятия. – Robinson

+0

Да, я предполагаю, что это не был правильный способ выразить это, что я имел в виду, так это то, что с отображением куба вы получаете нечто похожее на отражение объекта, поэтому, если вы не поворачиваете сам куб-купер, это «отражение» будет изменяются с вращением объекта. Или, может быть, я ошибся. –

ответ

0

Я могу ответить на часть этого, я верю. После того, как вы разделите свою сетку на крошечные треугольники, вы хотите вычислить проекцию этого крошечного треугольника на прямоугольник, который является видом, соответствующим вашей фотографии. Так что вам нужно:

  1. местоположение и направление камеры
  2. расположение и ориентация объекта
  3. для каждого треугольника, вычислить перспективную проекцию на основе указанных выше координат

As альтернативой вычислению этих точек в программном обеспечении, возможно, вы можете использовать специальное цветовое сопоставление, где у вас есть определенный цвет для каждого треугольника, сделать проекцию в opengl с правильными параметрами (без смешивания), а затем получить растровое изображение из opengl , Затем цвета в растровом изображении будут отображаться в треугольник, чтобы вы могли сопоставить местоположение на изображении с отдельными треугольниками.

Я понимаю, что это лишь частичный ответ, но, надеюсь, он полезна!

- EDIT - Хорошо, что OpenGL может сделать скриншот сам с классом скриншотов. Если вы настроили его без освещения, просто используя glColor3f и установите каждый мини-треугольник в свой собственный цвет, тогда скриншот будет проекцией на камеру 3D-объекта. Вы используете отдельный цвет для каждого треугольника в вашей сетке. Затем вы смотрите этот цвет на скриншоте.

Итак: 1. Освещение выключено (он регулирует цвета) 2. Для каждого треугольника сетки: - установите этот треугольник произвольным, но уникальный цвет 3. снимок экрана 4. Для каждого треугольника сетки: - найдите координаты x, y для своего цвета на скриншоте. - использовать х, у координаты, чтобы посмотреть на фотографии и выберите цвет для этой сетки - установить цвет треугольника на цвет вы нашли

Я не знаю, если это будет работать достаточно хорошо, - очевидно, это будет зависят от размера сетки. Если он слишком мал, некоторые цвета не будут отображаться на снимке экрана.Если он слишком велик, вы не будете находить отдельные пиксельные цвета, а скорее находите раздел фотографии, поэтому вам придется использовать обычный вектор для этого треугольника, чтобы преобразовать этот патч в текстуру, применимую к этому треугольнику ,

+0

Я понимаю первое из ваших решений, которое, как мне кажется, достигается, умножая координаты треугольников на матрицу преобразования, которая была бы параметрами камеры, верно? Второе предложение, которое вы предлагаете, это то, что я не совсем понял, можете ли вы немного расширить его, пожалуйста? –

Смежные вопросы