Kas yra OpenGL® ratas?

Pagrindinei atviros grafikos bibliotekos (OpenGL®) apskritimui nėra tikro įtaisytosios formos primityvo, todėl nubrėžiant apskritimą reikia vadovautis paprastu algoritmu, kad būtų nustatyta taškų vieta, o po to taškus galima sujungti linijomis, kad susidarytų ratas. Daugeliu atvejų, naudojant realaus laiko atvaizdavimo programą, OpenGL® apskritimas yra apytikslis ir iš tikrųjų susideda iš kelių tiesių linijų, kurios atrodo kaip apskritimas, kai atstumas tarp linijų galinių taškų yra pakankamai mažas. Vienas iš gudrybių, galinčių padėti padaryti apskritimą lygų, yra įjungti maišymą ir naudoti lygių linijų piešimo režimą, kad būtų sumažintas kampų vaizdas, kai apskritimo perimetre susijungia dvi linijos. Kitas būdas nubrėžti apskritimą yra naudoti OpenGL® naudingumo formos primityvą, žinomą kaip diskas, kuris iš esmės yra dvimatis (2D) apskritimas, turintis papildomą vidinį apskritimą, kurį galima nustatyti, kad išorinio krašto skersmuo atitiktų šiek tiek neefektyviai. nubrėžkite OpenGL® apskritimą.

Paprastas apskritimo apibrėžimas yra 2D forma, kurioje kiekvienas krašto taškas yra tiksliai tokiu pat atstumu nuo nurodyto centro taško. Pats paprasčiausias OpenGL® apskritimo piešimo algoritmas yra nubraižyti taškus iš centrinės koordinatės, naudojant sinuso ir kosinuso funkcijas kilpoje, kuri keičiasi kampo laipsniais iki 360°. Tačiau žingsniavimas 1 laipsniu vienu metu yra gana neefektyvus, todėl žingsniai dažniausiai atliekami didesniais žingsniais. Kuo didesni žingsniai, tuo kampinis apskritimas atrodys, o geriausias pavyzdys yra apskritimas, nubrėžtas tik su keturiais taškais ir sudarytų kvadratą.

Per kiekvieną OpenGL® apskritimo krašto taško koordinatės nustatymo žingsnį galima nubrėžti liniją nuo paskutinio taško iki dabartinio taško. Paprastai norint sudaryti visą apskritimą, naudoti linijos juostą yra greičiau, nei atskirai nubrėžti atskiras linijas. Apskaičiavus taškus, sudarančius apskritimą, juos galima išsaugoti masyve ir išversti kaip ir bet kurį OpenGL® viršūnių rinkinį.

OpenGL® diskas yra formos primityvus, kurį OpenGL® paslaugų biblioteka gali nupiešti savaime. Jis sudarytas iš išorinio ir vidinio apskritimo, o plotas tarp vidinio ir išorinio apskritimų yra vientisas ir užpildytas. OpenGL® diskas gali būti naudojamas nubrėžti OpenGL® apskritimą, nustatant vidinį spindulį, kad jis atitiktų išorinį spindulį, nors ši technika reiškia, kad dėl vidinio ir išorinio kraštų apskritimas tikrai nupieštas du kartus ir gali palikti tam tikrų grafinių artefaktų, kai pasukamas skirtingi kampai.