Babylon.js内置的模型格式是.babylon,Babylon.js可以不需要其它额外的插件即可加载。

注意:由于你导入的模型可以具有rotationQuaternion的设置,因此再设置rotate可能出现无法预测的问题,警告

基本用法

要加载指定的类型的文件,Babylon.js首先需要引入相应文件的插件。

目前支持的文件格式类型:

如果想要快速添加对所有的文件格式的支持,可以将以下脚本引入到页面中:

有关NPM的使用,请参阅:babylonjs-loaders

引入插件以后,可以使用SceneLoader类加载模型,它提供了一些加载方法。

SceneLoader.Append

从文件文件夹中加载所有的模型资源并添加到babylon场景中

配置项:文件夹路径,资源名称,场景对象,回调函数

BABYLON.SceneLoader.Append("./", "duck.gltf", scene, function (scene) {

// 模型添加成功后,执行场景对象的一些方法

});

SceneLoader.Load

从文件中加载模型文件并创建一个新的场景对象

配置项:文件夹路径,资源名称,引擎对象,回调函数

BABYLON.SceneLoader.Load("/assets/", "batman.obj", engine, function (newScene) {

// ...

});

SceneLoader.ImportMesh

从文件中加载模型并将它们添加到场景中,这个和Append区别在于,回调返回的是模型对象而不是场景对象。我们可以在成功的回调里面对模型再进行进一步的处理。

配置项:将要添加到场景中的模型名称或为空(将所有模型或者骨骼加载),文件夹路径,资源名称,场景对象,回调函数

BABYLON.SceneLoader.ImportMesh(["myMesh1", "myMesh2"], "./", "duck.gltf", scene, function (meshes, particleSystems, skeletons) {

// 对骨骼和模型进行进一步操作

// 对于glTF文件,粒子系统默认为空

});

SceneLoader.LoadAssetContainer

从文件夹中添加所有的资源到babylon,但不会自动添加到场景中

配置项:文件夹路径,资源名称,场景对象,回调函数

BABYLON.SceneLoader.LoadAssetContainer("./", "duck.gltf", scene, function (container) {

var meshes = container.meshes;

var materials = container.materials;

//...

// Adds all elements to the scene

container.addAllToScene();

});

回调函数会返回一个容器对象,里面包含所有模型加载的资源光源,模型,相机等等。如果需要将模型添加到场景,需要使用:

container.addAllToScene();

将添加的容器内容从场景中删除,则使用:

container.removeAllFromScene();

SceneLoader.AppendAsync

我们还可以通过使用Async函数来实现链式回调:

BABYLON.SceneLoader.AppendAsync("./", "duck.gltf", scene).then(function (scene) {

// do something with the scene

});

请参阅如何使用Promises了解有关使用promises的更多信息。

高级用法

使用onPluginActivatedObservable设置属性和调用特定于特定加载器的方法。

BABYLON.SceneLoader.OnPluginActivatedObservable.add(function (loader) {

if (loader.name === "gltf") {

// do something with the loader

// loader. = <...>

// loader. = <...>

// loader.dispose();

}

});

或者,静态同步SceneLoader函数返回插件。

var loader = BABYLON.SceneLoader.Load("./", "duck.gltf", engine, function (scene) {

// do something with the scene

});

// do something with the loader

// loader. = <...>

// loader. = <...>

// loader.dispose();

加载多个模型

如果加载多个模型时,可以使用AssetsManager类。请查看下一节。

babylonjs 分部加载模型_17 Babylonjs入门进阶 使用场景加载器加载glTF,OBJ,STL模型...相关推荐

  1. 转圈加载html,web前端入门到实战:纯CSS实现加载转圈样式

    web前端入门到实战:纯CSS实现加载转圈样式 发布时间:2020-05-27 18:11:33 来源:51CTO 阅读:134 作者:前端向南 不同的项目中对于等待加载时转圈圈的样式是不同的,有的是 ...

  2. babylonjs 分部加载模型_babylonjs使用笔记

    目录 一.介绍了解 1.游乐场:playground 2.沙盒:sanbox 1)Nodes 2)Materials 3)Textrues 3.在线例子:examples 二.模型文件 三.项目使用 ...

  3. stl模型布尔运算的代码实现(DIY)

    stl模型布尔运算(DIY) 开发三维模型布尔运算的图形软件因其难度较大,具挑战性而激发了诸多有志者为之努力不懈,但也让许多尝试者怯步.本文推荐一款几何运算库,调用由(wsxdll)几何运算库(no ...

  4. 深度学习入门系列1:多层感知器概述

    本人正在学习<deep learning with python>–Jason Brownlee,有兴趣的可以一起学习. 仅供学习参考,不做商用! 大家好,我技术人Howzit,这是深度学 ...

  5. babylonjs 分部加载模型_基于Babylonjs自制WebGL3D模型编辑器

    一.总述 当代WebGL编程所使用的3D模型大多是从3DsMax模型或Blender模型转化而来,这种工作模式比较适合3D设计师和3D程序员分工配合的场景.但对于单兵作战的WebGL爱好者来讲这种模式 ...

  6. babylonjs 分部加载模型_用基于WebGL的BabylonJS来共享你的3D扫描模型

    用基于WebGL的BabylonJS来共享你的3D扫描模型 本文由 极客范 - 杰克祥子 翻译自 Andy Beaulieu.欢迎加入极客翻译小组,同我们一道翻译与分享.转载请参见文章末尾处的要求. ...

  7. 超图桌面版加载obj 3D模型 - 2

    在 https://blog.csdn.net/bcbobo21cn/article/details/109041525 里,加载obj格式模型没有出来效果: 下面来看一下其他方法:当前用的版本是10 ...

  8. 超图桌面版加载obj 3D模型

    根据目前看到的资料帮助,使用超图桌面版加载obj 3D模型的步骤如下: 新建场景,图层管理器---普通图层右键,新建KML----开启KML可编辑,右键添加模型. 下面来操作一下: 下一个obj模型: ...

  9. php ajax loading图片居中显示,PHP语言入门之PHP+ajax实现登录按钮加载loading效果

    本篇教程探讨了PHP语言入门之PHP+ajax实现登录按钮加载loading效果,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < php+ajax实现登录按钮加载loa ...

最新文章

  1. python编程基础之二十
  2. win7下构建swarm nodes实现跨host的容器之间的通信
  3. 讲解Linux服务器被黑解决方法
  4. 【收藏】spark中map与mapPartitions区别
  5. java:1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
  6. 竞赛发布|100万奖金寻DT时代“最强大脑”!
  7. Mybatis四种分页方式
  8. android:contentDescription
  9. 类方法实现:用python实现一个简单的单词本,添加/查找/删除单词。
  10. 【转载】如何在Ubuntu上安装LAMP服务器系统?
  11. java中ofd文件转pdf_java ofd文件解析
  12. ubuntu linux 从入门到精通.pdf,UBUNTU LINUX从入门到精通(附DVD)
  13. 教你利用 Python 计算同比、环比、定基比
  14. 【Operator】七大互联网电视牌照商2016年下半年动向之中央三大台
  15. linux alarm函数clock,linux c之alarm函数的使用,定时器的实现
  16. element-ui的Progress进度条,当前状态样色和背景色的设置
  17. 论文Robust Range Estimation with a Monocular Camera for Vision-Based FCW System解读
  18. 基于翻译模型(Trans系列)的知识表示学习
  19. 6.cisco思科模拟器子网划分练习题
  20. alt.js 使用教程

热门文章

  1. 锂电池标3.7V或4.2V的区别
  2. Phpmywind教程:关于广告位调用
  3. 史上最全CCA Spark and Hadoop Developer (CCA175) 开发者认证考试信息
  4. [长文干货]MicroPython移植到野火STM32F429开发板
  5. 隆重推荐:外星人就在月球背面
  6. Enterprise Architect使用
  7. mysql 商品规格表_完成后台管理系统功能(九)商品规格列表的展示,添加以及删除...
  8. miui9支持android,MIUI9详细体验:最好用Android不是吹的!
  9. 【项目管理/PMP/PMBOK第六版/新考纲】易错单选题21道带答案解析!建议收藏!
  10. 深度学习之目标检测与目标识别