# 加载模型

# 加载OBJ模型

使用引擎(Engine)的loadOBJ接口加载OBJ模型。

import { Entity, Model } from '@tx3d/core';

// 加载OBJ模型
engine.loadOBJ(

    'assets/models/LiCun/LiCun.obj',    // obj数据
    'assets/models/LiCun/LiCun.mtl',    // mtl数据
    // 模型实体参数
    {
        transform: {

            position: [ 0.0, 2.0, 0.0 ]

        }
    } 

).then( ( entity ) => {

    // 获取所有模型渲染组件
    const models = Entity.findByComponent( entity, Model );

} );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

提示

模型实体参数,详见ModelEntityParameters

# 加载FBX模型

使用引擎(Engine)的loadFBX接口加载FBX模型。

// 加载FBX模型
engine.loadFBX( 
    
    'assets/models/Samba Dancing/Samba Dancing.fbx',    // fbx数据
    // 模型实体参数
    {
        transform: {

            position: [ 0.0, 1.0, 0.0 ],
            scale: [ 2.0, 2.0, 2.0 ] 

        }
    } 

).then( ( entity ) => {

    // 获取所有模型渲染组件
    const models = Entity.findByComponent( entity, Model );

} );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 加载GLTF模型

使用引擎(Engine)的loadGLTF接口加载GLTF模型。

// 加载GLTF模型
engine.loadGLTF(

    'assets/models/工业广场(烘焙)/工业广场.glb',  // glb数据
    // 模型实体参数
    {
        transform: {

            position: [ 0.0, 1.0, 0.0 ]

        }
    }

).then( ( entity ) => {

    // 获取所有模型渲染组件
    const models = Entity.findByComponent( entity, Model );

} );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

注意

如果加载压缩的GLTF模型,需要设置解压缩解码器(只需要全局设置一次)。如果采用meshopt压缩方式则需要设置meshopt解码器,如果采用draco压缩方式则需要设置draco解码器。此外,如果GLTF的纹理也是压缩的,则需要设置纹理解码器。

import { AssetsManager } from '@tx3d/core';

// 设置Meshopt解码器
AssetsManager.setMeshoptDecoder();

// 设置DRACO解码器
AssetsManager.setDRACODecoder( 'js/libs/draco/gltf/' );

// 设置Basis格式压缩纹理解码器
AssetsManager.setBasisTranscoder( 'js/libs/basis/', engine );
1
2
3
4
5
6
7
8
9
10

# 加载GLTF井下模型

使用引擎(Engine)的loadModelInMine接口加载GLTF井下模型。

// 加载井下传感器模型
engine.loadModelInMine(

    'assets/sensors/风速/风速.gltf',    // gltf数据
    // 井下模型实体参数
    {
        lanewayCode: 'hd_134-1',
        location: 'left',
        yOffset: 2.0,
        zOffset: 0.06,
        position: [
            
            19509628.0938455,
            4168650.13916046,
            956.999069135186

        ]
    }

).then( ( entity ) => {

    // 获取所有模型渲染组件
    const models = Entity.findByComponent( entity, Model );

} );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

提示

井下模型实体参数,详见ModelInMineParameters

# 加载GLTF模型场景

使用引擎(Engine)的loadModelScene接口加载GLTF模型场景。

// 加载模型场景
engine.loadModelScene( 'assets/models/示例工业广场场景/示例工业广场场景.json' ).then( ( entities ) => {

    // 遍历所有模型实体
    for ( let i = 0, il = entities.length; i < il; i++ ) {

        const entity = entities[ i ];

        // 获取所有模型渲染组件
        const models = Entity.findByComponent( entity, Model );

    }

} );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Last Updated: 3/20/2023, 10:34:24 AM