reactjs - 如何减少/压缩three.js GLTF模型大小(带有.bin和纹理)?
问题描述
我正在为我的网站加载一个地球仪的 3d 模型,下载需要很长时间。
我正在使用 将GLTFLoader
模型加载到里面React
。
loadModals() {
const loader = new GLTFLoader()
loader.load(
"/models/scene.gltf",
gltf => {
object = gltf.scene.children[0]
scene.add(object)
console.log("Model loaded")
},
xhr => {
console.log("Model loading...")
},
error => {
console.log("Model failed to load", error)
}
)
}
与 3d 模型相关的文件包括:
图像的纹理文件夹 (58.7MB)
场景.bin (1.2MB)
场景.gltf (10KB)
从研究来看,如果模型附带一个.bin
文件,这意味着它gltf
不是压缩二进制格式。但是,查看诸如gltf-pipeline
在线之类的工具,我不确定当有单独的文件(如纹理文件夹和scene.bin
.
我对three.js 和网络中的实现非常陌生,因此将不胜感激任何建议。
谢谢!
解决方案
如果您只需要压缩纹理,则有多个图像压缩网站。
为什么不使用 .glb 格式?GLB 文件格式是 GLTF 的二进制形式,其中包括纹理,而不是将它们作为外部图像引用。
对不起,如果我不帮你。
推荐阅读
- mysql - Unsastistified 依赖项:创建名称为“entityManagerFactory”的 bean 时出错
- layout - Blazor .NET Core 3.0 - cshtml 页面可以使用 MainLayout.razor
- javascript - 隐藏子元素后如何更正元素的高度?
- javascript - 如何使用谷歌分析动态跟踪链接点击?
- mysql - 如何为gorm组织多个外键
- docker - 无法获得隶属关系'org3.department1 :: scode:404,代码:63,msg:无法获得隶属关系:sql:结果集中没有行
- python - SQL查询以显示不同表的订单摘要
- python-3.x - ModuleNotFoundError:没有名为“SocketServer”的模块
- javascript - 打字稿:在 mat-select 上调用相同的函数,过滤器数据全局更新
- mysql - 如何使用 Sequelize 连接两个表?