아마 쿼드 트리 자료는 구글링 하시면 제가 포스팅 하는거 보다
몇만배 좋은 자료들이 많이 나올꺼예요.
사실 요새는 유니티를 만지느라 바빠서 다른 부분을 전혀 못해보고 있는 상황 이네요.
일단 제가 생각하는 쿼드트리 말씀 드릴께요.
쿼드트리는 단순하게 자료 구조 입니다.
이진 트리는 당연히 알고 계실 껍니다. ( 모르신다면 꼭 알아두셔야 합니다....퍽퍽)
그림이 허접해서 죄송합니다. 직접 그린겁니다;;;;
저 큰 사각형을 지형이라 생각하고
끝 점 네 개의 인덱스를 변수로 저장 하는 노드를 만들고
그 노드를 네개로 분할 합니다.
그러면 노드 1 은 노드 2, 노드 3, 노드 4, 노드 5 의 자식을 가지 겠죠?
그러면 노드 2를 또 네개로 쪼개요.
그러면 노드 2는 노드 6, 노드 7, 노드 8, 노드 9를 자식으로 가질 꺼구요.
가장 기초적인 쿼드트리는 재귀적(Recursive) 하게 구축이 이루어 집니다.
이렇게 계속 내려 가다가 제가 정한 최소 범위에서 Stop 하는 거죠.
이것이 쿼드트리의 기본 개념입니다.
과연 이 쿼드트리를 왜 사용 할까요???
가장 쉽게 생각 할수 있는 것은 쿼드트리를 이용한 컬링이지요.
렌더링할 지형의 폴리곤을 줄여 줄수 있는 효과가 있습니다.
하지만 이것도 요새 나오는 것들에서는 별로.........
결국 가장 중요한것은 제 개인적인 생각으로는 정말
" 공간 분할 "
이라고 생각합니다.
(뭐라고 이 자식아???!!)
때리진 마시구요. 공간 분할 그 자체로 활용 영역이 무궁 무진 해지는 것이죠.
저 같은 경우는 프로젝트 내에서 충돌 객체 선별 및 그림자 적용 객체 선별 등등
많은 것들을 쿼드트리를 통해서 최적화 시킬수 있었습니다.
코드는 인터넷을 서핑하면 너무나 많이 나오니까요~~
뭐 유명한 해골책도 있구요.
그런데 나온것은 정말 공간 분할 까지만 나오니까요.
나머지 부분들은 스스로 고민 해보시면서 해보시는게
정신건강에 도움이 되실꺼 같아요.(내 코드가 구려서 공개 못한 다는 말은 왜 못하냐!!)
다음 번엔 스플래팅 얘기 해드릴께요.
최근 덧글