Автоматическое наложение текстур на орфографические картинки - PullRequest
1 голос
/ 23 марта 2012

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

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

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

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

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

1 Ответ

0 голосов
/ 23 марта 2012

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

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

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

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

- РЕДАКТИРОВАТЬ - Ну, OpenGL может сделать снимок экрана с классом снимков экрана Если он настроен на отсутствие освещения, просто используйте glColor3f и установите для каждого мини-треугольника свой цвет, тогда скриншот будет проекцией на камеру 3D-объекта. Вы используете отдельный отдельный цвет для каждого треугольника в вашей сетке. Затем вы ищите этот цвет на скриншоте.

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

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

...