OpenGL® odabir u računalnom programiranju je proces određivanja koji se objekt unutar trodimenzionalne (3D) scene nalazi na određenoj točki na zaslonu nakon što se scena renderira. Također se može odnositi na lociranje više objekata u točki ili unutar kutije. OpenGL® odabiranje najčešće se koristi za određivanje koji 3D objekt na zaslonu korisnik pokušava odabrati pokazivačem miša. Iako se ova operacija može činiti jednostavnom, postoji nekoliko suptilnosti u načinu na koji OpenGL® prikazuje scenu koja je može učiniti prilično složenom. Osim toga, postoje intrinzične greške u određenim grafičkim karticama i upravljačkim programima koji mogu uzrokovati neuspjeh funkcije odabira OpenGL® i vraćanje lažnih rezultata.
Kada korisnik gleda 3D scenu na monitoru računala, rezultirajuća slika poznata je kao renderiranje scene. Scena je zapravo pohranjena u memoriji kao zbirka primitivnih oblika ili poligona, koji su sami po sebi samo zbirke 3D točaka unutar prostora scene. Računalo koristi svjetske koordinate, koje se ponekad nazivaju i apsolutne koordinate, za obavljanje najosnovnijih funkcija koje manipuliraju objektima u sceni. U većini aplikacija korisnik može manevrirati pogledom na scenu iz različitih kutova tako da se objekti mogu vidjeti u različitim perspektivama. Virtualna lokacija korisnika unutar scene naziva se kut kamere ili pozicija kamere.
Složenost odabira OpenGL® proizlazi iz određivanja položaja miša na dvodimenzionalnom (2D) zaslonu iz moguće proizvoljnog položaja i kuta unutar scene, položaja kamere. Osim toga, budući da je renderiranje iz perspektive ljudskog promatrača stvarno 2D, korisnik ne može dati dubinu klika mišem unutar scene. OpenGL® funkcija odabira rješava ovaj složeni problem na dva načina.
Prvi je da, umjesto izvođenja niza zasebnih izračuna za apstraktno prevođenje gdje se gledatelj nalazi i zatim pronalaženje objekta u prozoru za renderiranje, funkcija zapravo generira scenu kao što radi kada normalno radi, s iznimkom da je renderiranje korišteno za odabir se ne prikazuje, koristi se samo za izračunavanje točnih položaja objekata. Razlika je u tome što, umjesto renderiranja cijelog područja koje bi bilo vidljivo korisniku, renderira samo područje na kojem se nalazi miš. To znači da su svi prikazani objekti tehnički na mjestu gdje se nalazi pokazivač miša.
Drugi problem, naime nemogućnost označavanja dubine odabranog područja, rješava se vraćanjem svih objekata koji se nalaze ispod koordinata miša u sceni. OpenGL® funkcija odabira vraća sve objekte u nizu zajedno s koliko su udaljeni od lokacije gledatelja. To omogućuje programu da po želji brzo pronađe najbliži objekt.
Jedan od načina za vizualizaciju odabira OpenGL®-a je zamisliti liniju, koja se u 3D programiranju ponekad naziva i zrakom, koja se kreće od mjesta pokazivača miša u scenu i dalje od lokacije promatrača. Svaki objekt koji ova zraka dotakne dodaje se nizu objekata, zajedno s koliko je udaljen od gledatelja. Ovo je vrlo jednostavno objašnjenje kako funkcionira jedan oblik OpenGL® odabira.
Druga metoda odabira objekata u OpenGL®-u uključuje lociranje objekta po boji i može biti znatno brža. Ova metoda prikazuje scenu, ali umjesto primjene osvjetljenja i teksture na objekte, oni se umjesto toga prikazuju jednom, jednostavnom bojom. Svaki objekt ili skupina objekata ima svoju posebnu boju. Scena se samo prikazuje u memoriji i ne prikazuje, tako da to ne utječe na ono što korisnik vidi. Umjesto traženja 3D sudara između objekata, vraća se boja na poziciji pokazivača miša i ta će boja korelirati s određenim objektom.