Kaj izbira OpenGL®?

Izbira OpenGL® v računalniškem programiranju je postopek ugotavljanja, kateri predmet v tridimenzionalni (3D) sceni se nahaja na določeni točki na zaslonu, ko je prizor upodobljen. Lahko se nanaša tudi na lociranje več predmetov na točki ali znotraj škatle. Najpogosteje se izbiranje OpenGL® uporablja za določitev, kateri 3D objekt na zaslonu poskuša uporabnik izbrati s kazalcem miške. Čeprav se ta operacija morda zdi preprosta, obstaja več tankosti v tem, kako OpenGL® upodablja prizor, ki ga lahko naredi precej zapletenega. Poleg tega obstajajo resne napake v nekaterih grafičnih karticah in gonilnikih, ki lahko povzročijo, da funkcija izbire OpenGL® ne uspe in vrne napačne rezultate.

Ko uporabnik gleda 3D sceno na računalniškem monitorju, je nastala slika znana kot upodabljanje scene. Prizor je pravzaprav shranjen v spominu kot zbirka primitivnih oblik ali poligonov, ki so sami po sebi le zbirke 3D točk znotraj prostora scene. Računalnik uporablja svetovne koordinate, ki jih včasih imenujemo absolutne koordinate, za izvajanje večine osnovnih funkcij, ki manipulirajo s predmeti na sceni. V večini aplikacij lahko uporabnik manevrira s pogledom na prizor iz različnih zornih kotov, tako da je mogoče predmete videti v različnih perspektivah. Virtualna lokacija uporabnika znotraj scene se imenuje kot kamere ali položaj kamere.

Kompleksnost izbire OpenGL® izhaja iz določanja lokacije miške na dvodimenzionalnem (2D) zaslonu iz morebitnega poljubnega položaja in kota znotraj scene, položaja kamere. Poleg tega, ker je upodabljanje z vidika človeškega gledalca res 2D, uporabnik ne more zagotoviti globine klika miške znotraj scene. Funkcija izbire OpenGL® rešuje to zapleteno težavo na dva načina.

Prvi je ta, da funkcija namesto izvajanja serije ločenih izračunov za abstraktno prevajanje, kjer je gledalec, in nato iskanje predmeta v oknu upodabljanja, dejansko upodobi prizor, kot je pri običajnem delu, z izjemo, da je uporabljeno upodabljanje za izbor ni prikazana, uporablja se le za izračun pravilnih položajev objektov. Razlika je v tem, da namesto celotnega območja, ki bi bilo vidno uporabniku, upodablja samo območje, kjer se nahaja miška. To pomeni, da so vsi upodobljeni predmeti tehnično na mestu, kjer se nahaja kazalec miške.

Drugi problem, ki namreč nima možnosti navesti globine izbranega območja, je rešen tako, da se v sceni vrnejo vsi predmeti, ki so pod koordinatami miške. Funkcija izbire OpenGL® vrne vse predmete v nizu skupaj s tem, kako daleč so od lokacije gledalca. To omogoča programu, da po želji hitro najde najbližji predmet.

Eden od načinov za vizualizacijo izbire OpenGL® je, da si zamislimo črto, ki se v 3D programiranju včasih imenuje žarek, ki se premika od lokacije kazalca miške v prizor in stran od lokacije gledalca. Vsak predmet, ki se ga ta žarek dotakne, je dodan nizu predmetov, skupaj s tem, kako daleč je od gledalca. To je zelo preprosta razlaga, kako deluje ena oblika izbire OpenGL®.
Druga metoda izbire predmetov v OpenGL® vključuje lociranje predmeta po barvi in ​​je lahko bistveno hitrejša. Ta metoda upodablja prizor, vendar se namesto uporabe osvetlitve in teksture na objekte upodablja z eno samo preprosto barvo. Vsak predmet ali skupina predmetov ima svojo značilno barvo. Scena je samo upodobljena v pomnilniku in ni prikazana, tako da to ne vpliva na to, kaj vidi uporabnik. Namesto iskanja 3D trkov med predmeti se namesto tega vrne barva na položaju kazalca miške in ta barva bo povezana z določenim predmetom.