2013-07-18 2 views
1

У меня есть модель в Blender. Я хотел бы:Несколько текстур в одном в Blender

  1. Подключите несколько различных текстур в один и сохранить его в виде растрового изображения УФ отображение
  2. делает для этих связанных текстур

мне нужно решить эту проблему для текстурированных моделей OpenGL. У меня есть структура данных, которая дает мне возможность привязать одну текстуру к одной модели, поэтому я хотел бы иметь одну текстуру на одну модель. Я знаю, что я могу использовать Texture GL_TEXTURE_xD_ARRAY, но я не хочу усложнять свой проект. Я знаю, как сделать простое UV-отображение в Blender.

Мои вопросы:

  • Могу ли я сделать 1. и 2. фазы исключительно в Blender?
  • Is Blender Bake Техника - это то, что я ищу?
  • Есть ли некоторые учебные пособия, как это сделать? (Для этой одной конкретной проблемы)
  • Может кто-нибудь посоветовать мне другую технику Blender (или OpenGL раствор)

ответ

2
  1. Подключите несколько различных текстур в один и сохранить его в виде растрового изображения
  2. Марка УФ картирование для этих связанных текстур

Вы имеете в виду создание текстурного атласа?

Могу ли я сделать 1. и 2. фазы исключительно в Blender?

Нет. Но это, безусловно, хорошо приняло надстройку.

Является ли технология Blender Bake тем, что я ищу?

No. Blender Bake генерирует содержимое текстуры с использованием процесса рендеринга. Например, у вас может быть текстура на статическом объекте, в который вы испекли глобальное освещение; то вместо пересчета GI для каждого кадра в прохождении текстура используется как источник для условий освещения (она действует как кеш). Другие приложения создают текстуры для игрового движка, из процедурных материалов Blender.

Может кто-нибудь посоветовать мне другую технику Blender (или решение OpenGL)

Я думаю, массив текстур будет действительно лучшим решением, поскольку она также не будет делать проблемы обернутыми/неоднократные текстуры.

+0

Таким образом, лучшим решением было бы текстуры массив, и я должен был подготовить УФ отображение для каждой текстуры модели в Blender и загрузить все текстуры в OpenGL приложения с помощью метода GL_TEXTURE_3D_ARRAY? Должен ли я использовать glActiveTexture() для одной текстуры, а шейдерный код будет более сложным (многие образцы текстур)? – CppMonster

+1

@CppMonster: glActiveTexture делает что-то совершенно другое: позволяет загружать несколько текстур в несколько объектов текстуры. Это не то же самое, что и массив текстур, где у вас есть несколько 2D-изображений, доступных в пределах одной текстуры (цели). Шейдерный код на самом деле намного проще, чем при использовании нескольких текстур. Видите ли, вы просто выбираете, какой из сегментов/слоев массива вы хотите использовать третьим компонентом координаты текстуры. Таким образом, у вас есть ST (== UV от Blender) для местоположения в массиве, а третий компонент R обозначает индекс слоя. – datenwolf

+0

Ваш ответ заполнен. Я знаю, что мне нужно подготовить код OpenGL и мои текстуры (с этим сообщением и 5-й книгой SuperBible), похоже, что мой код не требует стольких изменений, которые я думал. Благодарю. – CppMonster

1

Другая возможность - использовать проецируемую роспись. Объект в блендере может иметь несколько uvmaps, если при импорте он не создает каждый uvmap, вам может понадобиться выровнять каждый из них вручную. Затем вы создаете новый uvmap, который помещает всю модель на одно изображение.

В режиме рисования текстур вы можете использовать проецирование, чтобы использовать материал из одного uvmap в качестве кисти для рисования на новом изображении.

enter image description here

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