Кіріспе

Үшбұрышты тор - компьютерлік графикада үшбұрышты тор - көпбұрышты тордың бір түрі. Ол ортақ жиектерімен немесе ұштарымен байланысқан үшбұрыштар жиынтығын (әдетте үш өлшемде) қамтиды. Көптеген графикалық бағдарламалық жасақтамалар мен аппараттық құрылғылар жеке-жеке ұсынылған үшбұрыштардың ұқсас санына қарағанда торларға топталған үшбұрыштарда тиімді жұмыс істей алады. Бұл әдетте компьютерлік графикада үшбұрыштар бұрыштарындағы түкпірлерге операция жасалуымен байланысты. Жеке үшбұрыштарда жүйе әр үшбұрыштың үш түбімен жұмыс істеуі керек. Үлкен торда сегіз немесе одан да көп үшбұрыштар болуы мүмкін, олар бір ғана нүктеде кездеседі. Бұл нүктелерді бір рет өңдеу арқылы жұмыстың бір бөлігін ғана орындап, бірдей әсерге қол жеткізуге болады. Көптеген компьютерлік графикалық қолданбаларда үшбұрыштар торларын басқару қажет. Тордың құрамдас бөліктері - бұрыштар, жиектер және үшбұрыш. Қолданба үшін тордың құрамдас бөліктері арасындағы әртүрлі байланыстар туралы білім қажет болуы мүмкін. Бұл байланыстарды шынайы вертикальдық позициялардан тәуелсіз басқаруға болады. Бұл құжатта қосылымдарды басқаруға ыңғайлы қарапайым деректердің құрылымы сипатталған. Бұл жалғыз мүмкін дерек құрылымы емес. Басқа көптеген түрлері бар және торлар туралы әртүрлі сұраныстарға қолдау көрсетеді.

Өкілдік

Компьютер жадында тормен жұмыс істеудің және сақтаудың әртүрлі әдістері болуы мүмкін. OpenGL және DirectX API-де үшбұрышты торды графикалық аппаратқа, үшбұрышты жолақтар мен индекс массивтеріне берудің екі негізгі жолы бар.

Үшбұрышты жолақ

Үшбұрыштар арасындағы вертикаль деректерін бөлісудің бір жолы - үшбұрышты жолақ. Үшбұрыштардың жолақтары бар үшбұрыштардың әрқайсысы бір көршілес және келесісімен толық жиегін бөліседі. Тағы бір тәсіл - үшбұрышты желдеткіш, ол бір орталық нүктесін бөлісетін байланысты үшбұрыштар жиынтығы. Бұл әдістермен ұштары тиімді түрде өңделеді, нәтижесінде N үшбұрышты салу үшін тек N + 2 ұштарын өңдеу қажет. Үшбұрышты жолақтар тиімді, бірақ кемшілігі - кез келген үшбұрышты торды жолаққа аударудың қалай немесе ыңғайлы болатыны анық емес.

Етістіктің құлдырауы

Бұл операцияның мақсаты - vk, vti жиектерін анықтау, vk - ұстап тұру бұрышы, vt - тастау бұрышы деп аталады. Бұл жиекті бөлісетін үшбұрыштар тордан алынып тасталады. Vt нүктесі де тордан алынып тасталады. vt ортақ үшбұрыштардың кез келгенінің ұшы vk арқылы ауыстырылады. 1-суретте үшбұрышты тор және тордың үш жиегі құлап кетуінің реті көрсетілген.

Индекс массиві

Индекс массивтерімен тор екі бөлек массивпен бейнеленеді, бір массив түкпірлерді ұстайды, ал екіншісі үш индексті құрайтын массивті ұстайды, олар үшбұрышты анықтайды. Графикалық жүйе алдымен үстіңгі нүктелерді өңдейді, содан кейін үшбұрыштарды қайтарады, бұралған деректерде жұмыс істейтін индекс жиынтықтарын пайдаланады. OpenGL-де бұл Vertex Buffer Object (VBO) қолданғанда glDrawElements примитивінен қолдау табады. Бұл әдіспен кез келген үшбұрыштардың кез келген нүктелер санын бөлісетін кез келген кездейсоқ жиынтығы графикалық API-ге сақталуы, өңделуі және кез-келген аралық өңдеусіз берілуі мүмкін.