Drzewo ósemkowe
Wygląd
Drzewo ósemkowe (ang. octree) – stosowana w grafice komputerowej struktura danych będąca drzewem, używana do przestrzennego podziału trójwymiarowej przestrzeni na mniejsze, regularne części.
Konstrukcja drzewa ósemkowego polega na otoczeniu całości sceny trójwymiarowej sześcianem (lub prostopadłościanem), który następnie dzielony jest na osiem mniejszych, a z kolei każdy z nich na osiem kolejnych itd. – proces podziału ma charakter rekurencyjny.
Najczęściej boki sześcianu są równoległe do osi układu współrzędnych, dzięki temu operacje geometryczne znacznie się upraszczają.
Zastosowanie drzew ósemkowych
[edytuj | edytuj kod]- Efektywna reprezentacja wokseli – w każdym liściu pełnego drzewa ósemkowego zapisana jest informacja o tym, czy dany sześcian zawiera woksel, czy też nie (jest „pusty”). Wówczas możliwe jest „spakowanie” informacji, gdy bowiem wszystkie osiem dzieci danego węzła są puste (lub wszystkie są zajęte), można je usunąć, zaś do węzła przepisać informację o zajętości.
- Wykrywanie kolizji.
- Kwantyzacja kolorów w obrazach cyfrowych – polega na zmniejszaniu liczby kolorów, przy zachowaniu jak najmniejszych błędów wizualnych.
- W renderingu grafiki 3D, usprawnienie usuwania niewidocznych obiektów, znajdujących się poza bryłą widzenia (ang. view frustum culling) – co umożliwia bardzo szybkie odrzucanie (lub akceptowanie) całych gałęzi drzewa bez zagłębianie się w nie, tj. bez dodatkowych, czasochłonnych testów. Testowanie widoczności ma charakter rekurencyjny i zaczyna się od korzenia drzewa ósemkowego. Sprawdzanie widoczności sześcianu zapisanego w węźle:
- Jeśli jest on niewidoczny, to nie są widoczne także wszystkie obiekty, które się w nim znajdują; podobnie jeśli jest w całości widoczny – widoczne są także wszystkie obiekty w nim zawarte.
- Jeśli natomiast widoczność sześcianu jest częściowa, przechodzi się w głąb drzewa i testuje widoczność jego ośmiorga dzieci – mniejszych sześcianów.
Zobacz też
[edytuj | edytuj kod]- drzewo czwórkowe – dwuwymiarowy odpowiednik drzew ósemkowych
- drzewo kd
- drzewo BSP