如何在浏览器中使用threeJS用单个MTL文件呈现单个DRC文件?

时间:2019-01-08 07:59:16

标签: javascript three.js virtual-reality mtl-file

由于与OBJ文件相比更好的压缩结果,我正在尝试在浏览器中呈现DRC文件。我可以在浏览器中呈现DRC文件,但不能向其中添加MTL文件。我的每个对象都有一个DRC和一个MTL,我想在浏览器中同时加载/渲染。

我首先尝试使用(OBJLoader_MTLLoader_example)https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_obj_mtl.html,但它似乎不适用于DRACOLoader。

然后我尝试了在 https://github.com/google/draco/issues/197,但给出的错误是未定义setMaterials函数(在MTLLoader.js中),但实际上是。请帮忙。

<script 
 src="https://cdn.rawgit.com/mrdoob/three.js/dev/build/three.min.js"> 
</script>
<script src="DDSLoader.js"></script>
<script src="DRACOLoader.js"></script>
<script src="MTLLoader.js"></script>
<script src="geometry_helper.js"></script>

...

// MTL加载程序

    THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );
       new THREE.MTLLoader()
        .load( './bed.mtl', function ( materials ) {
         materials.preload();
         new THREE.DRACOLoader()
        .setMaterials( materials )
  } );

... scene.add(几何,材料);

链接到整个文件:https://pastebin.com/8FSUuSY1

我希望输出彩色3D对象,但实际为黑色。这意味着仅显示几何图形,而不显示颜色/材料/纹理

1 个答案:

答案 0 :(得分:0)

我不知道DRC格式是什么,但是DRACOLoader是您传递给GLTFLoader的插件。您可以使用GLTF格式代替DRC吗?

什么是DRC?

阅读这些内容:

https://threejs.org/examples/webgl_loader_gltf.html

https://www.khronos.org/blog/gltf-2.0-ecosystem-advancement

https://threejs.org/docs/#examples/loaders/GLTFLoader