
three.js模型及贴图资源预加载
three.js
JavaScript 3D Library.
项目地址:https://gitcode.com/gh_mirrors/th/three.js

·
在three.js场景中同城交互是loading页面在模型及贴图资源全部加载完之后隐藏,使得场景没有割裂感,这里就用到了three.js的预加载功能LoadingManager()
下面是代码示例:
three.js
JavaScript 3D Library.
项目地址:https://gitcode.com/gh_mirrors/th/three.js
// 预加载
var loadingManager = new THREE.LoadingManager();
loadingManager.onProgress = function ( item, loaded, total ) {
const percentComplete = parseInt(Math.round( (loaded / total) * 100, 2))+'%'
//加载页的进度条百分比交互在这里写
};
loadingManager.onLoad = function () {
// 所有资源都加载完成后执行事件
$('.loading-page').hide()
};
//贴图预加载
var textureLoader = new THREE.TextureLoader(loadingManager);
//模型预加载
var gltfLoader = new THREE.GLTFLoader(loadingManager)
var fbxLoader = new THREE.FBXLoader(loadingManager)
//贴图引用
var texture = textureLoader.load( "../images/floor.jpg" );
texture.repeat.set( 1,1 );
var baseGeometry = new THREE.PlaneGeometry(300, 300)
var floor = new THREE.Mesh( baseGeometry,
new THREE.MeshBasicMaterial({ map: texture }),
);
floor.rotateX(-Math.PI/2)
scene.add(floor);
//gltf和glb模型加载
gltfLoader.load('./man.glb', function(object){
scene.add(object.scene)
object.scene.position.set(0,0,0)
})
//fbx模型加载
fbxLoader.load('./man.fbx', function(object){
scene.add(object)
object.position.set(0,0,0)
})
所有模型及贴图资源都使用预加载后,就会实现场景中所有内容加载完之后才能预览的效果啦!




JavaScript 3D Library.
最近提交(Master分支:9 天前 )
94f1548f
8 小时前
f06cc7d4
Co-authored-by: Samuel Rigaud <rigaud@gmail.com> 1 天前
更多推荐
相关推荐
查看更多
three.js

JavaScript 3D Library.
three.js

JavaScript 3D Library.
Three.js完整迷你版

Three.js 完整迷你版欢迎来到Three.js最全的迷你版本资源下载页
热门开源项目
活动日历
查看更多
直播时间 2025-03-13 18:32:35

全栈自研企业级AI平台:Java核心技术×私有化部署实战
直播时间 2025-03-11 18:35:18

从0到1:Go IoT 开发平台的架构演进与生态蓝图
直播时间 2025-03-05 14:35:37

国产工作流引擎 终结「996」开发困局!
直播时间 2025-02-25 14:38:13

免费开源宝藏 ShopXO,电商系统搭建秘籍大公开!
直播时间 2025-02-18 14:31:04

从数据孤岛到数据智能 - 企业级数据管理利器深度解析
所有评论(0)