Open Asset Import Library (Assimp) - open source библиотека для загрузки ряда популярных (и не очень) 3d моделей. Написана на c++ (кто бы мог подумать) и имеет привязки к Python, D, C#. Сайт : ЛИНК
Умеет импортировать следующие форматы:- Collada ( .dae )
- Blender 3D ( .blend )
- 3ds Max 3DS ( .3ds )
- 3ds Max ASE ( .ase )
- Wavefront Object ( .obj )
- Stanford Polygon Library ( .ply )
- AutoCAD DXF ( .dxf )
- LightWave ( .lwo )
- Modo ( .lxo )
- Stereolithography ( .stl )
- AC3D ( .ac )
- Milkshape 3D ( .ms3d )
- TrueSpace ( .cob,.scn )
- Valve Model ( .smd,.vta )
- Quake I Mesh ( .mdl )
- Quake II Mesh ( .md2 )
- Quake III Mesh ( .md3 )
- Quake III BSP ( .pk3 )
- Return to Castle Wolfenstein ( .mdc )
- Doom 3 ( .md5* )
- Motion Capture
- Biovision BVH ( .bvh )
- CharacterStudio Motion ( .csm )
- DirectX X ( .x )
- BlitzBasic 3D ( .b3d )
- Quick3D ( .q3d,.q3s )
- Ogre XML ( .mesh.xml )
- Irrlicht Mesh ( .irrmesh )
- Irrlicht Scene ( .irr )
- Neutral File Format ( .nff )
- Sense8 WorldToolKit ( .nff )
- Object File Format ( .off )
- PovRAY Raw ( .raw )
- Terragen Terrain ( .ter )
- 3D GameStudio ( .mdl )
- 3D GameStudio Terrain ( .hmp )
- Izware Nendo ( .ndo )
Как я понял, библиотеку можно собрать как для импорта всех поддерживаемых форматов, так и для нескольких выборочных. Возможен экспорт в 3DS и COLLADA.
Разумеется никакой привязки к Delphi нет, но можно работать через C#. В этом случае, как я понял, библиотеку надо пересобрать (без проблем выполнимо с помощью Visual Studio 2008 - сам проверял). В итоге : для работы через C# потребуется ряд модулей-импортеров-оберток (идет в SDK) и Assimp.dll (надо собирать из исходников). При работе через Visual C# Express проблем пока не выявлено.
При загрузке модели помимо имени файла можно нужно указать флаги aiPostProcessSteps. С их помощью можно указать ряд опций, например рассчитывать ли тангенты, производить ли триангуляцию и т.п. После загрузки можно получить доступ к свойствам используемых материалов (диффузные карты, карты нормалей, коэффициэнты), иерархии модели и всяким не очень нужным с точки зрения написания конвертера элементов, таких как источники света и камеры.
В общем, первое знакомство прошло достаточно гладко, библиотека вполне юзабельна.
Каков замысел по ее использованию?
ОтветитьУдалитьИмпортируем файл 3д модели поддерживаемого формата. Затем можно:
ОтветитьУдалить1. Использовать загруженные данные для рендеринга.
2. Использовать загруженные данные для написания конвертера в свой формат.
Вместо того чтобы вытягивать вручную из той же COLLADA данные о структуре модели, данных о геометрии, уже имеем все разложенное по полочкам.