Three.js-常用模型gltf说明和模型加载需要注意的问题

 

目前有很多常用的模型格式,可以说有很无数种格式,比如obj,stl,fbx等,但是每种格式都有不同的用途、不同的特性和不同的复杂性。
尽管three.js提供了很多的加载器,但是选择正确的格式是非常重要的,有些格式很难处理,并且容易出现很多难以解决的问题。

① three.js 推荐格式

three.js 官方推荐格式是glTF (GL Transmission Format),.GLB 和**.GLTF都得到了很好的支持,因为glTF格式专注于数据传输,它快速的数据传输和加载,得到了three.js**的青睐。

glTF格式简介

1、什么是glTF格式

  • glTF 即是 GL Transmission Format 的缩写。
  • glTF 是一种3D内容的格式标准,由Khronos Group管理,(Khronos Group还管理着OpenGL系列、OpenCL等重要的行业标准)。
  • glTF 的设计是面向实时渲染应用的,尽量提供可以直接传输给图形API的数据形式,不再需要二次转换
  • glTFOpenGL ESWebGL非常友好。
  • glTF 的目标是:3D领域的JPEG
  • 作为一个标准,自2015年10月发布(glTF 1.0)以来,已经得到了业界广泛的认可,你可以相信它的水平。
  • glTF目前最新版本为2.0已于2017年6月正式发布。

2、glTF 2.0 所定义的数据结构
这里写图片描述

  • 一个JSON文本文件,作为整个标准的核心,描述场景结构,数据对应关系等。
  • 一个二进制文件,用来存储Vertex BufferIndex Buffer等,这些数据可以直接通过OpenGL或者WebGL API直接上传到显示驱动,无需再做解析和转换。
  • 还包含所引用的shader文件、贴图文件等。
  • 目前gltf格式在多个平台上都支持gpu载入和显示加速。

3、glTF 官方示例
这里写图片描述

https://gltf-viewer.donmccurdy.com/demo
4、文档
glTF官方网站
glTf 文档 2.0
glTf 文档 1.0
glTF简介-燕良博客

② three.js 推荐的工作流程

既然glTF格式具有高效率传输快的优势,那么一般制作模型的时候尽量导出glTF格式。
现在一般的3D模型厂商已经实现了glTF格式接口,模型制作完之后可以直接导出glTF格式,然后通过three.js的加载器**THREE.GLTFLoader()**进行加载即可。

如果你的工具不支持导出glTF格式,你也可以导出例如:FBX, OBJ, 或者 COLLAD等,的模型格式,three.js同样对一些比较流行的格式支持进行定期的维护。

也可以使用下面的方式,进行格式的转换:

③ three.js 模型加载故障排查

如果你花了很大的力气制作好了模型,但是当把它加载进网页的时候,却发现它严重变形,或者缺少了一些东西,也许根本就无法加载,可以通过下面的方式进行调试。

  • 检查JavaScript控制台的错误,并确保在调用.load()时使用onError回调来记录结果
  • 在另一个程序中打开模型进行查看,例如three.js提供的编辑器 three.js editor,或者glTF Viewer,以及babylonjs来预览模型。
  • 如果模型在以上程序中可以出现,但是通过three.js提供的加载器无法加载,那么就把这个问题提交给three.js官方进行处理
  • 试着将模型向上或向下缩放1000倍。许多模型的规模不同,如果摄像机在模型中,大型模型可能不会出现
  • 在网络选项卡中寻找失败的纹理请求,比如C:/Path/To/Model/texture.jpg 使用相对于路径,例如images/texture.jpg——这可能需要在文本编辑器中编辑模型文件
  • 在论坛中寻求帮助 three.js 论坛https://discourse.threejs.org/

 

原文地址:访问

WEBGL学习网(WebGLStudy.COM)专注提供WebGL 、ThreeJS、BabylonJS等WEB3D开发案例源码下载。
声明信息:
1. 本站部分资源来源于用户上传和网络,如有侵权请邮件联系站长:1218436398@qq.com!我们将尽快处理。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源打赏售价用于赞助本站提供的服务支出(包括不限服务器、网络带宽等费用支出)!
7.欢迎加QQ群学习交流:549297468 ,或者搜索微信公众号:WebGL学习网
WEBGL学习网 » Three.js-常用模型gltf说明和模型加载需要注意的问题

发表评论

提供优质的WebGL、ThreeJS源码

立即查看 了解详情