Графический дизайн, арт игры, концепт, персонажи, текстуры, анимации, модели
GameDev.ru / Графический Дизайн / Форум / Как создать mesh с несколькими submesh в Blender

Как создать mesh с несколькими submesh в Blender

sotlefПостоялецwww19 апр. 200711:00#0
Уже несколько дней бьюсь на проблемой экспорта объектов в OGRE Mesh в blender.

В мануалах по огру сказано, что mesh состоит из submeshей, но как указать OgreBlenderExport что экспортировать я хочу несколько объектов в mesh тогда?
Может кто кинет ссылку на статью как это правильно делается. Также с при экспорте с одним объектом у меня остались не решенными несколько проблем:
Первая проблема: ось Z объекта становится осью Y.
Вторая: координаты mesh не соответствуют ожидаемым, даже когда я меняю его origin. и это является частью третьей проблемы.
Третья проблема: после выполнения изменений объекта в blender (поворот, изменение масштаба, originа), mesh остается прежним

Я использую blender 2.43, Ogre Eihort 1.4, OgreBlenderExport 1.4, CommandLineTools 1.4

Кто-нибудь знает что можно сделать?

-zap-Постоялецwww19 апр. 200713:09#1
По-порядку.

Во-первых штатный экспортёр не умеет экспортировать более одного обьекта Blender за раз. Субмеши там используются только затем, чтобы разделить треугольники, испоользующие разные материалы. В OGRE каждый submesh привязан к одному материалу (для эффективного рендеринга).

Я усовершенствовал OGRE'вский экспортёр, добавив туда несколько дополнительных возможностей; в частности, теперь можно экспортировать много обьектов за раз, при этом каждый обьект генерирует своё подмножество submesh'ей. Например, если экспортируются обьекты A и B; в обьекте A используется один материал, а в обьекте B используется три материала - в результате получатся четыре submesh'а: A, B@1, B@2, B@3.

Во-вторых для приведения координатной системы Blender в систему OGRE следует установить угол вращения вокруг оси X равным -90 градусов. При этом ось Y становится осью Z, а ось Z становится -Y.

В-третьих в исходном экспортёре обьект всегда экспортируется в локальных координатах обьекта, а не в глобальных координатах. Чтобы применить все изменения масштаба и вращения меша следует нажать Ctrl+A (Apply Scale/Rotation), тогда координаты вертексов реально поменяются (а масштаб станет 1:1 и вращение сбросится в 0/0/0).

Опять же не помню, но по-моему я добавил кнопку World Coordinates, при этом обьект экспортируется в глобальных координатах а не в локальных. Если я ошибся и эта кнопка была в исходном экспортёре - прошу прощения, просто я им никогда не пользовался в чистом виде, мог и забыть.

Я сейчас на работе, но вечером выложу изменённый мною экспортёр по адресу:

http://cs.ozerki.net/zap/pub/ogre_export.py

Я посылал свои изменения автору экспортёра, но он их не стал накладывать мотивируя тем, что он пишет новую версию экспортёра, якобы с нуля. В общем, автор пропал и мои изменения так и остались у одного меня.

Так что рад, если мой труд поможет ещё кому-то.

sotlefПостоялецwww19 апр. 200721:16#2
-zap-

Большое спасибо за такой развернутый ответ и экспортер!

Экспортер выдает мне следующие ошибки:
Traceback (most recent call last):
  File "<string>", line 3830, in buttonCallback
  File "<string>", line 3416, in export
  File "<string>", line 3248, in export_mesh
  File "<string>", line 1855, in __init__
  File "<string>", line 1976, in _createName
AttributeError: 'Blender Mesh' object has no attribute 'hasVertexColours'
Что можно сделать?

П.С. Я подозреваю, что версия библиотек, которые идут вместе с OgreBlenderExport 1.4 не соответствует той, которую вы усовершенствовали

-zap-Постоялецwww20 апр. 200721:52#3
Сначала я подумал, может экспортёр не работает в виндовой версии блендера (сам я использую Linux). Поэтому я установил на втором компе в винде свежий Blender 2.43 затем скопировал плагин в каталог .blender/scripts/, запустил Blender и сразу попытался экспортировать куб, который там отображается по умолчанию. Кроме ошибки "can't import pickle module" (оттого, что не установлен Python) всё остальное сработало как надо. Без модуля pickle не будет работать сохранение настроек плагина в .blend файл, поэтому всё-таки рекомендую установить Python (ровно той версии, с поддержкой которой скомпилировал Blender - он выводит эту версию, если запустить Blender из консоли, для Blender 2.43 это Python 2.4).

В общем, отключите кнопку "Game Engine Materials". Я не использую эти материалы и Вам не советую. В принципе, я исправлю эту ошибку в экспортёре, просто я на неё никогда не нарывался (так как не экспортировал материалы из Game Engine). Используйте обычные материалы, они имеют гораздо больше параметров и нормально экспортируются. В любом случае, Вам скорее всего захочется скорректировать конечные материалы вручную, так что экспортируемый файл с материалами это всего лишь болванка для дальнейшего редактирования.

Что же до ошибки, то это не моя вина. Просто экспортёр был написан под старый блендер, в 2.42 API блендера сильно изменилось и я исправил скрипт в тех местах, где встречал несовместимости. Это место не заметил, так как не использую game engine materials, как уже говорил.

/ Форум / Графический Дизайн / Моделирование

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр