Registriert: Sa Sep 29, 2007 18:43 Beiträge: 38 Wohnort: STR / BLN / LAU
Da der Beitext zu Feedback-Forum sich über zu wenig Feedback beklagt und ich zufällig über etwas gestolpert bin,
weil ich mir die Fehlerabfrage geklaut habe
Zwei kleine Dinge müssten vielleicht berichtigt werden:
2. Der Bezeichner GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT in der Fehlerabfrage ist nicht gültig.
Bei mir ist der Bezeichner nicht bekannt, in der Spezifikation steht auch warum.
Auszug aus der Spezifikation:
Zitat:
This rule was removed in version #117 of the EXT_framebuffer_object specification after discussion at the September 2005 ARB meeting...
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Danke fürs Feedback (Dachte schon der Hinweis wird übersehn und ich sollte mal ein lautegebenden Flashlayer einfügen. ).
Bin sicher Deathball wird sich der Sache annehmen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Danke für die Hinweise - ich werde mich gleich hinsetzen und sie verbessern...
über die Performance: Genaues kann ich leider nicht liefern. Ich habe noch kein Performance Check gemacht, kann mich also nur auf das verlassen was in Foren oder in Whitepapern steht.
glCopyTex(Sub)Image2D kann laut gamedev.net sehr schnell sein, es sei denn man nimmt riesige Texturen. Soll heißen - unter Umständen sind FBOs gar nicht schneller als glCopyTex(Sub)Image2D.
Auch erinnere ich mich das Sascha Willems glaub ich mal die Performance von Pixelbuffern und Framebufferobjects verglichen hat und zu dem Schluss kam das gar nicht so viel unterschied zwischen den beiden ist (der Thread müsste hier im Forum gewesen sein).
Leider hab ich jetzt keine Zeit mehr weiter zu schreiben, da ich weg muss. Wenn ich Zeit hab such ich noch ein paar Quellen oder versuche mal selbst nen Vergleich von RenderToTexture und FBO's zu machen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Rein theoretisch sollten FBOs schneller sein als Pixelpuffer, da man wie gesagt die aufwendigen Kontextwechsel vermeidet. Allerdings haben Pixelpuffer durch den eigenen Kontext den Vorteil dass man auch eigene States hat, wenn man jetzt z.b. mehrere Szenen in FBOs rendert und man jedesmal aufwendige bzw. viele Statechanges durchführen muss kann dies logischerweise mehr Performance kosten als der Kontextwechsel eines Pixelpuffers. Ausserdem sind FBOs noch ne recht neue Sache, die wohl mit neueren Treibern noch optimiert werden.
Das direkte in die Textrur Kopieren (RTT) sollte eigentlich am schnellsten sein (auch hier wieder an die Zahl der Statechanges denken), hat aber logischerweise den Nachteil dass man damit nur Texturen bis zur Größe des Kontexts in die Textur bekommt (der jenseitige Bereich ist undefiniert, und je nach Implementation reichts auch wenn ein anderes Fenster nen Bereich überdeckt um diesen undefiniert zu machen).
Ob man sich also für Pixelpuffer, FBOs oder direktes RTT entscheidet hängt stark vom Anwendungsfall ab. Pixelpuffer sind halt von der API her recht unschön, und wirken irgendwie auf aufgesetzt, aber bei vielen Statechanges würd ich immernoch auf Pixelpuffer setzen, und bei kleinen zu rendernden Bereichen auf direktes RTT.
Mitglieder in diesem Forum: 0 Mitglieder und 43 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.