2017-11-29 1 views
1

나는 블렌더에서 3D 모델을 만들었습니다. Three.js 내보내기 도구로 내 보낸 다음 JavaScript로로드합니다. 텍스처가 표시되지 않는 한 모든 것이 잘 작동합니다. 블렌더에 텍스처를 그림으로 추가했습니다.three.js JSON 객체에 텍스처 추가

JSON 파일 :

{ 
"normals":[0,-1,0,...] 
"vertices":[-0.0101738,1.5,6.55678,-0.0101738,1.5,...] 
"materials":[{ 
    "DbgIndex":0, 
    "blending":1, 
    "colorSpecular":[1,1,1], 
    "opacity":1, 
    "colorDiffuse":[0.8,0.554325,0.316799], 
    "mapDiffuseWrap":["repeat","repeat"], 
    "transparent":false, 
    "wireframe":false, 
    "DbgColor":15658734, 
    "depthWrite":true, 
    "specularCoef":50, 
    "mapDiffuse":"parket.jpg", 
    "mapDiffuseRepeat":[1,1], 
    "visible":true, 
    "mapDiffuseAnisotropy":1, 
    "shading":"phong", 
    "depthTest":true, 
    "doubleSided":false, 
    "colorEmissive":[0,0,0], 
    "DbgName":"Les" 
},{ 
    "DbgIndex":1, 
    "blending":1, 
    "colorSpecular":[1,1,1], 
    "opacity":1, 
    "colorDiffuse":[0.287043,0.0523764,0.0102247], 
    "transparent":false, 
    "wireframe":false, 
    "DbgColor":15597568, 
    "depthWrite":true, 
    "specularCoef":50, 
    "visible":true, 
    "shading":"phong", 
    "depthTest":true, 
    "doubleSided":false, 
    "colorEmissive":[0,0,0], 
    "DbgName":"\u010crna" 
},{ 
    "DbgIndex":2, 
    "blending":1, 
    "colorSpecular":[1,1,1], 
    "opacity":1, 
    "colorDiffuse":[0.8,0.136903,0.018619], 
    "transparent":false, 
    "wireframe":false, 
    "DbgColor":60928, 
    "depthWrite":true, 
    "specularCoef":50, 
    "visible":true, 
    "shading":"phong", 
    "depthTest":true, 
    "doubleSided":false, 
    "colorEmissive":[0,0,0], 
    "DbgName":"Rjava" 
}], 
"metadata":{ 
    "materials":3, 
    "uvs":0, 
    "generator":"io_three", 
    "type":"Geometry", 
    "vertices":276, 
    "normals":109, 
    "faces":241, 
    "version":3 
}, 
"faces":[35,22,0,1,2,0,0...] 
"uvs":[] 

}

JSON 로더 :

   var loader = new THREE.JSONLoader(); 
       loader.load('samosteza.json', function (geometry, material) { 
        mesh = new THREE.Mesh(geometry, material); 
        mesh.scale.x = mesh.scale.y = mesh.scale.z = 30; 
        mesh.translation = THREE.GeometryUtils.center(geometry); 
        mesh.translateY(-150); 
        scene.add(mesh) 
       }, 'parket.jpg'); 

사람은 텍스처를 표시하는 방법을 알아? index.html 파일과 같은 폴더에 내 텍스처 ('parket.jpg')가 있습니다.

편집 : 난 그냥 질감이 표시,하지만 propperly 것을 발견

. 나는 나무의 질감을 가지고 있으며, 모두 갈색으로 보입니다. 나는 다른 텍스처로 텍스처를 변경하려했지만 항상 텍스처에 하나의 색상을 사용했습니다.

enter image description here

텍스처 :

enter image description here

답변

0

이 당신을 도움이 될 수 있습니까?

+0

아니요, 결과는 동일합니다. – kac26

+0

"https://threejs.org/docs/index.html#api/loaders/JSONLoader"문서에 기반하여 세 번째 매개 변수가 없어야합니다 ... 또한 자료가있는 문서를 찾습니다 [0]. 소스를 다시 확인 하시겠습니까? 또한 위의 두 줄을 어디에 추가 했습니까? – raj

+0

방금 ​​텍스처가 표시되었지만 제대로 표시되지 않았 음을 알았습니다. 나는 나무의 질감을 가지고 있으며, 모두 갈색으로 보입니다. 나는 다른 텍스처로 텍스처를 변경하려했지만 항상 텍스처에 하나의 색상을 사용했습니다. – kac26