2014-10-15 5 views
0

내가 엑스포트 한 객체에 텍스처를 적용하는 데 문제가 있습니다. 내 코드는 다음과 같습니다 :3js 객체에 텍스처 적용

var loader = new THREE.ObjectLoader(); 
var texture = THREE.ImageUtils.loadTexture('models/mountain/mountain.png'); 

loader.load("models/mountain/mountain.json", function (obj) { 

    var material = new THREE.MeshPhongMaterial({ 
    map: texture 
    }); 
    mesh = new THREE.Mesh(obj, material); 

    scene.add(mesh); 
}); 

그냥 장면에 obj를 추가하면 정상적으로 작동하지만 메쉬와 텍스처를 설정해야 할 때 오류가 발생합니다. 올바른 구문은 무엇이되어야합니까?

+0

MeshBasicMaterial을 사용해보십시오. – gaitat

+0

안녕하세요, 귀하의 회신에 감사드립니다. MeshBasicMaterial은 동일한 결과를 산출합니다. 내 산은 여전히 ​​질감이 없다. 나는 감촉을 제대로 부르지 않는다고 느낀다. 그래도 그걸로 땜질. – Jon

답변

0

ObjectLoader에 의해 반환 된 "obj"는 실제로는 Object3D 일 수 있습니다. 실제 지오메트리와 재질을 포함하는 개체는이 "obj"의 자식입니다.

그래서 당신이 필요 재질 변경 : 또한

for(var i = 0; i < obj.children.length; i++) 
{ 
    obj.children[i].material = new THREE.PhongMaterial... 
} 

을의 MTL 로더로 찾아보세요. OBJ/MTL 로더는 예에서와 같이 질감이있는 OBJ를 사용하는 일반적인 방법입니다. http://threejs.org/examples/#webgl_loader_obj_mtl

관련 문제