În instantaneul 14w29b există o nouă opțiune în meniul "Video Settings" numită "Use VBOs":
Actualizarea snapshot-ului spune că activarea "Vertex Buffer Objects" ar trebui să vă crească FPS-ul cu 5% până la 10% în medie.
Caut o explicație simplă a ceea ce fac VBO-urile din punct de vedere vizual și cum funcționează.
Răspunsul oferit de Flaunting este corect, dar în cazul în care cineva este interesat de de ce ar putea fi mai eficient, iată o explicație.
În modul imediat (cred că acesta este cazul implicit în minecraft), atunci când doriți să redați să zicem un pătrat:
Veți emite următoarele comenzi la fiecare cadru (în pseudocod)
begin drawing
draw line from (0,0) to (1,0)
draw line from (1,0) to (1,1)
draw line from (1,1) to (0,1)
draw line from (0,1) to (0,0)
end drawing
Pentru un pătrat, acest lucru nu este foarte mult, dar pot exista milioane de vârfuri într-o scenă, iar acestea pot avea mai multe atribute (culoare, normale etc.). Aceasta reprezintă o mulțime de date care trebuie trimise către GPU în fiecare cadru.
Utilizând VBOS, ar trebui să încărcați toate datele de vertex în memoria GPU la început. Pseudocodul ar putea arăta în felul următor:
create VBO
load (0,0) into VBO
load (1,0) into VBO
load (1,1) into VBO
load (0,1) into VBO
load (0,0) into VBO
Codul OpenGL vă va da înapoi un 'nume' pentru acest VBO (un număr întreg fără semn de non-zero, cred). Puteți apoi să faceți referire la acesta atunci când doriți să desenați pătratul. Deci, în fiecare cadru, trebuie să emiteți doar o singură comandă de desenare:
draw vertices in VBO
Este posibil să trebuiască să configurați starea de desenare astfel încât să utilizeze perechi de vârfuri pentru linii, dar pentru fiecare VBO suplimentar, este nevoie doar de un singur apel suplimentar de desenare. De fapt, pentru geometria statică a nivelului (probabil nu se aplică în cazul minecraft) puteți combina toate aceste verticale într-un singur VBO masiv, dacă aveți suficientă memorie GPU.
Sunt surprins că creșterea vitezei este de numai 5-10%. Acest lucru se datorează, probabil, geometriei dinamice a nivelului.
VBO înseamnă Vertex Buffer Object
Un obiect tampon de vertex (VBO) este o caracteristică OpenGL care oferă metode pentru încărcarea datelor de vertex (poziție, vector normal, culoare, etc.) către dispozitivul video pentru redarea în mod nemijlocit. VBO-urile oferă câștiguri substanțiale de performanță față de redarea în modul imediat, în principal deoarece datele rezidă în memoria dispozitivului video și nu în memoria memoria sistemului și astfel pot fi redate direct de către dispozitivul video.
În termeni simpli
În minecraft, în mod specific, oferă o creștere a performanței de ~10% atunci când este setat la ON
Aceasta face acest lucru prin reducerea sarcinii de lucru pe CPU & RAM și realocarea acesteia la memoria gpu, acest lucru este recomandat numai dacă aveți o placă grafică ok până la decentă