2013-05-02 2 views
0

THREE.BufferGeometry에 대한 와이어 프레임 드로잉이 가능합니까? threejs가 이것을 지원하지 않는다고 생각하면 _gl.TRIANGLES를 _gl.LINES (또는 LINES_STRIP)로 바꿀 수 있습니다. 결과는 상당히 이상합니다.threejs 버퍼 게이지 및 와이어 프레임

http://oi40.tinypic.com/15tsux.jpg

도 해결책이 제공되지 GitHub의에서 오래된 문제가있다 (버퍼 구조는 바닥에)과 와이어 프레임에 대한 지원을 활성화하기 위해 무엇이 필요하나요 https://github.com/mrdoob/three.js/issues/1275

THREE.BufferGeometry? 구현에 총을 쏟고 싶지만 무엇을해야하는지 확신 할 수 없습니다.

+0

불행히도 "threejs"태그를 추가 할만한 점수가 충분하지 않으므로 죄송합니다. – Pantelis

답변

0

(색인 생성되지 않은 삼각형 목록에 대해) 나는 약간의 시간을 보냅니다.

var wireframe_pos = new Float32Array(positionArray.length * 2); 
for(var ii = 0; ii < positionArray.length; ii += 9) { 
    wireframe_pos[ ii * 2 ] = positionArray[ ii ]; 
    wireframe_pos[ ii * 2 + 1 ] = positionArray[ ii + 1 ]; 
    wireframe_pos[ ii * 2 + 2 ] = positionArray[ ii + 2 ]; 

    wireframe_pos[ ii * 2 + 3 ] = positionArray[ ii + 3 ]; 
    wireframe_pos[ ii * 2 + 4 ] = positionArray[ ii + 4 ]; 
    wireframe_pos[ ii * 2 + 5 ] = positionArray[ ii + 5 ]; 

    wireframe_pos[ ii * 2 + 6 ] = positionArray[ ii + 3 ]; 
    wireframe_pos[ ii * 2 + 7 ] = positionArray[ ii + 4 ]; 
    wireframe_pos[ ii * 2 + 8 ] = positionArray[ ii + 5 ]; 

    wireframe_pos[ ii * 2 + 9 ] = positionArray[ ii + 6 ]; 
    wireframe_pos[ ii * 2 + 10 ] = positionArray[ ii + 7 ]; 
    wireframe_pos[ ii * 2 + 11 ] = positionArray[ ii + 8 ]; 

    wireframe_pos[ ii * 2 + 12 ] = positionArray[ ii + 6 ]; 
    wireframe_pos[ ii * 2 + 13 ] = positionArray[ ii + 7 ]; 
    wireframe_pos[ ii * 2 + 14 ] = positionArray[ ii + 8 ]; 

    wireframe_pos[ ii * 2 + 15 ] = positionArray[ ii ]; 
    wireframe_pos[ ii * 2 + 16 ] = positionArray[ ii + 1 ]; 
    wireframe_pos[ ii * 2 + 17 ] = positionArray[ ii + 2 ]; 
} 

attributes[ "position" ] = { itemSize: 3, array: wireframe_pos, numItems: wireframe_pos.length }; 

솔직하게 말하면 위치 배열이 원래 크기의 두 배이기 때문에이 솔루션에 만족하지 않습니다. 너무 무거운 느낌. 더 나은 접근을위한 제안?

0

기본적으로 메쉬 형식의 버퍼 게이지를 라인 형식의 버퍼 게이지로 변환하는 유틸리티가 필요합니다.

+0

일종의'WireframeGeometyHelper' 계획. – mrdoob