# 加载模型
# 加载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
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
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
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
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
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
2
3
4
5
6
7
8
9
10
11
12
13
14