Dazu habe ich mir die folgende Procedure gesachrieben:
Code:
Procedure CreateEmpty256Texture;
Var
Size : TglBitmapPixelPosition;
Begin
Size.X:=256;
Size.Y:=256;
Size.Z:=1;
Size.Fields:=[ffX, ffY];
Tex := TglBitmap2D.Create(Size, ifRGBA8);
Tex.GenTexture(false);
End;
Ist mein Vorgehen denn richtig/performant?
Mir ist zudem aufgefallen dass es funktioniert, egal was für einen Wert ich anstelle von ifRGBA8 einsetze. Welchen Wert muss ich denn jetzt benutzen?
Im Prinzip geht es darum, die OpenGL-Ausgabe in ein TglBitmap2d zu packen, so performant wie nur irgend möglich
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Na ja. Performant ist das klassische RenderToTexture sowieso nicht so wirklich. Aber ja so in etwa funktioniert es. Ich habe das auch schon mal gemacht und da noch ein paar Anmerkungen.
Das Format welches du Ausließt und mit welchem du die Textur erstellst sollte gleich sein. Ideal wäre es, wenn das Format der Textur und des Framebuffers das selbe wäre. Also entweder RGB8 oder RGBA8. Wobei ich jetzt so nicht weiß ob ein ungünstiges Texturformat da etwas an der Geschwindigkeit ändern kann. Ich tippe aber mal spontan auf ja. Es könnte aber sein, dass sich OpenGL einfach darüber hinwegsetzen kann. Du kannst da auch bei interesse mal GetDataFromTexture aufrufen. Damit holt sich die glBitmap alle Daten von der Textur zurück. Inklusive format etc. Dann siehst du genau was die Karte gemacht hat.
Das glBitmapPosition befüllt das Record bereits entsprechend. Z sollte bei 2D Texturen dann auch eher 0 sein. Wird so intern schon geregelt. Und die MipMaps deaktivieren. Das könnte evtl etwas an der Performance zieht.
Beim Kopieren würde ich eher auch GL_RGBA8 benutzen. Sonst ist es richtig. Und anschließend solltest du in der Textur deinen Inhalt haben.
Wobei ich dir wirklich empfehlen würde auch so etwas wie FrameBufferObjects zu benutzen. Denn das ist wesentlich eher auf so etwas ausgelegt. Denn ich tippe mal darauf, dass selbst der veraltete PixelBuffer fast schneller sein wird als glCopyTexImage2D. Ist aber nur eine Vermutung.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Vielen Dank für deine Antwort!
Werde die Prozedur anpassen FBO's habe ich noch nie benutzt, also kenn mich jetzt nicht so damit aus...
Aber wenn das schneller ist muss ich ja wohl oder übel was dazulernen
Mitglieder in diesem Forum: 0 Mitglieder und 7 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.