Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript glTFLoader和ObjLoader在三个JS中?_Javascript_Three.js_Gltf - Fatal编程技术网

Javascript glTFLoader和ObjLoader在三个JS中?

Javascript glTFLoader和ObjLoader在三个JS中?,javascript,three.js,gltf,Javascript,Three.js,Gltf,我一直使用.obj文件将模型加载到three.js中。 我在某个地方读到,首选的方法是现在使用.gltf 当我开始这么做的时候,我意识到,虽然使用gltf加载一个对象看起来很简单,但一旦对象在里面,obj似乎就更灵活了 例如: 改变材料特性 将着色更改为平面 控制对象对特定输入的反应方式。 在gltf中,这些似乎都很困难/不受支持,在gltf中,您可以使用obj轻松完成这些任务 gltf的具体好处是什么?我假设文件大小,但似乎您必须放弃很多控制才能获得这一好处 我想不出.obj和gltf有什么优

我一直使用.obj文件将模型加载到three.js中。 我在某个地方读到,首选的方法是现在使用.gltf

当我开始这么做的时候,我意识到,虽然使用gltf加载一个对象看起来很简单,但一旦对象在里面,obj似乎就更灵活了

例如:

改变材料特性 将着色更改为平面 控制对象对特定输入的反应方式。 在gltf中,这些似乎都很困难/不受支持,在gltf中,您可以使用obj轻松完成这些任务


gltf的具体好处是什么?我假设文件大小,但似乎您必须放弃很多控制才能获得这一好处

我想不出.obj和gltf有什么优势。Obj不容易支持层次结构。。它不支持现代材质、无着色器、无灯光/摄影机。。没有几何图形组。Obj基本上是一种糟糕的格式,除了它是人类可读的,而文本gltf也是。另外。。gltf支持网格压缩。。。压缩纹理格式。二进制缓冲区,带嵌入式资源的单文件导出。Obj格式来自70年代后期的iircs。Gltf是实时3d领域40多年发展的产物,它是为web 3d资产交付而从头设计的。

您可以用任何格式控制上述所有内容–一旦将模型加载到threejs中,它就是一个THREE.Scene或THREE.Mesh。不同之处可能是OBJ只提供了一个网格,其中glTF文件在场景中可能有多个嵌套对象?这取决于模型,但可能需要稍微不同的代码来管理;如果有多个网格,那么如何查询它们?更多说明:我用大约80个不同的对象构建了我的模型;我可以合并它们,但不支持.glb中的多材质,所以我可能只能合并为12个单独的网格。编辑:在这里找到一个教程:看起来没有简单的方法,但是你可以在控制台中注销继承人权限,因为我已经建立了自己的模型,我应该能够使用正确的图层名称重新导出,然后能够访问。谢谢@don或是处理嵌套对象最常用的方法。有任何参考资料支持您的答案吗?