테셀라팅 다각형
OpenGL은 간단한 공록 다각형만 직접 표시할 수 있습니다. 다음과 같은 경우 다각형은 간단합니다.
- 가장자리는 꼭짓점에서만 교차합니다.
- 중복 꼭짓점이 없습니다.
- 정확히 두 개의 가장자리가 모든 꼭짓점에서 충족됩니다.
단순 비연속 다각형 또는 구멍이 포함된 단순 다각형을 표시하려면 먼저 다각형을 삼각측량(볼록 다각형으로 세분화)해야 합니다. 이러한 세분화를 테 셀레이션이라고 합니다. GLU는 테셀레이션을 수행하는 함수 컬렉션을 제공합니다. GLU 테셀레이션 함수는 비심플 다각형을 처리할 수 없습니다. 이러한 다각형을 처리하는 표준 OpenGL 메서드는 없습니다.
테셀레이션은 종종 필요하고 다소 까다로울 수 있으므로 이 섹션에서는 GLU 테셀레이션 함수에 대해 자세히 설명합니다. 이러한 함수는 구멍을 포함할 수 있는 입력 임의의 단순 다각형으로 사용되며 삼각형, 삼각형 메시 및 삼각형 팬의 일부 조합을 반환합니다. 메시 또는 팬을 처리하지 않으려면 테셀레이션 함수가 삼각형만 반환하도록 지정할 수 있습니다. 그러나 메시 및 팬 정보는 성능을 향상시킵니다. 다각형 테셀레이션 함수는 하나 이상의 윤곽선으로 오목 다각형을 삼각측량합니다.
다각형 테셀레이션을 사용하려면
gluNewTess를 사용하여 테셀레이션 개체를 만듭니다.
gluTessCallBack을 사용하여 테셀레이터에서 생성된 삼각형을 처리하는 데 사용할 콜백 함수를 정의합니다.
gluBeginPolygon, gluTessVertex, gluNextContour 및 gluEndPolygon을 사용하여 구멍이 있는 다각형 또는 테셀레이션할 오목 다각형을 지정합니다.
다각형 설명이 완료되면 테셀레이션 기능은 필요에 따라 콜백 함수를 호출합니다.
gluDeleteTess를 사용하여 불필요한 테셀레이션 개체를 삭제할 수 있습니다.
테셀레이션 데이터를 저장하는 방법에 대한 자세한 내용은 콜백 함수 사용을 참조하세요.