Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Apr 20, 2024 15:54

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Apr 16, 2013 14:37 
Offline
DGL Member

Registriert: Mo Jun 12, 2006 14:47
Beiträge: 75
Programmiersprache: Object FPC
Guten Morgen allerseits,

Ich habe mir ein kleines Program gebastelt, welches Bilddaten an 2D-Texturen Bindet ( wie man das halt so macht )

Code:
  1.  
  2.   glGenTextures(1, @Fimage);  
  3.   glBindTexture(GL_TEXTURE_2D, fimage);
  4.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  5.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  6.   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, nw, nh, 0, GL_RGBA, GL_UNSIGNED_BYTE, @FRohdaten[0][0]);
  7.  


Nun habe ich die Situation, dass ich die Textur "Aktualisieren" will, dies kann ich ja z.B. mittels glTexSubImage2D machen. Wenn ich nur Teilbereiche meines Bildes Aktualisieren will ist diese Routine genau was ich brauche (und funktioniert auch wunderbar).

Nun habe ich aber auch den Fall, dass ich das Komplette Bild austauschen muss / möchte (die Dimension ändert sich hierbei jedoch nicht, auch das Interne Format bleibt gleich).

Ist es dann Sinnvoll die Textur wieder frei zu geben (mittels glDeleteTextures) und sie mit glTexImage2D neu an zu legen, oder besser mittels glTexSubImage2D alles neu zu beschreiben ?

Die Frage die sich mir bei all dem auch noch stellt. Was würde eigentlich passieren, wenn ich die Routine glTexImage2D 2 mal hintereinander aufrufe (wird dann 2 mal neuer Speicher Reserviert, oder erkennt die Routine dies und übrschreibt beim 2. Mal den Speicher) => Bezogen auf mein Obiges Problem könnte ich mir dann das glDeleteTextures sparen.

Gruß

Corpsman

_________________
Try my 3D-Game (new Version 2) Balanced2 v2.02
or See my other Stuff at http://www.Corpsman.de


Zuletzt geändert von Corpsman am Di Apr 16, 2013 15:36, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glTexImage2D vs. glTexSubImage2D
BeitragVerfasst: Di Apr 16, 2013 14:48 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Du kannst glTexImage2D mehrfach aufrufen – aber es ist zu erwarten, dass dies deutlich langsamer ist, als glTexSubImage2D zu verwenden, auch bei Vollbildaustausch. Insbesondere das Löschen und neu Anlegen wird sehr teuer sein. Generell sollte man glTexImage2D nur genau dann verwenden, wenn man es wirklich braucht, also das interne Format oder die Größe ändern will.

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Apr 16, 2013 15:36 
Offline
DGL Member

Registriert: Mo Jun 12, 2006 14:47
Beiträge: 75
Programmiersprache: Object FPC
Perfekt, danke für Die antwort.

_________________
Try my 3D-Game (new Version 2) Balanced2 v2.02
or See my other Stuff at http://www.Corpsman.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.033s | 19 Queries | GZIP : On ]