Vad är OpenGL® -plockning?

OpenGL®-plockning i datorprogrammering är processen att bestämma vilket objekt inom en tredimensionell (3D) scen finns vid en given punkt på skärmen när scenen har gjorts. Det kan också hänvisa till att hitta flera objekt vid en punkt eller inuti en låda. Oftast används OpenGL® -plockning för att bestämma vilket 3D -objekt på skärmen en användare försöker välja med en musmarkör. Även om denna operation kan tyckas vara enkel, finns det flera subtiliteter i hur OpenGL® gör en scen som kan göra den ganska komplex. Dessutom finns det inneboende problem i vissa grafikkort och drivrutiner som kan orsaka att OpenGL® -plockningsfunktionen misslyckas och returnerar falska resultat.

När en användare tittar på en 3D -scen på en datormonitor är den resulterande bilden känd som en återgivning av scenen. Scenen lagras faktiskt i minnet som en samling primitiva former eller polygoner, som själva bara är samlingar av 3D -punkter inom utrymmet förscen. Datorn använder världskoordinater, som ibland kallas absoluta koordinater, för att utföra de flesta grundläggande funktioner som manipulerar objekt i scenen. I de flesta applikationer kan användaren manövrera scenens vy till olika vinklar så att objekt kan ses i olika perspektiv. Den virtuella platsen för användaren inom scenen kallas kameravinkeln eller kamerapositionen.

Komplexiteten i OpenGL®-plockningen kommer från att bestämma musen på musen på den tvådimensionella (2D) skärmen från en eventuellt godtycklig position och vinkel i scenen, kamerapositionen. Eftersom återgivningen från den mänskliga betraktarens perspektiv verkligen är 2D, finns det inget sätt för användaren att tillhandahålla djupet på musklicket inuti scenen. OpenGL® -plockningsfunktionen löser detta komplexa problem på två sätt.

den första är att istället för perAtt bilda en serie separata beräkningar för att översätta där tittaren är abstrakt och sedan hitta ett objekt i rendering -fönstret, gör funktionen faktiskt scenen som den gör när det normalt fungerar, med undantag för att återgivningen som används för val inte visas, den används bara för att beräkna de korrekta positionerna för objekt. Skillnaden är att istället för att göra hela området som skulle vara synligt för användaren, gör det bara området där musen ligger. Detta innebär att alla föremål som utförs är tekniskt vid den punkt där muspekaren finns.

Det andra problemet, nämligen att inte ha något sätt att indikera djupet på ett valt område, löses genom att returnera alla föremål som ligger under muskoordinaterna i scenen. OpenGL® -plockningsfunktionen returnerar alla objekt i en matris tillsammans med hur långt bort de är från betraktarens plats. Detta gör att ett program snabbt kan hitta det närmaste objektet om så önskas.

ett sätt att visualisera oPengl® -plockning är att föreställa sig en linje, ibland kallad en stråle i 3D -programmering, flytta från platsen för muspekaren till scenen och bort från tittarens plats. Varje objekt som denna stråle berör läggs till i en rad objekt, tillsammans med hur långt bort det är från betraktaren. Detta är en mycket enkel förklaring av hur en form av OpenGL® -plockning fungerar.

En annan metod för objektplockning i OpenGL® innebär att hitta ett objekt efter färg, och det kan vara betydligt snabbare. Denna metod gör scenen, men istället för att applicera belysning och struktur på föremålen görs de istället med en enda, enkel färg. Varje objekt eller grupp av objekt har sin egen distinkta färg. Scenen återges bara i minnet och visas inte, så det påverkar inte vad användaren ser. Istället för att leta efter 3D -kollisioner mellan objekt returneras färgen på musmarkörens position istället, och den färgen kommer att korrelera med ett specifikt objekt.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?