BlenderУкраина
Главная
Новости
Статьи
Уроки
Файлы
Ссылки
Форум
Галерея
Конкурсы

• Поиск по сайту

Логин:

Пароль:

 Запомнить
Восстановление пароля

Зарегистрироваться

Наше сообщество:

 Форум

 Галерея
       Все работы по рейтингу
       Все новые работы
       Последние комментарии

 Конкурсы
       Ежедневный
       На баннер
       Повтори
       Художественный

 Гостевая

 Радио

RSSНовости Blender
Последние сообщения форума

 Добавить новость
парфюмерияпарфюмерия : Днепропетровск : модели радиомоделирадиомодели модели на радиоуправлении
Сейчас на сайте 37 посетителей:
Dendi, Синяк, Злый Бабун, alexey, Poluver, Кузнец, lastalexxx, kingsun и 29 гостей

Обсуждаемые темы:

W.I.P. от kingsun (kingsun)
Вопросы новичков и ответы (alber)
Просто анимации (Yani-X)
Риггинг (TomBambadil)
Нужен качественный 3д моделинг/текстуринг (Eugennn)
Вопрос(ы) по созданию игр (O.din13)
kenprol WIP (MageasteR)
Blender Game Engine примеры (denis8424)
Болталка (5araon)
W.I.P. от Indigo (Indigo)
Уроки на BLENDERMAKE.INFO (INFERNAL)
Анекдоты (PORSHNE)
WIP alexkovalev1985 (alexkovalev1985)
Наш рабочий стол (le6681)
WIP (marko)
Мультфильм "Ничего страшного!" (viewnosh)

Работа дня:

alber
Ежедневный конкурс моделирования

Новые работы в галерее:


Автор: betal

Автор: toSter

Автор: dopeless


Автоматический полив


Лекарственные травы


Прически и стрижки  

Сообщений 4, на страницах: 1
добавить сообщение

Экспорт мешей в OGRE



Автор: Lost Flint
Скачать .pdf-версию (1 Mb)



Экспортер Мешей OGRE



Blender - это open source пакет создания 3D-контента, предназначенный для моделирования, анимирования, рендеринга и пост-обработки. Экспортер мешей для OGRE - это набор python скриптов, запускаемых напрямую из Blender. На данный момент он поддерживает следующие варианты экспорта:
•меш-объекты с вёртексными цветами, множественными материалами, UV текстурами и смешивающимися цветами,
•арматурная анимация по ключевым кадрам,
•анимация формы меша

Оглавление



• Инсталляция
• Основы использования
• Опции
• Меши
• Материалы
• Материалы для рендеринга
• Материалы для игрового движка (Game Engine)
• Особые материалы
• Анимация
• Арматурная анимация
• Анимация формы (shape-анимация).

Инсталляция



Скрипту необходим доступ к стандартным модулям языка Python, поставляемым отдельно от Blender. Ознакомьтесь с документацией на www.blender.org чтобы узнать, как встроить Python в Blender. Скопируйте скрипт и все поддиректории либо в директорию ".blender/scripts", или в определённую пользователем как директорию скриптов. В окне Blender "Scripts Window" выберите "Script->Update Menus"

Основы использования



Существуют следующие соответствия:

Blender Object (OB) ↔ OGRE::SceneNode
Blender Mesh (ME) ↔ OGRE::Entity

Экспортер преобразует меши из Blender сущностям (Entity) OGRE. Пожалуйста, обратитесь к экспортеру сцен OGRE для преобразования объектов Blender (OB) в ноды (узлы) сцен (SceneNode) OGRE.

Для экспорта мешей сделайте следующее:
• В окне "3D-view" выберите меш, который вы хотите преобразовать.
• В окне "Scripts Window" запустите "Scripts -> Export -> OGRE Meshes".
• Выберите опции экспорта.
• Нажмите кнопку "Export".

Вы получите подробный лог процесса экспорта. Все файлы экспортируются в формат OGRE XML. Используйте OgreXMLConverter из установленной у вас версии OGRE для конвертирования сгенерированных XML-файлов в бинарные файлы .mesh и .skeleton.


Скриншот интерфейса скрипта экспорта

Опции



Selected:


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

Udate


Обновляет список всех объектов, выбранных в окне трёхмерного вида. Также обновляет список доступных действий, удаляет анимацию для удалённых действий и устанавливает анимацию по умолчанию для вновь добавленных действий.

Animation settings of


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

Skeleton


Отображает скелетную анимацию, которая будет экспортирована. Доступно только если меш деформирован арматурой посредством родительской связи или через модификатор.

Pose


Отображает анимацию позы для экспорта. Доступно только если меш имеет shape keys.

Morph


Отображает морф-анимацию для экспорта. Доступно только если меш имеет shape keys. Каждая линия в области полосы прокрутки соответствует анимации, которая будет экспортирована.

Action name


Имя анимации в Blender. Доступно только для скелетной анимации.

Start:


Начальный кадр анимации.

End:


Конечный кадр анимации.

Animation export name


Имя анимации в экспортированном файле OGRE.

Delete


Удалить анимацию из экспорта.

Add


Добавить ещё одну анимацию в экспорт.

Material Settings

(Настройки материалов)

Material File

Имя файла скрипта материала, который будет сгенерирован.

Coloured Ambient


Использовать рассеяный цвет как окружающий вместо белого. Это работает только для материалов, у которых TexFace не установлен.

Copy Texture


Копировать текстуры в путь экспорта, если возможно.

Rendering Materials


Экспортировать материалы, соответсвтующие результатам рендеринга (по умолчанию)

Game Engine Materials


Экспортировать материалы, показанные в игровом движке.

Custom Materials


Экспортировать материалы используя специализированные шаблоны материалов.

Fix Up Axis Y


Blender использует Z как вертикальную ось. Данная опция указывает мешу использовать ось Y как вертикальную

Skeleton name follow mesh


Принудительно образовывать имя скелета от имени меша. Отключите для использования имени арматуры вместо меша.

OgreXMLConverter


Коневертировать XML файлы в бинарные используя OgreXMLConverter. Экспортер должен иметь доступ к этой утилите. Вы можете указать его местонахождение в настройках.

Path


Все файлы экспортёра сохраняются в эту директорию. Меш-файлам даётся имя меша в Blender, после которого следует суффикс ".mesh.xml". Файлам скелетов - имя меша и арматуры, после которого следует суффикс ".skeleton.xml".

Export


Экспортировать все объекты, указанные в списке.

Preferences



OgreXMLConverter



Auto


OgreXMLConverter вызывается без указания его местонахождения. Работает, только если он находится в PATH.

Manual


Вызывается файл, указанный как Converter.

Export Options


Пожалуйста, читайте документацию XMLConverter для большей дополнительной информации.

Additional Arguments


Дополнительные аргументы, добавляемые к вызову конвертера.

Ok


Применить изменения.

Cancel


Отменить изменения.

Help


Отобразить руководство в браузере по-умолчанию.

Quit


Выйти из скрипта экспорта.

Скрипт сохраняет и загружает свои настройки из текстового буфера "OgrePackage.cfg" из текущего .blend-файла. Вы можете сохранить текущие настройки, если сохраните .blend-файл после выхода из экспортера.

Меши



Скрипт поддерживает sticky и вершинные UV-координаты, сглаженные и несглаженные нормали (smooth и solid), цветные вёртексы. Каждый прямоугольный полигон автоматически конвертируется в два треугольных при экспорте. Экспортер использует 16-битные индексы по-умолчанию, но если количество вершин превышает предел в 16 бит, то используются 32-битные индексы.

Скрипт не поддерживает подразделение поверхности (SubSurf). Для экспорта таких объектов вам нужно конвертировать их в меши (Ctrl+C, keep original), или же Apply для модификатора SubSurf, или "Object -> Convert Object Type... -> Mesh (keep original)".

Скрипт не поддерживает опцию мешей "Double Sided", вместо этого используйте "Two Sided".

Для принудительного экспорта цветов вёртексов, выберите "VCol Light" в настройках материала меша и экспортируйте с выключенной опцией "Game Engine Materials".

Материалы



В отличие от OGRE, Blender обрабатывает материалы, UV-текстуры и blend mode раздельно. Ещё в Blender есть различия между представлением материалов в игровом движке и при рендеринге.

Материалы для рендеринга



Имя экспортированного материала - такое же, как в Blender. Если выбрана опция "Two Sided", суффикс "/TWOSIDE" будет добавлен. При выбранной опции "TexFace", будет добавлен суффикс "/TEXFACE" и имя текстуры, назначенной в "UV/Image Editor". Опция "Two Sided" не оказывает влияние на результаты рендеринга имеют присутствует при экспорте только для удобства.


Настройки материалов Blender, учитываемые в экспортированном материале OGRE выделены зелёным цветом


Скрипт экспортирует текстуры с "Map Input", установленным в "UV" и "Map To" установленным в "Col" и поциональным "Alpha". Поддерживаемые опции выделены зелёным.
InterPolMipMapfiltration
yesyestrilinear
yesno linear linear none
noyesbilinear
nononone

Материалы для игрового движка



Имя материала должно быть уникальным. Поэтому имя экспортированного материала состоит из имени материала в Blender (если оно имеется), режима смешивания и имени текстуры (если есть). Если определены цвета вертексов, то добавляется постфикс "/VertCol". Также, если установлена опция two-sided, добавляется "/TWOSIDE".

Есил материал назначен грани, то будут экспортированы только те свойства, которые имеют силу в игровом движке. Это цвета "Col" и "Spe", факторы "Amb", "Spec" и "Hard", и опции "VColPaint" и "TexFace".

Текстуры, назначенные через "UV/Image Editor" также экспортируются. Обратите внимание, что текстуры, которые могут быть экспортированы как материалы для рендеринга, дают вам больший контроль над фильтрацией режимами адресации текстуры (texture address modes)


Настройки граней Blender влияют только на представление в игровом движке. Экспортируемые свойства отмечены зелёным.

Особые материалы



Экспорт материалов по-умлочанию работает хорошо для простых базовых материалов. Однако, вследствие его ограничений, он не подходит для реальных проектов. В большинстве случаев мы разрабатываем специализированные материалы со специальными шейдерами для конкретного проекта. В таком случае мы бы хотели экспортировать файлы материалов в наши специализированные материалы и шейдеры. Здесь приходят на помощь Custom Materials. Продвинутые материалы позволяют вам указать шаблон, на основе которого будет сгенерирован ваш идеальный скрипт материала.

Для его использования, сначала пропишите в Template Path путь к директории, в которой хранится список ваших шаблонов.

Каждый файл шаблона должен иметь расширение .tpl
Например, phong.tpl
#import phong from "phong.material"

material %_materialName : phong
{
  set $diffuse %diffuse_tex
  set $normal %normal_tex
  set $spec %spec_tex
}

Вышеуказанный скрипт использует особенности последней версии OGRE(Shoggoth)

Формат шаблона очень прост. Первая строка зарезервирована для импорта скриптов. Это делается для того, чтобы импорт скриптов находился в начале генерируемых файлов материала. Дублирующиеся импорты будут удалены.

Шаблоны используют замену для подстановки определённых ключей. Ключи определяются как %key или %{key}. Второй вариант предназначен на случай, если вы захотите соединить значение шаблона с фиксированным постоянным значением, например: %{diffuse_tex}.png

Чтобы сообщить экспортеру, какой шаблон использовать с тем или иным материалом, каждому материалу должен быть назначен шаблон. Это делается через свойство материала ID. Чтобы получить к нему доступ, выполните "Run -> ID Property Browser". Для большей информации об ID Property в Blender, смотрите wiki.blender.org/index.php/BlenderDev/ID_Property



Выше представлено использование ID Property. Самое важное - выбрать правильный контекст перед редактированием ID Property. Убедитесь, что выбрана категория "Materials". Потом выберите ваш материал (подсвечен голубым). Кликните на кнопке "New" для создания нового свойства.

Для привязки шаблона, создайте строковое свойство с именем template. Значение свойства используется как имя файла шаблона для этого материала. Например, phong будет соответствовать phong.tpl

Есть один особый случай, когда материал Blender не поддерживает специфическое свойство, необходимое нашему материалу. Здесь вступают в игру особые свойства. Как показано на скриншоте, можно добавить особые свойства материалу. Для этого убедитесь, что вы создали подгруппу (Subgroup) "properties".

Что делать внутри подгруппы "properties" - дело ваше. Иерархия сохраняется. Например:

properties : Subgroup
- someNumber = 123 : Int
- someFloat = 0.234 : Float
- someString = "Hello world" : String
- someGroup : Subgroup
- someIntArray = {1 2 3 4} : Int
- someFloatArray = {0.1 0.2 0.3} : Float

Исходя из вышеизложенного, для доступа к этим особым свойствам:
%someNumber => 123
%someFloat => 0.234
%someString => Hello world
%someGroup.someIntArray => 1 2 3 4
%someGroup.someFloatArray => 0.1 0.2 0.3

Ниже приведён список стандартных свойств, основанных на материалах Blender.

_materialName
_ambient
_diffuse
_specular
_emisive
_scene_blend
_depth_write
_depth_func
_receive_shadows
_culling
_lighting
_fog_override
[textureName]._texture
[textureName]._tex_address_mode
[textureName]._filtering
[textureName]._colour_op
[textureName]._sizeX
[textureName]._sizeY
[textureName]._sizeZ
[textureName]._offsetX
[textureName]._offsetY
[textureName]._offsetZ

Стоит отметить textureName. Имя текстуры (textureName) - это имя, определённое на панели Texture на вкладке Material Buttons. Оно такое же, как и на кнопке, например, tex.123 в результате будет tex, когда tex.1a2 - tex1a2.

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

Анимация



Скорость анимации (в кадрах в секунду) берётся из соответсвующей вкладки рендеринга сцены.


Настройка формата Blender, влияющая на экспорт в OGRE, выделена зелёным.

Арматурная анимация



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

В OGRE вы не можете назначить одной вершине более, чем 4 значимых кости.
Учтите, что OGRE не наследует скалирование родительской кости по-умолчанию.


Скрипт поддерживает как родительскую арматуру, так и модификатор.

Анимация формы (shape-анимация)



Шейп-анимация может быть экспортирована как анимация позы или морф-анимация. При экспорте, скрипт создаст позиции вершин кадр-за-кадром.


Скрипт экспортирует относительные ключи формы
© 2007-2012 Юлия Корбут, некоторые права соблюдены.
© 2007-2012 Julia Korbut, some rights reserved.