Sono un po 'confuso sull'uso corretto di VBO in un programma OpenGL.Tecniche OpenGL VBO in C++
Voglio creare un algoritmo di paging del terreno, utilizzando una mappa chiamata da una heightmap in scala di grigi 4096x4096 come mappa "intera".
Da quello che ho letto, ogni vertice memorizzato nel VBO impiegherà 64 byte.
Il problema che ho è che la maggior parte delle fonti afferma che un singolo VBO dovrebbe avere dimensioni comprese tra 1 e 4mb e meno VBO è meglio. Tuttavia, secondo i miei calcoli, la memorizzazione di ciascun vertice richiederebbe un totale di circa un gigabyte di dati! (4096x4096x64) Questo non significa che ogni vertice potrebbe dover essere memorizzato più volte per ogni triangolo.
Né questo si adatta ai diversi veicoli e persone che sarebbero su questa mappa una volta ottenuta la parte del codice del terreno elaborata.
l'altra soluzione ho guardato era alla pagina i dati dal disco rigido mentre il programma è in esecuzione, ma un'altra fonte dice che è una cattiva idea di creare e distruggere durante l'esecuzione del programma, e che è anche buona norma avere il minor numero possibile di VBO.
Quello che voglio davvero sapere è, cosa mi manca? Sono sicuro che sto facendo una specie di supervisione enorme qui, perché una dimensione VBO massima di 4mb sembra solo estremamente bassa, anche se stavo caricando la trama in 64x64 blocchi e anche i diversi oggetti interattivi che avrebbero popolato la mappa .
O le mie aspettative su ciò che posso ottenere sono irrealistiche? C'è un metodo migliore a mia disposizione di cui non sono a conoscenza? Sto guardando i giochi come Oblivion o Fallout 3, e in qualche misura il Boundless Planet, e vedere enormi terreni, e mi chiedo come diavolo sia possibile.
Capisco come codificare, questo non è il mio primo approfondimento su OpenGL, ma è la mia prima volta che cerco di capire e utilizzare VBO.
Se qualcuno può far luce su dove la mia comprensione dei VBO sta andando male, sarebbe molto apprezzata.
Bene, grazie :) Lo terrò a mente quando guarderò tra gli esempi, forse la regola 4mb era appena superata, e grazie per il link alle risorse, GLexpert sarebbe diventato davvero utile quando si sperimentava questo! – Brian
La raccomandazione 4mb è probabilmente la dimensione vbo ottimale per il rendering come definito per alcune schede nvidia. Questa dimensione ottimale è diversa per ogni carta, quindi la regola generale è di non usare vbo troppo piccoli o troppo grandi. – 5ound