Skip to main content

Cos'è OpenGL Raccogliere?

OpenGL La raccolta della programmazione di computer è il processo per determinare quale oggetto all'interno di una scena tridimensionale (3D) si trova in un determinato punto sullo schermo una volta che la scena è stata resa.Può anche fare riferimento alla localizzazione di più oggetti in un punto o all'interno di una scatola.Molto spesso, OpenGl La raccolta viene utilizzata per determinare quale oggetto 3D sullo schermo un utente sta tentando di selezionare con un cursore del mouse.Mentre questa operazione potrebbe sembrare semplice, ci sono diverse sottigliezze in come OpenGL Rende una scena che può renderla abbastanza complessa.Inoltre, ci sono problemi intrinseci in alcune schede grafiche e driver che possono causare OpenGL Scegliere la funzione per fallire e restituire risultati falsi.

Quando un utente sta guardando una scena 3D su un monitor del computer, l'immagine risultante è nota come rendering della scena.La scena è in realtà memorizzata in memoria come una raccolta di forme o poligoni primitivi, che stessi sono solo raccolte di punti 3D all'interno dello spazio della scena.Il computer utilizza coordinate mondiali, che a volte sono chiamate coordinate assolute, per svolgere le funzioni di base che manipolano gli oggetti nella scena.Nella maggior parte delle applicazioni, l'utente è in grado di manovrare la vista della scena a diversi angoli in modo che gli oggetti possano essere visti in diverse prospettive.La posizione virtuale dell'utente all'interno della scena è chiamata angolo della fotocamera o posizione della fotocamera.

La complessità di OpenGL La raccolta deriva dalla determinazione della posizione del mouse sullo schermo bidimensionale (2D) da una posizione forse arbitraria e angolo all'interno della scena, la posizione della telecamera.Inoltre, poiché il rendering dal punto di vista dello spettatore umano è davvero 2D, non c'è modo per l'utente di fornire la profondità del mouse Click all'interno della scena.The OpenGL La funzione di raccolta risolve questo problema complesso in due modi.

Il primo è che, invece di eseguire una serie di calcoli separati per tradurre dove lo spettatore è astratto e quindi trovare un oggetto nella finestra di rendering, la funzione rende effettivamente la scena come èfa normalmente quando si lavora, con l'eccezione che il rendering utilizzato per la selezione non viene visualizzato, viene utilizzato solo per calcolare le posizioni corrette degli oggetti.La differenza è che, invece di rendere l'intera area che sarebbe visibile all'utente, rende solo l'area in cui si trova il mouse.Ciò significa che tutti gli oggetti resi sono tecnicamente nel punto in cui si trova il puntatore del mouse.

Il secondo problema, vale a dire non avere modo di indicare la profondità di un'area selezionata, viene risolto restituendo tutti gli oggetti che sono sotto le coordinate del mouse nellescena.The OpenGL La funzione di raccolta restituisce tutti gli oggetti in un array insieme a quanto sono lontani dalla posizione dello spettatore.Ciò consente a un programma di trovare rapidamente l'oggetto più vicino, se lo si desidera.

Un modo per visualizzare OpenGL La raccolta è immaginare una linea, a volte indicata come un raggio nella programmazione 3D, spostandosi dalla posizione del puntatore del mouse nella scena e lontano dalla posizione dello spettatore.Ogni oggetto che questo raggio tocca viene aggiunto a una matrice di oggetti, insieme a quanto è lontano dallo spettatore.Questa è una spiegazione molto semplice di come una forma di OpenGL Scegliere opere.

Un altro metodo di raccolta di oggetti in OpenGL implica la localizzazione di un oggetto per colore e può essere considerevolmente più veloce.Questo metodo rende la scena ma, invece di applicare illuminazione e consistenza agli oggetti, sono invece resi con un singolo colore semplice.Ogni oggetto o gruppo di oggetti ha il suo colore distinto.La scena è resa solo in memoria e non visualizzata, quindi ciò non influisce su ciò che l'utente vede.Invece di cercare collisioni 3D tra oggetti, viene restituito il colore nella posizione del cursore del mouse e quel colore si correggirà a un oggetto specifico.