Co to jest zbieranie OpenGL®?
Picking OpenGL® w programowaniu komputerowym jest proces określania, jaki obiekt w trójwymiarowej scenie (3D) znajduje się w danym punkcie na ekranie po renderowaniu sceny. Może również odnosić się do lokalizacji wielu obiektów w punkcie lub wewnątrz pudełka. Najczęściej zbieranie OpenGL® służy do określenia, który obiekt 3D na ekranie użytkownik próbuje wybrać za pomocą kursora myszy. Chociaż ta operacja może wydawać się prosta, istnieje kilka subtelności w tym, jak OpenGL® renderuje scenę, która może uczynić ją dość złożoną. Ponadto istnieją wewnętrzne usterki w niektórych kartach graficznych i sterownikach, które mogą powodować awarię funkcji wyboru OpenGL® i zwrócenie fałszywych wyników.
Gdy użytkownik patrzy na scenę 3D na monitor komputera, powstały obraz jest znany jako rendering sceny. Scena jest faktycznie przechowywana w pamięci jako zbiór prymitywnych kształtów lub wielokątów, które same są tylko kolekcjami punktów 3D w przestrzeniscena. Komputer korzysta z współrzędnych światowych, które są czasami nazywane absolutnymi współrzędnymi, do wykonywania większości podstawowych funkcji, które manipulują obiektami na scenie. W większości aplikacji użytkownik jest w stanie manewrować widokiem sceny pod różnymi kątami, aby obiekty można zobaczyć w różnych perspektywach. Wirtualna lokalizacja użytkownika w scenie nazywa się pozycją kątu aparatu lub kamery.
Złożoność zbierania OpenGL® wynika z określania lokalizacji myszy na dwuwymiarowym (2d) ekranu z prawdopodobnie dowolnej pozycji i kąta w scenie, pozycji aparatu. Ponadto, ponieważ renderowanie z perspektywy ludzkiej widza jest naprawdę 2D, nie ma sposobu, aby użytkownik zapewnił głębokość kliknięcia myszy wewnątrz sceny. Funkcja wyboru OpenGL® rozwiązuje ten złożony problem na dwa sposoby.
Pierwszym jest to zamiast tegoTworząc szereg osobnych obliczeń, aby przetłumaczyć, gdzie widz jest abstrakcyjnie, a następnie znajdź obiekt w oknie renderowania, funkcja faktycznie renderuje scenę, tak jak zwykle działa, z wyjątkiem tego, że renderowanie używane do wyboru nie jest wyświetlane, służy jedynie do obliczania prawidłowych pozycji obiektów. Różnica polega na tym, że zamiast renderować cały obszar, który byłby widoczny dla użytkownika, renderuje tylko obszar, w którym znajduje się mysz. Oznacza to, że wszelkie renderowane obiekty są technicznie w punkcie, w którym znajduje się wskaźnik myszy.
Drugi problem, a mianowicie nie mając sposobu na wskazanie głębokości wybranego obszaru, jest rozwiązywane przez zwracanie wszystkich obiektów, które znajdują się pod współrzędnymi myszy na scenie. Funkcja wyboru OpenGL® zwraca wszystkie obiekty w tablicy wraz z tym, jak daleko są od lokalizacji widza. To pozwala programowi szybko znaleźć najbliższy obiekt w razie potrzeby.
Jeden sposób wizualizacji oPengl® zbiór jest wyobrażeniem sobie linii, czasami określanej jako promień w programowaniu 3D, przechodząc z lokalizacji wskaźnika myszy do sceny i z dala od lokalizacji widza. Każdy obiekt ten promień jest dodawany do szeregu obiektów, wraz z tym, jak daleko jest od widza. To bardzo proste wyjaśnienie, jak działa jedna forma wyboru OpenGL®.
Inna metoda zbierania obiektów w OpenGL® jest zlokalizowanie obiektu według koloru i może być znacznie szybsza. Ta metoda renderuje scenę, ale zamiast stosować oświetlenie i teksturę do obiektów, są one renderowane jednym, prostym kolorem. Każdy obiekt lub grupa obiektów ma swój własny kolor. Scena jest renderowana tylko w pamięci i nie jest wyświetlana, więc nie wpływa to na to, co widzi użytkownik. Zamiast szukać kolizji 3D między obiektami, zamiast tego zwraca się kolor w pozycji kursora myszy, a ten kolor będzie koreluje z określonym obiektem.