Qt3D使用assimp加载常规模型文件

Qt3D使用assimp加载三维模型文件,assimp支持很多常规格式的三维模型格式: 其中支持导入的格式有:

3D

3DS

3MF

AC

AC3D

ACC

AMJ

ASE

ASK

B3D

BLEND

BVH

CMS

COB

DAE/Collada

DXF

ENFF

FBX

glTF 1.0 + GLB

glTF 2.0: 目前,对于glTF2.0,支持以下扩展:

KHR_lights_punctual ( 5.0 )

KHR_materials_pbrSpecularGlossiness ( 5.0 )

KHR_materials_unlit ( 5.0 )

KHR_texture_transform ( 5.1 under test )

HMB

IFC-STEP

IRR / IRRMESH

LWO

LWS

LXO

M3D

MD2

MD3

MD5

MDC

MDL

MESH / MESH.XML

MOT

MS3D

NDO

NFF

OBJ

OFF

OGEX

PLY

PMX

PRJ

Q3O

Q3S

RAW

SCN

SIB

SMD

STP

STL

TER

UC

VTA

X

X3D

XGL

ZGL

此外,某些格式受非自由代码或外部SDK(默认情况下未构建)的依赖而支持:

C4D(https://github.com/assimp/assimp/wiki/Cinema4D-&-Melange)当前支持导入几何+节点层次结构

支持导出的格式有:

DAE (Collada)

STL

OBJ

PLY

X

3DS

JSON (供 WebGl使用, 通过 https://github.com/acgessler/assimp2json)

ASSBIN

STEP

glTF 1.0 (部分支持)

glTF 2.0 (部分支持)

3MF ( 实验阶段 )

FBX ( 实验阶段 )

Qt3D导入三维模型代码: Qt3DRender::QSceneLoader* loader = new Qt3DRender::QSceneLoader(rootEntity); QObject::connect(loader, &Qt3DRender::QSceneLoader::statusChanged, this, [](Qt3DRender::QSceneLoader::Status s) {qDebug() << s;}); QUrl url = QUrl::fromLocalFile(file); loader->setSource(url); rootEntity->addComponent(loader);

虽然assimp实现了主要的模型格式解析,但是Qt3D也封装了不少细节,开发起来十分方便.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzfsp.html