2014-10-16 4 views
0
function create_geometry_0(scene) 
{ 
     var mesh; 
     var material; 
     var texture; 
     var geometry; 
     geometry = new THREE.BufferGeometry(); 
     geometry.attributes = { 
     position: { 
      itemSize: 3, 
      array: new Float32Array([..my object..]) 
     }, 
     normal: { 
      itemSize: 3, 
      array: new Float32Array([..my object..]) 
     } 
     }; 

     texture = THREE.ImageUtils.loadTexture('ull.jpg'); 
     texture.needsUpdate = true; 

     material = new THREE.MeshPhongMaterial({ 
      color: 0xFF0000, 
      ...other material stuff 
//   map: texture 
      }); 
     mesh = new THREE.Mesh(geometry, material); 
     scene.add(mesh); 

} 

здесь все работает, если я не добавлю карту в свой материал. Но если я добавлю карту, все перестанет работать. Я не знаю почему. Должен ли я добавить что-нибудь еще к моей текстуре !?карта не работает на объекте three.js

+0

1. Что означает «перестает работать»? 2. Попробуйте удалить 'texture.needsUpdate = true'. – WestLangley

+0

Не работает. Прекратить работу просто означает, что мой объект исчезает всякий раз, когда я пытаюсь добавить карту к материалу. У меня есть два объекта (коробка и текст) и система управления поворотом мыши, которая работает хорошо, если я не добавлю карту в свой материал. Но когда я делаю это, ящик (объект, который я пытаюсь добавить на него текстуру) исчезает, и управление мышью перестает работать. –

+1

Вы должны опубликовать это как ответ и принять его – Luigi

ответ

0

все прошло успешно. Я думаю, у меня было две проблемы. сначала у моего объекта не было никакой текстурной координаты. Во-вторых, возможно, мне лучше использовать meshbasicmaterial, а не meshphongmaterial. и, кстати, нет необходимости в этой команде texture.needUpdate. теперь мой материальный код: material = new THREE.MeshBasicMaterial ({side: THREE.FrontSide, map: THREE.ImageUtils.loadTexture ('index_ABASI.jpg')});

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