다음을 통해 공유


테셀라팅 다각형

OpenGL은 간단한 공록 다각형만 직접 표시할 수 있습니다. 다음과 같은 경우 다각형은 간단합니다.

  • 가장자리는 꼭짓점에서만 교차합니다.
  • 중복 꼭짓점이 없습니다.
  • 정확히 두 개의 가장자리가 모든 꼭짓점에서 충족됩니다.

단순 비연속 다각형 또는 구멍이 포함된 단순 다각형을 표시하려면 먼저 다각형을 삼각측량(볼록 다각형으로 세분화)해야 합니다. 이러한 세분화를 테 셀레이션이라고 합니다. GLU는 테셀레이션을 수행하는 함수 컬렉션을 제공합니다. GLU 테셀레이션 함수는 비심플 다각형을 처리할 수 없습니다. 이러한 다각형을 처리하는 표준 OpenGL 메서드는 없습니다.

테셀레이션은 종종 필요하고 다소 까다로울 수 있으므로 이 섹션에서는 GLU 테셀레이션 함수에 대해 자세히 설명합니다. 이러한 함수는 구멍을 포함할 수 있는 입력 임의의 단순 다각형으로 사용되며 삼각형, 삼각형 메시 및 삼각형 팬의 일부 조합을 반환합니다. 메시 또는 팬을 처리하지 않으려면 테셀레이션 함수가 삼각형만 반환하도록 지정할 수 있습니다. 그러나 메시 및 팬 정보는 성능을 향상시킵니다. 다각형 테셀레이션 함수는 하나 이상의 윤곽선으로 오목 다각형을 삼각측량합니다.

다각형 테셀레이션을 사용하려면

  1. gluNewTess를 사용하여 테셀레이션 개체를 만듭니다.

  2. gluTessCallBack을 사용하여 테셀레이터에서 생성된 삼각형을 처리하는 데 사용할 콜백 함수를 정의합니다.

  3. gluBeginPolygon, gluTessVertex, gluNextContourgluEndPolygon을 사용하여 구멍이 있는 다각형 또는 테셀레이션할 오목 다각형을 지정합니다.

    다각형 설명이 완료되면 테셀레이션 기능은 필요에 따라 콜백 함수를 호출합니다.

    gluDeleteTess를 사용하여 불필요한 테셀레이션 개체를 삭제할 수 있습니다.

테셀레이션 데이터를 저장하는 방법에 대한 자세한 내용은 콜백 함수 사용을 참조하세요.