Model 模型
模型加载
通过Container构建一个容器实例,之后通过Model加载一个指定类型的三维模型至容器中即可实现最基本的三维模型查看效果
为了尽量减少光照问题影响观感,因此园区自带了光照系统,不过部分模型格式需要手动打光,因此具体打光需知请看各模型类型的说明。若要使用这类格式的模型,请在构建园区时,显示的关闭自带光照系统
目前框架内置的模型类型(兼容性较好的格式):FBX、GLTF、GLB
如果你希望使用本框架,但又需要加载其它格式的模型,那么请使用three.js提供的加载其它格式模型的方式
FBX
容器默认光照失效,需要手动打光照效果(推荐半球光+平行光)
GLTF
支持默认光照效果,推荐使用hdr增加环境效果(右侧为添加了HDR环境效果)
GLB
支持默认光照效果,推荐使用hdr增加环境效果
如果你希望用该格式,请在项目中public目录下放入three.js提供的draco
解析文件(如果是udm项目,请放在根目录中)
其它格式
这里只是演示three.js支持的其它格式与本框架接入的方式,该案例中通过在构建Model构建时,给url直接传入加载好的模型来进行构建,你也可以直接将加载好的模型添加至容器(如果你不需要Model提供的一些方法)
按轨迹移动
Model自带按照指定轨迹移动,通常用于工业中的巡检、模型历史轨迹等功能
模型克隆
扩展原克隆功能
Options
该对象是对原RTHREE.Object3D
的扩展,因此,它具有原RTHREE.Object3D
对象的所有属性和方法
ICreateParameter
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
name | 模型名称 | string | - |
url | 模型地址或者模型对象 | string |RTHREE.Object3D | - |
modelType | 模型类型 | ModelType | - |
decoderPath | 解码器地址(非必传,默认将从根目录搜索对应的解码器) | string | '/draco/' |
loadProgress | 加载中回调函数 | (progress: number) => void | - |
complete | 构建完成回调函数,函数会返回加载完毕后的模型对象以及动画剪切序列集合(如果该模型有动画才会返回) | (model: Model, animations?: AnimationClip[]) => void | - |
indexdb | 是否走缓存器(需要初始化ModelIndexdb 后,该属性才会生效) | boolean | - |
ModelType
FBX
:FBX模型
GLTF
:GLTF模型
GLB
:GLB模型
OTHER
:其它模型
Methods
clearRemoveFromParent()
更为赶紧的移除方法(释放几何模型以及材质的移出)
clone(recursive?: boolean)
克隆
recursive:是否克隆子孙集
createTrackAnimation(curveParameter: ICurveParameter)
构建移动轨迹动画
ICurveParameter
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
points | 路径坐标集 | RTHREE.Vector3[] | - |
duration | 动画时长单位s | number | - |
completeCallback | 动画播放完毕回调函数 | () => void | - |
loop | 是否循环 | boolean | - |
initPlay | 是否构建完毕后就立即播放动画 | boolean | - |
createTrackLine(color: RTHREE.ColorRepresentation = 0x00FA7F, isDash: boolean = false)
构建移动轨迹线(需要先构建轨迹动画)
color:颜色
isDash:是否为虚线
stopTrack()
暂停轨迹移动(需要先构建轨迹动画)
continueTrack()
继续轨迹移动(需要先构建轨迹动画)
restartTrack()
重新轨迹移动(需要先构建轨迹动画)
setTrackProgress()
设置轨迹到指定进度(需要先构建轨迹动画)