Кіріспе
Үшбұрышты тор - компьютерлік графикада үшбұрышты тор - көпбұрышты тордың бір түрі. Ол ортақ жиектерімен немесе ұштарымен байланысқан үшбұрыштар жиынтығын (әдетте үш өлшемде) қамтиды. Көптеген графикалық бағдарламалық жасақтамалар мен аппараттық құрылғылар жеке-жеке ұсынылған үшбұрыштардың ұқсас санына қарағанда торларға топталған үшбұрыштарда тиімді жұмыс істей алады. Бұл әдетте компьютерлік графикада үшбұрыштар бұрыштарындағы түкпірлерге операция жасалуымен байланысты. Жеке үшбұрыштарда жүйе әр үшбұрыштың үш түбімен жұмыс істеуі керек. Үлкен торда сегіз немесе одан да көп үшбұрыштар болуы мүмкін, олар бір ғана нүктеде кездеседі. Бұл нүктелерді бір рет өңдеу арқылы жұмыстың бір бөлігін ғана орындап, бірдей әсерге қол жеткізуге болады. Көптеген компьютерлік графикалық қолданбаларда үшбұрыштар торларын басқару қажет. Тордың құрамдас бөліктері - бұрыштар, жиектер және үшбұрыш. Қолданба үшін тордың құрамдас бөліктері арасындағы әртүрлі байланыстар туралы білім қажет болуы мүмкін. Бұл байланыстарды шынайы вертикальдық позициялардан тәуелсіз басқаруға болады. Бұл құжатта қосылымдарды басқаруға ыңғайлы қарапайым деректердің құрылымы сипатталған. Бұл жалғыз мүмкін дерек құрылымы емес. Басқа көптеген түрлері бар және торлар туралы әртүрлі сұраныстарға қолдау көрсетеді.
In computer graphics, a triangle mesh is a type of polygon mesh. It comprises a set of triangles (typically in three dimensions) that are connected by their common edges or vertices. Many graphics software packages and hardware devices can operate more efficiently on triangles that are grouped into meshes than on a similar number of triangles that are presented individually. This is typically because computer graphics do operations on the vertices at the corners of triangles. With individual triangles, the system has to operate on three vertices for every triangle. In a large mesh, there could be eight or more triangles meeting at a single vertex by processing those vertices just once, it is possible to do a fraction of the work and achieve an identical effect. In many computer graphics applications it is necessary to manage a mesh of triangles. The mesh components are vertices, edges, and triangles. An application might require knowledge of the various connections between the mesh components. These connections can be managed independently of the actual vertex positions. This document describes a simple data structure that is convenient for managing the connections. This is not the only possible data structure. Many other types exist and have support for various queries about meshes.
Өкілдік
Компьютер жадында тормен жұмыс істеудің және сақтаудың әртүрлі әдістері болуы мүмкін. OpenGL және DirectX API-де үшбұрышты торды графикалық аппаратқа, үшбұрышты жолақтар мен индекс массивтеріне берудің екі негізгі жолы бар.
Үшбұрышты жолақ
Үшбұрыштар арасындағы вертикаль деректерін бөлісудің бір жолы - үшбұрышты жолақ. Үшбұрыштардың жолақтары бар үшбұрыштардың әрқайсысы бір көршілес және келесісімен толық жиегін бөліседі. Тағы бір тәсіл - үшбұрышты желдеткіш, ол бір орталық нүктесін бөлісетін байланысты үшбұрыштар жиынтығы. Бұл әдістермен ұштары тиімді түрде өңделеді, нәтижесінде N үшбұрышты салу үшін тек N + 2 ұштарын өңдеу қажет. Үшбұрышты жолақтар тиімді, бірақ кемшілігі - кез келген үшбұрышты торды жолаққа аударудың қалай немесе ыңғайлы болатыны анық емес.
Етістіктің құлдырауы
Бұл операцияның мақсаты - vk, vti жиектерін анықтау, vk - ұстап тұру бұрышы, vt - тастау бұрышы деп аталады. Бұл жиекті бөлісетін үшбұрыштар тордан алынып тасталады. Vt нүктесі де тордан алынып тасталады. vt ортақ үшбұрыштардың кез келгенінің ұшы vk арқылы ауыстырылады. 1-суретте үшбұрышты тор және тордың үш жиегі құлап кетуінің реті көрсетілген.
Индекс массиві
Индекс массивтерімен тор екі бөлек массивпен бейнеленеді, бір массив түкпірлерді ұстайды, ал екіншісі үш индексті құрайтын массивті ұстайды, олар үшбұрышты анықтайды. Графикалық жүйе алдымен үстіңгі нүктелерді өңдейді, содан кейін үшбұрыштарды қайтарады, бұралған деректерде жұмыс істейтін индекс жиынтықтарын пайдаланады. OpenGL-де бұл Vertex Buffer Object (VBO) қолданғанда glDrawElements примитивінен қолдау табады. Бұл әдіспен кез келген үшбұрыштардың кез келген нүктелер санын бөлісетін кез келген кездейсоқ жиынтығы графикалық API-ге сақталуы, өңделуі және кез-келген аралық өңдеусіз берілуі мүмкін.