2013-08-07 2 views
4

Как я могу динамически изменять материал на моей .obj-модели? Каждая из моих моделей содержит файлы .obj, .mtl и .jpg с текстурами. Должен ли я каким-либо образом изменить файл .mtl?Динамически изменять .mtl .obj OBJMTLLoader

В нижеприведенном коде I геометрия центра каждой дочерней сетки моего .obj, то я пытаюсь дать ей текстуру, но ни прокомментированный код, ни loader.load не дают текстуры.

var loader = new THREE.OBJMTLLoader(); 
      loader.addEventListener('load', function (event) { 
       object = event.content; 
       for (var i = 0; i < object.children.length; i++) { 
        THREE.GeometryUtils.merge(geometry, object.children[i].geometry); 
       } 
       THREE.GeometryUtils.center(geometry); 
       //var materials = new THREE.ImageUtils.loadTexture("/obj/stol.mtl"); 
       //mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(material)); 

       var material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); 
       mesh = new THREE.Mesh(geometry, material); 

       mesh.scale.x = 0.25; 
       mesh.scale.y = 0.25; 
       mesh.scale.z = 0.25; 
       mesh.castShadow = true; 

       scene.add(mesh); 
       animate(); 
      }); 
      loader.load('/obj/stol.obj', '/obj/stol.mtl'); 

Я хотел бы иметь некоторые кнопки на моей странице, которые вызывают изменения текстуры OnClick, например

$(function(){ 
    $('#txt_01').click(function(){ 
     mesh.textureLoad("/obj/txt_01.mtl"); 
    } 
}); 

Работа демо: http://www.edar.com.pl/test-3d-2/

+0

Я ищу подсказку, не готовый код, на самом деле no1 может мне помочь? –

ответ

1

Просто проверить примеры о загрузке текстуры.

И как обновить материал в файле three.js, см. Раздел «Обновление материала». https://github.com/mrdoob/three.js/wiki/Updates

+0

В этих примерах используется загрузчик JSON, я использую obj + mtl. Мне удалось использовать obj + jpg материал, но я не могу его правильно сохранить в 3dmax с помощью «render to texture». Должен ли я изменить свой загрузчик в соответствии с этими примерами? –

+0

Извините, я не знаю, что вы делаете atm и как выглядит ваш код и что вы делаете с диалогом 3dsMax RTT. – GuyGood

+0

Ну, ваша ссылка не была плохой, я смог сделать кнопки смены материала с obj + jpg uvw. Ссылка: http://www.edar.com.pl/test-3d-3/ ... но это все еще не решение, которое я ищу, потому что я считаю, что использование массива .mtl будет более эффективным , –

Смежные вопросы