Che cos'è un buffer dei vertici OpenGL®?

Un buffer di vertici Open Graphics Library® (OpenGL®) è un'area di memoria del computer spesso situata direttamente su una scheda grafica che consente un accesso molto rapido a una matrice di vertici e alle loro proprietà. Molto spesso, un buffer di vertice OpenGL® viene utilizzato per creare un oggetto buffer di vertici (VBO), consentendo il rendering di oggetti all'interno di una scena tridimensionale (3D) come parte di un elenco di visualizzazione e non in modalità immediata. Occasionalmente, tuttavia, un buffer di vertici può essere utilizzato all'esterno di un VBO per archiviare informazioni su un oggetto o per facilitare le trasformazioni su modelli complessi. Va notato che un buffer di vertici non deve trovarsi nella memoria della scheda grafica, perché può essere allocato come qualsiasi struttura di dati. Se il buffer dei vertici OpenGL® verrà utilizzato come parte di un VBO, la scheda grafica utilizzata deve supportare l'estensione VBO OpenGL® speciale per garantire che il buffer sia inserito nella memoria grafica.

Al livello più elementare, un buffer di vertici OpenGL® è solo un semplice buffer, un'area allocata di memoria in cui è possibile archiviare i dati. Diventa un buffer di vertici quando un array di vertici è memorizzato al suo interno. Un array di vertici OpenGL® è un array di strutture dati che definisce tutte le proprietà dei singoli vertici. Queste informazioni possono includere le posizioni X, Y e Z del vertice nella scena 3D, il colore del vertice, le proprietà normali e altre.

Nel rendering in modalità immediata, i comandi OpenGL® vengono eseguiti direttamente come vengono chiamati all'interno di un programma. In questi casi non è necessario disporre di un array di vertici, poiché i comandi per posizionare e disegnare un vertice possono essere impartiti direttamente all'hardware, sebbene ciò possa causare seri problemi di prestazioni. Per il rendering in modalità non immediata, le informazioni su un oggetto o modello 3D devono prima essere collocate in un array di vertici in modo che abbia una struttura che OpenGL® può facilmente interpretare; tale array deve quindi essere archiviato in una speciale area di memoria nota come buffer di vertici OpenGL®.

Di per sé, il buffer dei vertici non ha necessariamente attributi speciali oltre a essere una raccolta completa di informazioni utilizzate per disegnare un oggetto. Quando il buffer dei vertici OpenGL® viene convertito in un oggetto buffer dei vertici OpenGL® tramite l'estensione OpenGL, tuttavia, si verifica una sequenza speciale di eventi per aiutare a ottimizzare il disegno dell'oggetto definito nel buffer dei vertici. Vale a dire, il buffer viene allocato e archiviato nella memoria della scheda grafica, sul lato server dell'impostazione client-server utilizzata da OpenGL®. Alcuni calcoli possono anche essere eseguiti in anticipo sul VBO in modo da renderlo il più velocemente possibile. Al di fuori di un VBO, un normale buffer di vertici di solito non riceve questo trattamento e può essere allocato e utilizzato come qualsiasi altro tipo di dati.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?