Programming/DirectX

터레인 최적화(Quad Tree - LevelOfDetail)

휘탱 2017. 1. 6. 11:47

쿼드트리(QuadTree) ?

쿼드트리(QuadTree)는 사각

형 영역을 작은 사각형으로 분할하는 개념에서 파생됩니다.

사각형과 상세 검색과의 연결은 2D 검색이나 최적화 알고리즘에서 유용 할 수있는 곳을 결정합니다.

트리의 루트에서 

네 개의 작은 사각형으로 사각형을 나눕니다.

새 작은 사각형 각각은 루트의 하위 노드입니다.

 

작은 정사각형에 4개의 하위 정사각형을 생성하고,

그 결과 각각에 대해 나무의 다음 단계에 4명의 자식을 생성하는 과정을 반복하는 것입니다.

 

QuadTree 적용

초기화 시점에 터레인의 모서리 정점 4개 인덱스를 설정,

센터를 저장한 후 재귀함수를 통해 자식들을 만들어 가다,

탈출 조건(TR – TL == 1)을 만족하면 멈춘다.

 

마지막으로 이웃 노드들을 연결.

 

LevelOfDetail 적용

터레인을 렌더링하기 전에 한 번 호출해 인덱스 버퍼를 재배열하며 카메라와 거리에 따라 먼 지형의 정점에 LOD를 적용했는데,

LOD를 그냥 적용하면 문제점이 있다.

옆 노드에 정점의 높이가 맡지 않아 깨짐 현상이 있다.

 

깨짐 현상을 방지하기 위해 세부 정점을 만들어 해결해야 한다.

 

반응형