Mir ist es kürzlich schonmal aufgefallen, jetzt hat es sich bestätigt: Meine VBO Implementierung scheint langsamer zu sein als die selbe Szene mit einfachem glBegin/glEnd. Gerendert werden 1000 Partikel - es sind so wenig, da sonst das Durchlaufen der Liste die Performance drückt, und nicht das Rendern selbst. Das VBO leistet ~845FPS, GL_QUADS leistet ~935FPS. Bei höherer Partikelanzahl mindert sich der Abstand zwischen den Zahlen, aber das VBO wird davon nicht schneller. Die Daten des VBO werden in jedem Durchlauf upgedated. Die Berechnungen sind bei beiden Methoden die gleichen. Hier der relevante Code:
Code:
//*********** VBO ************
if FCalcNormals then
begin
vMode := GL_T2F_C4F_N3F_V3F;
vSize :=SizeOf(T_T2F_C4F_N3F_V3F_Vertex);
endelse
begin
vSize :=SizeOf(T_T2F_C4UB_V3F_Vertex);
vMode := GL_T2F_C4UB_V3F;
end;
vSize :=SizeOf(vMode);
// Calculate the amount of data that will be mapped
Habe Berechnung und Rendering entkoppelt, und siehe da: aus 845FPS werden, mit der entsprechenden Anzahl an Berechnungen pro Frame, 4600FPS Im Vergleich dazu erreicht das entkoppelte Rendern über Displaylisten ca. 4200FPS, ich bin zufrieden
_________________ I'm not the signature, I'm just cleaning the floor...
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.