Hvad er OpenGL® pluk?

OpenGL®-picking i computerprogrammering er processen med at bestemme, hvilket objekt i en tredimensionel (3D) scene er placeret på et givet punkt på skærmen, når scenen er gengivet. Det kan også henvise til lokalisering af flere objekter på et punkt eller inde i en boks. Oftest bruges OpenGL®-picking til at bestemme, hvilket 3D-objekt på skærmen en bruger forsøger at vælge med en musemarkør. Selvom denne operation muligvis ser ud til at være enkel, er der adskillige subtiliteter i, hvordan OpenGL® gengiver en scene, der kan gøre den temmelig kompleks. Derudover er der iboende fejl i visse grafikkort og drivere, der kan forårsage, at OpenGL®-plukfunktionen mislykkes og giver 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 er faktisk lagret i hukommelsen som en samling af primitive former eller polygoner, som i sig selv kun er samlinger af 3D-punkter inden for scenens rum. Computeren bruger verdens koordinater, som undertiden kaldes absolutte koordinater, til at udføre de fleste basale funktioner, der manipulerer objekter i scenen. I de fleste applikationer er brugeren i stand til at manøvrere udsigten til 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 bestemmelse af musens placering på den todimensionelle (2D) skærm fra en muligvis vilkårlig position og vinkel inden for scenen, kameraets position. Eftersom gengivelsen fra den menneskelige seers perspektiv virkelig er 2D, er der ingen måde for brugeren at give dybden af ​​museklikket inde i scenen. OpenGL®-plukfunktionen løser dette komplekse problem på to måder.

Den første er, at i stedet for at udføre en række separate beregninger for at oversætte, hvor seeren er abstrakt og derefter finde et objekt i gengivelsesvinduet, gengives funktionen faktisk scenen, som den gør, når man normalt arbejder, med undtagelse af, at gengivelsen blev brugt for valg vises ikke, det bruges kun til at beregne de korrekte placeringer af objekter. Forskellen er, at i stedet for at gengive hele det område, der ville være synligt for brugeren, gør det kun det område, hvor musen er placeret. Dette betyder, at alle gengivne objekter er teknisk på det sted, hvor musemarkøren er placeret.

Det andet problem, nemlig ikke at have nogen måde at indikere dybden på et valgt område, løses ved at returnere alle objekter, der er under musekoordinaterne i scenen. OpenGL®-plukfunktionen 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®-pluk 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. Hvert objekt denne stråle berører føjes til en række objekter sammen med hvor langt væk det er fra seeren. Dette er en meget enkel forklaring på, hvordan en form for OpenGL®-pluk 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 genstand eller gruppe af objekter har sin egen særskilte 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 objekter, returneres farven i musemarkørens placering i stedet, og denne farve korrelerer med et specifikt objekt.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?