Как сделать один файл DRC с одним файлом MTL, используя ThreeJS в браузере? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь отобразить файлы DRC в браузере из-за гораздо лучших результатов сжатия, чем файлы OBJ. Я могу отобразить файлы 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 Loader

    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

Я ожидаю вывода цветного трехмерного объекта, но фактическим является черный. Это означает, что только геометрия показывает, а не цвета / материал / текстура

1 Ответ

0 голосов
/ 08 января 2019

Я не знаю, что такое формат 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

...