Hvad er OpenGL® Picking?
OpenGL®-valg i computerprogrammering er processen med at bestemme, hvilket objekt inden for en tredimensionel (3D) scene, der er placeret på et givet tidspunkt på skærmen, når scenen er gengivet. Det kan også henvise til at finde flere objekter på et tidspunkt eller inde i en kasse. Oftest bruges OpenGL® -plukning til at bestemme, hvad 3D -objekt på skærmen, som en bruger forsøger at vælge med en musemarkør. Selvom denne operation muligvis ser ud til at være enkel, er der flere subtiliteter i, hvordan OpenGL® gør en scene, der kan gøre den temmelig kompliceret. Derudover er der iboende fejl i visse grafikkort og drivere, der kan få OpenGL® -plukfunktionen til at mislykkes og returnere falske resultater.
Når en bruger ser på en 3D -scene på en computerskærm, er det resulterende billede kendt som en gengivelse af scenen. Scenen gemmes faktisk i hukommelsen som en samling af primitive former eller polygoner, som i sig selv bare er samlinger af 3D -punkter inden forscene. Computeren bruger verdenskoordinater, der undertiden kaldes absolutte koordinater, til at udføre de fleste basale funktioner, der manipulerer genstande i scenen. I de fleste applikationer er brugeren i stand til at manøvrere visningen af scenen til forskellige vinkler, så objekter kan ses i forskellige perspektiver. Brugerens virtuelle placering inden for scenen kaldes kameravinklen eller kamerapositionen.
Kompleksiteten af OpenGL®-plukning kommer fra at bestemme musens placering på den to-dimensionelle (2D) skærm fra en muligvis vilkårlig position og vinkel i scenen, kamerapositionen. Fordi gengivelsen fra den menneskelige seers perspektiv virkelig er 2D, er der ingen måde for brugeren at give musens dybde klik inde i scenen. OpenGL® Picking -funktionen løser dette komplekse problem på to måder.
den første er, at i stedet for pr.Ved at danne en række separate beregninger for at oversætte, hvor seeren er abstrakt, og derefter finde et objekt i renderingsvinduet, gør funktionen faktisk scenen, som den gør, når den normalt fungerer, med undtagelse af, at gengivelsen, der bruges til valg, ikke vises, bruges kun til at beregne de korrekte positioner af objekter. Forskellen er, at det i stedet for at gengive hele området, der ville være synlig for brugeren, kun gengiver det område, hvor musen er placeret. Dette betyder, at alle gengivne objekter er teknisk på det punkt, hvor musemarkøren er placeret.
Det andet problem, nemlig at have ingen måde at indikere dybden af et valgt område, løses ved at returnere alle objekter, der er under musekoordinaterne i scenen. OpenGL® Picking -funktionen returnerer alle objekter i en matrix sammen med hvor langt væk de er fra seerens placering. Dette giver et program mulighed for hurtigt at finde det nærmeste objekt, hvis det ønskes.
en måde at visualisere OPengl® -plukning er at forestille sig en linje, sommetider benævnt en stråle i 3D -programmering, der bevæger sig fra placeringen af musemarkøren ind i scenen og væk fra seerens placering. Hver genstand, denne stråle, berører til en række objekter sammen med hvor langt væk den er fra seeren. Dette er en meget enkel forklaring på, hvordan en form for OpenGL® Picking fungerer.
En anden metode til objektplukning i OpenGL® involverer lokalisering af et objekt efter farve, og det kan være betydeligt hurtigere. Denne metode gengiver scenen, men i stedet for at anvende belysning og tekstur på objekterne, gengives de i stedet med en enkelt, enkel farve. Hver objekt eller gruppe af objekter har sin egen forskellige farve. Scenen gengives kun i hukommelsen og vises ikke, så dette påvirker ikke, hvad brugeren ser. I stedet for at lede efter 3D -kollisioner mellem genstande, returneres farven på musemarkørens position i stedet, og den farve korrelerer med et specifikt objekt.