суббота, 24 декабря 2011 г.

Open Asset Import Library

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. С их помощью можно указать ряд опций, например рассчитывать ли тангенты, производить ли триангуляцию и т.п. После загрузки можно получить доступ к свойствам используемых материалов (диффузные карты, карты нормалей, коэффициэнты), иерархии модели и всяким не очень нужным с точки зрения написания конвертера элементов, таких как источники света и камеры.
    В общем, первое знакомство прошло достаточно гладко, библиотека вполне юзабельна.

2 комментария:

  1. Каков замысел по ее использованию?

    ОтветитьУдалить
  2. Импортируем файл 3д модели поддерживаемого формата. Затем можно:
    1. Использовать загруженные данные для рендеринга.
    2. Использовать загруженные данные для написания конвертера в свой формат.
    Вместо того чтобы вытягивать вручную из той же COLLADA данные о структуре модели, данных о геометрии, уже имеем все разложенное по полочкам.

    ОтветитьУдалить