Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Плагин 3DS для экспорта в формат графического движка
GAMEINATOR forums > Общие разделы > Создание и модификация игр. Геймдев. > Игровые проекты форумчан
surfer
Всем привет.
Увлекаюсь программированием 3D-приложений, но к сожалению не обладаю в достаточной степени ни навыками работы с 3D-пакетами, ни свободным временем для того, чтобы самостоятельно в них разобраться. В данный момент делаю плагин экспорта для 3DS Max в формат графического движка Ogre, всех кто желает оказать помощь прошу тестировать:

плагин
средство для просмотра моделей

Плагин только для 32-х битной версии 3DS Max 2009

Для правильной работы плагина и вьюера требуется установить Microsoft Visual C++ 2008 SP1 (x86) Redistributable Package тем, у кого этот пакет не установлен

Жду ваших замечаний и предложений по поводу плагина и, возможно, не только него
Da Man
На сайте огра есть плагины к максу...
surfer
Да, я в курсе. Стандартный плагин конвертирует модель в .xml и только потом, при помощи специальной утилиты, этот файл конвертируется в бинарный формат огра. Есть еще несколько других, часть из них лишилась поддержки и не совместима с последними версиями 3DS. Кроме того, собственный плагин удобен тем, что на его базе можно соорудить простой редактор карт.
Jesh
surfer
ОС Windows 7 не могу запустить вьювер, ошибка:


Лог(default.txt):
клик
23:56:50: Creating resource group General
23:56:50: Creating resource group Internal
23:56:50: Creating resource group Autodetect
23:56:50: SceneManagerFactory for type 'DefaultSceneManager' registered.
23:56:50: Registering ResourceManager for type Material
23:56:50: Registering ResourceManager for type Mesh
23:56:50: Registering ResourceManager for type Skeleton
23:56:50: MovableObjectFactory for type 'ParticleSystem' registered.
23:56:50: OverlayElementFactory for type Panel registered.
23:56:50: OverlayElementFactory for type BorderPanel registered.
23:56:50: OverlayElementFactory for type TextArea registered.
23:56:50: Registering ResourceManager for type Font
23:56:50: ArchiveFactory for archive type FileSystem registered.
23:56:50: ArchiveFactory for archive type Zip registered.
23:56:50: FreeImage version: 3.10.0
23:56:50: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
23:56:50: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm
,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,j
p2
23:56:50: DDS codec registering
23:56:50: Registering ResourceManager for type HighLevelGpuProgram
23:56:50: Registering ResourceManager for type Compositor
23:56:50: MovableObjectFactory for type 'Entity' registered.
23:56:50: MovableObjectFactory for type 'Light' registered.
23:56:50: MovableObjectFactory for type 'BillboardSet' registered.
23:56:50: MovableObjectFactory for type 'ManualObject' registered.
23:56:50: MovableObjectFactory for type 'BillboardChain' registered.
23:56:50: MovableObjectFactory for type 'RibbonTrail' registered.
23:56:50: *-*-* OGRE Initialising
23:56:50: *-*-* Version 1.6.4 (Shoggoth)
23:56:50: Loading library RenderSystem_Direct3D9
23:56:50: OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library RenderSystem_Direct3D9. System Error: Не найден указанный модуль.

in DynLib::load at ..\src\OgreDynLib.cpp (line 81)


и лог плагина:
клик
23:48:04: Creating resource group General
23:48:04: Creating resource group Internal
23:48:04: Creating resource group Autodetect
23:48:04: Registering ResourceManager for type Mesh
23:48:04: Registering ResourceManager for type Material
23:48:04: Creating resource group GENERAL
23:48:04: MeshSerializer writing mesh data to C:\Users\Загальний\Desktop\test_VAL.mesh...
23:48:04: File header written.
23:48:04: Writing mesh data...
23:48:04: Writing submesh...
23:48:04: Exporting submesh texture aliases...
23:48:04: Submesh texture aliases exported.
23:48:04: Submesh exported.
23:48:04: Writing submesh...
23:48:04: Exporting submesh texture aliases...
23:48:04: Submesh texture aliases exported.
23:48:04: Submesh exported.
23:48:04: Exporting bounds information....
23:48:04: Bounds information exported.
23:48:04: Exporting submesh name table...
23:48:04: Submesh name table exported.
23:48:04: Mesh data exported.
23:48:04: MeshSerializer export successful.
23:48:04: Material 01_-_Default was requested with isManual=true, but this is not applicable for materials; the flag has been reset to false
23:48:04: MaterialSerializer : writing material 01_-_Default to queue.
23:48:04: MaterialSerializer : parsing texture layer.
23:48:04: MaterialSerializer : done.
23:48:04: MaterialSerializer : writing material(s) to material script : C:\Users\Загальний\Desktop\test_VAL.material
23:48:04: MaterialSerializer : done.
23:48:04: Destroying resource group GENERAL
23:48:04: Unloading resource group GENERAL
23:48:04: Finished unloading resource group GENERAL
23:48:04: Unregistering ResourceManager for type Material
23:48:04: Unregistering ResourceManager for type Mesh
surfer
Jesh, спасибо за отклик smile.gif
Вьюер ругается на то что файл RenderSystem_Direct3D9.dll отсутствует или поврежден, хотя более вероятная причина - отсутствие необходимой библиотеки DirectX, требуется версия DirectX не старше, чем в релизе за август 2009 http://www.microsoft.com/downloads/details...b1-442d8712d553

на всякий случай пережал архив с вьюером http://narod.ru/disk/15390337000/meshviewer.zip.html
xbox
Вот проблемка у меня...



стоит 3ds max 2009 32-x

VCRedist
установлен тот что нужно!
Jesh
stalker_xbox
Та версия вьювера устарела, это первое, второе - у тебя ошибка связаня с дырами в atl, обновления надо качать: http://www.microsoft.com/downloads/details...;displaylang=en

stalker_xbox
Что могу сказать, не поленился бы скачал ещё раз, у меня подобная проблема(error 14001) была на XP только для другого плагина, решилась как раз при помощи устаноки данного обновления.
xbox
Так, походу же все стоит, только вот правда у меня винда x-64

Jesh
stalker_xbox
У меня Win 7 64, только проблем нет smile.gif.
xbox
Вот беда, что же делать?
surfer
stalker_xbox, надо ставить именно Microsoft Visual C++ 2008 SP1 (x86) вне зависимости от битности ОС. Поскольку плагин был скомпилирован 32-х битным компилятором, то ему и Redistributable package нужен с 32-х битными библиотеками.

Скачать можно тут: Microsoft Visual C++ 2008 SP1 (x86)

Цитата([the_Jesh] @ 16.12.2009, 01:14) *

Та версия вьювера устарела

Скоро будет новая, с учетом пожеланий и возможностью управлять ресурсами smile.gif
xbox
Цитата(surfer @ 16.12.2009, 01:33) *
stalker_xbox, надо ставить именно Microsoft Visual C++ 2008 SP1 (x86) вне зависимости от битности ОС. Поскольку плагин был скомпилирован 32-х битным компилятором, то ему и Redistributable package нужен с 32-х битными библиотеками.

Скачать можно тут: Microsoft Visual C++ 2008 SP1 (x86)

Цитата([the_Jesh] @ 16.12.2009, 01:14) *

Та версия вьювера устарела

Скоро будет новая, с учетом пожеланий и возможностью управлять ресурсами smile.gif


Спасибо за информацыю, я уже всё поставил и проверил всё норм! Спасибо...
surfer
Новая версия вьюера:

Скачать полностью
Скачать облегченную версию (для тех у кого уже есть предыдущая версия)

От предыдущей пока отличается возможностью управлять ресурсами (материалы, текстуры, геометрия) управление осуществляется навигацией по дереву ресурсов, чем-то похожим на проводник Windows, но в отличие от него структура каталогов может быть любой, на усмотрение пользователя и может совершенно отличаться от реально сушествующей на диске, неизменным остается лишь принадлежность файлов (ресурсов) определенной папке (группе). Для вьюера возможно такая мулька не нужна, но в дальнейшем может пригодиться smile.gif


Следующим шагом будет добавление настроек smile.gif

P.S. При добавлении ресурсов они копируются в папку ассоциированную с группой, при извлечении ресурсов они РЕАЛЬНО удаляются с диска, из этой директории. При извлечении группы ассоциированная папка и ресурсы в ней не удаляются.

P.P.S. В реестр не гадит, все настройки хранятся в собственном конфиге на жестком диске
surfer
OgreMax стал платным для коммерческого использования http://www.ogremax.com/store/store

Для некоммерческой версии введены следующие ограничения
Цитата
Only one texture coordinate set will be exported per mesh.
Only one texture unit will be exported per OgreMax material.

еще один стимул для доработки собственного плагина ))
Jesh
surfer
Только сейчас обратил внимание, что в плагине нет возможности экспортировать меш, а не только сцену в целом(в максе File -> Export Selected надо добавать для ogre).
После попытки импорта текстуры в формате .tga:
Цитата
OGRE EXCEPTION(5:ItemIdentityException): Cannot find a group named test.mesh in ResourceGroupManager::initialiseResourceGroup at ..\src\OgreResourceGroupManager.cpp (line 112)

По возможности сделать импорт текстуры на модель при Root -> ***.mesh -> ПКМ(правая кнопка мыши): добать текстуру(add texture).
surfer
Цитата([the_Jesh] @ 21.12.2009, 23:29) *

File -> Export Selected надо добавать для ogre

Добавлено: setup2.rar ставится поверх предыдущей версии, выбранные ноды сохранятся в разные файлы с именами, которые назначены этим нодам в максе. Могу приделать такую мульку: ноды имена которых начинаются с NOEXPORT_ не будут экспортироваться, это может быть полезным, если в сцене присутствуют какие-то вспомогательные объекты.

Цитата([the_Jesh] @ 21.12.2009, 23:29) *

После попытки импорта текстуры в формате .tga:
Цитата
OGRE EXCEPTION(5:ItemIdentityException): Cannot find a group named test.mesh in ResourceGroupManager::initialiseResourceGroup at ..\src\OgreResourceGroupManager.cpp (line 112)
По возможности сделать импорт текстуры на модель при Root -> ***.mesh -> ПКМ(правая кнопка мыши): добать текстуру(add texture).

Это уже по вьюеру, так? )) Да, с ресурсами есть небольшой косяк, буду разбираться. Выпадающее меню будет, но позже, также как и панель инструментов, сначала надо реализовать нормальную работу основного меню
surfer
Новогодний подарок от ogre3d.org OGRE 1.7.0 RC1 [Cthugha] Released! z_5.gif totstalkir.gif
Jesh
Цитата
Могу приделать такую мульку: ноды имена которых начинаются с NOEXPORT_ не будут экспортироваться, это может быть полезным, если в сцене присутствуют какие-то вспомогательные объекты.

Будет полезно, если в сцене есть объекты, которые создают фон.
Обнаружил, что если в ранее указанных директориях появляются новые файлы с расширением, которое поддерживает вьювер, то в Root -> .../... они отображаются.

Также ещё с пожеланий: по возможности сделать показывание статистики: количество полигонов на модели, вершин, фейсов.
surfer
Давно ничего тут не писал smile.gif
К данному моменту плагин основательно переделан, экспорт анимации так и не добавил, пока, т.к. сейчас полностью переделываю вьюер - нужна расширяемая архитектура, чтобы можно было безболезненно добавлять новые возможности. Ну и нехватка времени и врожденная лень сказываются smile.gif Если есть на форуме единомышленники с навыками программирования на C++ и со знанием STL, то от помощи не отказался бы. Для заинтересованных выложу референс: http://narod.ru/disk/17676860000/reference.rar.html

В данный момент необходимо раскурить вот этот материал: http://www.gamedev.ru/community/toolcorner...ExportAnimation
и добавить-таки экспорт вертексной анимации, это не так сложно, учитывая что экспорт материалов и геометрии уже есть. Со скелетной анимацией сложнее.

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

Страничка проекта на Google code: http://code.google.com/p/ogre-toolset

Для того чтобы скачать исходный код на жесткий диск рекомендую ознакомиться:
http://svnbook.red-bean.com/nightly/ru/svn-book.html

Для комфортной работы с SVN советую: http://tortoisesvn.tigris.org/

Для того, чтобы скомпилировать плагин потребуется:
1. Ogre 1.7 SDK - его можно скачать отсюда: http://www.ogre3d.org/download/sdk
2. 3DS Max SDK - ищите на торрентах.
3. Visual C++ 2008 (9.0)

Для того чтобы скомпилировать вьюер потребуется:
1. Qt 4.5 (http://qt.nokia.com/products)
2. Ogre 1.7 SDK
3. Visual C++

Очень желательно иметь коммерческую версию Qt и Visual Studio Professional Edition - и то и другое можно найти на rutracker.org
Но боюсь, что этих сведений для успешной сборки может оказаться недостаточно, поэтому если возникнут проблемы по ходу сборки, постараюсь помочь в силу возможностей. Также постараюсь ответить на вопросы связанные с кодом =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2022 IPS, Inc.