Кіріспе
3D кеңістікті бөлу үшін әрбір ішкі түйінінің дәл сегіз баласы бар ағаш тәрізді дерек құрылымы. Октри – әрбір ішкі түйінінің дәл сегіз баласы бар ағаш тәрізді дерек құрылымы. Октрилер көбінесе үш өлшемді кеңістікті рекурсивті түрде сегіз октантқа бөлу үшін қолданылады. Октри – төрт бұтақты ағаштың үш өлшемді аналогы. Бұл сөз "окт" (грек тілінде "сегіз" деген мағынаны білдіреді) және "tree" сөздерінен құралған. Октрилер көбінесе 3D графикада және 3D ойын қозғалтқыштарында қолданылады.
An octree is a tree data structure in which each internal node has exactly eight children. Octrees are most often used to partition a three dimensional space by recursively subdividing it into eight octants. Octrees are the three dimensional analog of quadtrees. The word is derived from oct (Greek root meaning "eight") + tree. Octrees are often used in 3D graphics and 3D game engines.
Аумақтық бейнелеу үшін
Октандағы әрбір түйін өкілдік ететін кеңістікті сегіз октантқа бөледі. Нүктелік аймақтық (PR) октанда түйін нақты үш өлшемді нүктені сақтайды, ол осы түйін үшін бөліністің "ортасы" болып табылады; нүкте сегіз ұрпақтың әрқайсысы үшін бір бұрышты анықтайды. Матрицалық негізделген (MX) октанда бөліну нүктесі түйін өкілдік ететін кеңістіктің ортасы болып табылады. PR октаның түбір түйіні шексіз кеңістікті өкілдей алады; MX октаның түбір түйіні шекті, шектелген кеңістікті өкілдеуі тиіс, сонда ғана жасырын орталықтар дұрыс анықталады. Окталар k d ағаштарынан өзгеше екенін ескеріңіз: k d ағаштары өлшем бойынша бөлінеді, ал окталар нүкте бойынша бөлінеді. Сондай-ақ, k d ағаштары әрқашан екілік болып табылады, окталар үшін бұл міндетті емес. Тереңдікке бірінші іздеу арқылы түйіндерді қарап шығу керек және тек қажетті беттерді ғана көрсету керек.
Түсті кванттау үшін қолдану
1988 жылы Герваутц пен Пургатхофер ойлап тапқан октри түсті кванттау алгоритмі, түс деректерін тоғыз деңгейге дейінгі октри түрінде кодтайды. Октрилер RGB жүйесінде үш түс компоненті болғандықтан қолданылады. Жоғарғы деңгейде тармақталатын түйіннің индексі, қызыл, жасыл және көк түс компоненттерінің ең маңызды биттерін пайдаланатын формула арқылы анықталады, мысалы, 4r + 2g + b. Келесі төменгі деңгей келесі маңыздылықтағы биттерді пайдаланады, және т.с.с. Ағаштың көлемін азайту үшін кейде аз маңызды биттер назардан тыс қалдырылады. Алгоритм жадты өте тиімді пайдаланады, себебі ағаштың мөлшері шектелуі мүмкін. Октридің төменгі деңгейі, ағашта көрсетілмеген түс деректерін жинақтайтын жапырақ түйіндерінен тұрады; бұл түйіндер бастапқыда жеке биттерді қамтиды. Егер октауылға қажетті палитра түстерінің санынан көп түс енгізілсе, оның мөлшері, төменгі деңгейдегі түйін ізделіп, оның бит деректері жапырақ түйіндеріне орташаланған арқылы үнемі қысқартылуы мүмкін, бұл ағаштың бір бөлігін қырып тастауға әкеледі. Үлгі алу аяқталғаннан кейін, ағаштың барлық тармақтарын жапырақ түйіндеріне дейін қарап шығу және жол бойындағы биттерді ескере отырып, қажетті түстердің шамамен саны алынады.