1) yoru 구현에 따라 다릅니다. 보셀 또는 큐브의 각 모서리 (꼭지점)에서 값을 조회 할 수있는 데이터 구조가 필요합니다. 3D 이미지 (예 : OpenGL의 3D 텍스처)이거나 사용자 정의 배열 데이터 구조 또는 원하는 다른 형식 일 수 있습니다.
2) 입방체의 꼭지점을 확인해야합니다. 이것에 대해서는 다른 최적화가 있지만 일반적으로 첫 번째 모서리부터 시작하여 큐브의 모든 8 개 모서리의 값을 확인하십시오.
3) 대부분의 (빠른) 알고리즘은 옵션의 정적 배열에 대한 조회 테이블로 사용할 비트 마스크를 만듭니다. 이에 대한 가능한 옵션은 다양합니다.
4) triTable에서 삼각형을 만들었 으면 OpenGL을 사용하여 렌더링 할 수 있습니다.
사과의 점군 데이터를 가지고 있다고 가정 해 봅니다. 어떻게해야합니까?
이것은 행진하는 큐브와 함께 작동하지 않습니다. 행진 형 큐브는 보셀 (voxel) 데이터가 필요하기 때문에 데이터의 점 구름을 입방체 볼륨에 넣으려면 알고리즘을 사용해야합니다. 가우시안 스플 렛팅이 옵션입니다.
일반적으로 점군에서 작업하면서 표면을보고 싶다면 큐브를 행진하는 대신 표면 재구성 알고리즘을 살펴보아야합니다.
자세히 알아 보려면 시각화 기술에 대한 책을 읽어 보는 것이 좋습니다. 좋은 것은 Kitware 사람들 - The Visualization Toolkit에서 온 것입니다.
VTK을 살펴볼 수 있습니다. 그것은 Marching Cubes의 C++ 구현을 가지고 있으며 완전히 오픈 소스입니다.
에서 문서 복셀 수에 해당하는 6 glQuads? 그렇다면 복셀은 어떻게 만들어 지나요? 내 요점은 큐브의 중심이 되는가? – noob88
@ noob88 : 아니요. 당신의 "큐브"는 8 pionts로 구성된 어떤 물체 일 필요가 있습니다. 6 개의 glQuads는 큐브/보셀의면이 될 수 있으며 사용중인 정점은 8 포인트가 될 수 있습니다. 나는 이것을 잡기 위해 다른 데이터 구조를 만들 것이다. 다차원 배열처럼 단순한 것이 작동합니다. –
나는 .. 내가 그것을 시험해 볼 시간이 필요하다고 생각한다. 나는 당신의 접촉을 할 수 있을까? 나는 내가 당신의 도움을 얻을 수 있기를 희망한다. .. – noob88