Изменить материал GLTF в Aframe

Я пытаюсь создать пламя в Aframe, используя сетку, которую я использую в Sketchfab. Моя проблема в том, что сетка пламени имеет тень и темная. Как я могу это изменить? Я пытаюсь установить материал emissive и emissiveIntensity, но это не влияет на результат ...

Вот код, созданный Chrome, и снимок экрана

<a-entity gltf-model="#fire1"
 position="1 1 1"
 scale="0.2 0.2 0.2"
 rotation="0 15 0"
 spinning=""
 emissive-light=""
 material=""
 visible="">

   <a-light position=""
    intensity="1"
    light=""
    angle="-180"
    distance="20"
    type="spot"
    rotation=""
    scale=""
    visible=""></a-light>
</a-entity>

Не такое уж яркое пламя

Спасибо !


person JosselinTD    schedule 18.03.2018    source источник


Ответы (1)


Насколько я понимаю, загрузчик GLTF игнорирует любые другие компоненты, которые пытаются изменить его свойства материала на уровне A-Frame. Вам нужно будет погрузиться в слой THREEjs внизу. Дон Маккарди приводит отличный пример этого здесь. Обратите внимание, что его компонент прослушивает событие 'object3dset', а затем напрямую изменяет узлы THREEjs.

Конечно, если вы просто пытаетесь осветлить сцену, вы можете добавить естественный свет :)

person Anthony Scavarelli    schedule 18.03.2018
comment
Хороший ответ; одно уточнение заключается в том, что компонент material только работает с 3D-моделями в особом случае файла OBJ без каких-либо материалов MTL. С любым другим форматом / файлом вы должны изменить, используя слой three.js, как описано здесь. - person Don McCurdy; 19.03.2018