Несколько материалов в одном файле obj с three.js

Я использую three.js для загрузки файла obj, кольца с несколькими жемчужинами. У меня нет mtl файл, как программное обеспечение, которое мы используем для экспорта obj (носорог (?)) не будет генерировать его с obj файл (это то, что мне сказал графический дизайнер).

Мне нужно установить металлический материал ТОЛЬКО для кольца и стеклянный материал ТОЛЬКО для камня / жемчуга.

Это ссылка на тестовую страницу, где я на самом деле загружаю файл: http://jaaxlab.com/test_youring

... в остальном я не знаю, как установить один материал, а также несколько.

Ссылка на файл obj http://jaaxlab.com/test_youring/obj/prova1.obj

1 ответ

Решение

У вашего объекта несколько детей. Ребенок с индексом 0 является кольцом. Также его зовут sezione_B_misura13_Riviera_mix_full anello_sezione_B_misura13,

Таким образом, вы можете получить к нему доступ, как:

obj.children[0].material = new THREE.MeshStandardMaterial(...);

или же

obj.getObjectByName('sezione_B_misura13_Riviera_mix_full anello_sezione_B_misura13').material = new THREE.MeshStandardMaterial(...);

При условии obj это объект, загруженный вами загрузчиком.

Взгляните на этого jsfiddle. Загрузите свой файл, затем проверьте журнал консоли. Вы также можете щелкнуть любую часть объекта и увидеть его идентификатор и имя в консоли.

Другие вопросы по тегам