Mis on OpenGL® ring?

Avatud graafikaraamatukogu (OpenGL®) põhiringi jaoks pole tõelist sisseehitatud kujundi primitiivi, seega hõlmab ringi joonistamine lihtsa algoritmi järgimist punktide asukoha määramiseks, mille järel saab punkte ühendada joontega, et moodustada ring. Enamikul juhtudel on reaalajas renderdusrakenduse puhul OpenGL® ring ligikaudne ja koosneb tegelikult mitmest sirgjoonest, mis näevad välja nagu ring, kui joonte lõpp-punktide vaheline kaugus on piisavalt väike. Üks nipp, mis aitab ringi siledaks muuta, on segamise lubamine ja sujuva joone joonistamise režiimi kasutamine, et vähendada nurkade väljanägemist, kus kaks joont ringi perimeetril ühenduvad. Teine võimalus ringi joonistamiseks on kasutada OpenGL® utiliidi kuju primitiivi, mida tuntakse kettana, mis on sisuliselt kahemõõtmeline (2D) ring, millel on täiendav sisemine ring, mida saab seadistada nii, et see sobiks välisserva läbimõõduga mõnevõrra ebatõhusaks. joonistage OpenGL® ring.

Ringi lihtne definitsioon on 2D kujund, mille iga servapunkt on antud keskpunktist täpselt samal kaugusel. Kõige elementaarsem algoritm OpenGL® ringi joonistamiseks on punktide joonistamine keskkoordinaadist, kasutades siinus- ja koosinusfunktsioone tsüklina, mis liigub läbi nurga astmete kuni 360°. Korraga 1 kraadi astumine on aga üsna ebaefektiivne, seega sooritatakse samme tavaliselt suuremate sammudena. Mida suurem on samm, seda nurgelisem ring välja näeb. Parim näide on ainult nelja punktiga ring, mis moodustaks ruudu.

OpenGL® ringi serval asuva punkti koordinaadi määramise igas etapis saab viimasest punktist praeguse punktini joone tõmmata. Üldiselt on täieliku ringi tegemiseks kiirem kasutada jooneriba kui eraldi joonte joonistamine. Kui ringi moodustavad punktid on arvutatud, saab need massiivi salvestada ja tõlkida nagu iga OpenGL®-i tippude komplekti.

OpenGL®-i ketas on kujundiprimitiiv, mida OpenGL®-i utiliidi teek saab natiivselt joonistada. See on valmistatud välimisest ja sisemisest ringist, kusjuures sisemise ja välimise ringi vaheline ala on tahke ja täidetud. OpenGL®-i ketast saab kasutada OpenGL®-i ringi joonistamiseks, määrates sisemise raadiuse nii, et see vastaks välimisele raadiusele, kuigi see tehnika tähendab, et ringjoon joonistatakse sise- ja välisserva tõttu tõesti kaks korda ning see võib jätta graafilisi artefakte, kui seda pöörata. erinevad nurgad.