2016-11-14 13 views
0

Загружаю файл collada (.dae) в A-Frame. Его загруженный штраф. Но теперь я должен обновить этот файл с пользовательского ввода, как цвет, и т.д .. Как обновить код внутри файла .dae от HTML, JS или А-FrameОбновление кода Collada (.dae) от A-Frame или JS

Это загружал код фрейма:

<a-scene> 
    <a-assets> 
     <a-asset-item id="box" src="box.dae"></a-asset-item> 
    </a-assets> 
    <a-entity id="collada" collada-model="#box"></a-entity> 
     <a-entity id="cmr" position="0 1 5" rotation="0 0 0"> 
     <a-camera> 
      <a-cursor color="#2E3A87" > 
     </a-camera> 
     </a-entity> 
</a-scene> 

Так как я могу обновить код внутри файла .dae с конца пользователя, используя html, js, A-Frame или любой?

Это Collada Файл: встроенные компоненты box.dae

ответ

0

A-фрейма поддерживает только самые основные переопределение (вы могли бы быть в состоянии установить цвет модели, используя, например, material="color: red", я не уверен). Для чего-то более продвинутого вам нужно будет использовать API-интерфейсы THREE.js, которые сам A-Frame использует. Я бы рекомендовал смотреть через документацию three.js - там много деталей о том, как настроить Материал и геометрия экземпляров - но очень простой пример здесь:

AFRAME.registerComponent('model-overrider', { 
    init: function() { 
    this.el.addEventListener('model-loaded', function(e) { 
     var model = e.detail.model; 
     model.traverse(function(o) { 
     if (o instanceof THREE.Mesh) { 
      // modify o.material or o.geometry here. 
     } 
     }); 
    }); 
    } 
}); 

Использование:

<a-entity collada-model="..." model-overrider> </a-entity> 

Документация для ТРИ. Материал: https://threejs.org/docs/index.html?q=material#Reference/Materials/Material

Для более сложного примера, деформируя отдельные вершины, см. <a-ocean/>.


И, конечно же, если вы хотите, чтобы делать какое-либо серьезное ручное редактирование, вы хотите использовать Blender, Maya или другой 3D моделирование программу вместо этого. :)

+0

Можем ли мы изменить компонент файла .dae как цвет. Это код в файле dae. ' 0 0.64 0.64 1 '. Итак, мы можем изменить или обновить этот код с помощью этого кода? –

+0

@Sunilgauswami yes, как показано в приведенном выше коде, вы можете получить 'o.material', а затем установить' o.material.color'. Пример: http://stackoverflow.com/questions/12564156/three-js-change-material-on-runtime –

+0

, если мы хотим изменить некоторые другие свойства модели dae, такие как цвет волос, ткани, размер тела, вес и и т.д., то как мы можем это сделать. все свойства файла dae. Это файл dae: [body.dae] (https://drive.google.com/open?id=0B4zkSgVE4wsAYWl5dTZVVXpUbEU). –