深浅模式
Models
说明
通过调用load和loadAsync方法,加载模型。
安装
bash
npm i @poggi/loaders
pnpm add @poggi/loaders
yarn add @poggi/loadersFBX
FBX 格式是支持其格式中的各种数据的黄金标准。FBX 支持 3D 模型、场景层次、材质照明、动画、骨骼、蒙皮和混合形状。FBX 作> 为一种较旧的格式,还支持目前尚未广泛使用的数据,例如 NURBS 曲面和曲线。
loading
GLTF
glTF(GL 传输格式)是一种开放格式规范,用于高效传输和加载 3D 内容。资源可采用 JSON(.gltf)或二进制(.glb)格式提供。外部文件存储纹理(.jpg、.png)和附加二进制数据(.bin)。单个glTF资源可包含一个或多个场景,涵盖网格、材质、纹理、贴图、骨骼、变形目标、动画、光源及/或摄像机等元素。
GLTFLoader在可能情况下优先使用ImageBitmapLoader。
需注意:图像位图在失去引用后不会自动被垃圾回收机制清除,需在销毁过程中进行特殊处理。更多信息请参阅《对象销毁指南》。
loading
GLB
GLTF的二进制格式,对GLTF进行了压缩
loading
OBJ
OBJ 格式支持多边形(Polygon),直线(Lines),表面(Surfaces),和自由形态曲线(Free-form Curves)。直线和多角形通过它们的点来描述,曲线和表面则根据于它们的控制点和依附于曲线类型的额外信息来定义。这些信息支持规则和不规则的曲线,包括那些基于贝塞尔(Bezier)曲线,B样条(B-spline),基数(Cardinal/Catmull-Rom样条),和泰勒方程(Taylor equations)的曲线。 OBJ是一种3D模型文件,因此不包含动画、材质特性、贴图路径、动力学、粒子等信息。
loading
API
Methods
load<T extends keyof ILoaderType>(type: T, parameter: TLoaderParameter)
加载资源函数
loadAsync<T extends keyof ILoaderType>(type: T, parameter: TLoaderParameterAsync):Promise<ILoaderType[T]>
异步加载资源函数
Interfaces
ILoaderType
| 属性名 | 类型 |
|---|---|
| GLTF | GLTF |
| GLB | GLTF |
| FBX | Object3D<Object3DEventMap> |
| OBJ | Object3D<Object3DEventMap> |
| Text | Font |
| TTF | Font |
IGLTFLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| url | 模型地址 | string | 是 | - |
| ktx2Path | ktx2解码器地址 | string | 否 | - |
| dracoPath | draco解码器地址 | string | 否 | - |
| loadProgress | 加载进度 | (progress: number) => void | 否 | - |
| indexdb | 模型是否走缓存器 | boolean | 否 | - |
IGLTFLoaderParameter extends IGLTFLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| loadEnd | 加载后回调 | (object: Object3D, animations?: AnimationClip[]) => void | 否 | - |
IFBXLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| url | 模型地址 | string | 是 | - |
| loadProgress | 加载进度 | (progress: number) => void | 否 | - |
| indexdb | 模型是否走缓存器 | boolean | 否 | - |
IFBXLoaderParameter extends IFBXLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| loadEnd | 加载后回调 | (object: Object3D, animations?: AnimationClip[]) => void | 否 | - |
IOBJLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| url | 模型地址 | string | 是 | - |
| mtl | 材质地址 | string | 否 | - |
| loadProgress | 加载进度 | (progress: number) => void | 否 | - |
| indexdb | 模型是否走缓存器 | boolean | 否 | - |
IOBJLoaderParameter extends IOBJLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| loadEnd | 加载后回调 | (object: Object3D, animations?: AnimationClip[]) => void | 否 | - |
IOBJLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| url | 模型地址 | string | 是 | - |
| mtl | 材质地址 | string | 否 | - |
| loadProgress | 加载进度 | (progress: number) => void | 否 | - |
| indexdb | 模型是否走缓存器 | boolean | 否 | - |
IOBJLoaderParameter extends IOBJLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| loadEnd | 加载后回调 | (object: Object3D, animations?: AnimationClip[]) => void | 否 | - |
ITextLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| url | 资源地址 | string | 是 | - |
| loadProgress | 加载进度 | (progress: number) => void | 否 | - |
| indexdb | 资源是否走缓存器 | boolean | 否 | - |
ITextLoaderParameter extends ITextLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| loadEnd | 加载后回调 | (text: Font) => void | 否 | - |
ITTFLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| url | 资源地址 | string | 是 | - |
| loadProgress | 加载进度 | (progress: number) => void | 否 | - |
| indexdb | 资源是否走缓存器 | boolean | 否 | - |
ITTFLoaderParameter extends ITTFLoaderAsyncParameter
| 属性名 | 说明 | 类型 | 是否必选 | 默认值 |
|---|---|---|---|---|
| loadEnd | 加载后回调 | (text: Font) => void | 否 | - |
