ContextCapture 사용자 가이드

상세 레벨 원칙

상세 레벨(LOD) 형식을 사용하면 매우 큰 3D 모델을 로드하고 시각화할 수 있습니다. 이를 위해서는 다음 작업을 수행합니다.
  • 뷰어에서 멀어질수록 표현의 복잡성을 줄입니다.
  • 현재 뷰포인트에서 보이는 모델 부분만 로드합니다.

LOD는 트리 구조를 사용하며, 여기서 최상위 노드는 매우 대략적인 형상이고 하위 노드는 상당히 세밀한 형상입니다. 리프 노드는 가장 세밀한 3D 표현입니다.

아래는 각 노드에 형상 및 텍스쳐가 포함된 LOD 트리의 예입니다. 포인트 클라우드 LOD 표현과 달리 하위 매쉬에는 상위 매쉬를 완전하게 대체하는 전체 매쉬 지정이 포함되어 있습니다.

예를 들어, Level 2 노드는 두 개의 하위 노드로 분할되며 각 노드에는 상위 노드보다 더 세밀한 스케일의 모델 절반이 포함됩니다. Level 3 노드를 표시할 때 Level 2는 숨겨야 합니다.

노드는 화면상 근접성에 따라 표시됩니다. 다시 위의 예를 살펴보면 화면으로부터 멀어질 때는 Node A(Level 1)가 표시됩니다. 점점 가까워질수록 노드는 해당 하위 노드로 대체됩니다. 예를 들어, Node B는 Node A를 대체하고, Node C 및 D는 Node B를 대체합니다. Node C를 줌하면 Node C가 Level 4의 Node E 및 F에 의해 대체되고, 반면에 해당 형제인 Node D는 변경되지 않은 상태를 유지합니다.

노드를 하위 노드로 대체하는 과정에서 해당 노드를 대체하는 형상 없이 노드가 사라져야 하는 경우도 있을 수 있습니다. 또는 매쉬 단순화를 통해 상위 노드에 삼각형이 없을 정도로 노드 형상을 너무 많이 줄일 수 있습니다. 두 경우 모두 비어 있는 노드가 필요합니다. 비어 있는 노드는 LOD 표현으로 가능한 경우가 있으므로 이러한 노드를 고려해야 합니다.

언제든지 가능한 트리 경로의 노드 하나만 표시됩니다. LOD 예에서 Node B가 표시되면 Level 1 노드는 표시되지 않으며 Node B의 하위 노드도 표시되지 않습니다.

여기서 질문은 화면상 "충분히 가까운" 특정 노드가 언제 표시되는지입니다. 이를 위한 ContextCapture(Viewer 또는 Web Viewer) 접근 방식은 화면상 나타나는 노드의 크기(픽셀)를 고려하는 것입니다. 신속하게 계산하기 위해 노드의 바운딩 구가 대용물로 사용됩니다. 화면상 바운딩 구의 투영은 지름이 d인 원입니다. 지름 d는 화면상 노드 크기를 측정하는 데 사용됩니다.

각 노드에는 픽셀 단위의 최대 화면 지름이 부착되어 있습니다. 이 값은 노드가 보여야 하는 투영된 바운딩 구 지름 d의 최대값을 나타냅니다. 이 값을 초과하면 노드가 해당 하위 노드에 의해 대체되어야 합니다.

위의 예에서 Node A는 해당 바운딩 구가 화면상 지름이 40픽셀 미만인 원으로 투영되는 동안 표시됩니다. 바운딩 구 투영이 너무 커지면 Node B가 로드되고 표시됩니다.

모델에 가까이 갈수록 트리 구조에서 해상도가 더 높은 노드로 전진하지만 보이는 영역에 대해서만 전진합니다. 이는 트리의 작은 부분만 고해상도로 메모리에 로드됨을 의미합니다.

이 예에서는 카메라가 Node D에서 줌하면 Node E 및 F가 안 보이게 됩니다. 따라서 모델의 D 부분이 고해상도에서 필요한 경우 Node C, E 및 F는 더 이상 유용하지 않습니다. 메모리 소비를 최소화하려면 이러한 노드를 삭제해야 합니다.

일반적으로 노드가 특정 기간 동안 보이지 않으면 해당 노드는 삭제된 것입니다. 노드는 카메라가 조금 움직일 때 다시 표시될 가능성이 매우 높기 때문에 보이지 않게 된 직후에 삭제되지 않습니다. 노드 삭제 시 지연 때문에 노드가 바로 필요할 가능성은 없습니다. 하위 노드 중 계속 필요한 노드가 있으면 노드가 삭제되지 않습니다.

요약하자면 ContextCapture(Viewer 또는 Web Viewer) 데이터의 LOD 시각화에 대한 기본적인 원칙은 다음과 같습니다.

  • 언제든지 루프에서 리프로의 경로에서는 하나의 노드만 표시됩니다.
  • 노드는 화면상 해당 투영이 미리 정의된 범위(픽셀) 내에 있을 때 표시됩니다.
  • 노드는 필요할 때(상위 노드가 화면상 최대 투영 영역에 도달할 때)에만 로드됩니다.
  • 특정 기간 동안 표시되지 않는 노드는 삭제된 것입니다.