Pāriet uz saturu

Trijstūra acs

Vikipēdijas lapa

Trijstūra tīkls[nepieciešama atsauce] ir viens no daudzstūru tīklu tipiem datorgrafikā. Tas ietver virkni ar trijstūriem (parasti trijās dimensijās), kas ir saistīti ar kopīgām malām vai stūriem.

Daudzas grafikas programmas un aparatūras ierīces var darboties efektīgāk ar trijstūriem, kas ir grupēti tīklos nekā ar tādu pašu skaitu trijstūru, kas tiek attēloti individuāli. Tas parasti ir tādēļ, ka datorgrafika veic operācijas uz trijstūru stūru virsotnēm. Ar atsevišķiem trijstūriem, sistēmai ir jādarbojas ar visām trijām virsotnēm katram trijstūrim. Lielā tīklā varētu būtu astoņi vai vairāk trijstūri, kuru virsotnes satiktos vienā un tajā pašā punktā — kā rezultātā sistēmai būtu jāapstrādā tikai šis viens punkts, nevis astoņi vai vairāk.

Iespējamas dažādas metodes, lai uzglabātu un apstrādātu trijstūru tīklus datora atmiņā.

Izmantojot OpenGL un DirectX API, ir divi galvenie veidi kā trijstūru tīklus padotu uz grafikas aparatūru: trijstūru sloksnes (angļu: triangle strip) un indeksu masīvi.

Trijstūru sloksnes

[labot šo sadaļu | labot pirmkodu]

Katrs trijstūris dala vienu pilnu malu ar vienu kaimiņu un citu malu ar citu kaimiņu. Cits veids ir trijstūru "fan", kur kopa ar saistītiem trijstūriem dala vienu centrālo virsotni. Ar šīm metodēm virsotņu apstrāde notiek efektīvi, jo ir nepieciešams tikai apstrādāt n+2 virsotnes, lai uzzīmētu n trijstūrus.

Trijstūru sloksnes ir efektīgas, tomēr trūkums ir tas, ka var nebūt īsti skaidrs, kā pārvērst patvaļīgu trijstūru tīklu trijstūru sloksnēs.

Izmantojot indeksu masīvus, tīkls tiek uzglabāts ar diviem atsevišķiem masīviem. Viens masīvs satur virsotņu pozīcijas, otrs masīvs satur katra trijstūra stūru pozīcijas. Grafikas sistēma apstrādā vispirms virsotnes un pēc tam veido trijstūrus. OpenGL šo atbalsta ar glDrawElements().

Izmantojot šo metodi, patvaļīgs skaits trijstūru ar kopēju skaitu patvaļīgu virsotņu var tikt uzglabāts, manipulēts un padots uz grafikas API bez jebkādām starpapstrādēm.