2013-06-17 3 views
4

저는 Three.js를 완전히 처음 접했고 솔리드 모델에 모서리를 추가하려고합니다.여러 줄 형상을 단일 형상으로 결합

가장자리를 개별적으로 추가하면 렌더링 속도가 느려집니다. 따라서 렌더링 속도가 조금 빨라지도록 형상을 하나에 결합하는 것을 생각해보십시오.

내가이 문제를 겪었습니다. https://github.com/mrdoob/three.js/issues/1370 위의 기술을 사용한 후에도 출력이 올바르지 않습니다.

지금까지 아래 내 코드 :

/* Edge Data */ 
var vertices = edgeData.vertices; 
var edges = edgeData.edges; 

// Final Geometry 
var combinedGeo = new THREE.Geometry(); 

/* Add lines */ 
for(var i=0; i<edges.length; i++){ 
    var geom = new THREE.Geometry(); 
    for (var j=0; j<edges[i].length; j++){ 
     var v1 = vertices[edges[i][j]]; 
     geom.vertices.push(new THREE.Vector3(v1[0], v1[1], v1[2])); 
    } 

    // var line = new THREE.Line(geom, material, THREE.LinePieces); 
    THREE.GeometryUtils.merge(combinedGeo, geom); 
    // scene.add(line); 
} 
var edgesGeo = new THREE.Line(combinedGeo, material, THREE.LineStrip); 
scene.add(edgesGeo); 
+0

병합 할 필요가 없습니다. 'geometry'에 포인트 쌍을 먼저 추가 한 다음'LinePieces' 설정으로 하나의'Line'을 만듭니다. AxisHelper.js 코드를 참조하십시오. – WestLangley

+0

http://stackoverflow.com/questions/16773982/how-to-merge-multiple-lines-with-gaps-in-threejs – gaitat

+0

@WestLangley 솔루션을 제공해 주셔서 감사합니다. 그것은 효과가 있었다. 어떻게 든 지오메트리가 캐시되기 때문에 확인하는 데 약간의 시간이 걸렸습니다. – dpatro

답변

3

는 통합하지 않아도됩니다. 먼저 geometry에 점 쌍을 추가 한 다음 LinePieces 설정으로 Line 하나를 만듭니다. 예를 들어 THREE.AxisHelper 코드를 참조하십시오.

관련 문제