babylonjs 分部加载模型_17 Babylonjs入门进阶 使用场景加载器加载glTF,OBJ,STL模型...
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模型...相关推荐
- 转圈加载html,web前端入门到实战:纯CSS实现加载转圈样式
web前端入门到实战:纯CSS实现加载转圈样式 发布时间:2020-05-27 18:11:33 来源:51CTO 阅读:134 作者:前端向南 不同的项目中对于等待加载时转圈圈的样式是不同的,有的是 ...
- babylonjs 分部加载模型_babylonjs使用笔记
目录 一.介绍了解 1.游乐场:playground 2.沙盒:sanbox 1)Nodes 2)Materials 3)Textrues 3.在线例子:examples 二.模型文件 三.项目使用 ...
- stl模型布尔运算的代码实现(DIY)
stl模型布尔运算(DIY) 开发三维模型布尔运算的图形软件因其难度较大,具挑战性而激发了诸多有志者为之努力不懈,但也让许多尝试者怯步.本文推荐一款几何运算库,调用由(wsxdll)几何运算库(no ...
- 深度学习入门系列1:多层感知器概述
本人正在学习<deep learning with python>–Jason Brownlee,有兴趣的可以一起学习. 仅供学习参考,不做商用! 大家好,我技术人Howzit,这是深度学 ...
- babylonjs 分部加载模型_基于Babylonjs自制WebGL3D模型编辑器
一.总述 当代WebGL编程所使用的3D模型大多是从3DsMax模型或Blender模型转化而来,这种工作模式比较适合3D设计师和3D程序员分工配合的场景.但对于单兵作战的WebGL爱好者来讲这种模式 ...
- babylonjs 分部加载模型_用基于WebGL的BabylonJS来共享你的3D扫描模型
用基于WebGL的BabylonJS来共享你的3D扫描模型 本文由 极客范 - 杰克祥子 翻译自 Andy Beaulieu.欢迎加入极客翻译小组,同我们一道翻译与分享.转载请参见文章末尾处的要求. ...
- 超图桌面版加载obj 3D模型 - 2
在 https://blog.csdn.net/bcbobo21cn/article/details/109041525 里,加载obj格式模型没有出来效果: 下面来看一下其他方法:当前用的版本是10 ...
- 超图桌面版加载obj 3D模型
根据目前看到的资料帮助,使用超图桌面版加载obj 3D模型的步骤如下: 新建场景,图层管理器---普通图层右键,新建KML----开启KML可编辑,右键添加模型. 下面来操作一下: 下一个obj模型: ...
- php ajax loading图片居中显示,PHP语言入门之PHP+ajax实现登录按钮加载loading效果
本篇教程探讨了PHP语言入门之PHP+ajax实现登录按钮加载loading效果,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < php+ajax实现登录按钮加载loa ...
最新文章
- python编程基础之二十
- win7下构建swarm nodes实现跨host的容器之间的通信
- 讲解Linux服务器被黑解决方法
- 【收藏】spark中map与mapPartitions区别
- java:1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
- 竞赛发布|100万奖金寻DT时代“最强大脑”!
- Mybatis四种分页方式
- android:contentDescription
- 类方法实现:用python实现一个简单的单词本,添加/查找/删除单词。
- 【转载】如何在Ubuntu上安装LAMP服务器系统?
- java中ofd文件转pdf_java ofd文件解析
- ubuntu linux 从入门到精通.pdf,UBUNTU LINUX从入门到精通(附DVD)
- 教你利用 Python 计算同比、环比、定基比
- 【Operator】七大互联网电视牌照商2016年下半年动向之中央三大台
- linux alarm函数clock,linux c之alarm函数的使用,定时器的实现
- element-ui的Progress进度条,当前状态样色和背景色的设置
- 论文Robust Range Estimation with a Monocular Camera for Vision-Based FCW System解读
- 基于翻译模型(Trans系列)的知识表示学习
- 6.cisco思科模拟器子网划分练习题
- alt.js 使用教程
热门文章
- 锂电池标3.7V或4.2V的区别
- Phpmywind教程:关于广告位调用
- 史上最全CCA Spark and Hadoop Developer (CCA175) 开发者认证考试信息
- [长文干货]MicroPython移植到野火STM32F429开发板
- 隆重推荐:外星人就在月球背面
- Enterprise Architect使用
- mysql 商品规格表_完成后台管理系统功能(九)商品规格列表的展示,添加以及删除...
- miui9支持android,MIUI9详细体验:最好用Android不是吹的!
- 【项目管理/PMP/PMBOK第六版/新考纲】易错单选题21道带答案解析!建议收藏!
- 深度学习之目标检测与目标识别