ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

因为没有大模型来测试pipeline,我连夜学习了一波obj2gltf

2022-09-09 15:30:09  阅读:238  来源: 互联网

标签:obj2gltf 一波 pipeline obj 模型 scene children 压缩 gltf


一、前言

今天突然有空想试试之前的pipeline压缩gltf模型,结果手头没有gltf格式的大模型,用小模型又觉得效果不够明显,于是乎,我连忙拿起了收藏夹里吃灰的obj2gltf,来看看能不能把我obj格式的大模型,转换成gltf格式。

obj2gltf这个插件,我就理解不够透彻了,所以本文更多偏实际使用

二、过程

1、首先是下载对应的文件

github.com/CesiumGS/ob… 点开连接下载里面的bin文件夹和lib文件夹,放到项目里,也可以直接一整个下载,起作用只要这两个文件夹。如下图的格式

image.png

2、然后安装一下

我试了一下,如果不npm安装,仅有第一步的下载,好像也用不了,时间仓促就没太深入了解,不过最好还是执行以下命令

npm install --save obj2gltf
复制代码

3、执行压缩命令

一般obj模型都会附带一个导出名字一致的mtl文件,下面的命令会把mtl的信息也糅合到gltf模型里一起, 我的模型是在public里的文件里,这个-i后面就是要压缩的模型路径, -o是输出路径,也包含了名称,-d是采取Draco压缩,添加了KHR_draco_mesh_压缩扩展,效果会更加明显,但就是这种压缩方法必须配合DRACOLoader使用

 node bin/obj2gltf.js -i ./public/assets/gltf-format-big/earth.obj -o ./public/assets/gltf-format-big/earth-d.gltf -d
复制代码

image.png 压缩成功的情况,会出现这个total信息。

image.png

可以看到obj格式模型,已经转换成gltf格式保存到指定路径了,而且大小也从143m变成了77.3m, 压缩效果还是挺可观的。

我同时测试了不带d的压缩,发现压缩后大小一样,都是77.3m,这个可能因模型而异(可以看下3D图形开源压缩库Draco的相关资料,猜测有时候,模型体积很大并不是,模型的网格面很多,所以通过-d压缩是几乎无效的,因为大小是由点面和纹理图片构成,-d压缩只对点面生效)。 不过这种情况下,都可以直接按正常的gltf模型导入。

initLoad2() {
  // 加载
  this.gltLoader2 = new THREE.GLTFLoader()
  this.gltLoader2.load('/assets/gltf-format-big/earth-d.gltf', (gltf) => {
    console.log(gltf)
    gltf.scene.position.x = -6
    gltf.scene.position.z = 4
    gltf.scene.position.y = 0
    gltf.scene.children[0].children.forEach((item, i) => {
      gltf.scene.children[0].children[i].castShadow = true
      gltf.scene.children[0].children[i].receiveShadow = true
    })
    gltf.scene.scale.set(0.1, 0.1, 0.1)
    gltf.scene.rotateY(0.5 * Math.PI)
    this.scene.add(gltf.scene)
  },
  // 加载进度回调
  (xhr) => {
    console.log(xhr, (xhr.loaded / xhr.total) * 100 + '% loaded')
  }
  )
}
复制代码

image.png

4、注意事项

a、需要压缩的文件需要放在同个文件夹下,不然会找不到
b、obj模型如果用了特殊材质一类的,大概率是会丢失的,做好心理准备
c、转换过程中如果报错,请根据报错信息,排除对应故障
复制代码

ps1:(有gltf模型可以去测试pipeline了)

ps2: 引入过程如果出现了以下错误,那就需要引入DRACOLoader,具体步骤可以移步我的另一篇文章,(隔天就发,在写在写了) image.png

ps3: 周末又可以更新了

Snipaste_2022-07-19_15-30-26.jpg


作者:地霊殿__三無
链接:https://juejin.cn/post/7130968119480156190
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:obj2gltf,一波,pipeline,obj,模型,scene,children,压缩,gltf
来源: https://www.cnblogs.com/Earth-Hall-Sanwu/p/16673013.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有