three 模型加载器(下)

618 阅读10分钟

MMDLoader 是 Three.js 中的加载器,用于加载和显示 MikuMikuDance (MMD) 格式的 3D 模型和动画。MMD 是日本流行的 3D 动画制作软件,常用于创建 Vocaloid 虚拟歌手的动画。MMDLoader 支持加载 PMD 和 PMX 格式的模型,以及 VMD 格式的动作文件,可以在 Three.js 项目中实现 MMD 动画效果。
MTLLoader 是 Three.js 中的一个加载器,用于加载 .mtl 材质文件。该文件通常与 .obj 文件配套使用,用于描述 3D 模型的材质信息,比如颜色、光泽度、纹理贴图等。MTLLoader 加载材质文件后,可以将材质应用到通过 OBJLoader 加载的模型上,实现更真实的视觉效果。
OBJLoader 是 Three.js 中的加载器,用于加载 .obj 文件格式的 3D 模型。.obj 是一种常见的 3D 模型格式,广泛用于存储几何形状、顶点、面、纹理坐标和法线等信息。OBJLoader 可以帮助你在 Three.js 场景中加载并显示这些模型。
PCDLoader 是 Three.js 中用于加载 .pcd(Point Cloud Data)文件格式的加载器。.pcd 是一种常用于存储三维点云数据的文件格式,广泛用于 3D 扫描和传感器数据(如激光雷达、深度相机等)中的点云信息。PCDLoader 可以将这些点云数据加载到 Three.js 场景中,以便进行可视化和处理。
PDBLoader 是 Three.js 中用于加载 .pdb 文件格式的加载器。.pdb 文件是常用于生物信息学和化学领域的文件格式,通常用于表示分子结构数据。.pdb 文件包含了关于分子中各个原子的位置、类型、连接信息等内容。在 Three.js 中,PDBLoader 可以帮助你将这些分子数据转换为 3D 模型,并在 Three.js 场景中进行可视化。
SVGLoader 是 Three.js 中用于加载 .svg 文件格式的加载器。.svg(Scalable Vector Graphics)是一个基于 XML 的向量图形格式,通常用于图标、标志、插图等。使用 SVGLoader,你可以将 .svg 文件转换为 Three.js 中的几何体,并在 3D 场景中进行可视化和交互。
TGALoader 是 Three.js 中的一个加载器,用于加载 .tga(TARGA)格式的图像文件并将其作为纹理应用于 3D 对象。.tga 是一种图像文件格式,通常用于存储图像数据,包括无损压缩的图像数据。它被广泛应用于图形软件和游戏开发中。

MMDLoader 有四个方法

    MMDLoader( manager : LoadingManager )
    manager — 加载器使用的loadingManager(加载管理器),默认值是THREE.DefaultLoadingManager。
    创建一个新的MMDLoader

方法

  • load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : undefined
    url — 一个包含有.pmd或.pmx文件的路径或URL的字符串。
    onLoad — 当加载过程成功完成以后将被调用的函数。
    onProgress — (可选)加载过程正在进行的时候被调用的函数。其参数是一个XMLHttpRequest实例,其包含了total bytes(总的字节数)和loaded bytes(已经载入的字节数)。
    onError — (可选) 加载过程中若发生了错误将被调用的函数。这一函数接收错误作为参数。
    开始从URL中加载PMD/PMX模型文件,并使用包含有已被解析的SkinnedMeshMeshToonMaterial数组的BufferGeometry对象来触发回调函数。
  • loadAnimation ( url : String, object : Object3D, onLoad : Function, onProgress : Function, onError : Function ) : undefined
    url — 一个包含有.vmd文件的路径或URL的字符串或字符串数组。如果两个及以上文件被指定,它们将会合并。
    object — SkinnedMeshCamera。 剪辑及其轨道将会适应到该对象。
    onLoad — 成功加载完成后被调用的函数。
    onProgress — (可选)当加载正在进行时被调用的函数,参数将是XMLHttpRequest实例,其包含了 .total (总的)和 .loaded (已加载的)字节数。
    onError — (可选)如果加载过程中发生错误时被调用的函数,该函数接受一个错误来作为参数。
    开始从url(s)加载VMD动画文件(可能有多个文件),并使用已解析的AnimatioinClip触发回调函数。
  • loadWithAnimation ( modelUrl : String, vmdUrl : String, onLoad : Function, onProgress : Function, onError : Function ) : undefined
    modelUrl — 一个包含有.pmd或.pmx文件的路径或URL的字符串。
    vmdUrl — 一个包含有.vmd文件的路径或URL的字符串或字符串数组。
    onLoad — 成功加载完成后被调用的函数。
    onProgress — (可选)当加载正在进行时被调用的函数,参数将是XMLHttpRequest实例,其包含了 .total (总的)和 .loaded (已加载的)字节数。
    onError — (可选)如果加载过程中发生错误时被调用的函数,该函数接受一个错误来作为参数。
    开始从URL中加载PMD/PMX模型文件和VMD动画文件(可能有多个文件),并使用一个Object —— 包含有已解析的SkinnedMesh和适应SkinnedMeshAnimationClip,来触发回调函数。
    .setAnimationPath ( animationPath : String ) : this
    animationPath — 用于加载动画数据(VMD/VPD 文件)的基础路径。 Base path for loading animation data (VMD/VPD files).
    设置额外资源(例如贴图)的基础路径。

MTLLoader 有三个方法

    MTLLoader( loadingManager : LoadingManager )
    manager — 加载器使用的loadingManager(加载管理器),默认值是THREE.DefaultLoadingManager。
    创建一个新的MTLLoader

方法

  • load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : undefined
    url — 一个包含有 .mtl 文件的路径或URL的字符串。
    onLoad — 当加载过程成功完成以后将被调用的函数。
    onProgress — (可选)加载过程正在进行的时候被调用的函数。其参数是一个XMLHttpRequest实例,其包含了total bytes(总的字节数)和loaded bytes(已经载入的字节数)。
    onError — (可选) 加载过程中若发生了错误将被调用的函数。这一函数接收错误作为参数。
    开始从URL中加载,并返回已加载的材质。
  • setMaterialOptions ( options : Object ) : this 设置构造材质的一些选项。 options 参数列表如下
    side:在哪一侧应用材料。三.FrontSide(默认)、三.BackSide、三.DoubleSide
    包裹:应用于纹理的包裹类型。三.RepeatWrapping(默认)、三.ClampToEdgeWrapping、三.MirroredRepeatWrapping
    NormalizeRGBRGB 需要从 0-255 标准化为 0-1。默认值: false,假设已经标准化
    ignoreZeroRGBs:忽略全为 0RGB 值(KaKdKs)。默认值:假
    invertTrProperty:使用 Tr 字段的值 1 表示完全不透明。此选项对于从 3ds MAX、vcglib 或 meshlab 导出的 obj 非常有用。默认值:假
  • parse ( [param:String text, param:String path] ) : MTLLoaderMaterialCreator text — 要解析的表示 mtl 结构的文本。 path — MTL文件的路径。 解析 mtl 的文本结构,并返回一个 MTLLoader.MaterialCreator 实例。

OBJLoader 有三个方法

    OBJLoader( manager : LoadingManager )
    manager — 加载器使用的loadingManager(加载管理器),默认值是THREE.DefaultLoadingManager。
    创建一个新的OBJLoader

方法

  • load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : undefined
    url — 一个包含有.obj文件的路径或URL的字符串。
    onLoad — 当加载过程成功完成以后将被调用的函数。
    onProgress — (可选)加载过程正在进行的时候被调用的函数。其参数是一个XMLHttpRequest实例,其包含了total bytes(总的字节数)和loaded bytes(已经载入的字节数)。
    onError — (可选) 加载过程中若发生了错误将被调用的函数。这一函数接收错误作为参数。
    开始从URL中加载,并使用包含有已被解析响应内容来调用onLoad。
  • parse ( text : String ) : Object3D text — 要解析的表示 obj 结构的文本。 返回一个Object3D。它包含了解析过后的网格(解析为Mesh)以及线条(解析为LineSegments)。 所有的几何体被创建为BufferGeometry,默认材质被创建为MeshPhongMaterial。 如果obj物体或组在声明面时使用了多个材质,则使用几何体组和材质数组。
  • setMaterials ( materials : MTLLoader.MaterialCreator ) : this MTLLoader.MaterialCreator materials - 一个 MaterialCreator 实例。 设置由 MTLLoader 载入的材质,或是其它由 MTLLoader.MaterialCreator 提供的材质。

PCDLoader 有一个属性两个方法

    PCDLoader( manager : LoadingManager )
    manager — 加载器使用的 loadingManager (加载管理器),默认值是 THREE.DefaultLoadingManager。
    创建一个新的 PCDLoader

属性

  • littleEndian 在加载器内部调用 DataView.prototype.getFloat32() 时,表示这个32位浮点数是否以 小字节序(little-endian) 格式存储,默认值为 true。 方法
  • load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : undefined
    url — 一个包含有 .pcd 文件的路径或URL的字符串。
    onLoad — (可选参数) 当加载过程成功完成后将被调用的函数。 其参数是一个 Object3D 实例。
    onProgress — (可选参数) 加载正在进行过程中会被调用的函数。 其参数是一个 XMLHttpRequest 实例,包含有总字节数 total 和已加载的字节数 loaded。
    onError — (可选参数) 若在加载过程中发生错误,将被调用的函数。 其参数是一个 error 实例。
    开始从路径或url加载,并使用解析过的响应内容调用回调函数。
  • parse ( data : Arraybuffer,url : String ) : Object3D
    data — 要分析的二进制数据结构
    url — 文件名或文件url。
    分析 pcd 二进制结构并返回一个 Object3D 实例。
    该 Object3D 实例实际类型为 Points,由一个 BufferGeometry 实例和一个 PointsMaterial 实例作为参数构造而成。

PDBLoader 有两个方法

    PDBLoader( manager : LoadingManager )
    manager — 加载器使用的 loadingManager 。默认值为 [page:LoadingManager THREE.DefaultLoadingManager]。
    创建一个新的 PDBLoader
  • load ( url : String, onLoad : Function, onProgress : Function, [param:Function onError] ) : undefined
    url — 包含 .pdb 文件路径/URL 的字符串。
    onLoad — (可选)加载成功完成后调用的函数。该函数接收具有以下属性的对象。geometryAtoms、[page:BufferGeometry geometryBonds] 和 JSON 结构。
    onProgress — (可选)加载过程中调用的函数。参数将是 XMLHttpRequest 实例,其中包含 .total 和 .[page:Integer loaded] 字节。如果服务器没有设置 Content-Length,.total 将为 0。
    onError —(可选)加载期间发生错误时调用的函数。该函数接收错误作为参数。
    开始从 url 加载并使用解析后的响应内容调用 onLoad。
  • parse ( text : String ) : Object text — 要解析的文本 pdb 结构。 解析 pdb 文本并返回JSON结构。

SVGLoader 有两个方法

    SVGLoader( manager : LoadingManager )
    manager — 加载器使用的[page:LoadingManager 加载器管理]。默认值为THREE.DefaultLoadingManager。
    创建一个新的SVGLoader

方法

  • load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : undefined
    url — 一个.svg文件的路径或者网络地址。
    onLoad — (可选的)加载成功之后调用的函数。该函数以ShapePath为参数。
    onProgress — (可选的)正在加载时调用的函数。参数为XMLHttpRequest实例,包含total和loaded。 如果服务没有设置Content-Length头,.total的值为0。
    onError — (可选的)加载出现错误时调用的函数。该函将错误信息作为参数。
    根据请求的URL开始加载并根据返回内容调用onLoad。

静态方法

  • createShapes ( shape : ShapePath ) : Array shape — 一个ShapePath的矢量图形数组,指定SVGLoader的onLoad函数的参数。 返回一个或多个基于shape : ShapePath的Shape对象,并作为该函数的一个参数返回。

TGALoader 有一个方法

    TGALoader( manager : LoadingManager )
    manager — 加载器使用的loadingManager。默认值为THREE.DefaultLoadingManager。
    创建新的TGALoader.

方法

  • load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : DataTexture
    url — 一个.tga文件的路径或者网络地址。
    onLoad — (可选的)加载成功之后调用的函数。该函数以DataTexture为参数。
    onProgress — (可选的)正在加载时调用的函数。参数为XMLHttpRequest实例,包含total和loaded。 如果服务没有设置Content-Length头,.total的值为0。
    onError — (可选的)加载出现错误时调用的函数。该函将错误信息作为参数。
    开始加载texture并传递给onLoad。即时引用会将texture直接返回(不一定加载完成)。