Mikä on Octree?

Octree on digitaalinen puurakenne, jota käytetään kolmiulotteisten (3D) ja monikulmaisten luomusten luomiseen lähinnä peliteollisuudelle. Oktreerakenteessa jokaisella sisäisellä solmulla ei ole lapsia tai kahdeksan lasta-ei mitään siltä väliltä-ja jokainen lapsisolmu pystyy pitämään väritietoja puna-sinivihreä (RGB) -väriprofiilille. Koko rakenne alkaa yhtenä kuutiona, ja tyhjiä sisäisiä kuutioita käytetään törmäystietoihin. Tämä rakenne on erittäin muistitehokas, koska kussakin lapsessa on suhteellisen pieni määrä dataa ja puun kokoa voidaan rajoittaa.

Kun malli tehdään videopelille, sen on oltava tekstuuri- ja väritietoja ja sen on voitava törmätä muihin malleihin. Yksi tällä alalla käytetyistä rakenteista on octree. Joskus tätä nimeä kutsutaan loka -puuksi, tämä nimi merkitsee numeron kahdeksan merkitystä tässä puurakenteessa. Kuten puurakenteiden tekemisessä, myös oktreessa on vanhemman ja lapsen solmut. Toisin kuin muut puut, on hyvin vähän vaihtelua siinä, kuinka monta lapsen solmua voidaan tehdä vanhemmasta.

Jokainen vanhempi voi sisältää joko kahdeksan solmua tai ei yhtään. Molemmat kuutiotyypit ovat tärkeitä täysin renderoidun mallin luomisessa. Tehokkaimmat kuutiot ovat niitä, joissa on kahdeksan solmua. Jokainen sisäinen solmu sisältää väri- ja tekstuuritietoja, joten malli voi olla monimutkainen. Jos malli on esimerkiksi puu, jokaisen sisäisen solmun on sisällettävä rungon ruskea väri ja varjostustiedot realistisen tekstuurin luomiseksi.

Vaikka kahdeksan solmun kuutiot ovat tärkeitä oktreille, tyhjät kuutiot ovat yhtä tärkeitä. Koko rakenne alkaa yhdestä suuresta tyhjästä kuutiosta, johon muut pienemmät kuutiot voivat asua. Tätä kuutiota käytetään yhdessä muiden tyhjien kuutioiden kanssa ensisijaisesti törmäystietoihin. Jos esimerkiksi yksi malli törmää tähän malliin, tyhjät kuutiot kertovat mallille, että se ei voi edetä, koska se aiheuttaa törmäyksen.

Oikean mallin luominen oktreella on intensiivistä, ja siihen menee paljon tietoa, mutta rakenne itse käyttää muistia erittäin tehokkaasti. Yksi syy tähän on se, että vaikka koodausta on paljon, tiedot ovat vain väri- ja tekstuuritietoja ja siten melko pieniä. Toinen syy on, että puussa on eri tasoja, jotka sisältävät tarpeettomia tietoja, ja jos karsitaan, muisti voidaan pienentää entisestään.