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

Aktuelle Zeit: Fr Jul 18, 2025 18:34

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glCompressedTexImage2D
BeitragVerfasst: Do Aug 18, 2005 11:50 
Offline
DGL Member

Registriert: Mi Aug 28, 2002 17:03
Beiträge: 37
Wohnort: ABG
Hi!
Ich habe mal mir ein Samplecode angeschaut, der DDS Texturen laden konnte. Diese DDS Dateien beinhalteten schon komprimierte Daten, die direkt an glCompressedTexImage2D übergeben wurden.

Kann man auch unkomprimierte Daten irgendwie übergeben lassen?

Weiter würde mich interessieren, wie ich herausfinden kann, welche Kompressionsalgorithmen mein/e Treiber/Grafikkarte unterstützt (also z. B. S3TC oder FXT1)

Gibt es eine kleinste Texturgröße für komprimierte Texturen?

mfg olli

_________________
Programmieren beginnt im Kopf und endet im Compiler


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glCompressedTexImage2D
BeitragVerfasst: Do Aug 18, 2005 12:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Zitat:
Kann man auch unkomprimierte Daten irgendwie übergeben lassen?

glTexImage2D. Bekommt die Texturdaten im Rohformat.

Zitat:
Weiter würde mich interessieren, wie ich herausfinden kann, welche Kompressionsalgorithmen mein/e Treiber/Grafikkarte unterstützt (also z. B. S3TC oder FXT1)

Dazu gibt es Extension. Ich weiß selber allerdings nicht 100%tig welche genau was macht und wo die unterschiede liegen. Ich denke auch mal, dass es nicht ganz so wichtig ist. Mag mich da aber auch irren.
GL_ARB_texture_compression (ab OpenGL 1.3 im Kern)
GL_EXT_texture_compression_s3tc
GL_EXT_texture_compression_dxt1
GL_NV_texture_compression_vtc
GL_3DFX_texture_compression_FXT1 (Dürfte wohl schon älter sein) ;-)

Ich persönlich benutze in meinem Loader primär die ARB_texture_compression, da diese Herstellerunabhängig ist. Sie implementiert allerdings irgendeine kompression. Welchen das entscheidet die Karte. Mit GL_TEXTURE_COMPRESSION_HINT_ARB kann man die Geschwindigkeit/Qualität kontrolieren.

Zitat:
Gibt es eine kleinste Texturgröße für komprimierte Texturen?

Nö. Ist mir nichts bekannt. Allerdings macht es bei ganz kleinen Texturen eher weniger Sinn. Heißt aber nicht, dass es nicht unterstützt wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 18, 2005 14:42 
Offline
DGL Member

Registriert: Mi Aug 28, 2002 17:03
Beiträge: 37
Wohnort: ABG
Danke, das bringt mich um einiges weiter!
mfg olli

_________________
Programmieren beginnt im Kopf und endet im Compiler


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 18, 2005 15:53 
Offline
DGL Member

Registriert: Mi Aug 28, 2002 17:03
Beiträge: 37
Wohnort: ABG
Ich nochmal...

Wenn ich gluBuild2DMipmaps(GL_TEXTURE_2D, GL_COMPRESSED_RGBA, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, Data) benutze, dann benutzt er komprimierte Texturen. Das geht auch, wenn ich z. B. GL_COMPRESSED_RGBA_S3TC_DXT3_EXT angebe.

Problem ist nur bei Texturen ohne MIPMaps.

glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA, Width, Height, Width*Height*4, Data)
-> Invalid Enum

glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT , Width, Height, Width*Height*4, Data)
-> Ohne Fehler, aber sie wird nicht angezeigt.

glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA, Width, Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, Data)
-> Ohne Fehler, aber sie wird nicht angezeigt.

glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, Width, Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, Data)
-> Ohne Fehler, aber sie wird nicht angezeigt.

GL_ARB_texture_compression und GL_EXT_texture_compression_s3tc sind als Extensions vorhanden.

mfg olli

_________________
Programmieren beginnt im Kopf und endet im Compiler


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 18, 2005 18:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich kann dir nur Empfehlen mal meine glBitmap (link in Signatur) anzuschauen. Dort mache ich das alles. Für Mipmaps gibt es eine bessere und schnellere Methode. Und sie schmeckt nach Vanille. ;-) Kleiner Scherz. Ich benutze gluBuild2DMipmaps nur als absolut letzte Alternative. Also wenn GL_SGIS_generate_mipmaps oder GL Version 1.4 oder 1.3 nicht existiert und MipMaps gewünscht sind. Anderenfalls benutze ich immer glTexImage2D! Bei Compressed prüfe ich zu erst ARB_texture_compression und anschließend s3tc ab.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 18, 2005 19:40 
Offline
DGL Member

Registriert: Mi Aug 28, 2002 17:03
Beiträge: 37
Wohnort: ABG
Arrrrg, sau dummer Fehler von mir: Ich habe vergessen, den Texturefilter zu setzen. Das ist mir damals schon bei den Cubemaps passiert, wo ich mehrere Tage vor dem Problem gesessen habe :)

Danke für die Info mit den MIPMaps! Mal wegen den OpenGL Versionen...
Wenn man z. B. OpenGL 2.0 hat, dann sind ja z. B. die Texturetargets GL_TEXTURE_CUBE_MAP fest integriert, muss dann also glGetSTring(GL_EXTENSIONS) diese dennoch explizit aufführen? Nicht das in meiner Engine ein Feature nicht genutzt werden kann, weil es schon fester Bestandteil ist. (Z. B. konnte einer mit einer neuen Grafikkarte keine FragmentProgramme ARBfp1.0 nutzen, könnte event. daran liegen)

mfg olli

_________________
Programmieren beginnt im Kopf und endet im Compiler


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 18, 2005 19:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Cube Maps sind meines wissens ab 1.3 oder 1.4 dabei. Und nein das musst du nicht expliziet abfragen. Bei Cubemaps haben die Konstanten die selben Werte. Du kannst also auch GL_TEXTURE_CUBE_MAP benutzen wenn nur die Extension unterstützt wird. Also in etwa.
If Extension or GL_VERSION_1_3 then Cube Map. ;-)

Das wird eigentlich recht häufig gemacht und man kann sich so redundante Schreiberrei sparen kann.

Auch das habe ich häufiger in meiner glBitmap benutzt.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]