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

Aktuelle Zeit: Fr Jul 18, 2025 05:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Sep 17, 2003 09:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 18:50
Beiträge: 92
Wie ist es möglich, sich die Palette einer Textur zur Laufzeit zu merken, die Textur grau zu färben und schließlich die Textur wieder mit der original Palette einzufärben. Ein Link auf ein Tut würde schon genügen ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 17, 2003 09:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das was du vor hast setzt vorraus, dass du eine 8 Bit Textur hast. Und das ist in OpenGL sehr untypisch (wenn es überhaupt möglich ist).
Aber um deine Textur in Grau umzuwandeln musst du lediglich den Durchschnitt der einzelnen Pixel (Rot, Grün Blau) bilden. Das dann allerdings wieder nach Bunt zu machen ist so einfach nicht möglich. Außer du Lädst das Bild neu. ;)
Ich würde da eher vorschlagen, dass Die Text lädst und dann eine zweite Graue parallel zu erstellen. Damit musst du die Textur nicht dann laden wenn du sie benötigst sondern du hast sie dann schon geladen.

PS: Wenn du vor hast deine Texturen in Grau umzuwandeln kann ich dir meinen Texturloader empfehlen. Mit dem ist es möglich Berechnungsfunktionen auf eine Textur anzuwenden. Und die Textur Grau zu machen ist die einfachste Möglichkeit einer solchen Formel.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 17, 2003 10:30 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 18:50
Beiträge: 92
So werd ich´s auch machen, denn ich hab nicht vor, 8 Bit Texturen zu verwenden. Danke für die Hilfe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 17, 2003 10:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Als Alternative zu 8-Bit-Texturen bzw. Lossys Methode mit zwei Texturen könntest du auch (wenn deine Grafikkarte das unterstützt) ein Fragmentprogramm schreiben, welches den Graustufenwert eines Pixels errechnet, und dieses Fragmentprogramm dann binden, sobald eine bunte Textur in Graustufen angezeigt werden soll.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 17, 2003 12:00 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Texturen mit Paletten werden von neueren Grafikkarten gar nicht mehr unterstützt. Ich würde auch die Idee von SoS benutzen. Das geht auch ohne Fragment Program. Man kann auch mit dem Skalarprodukt eine Texture in Graustufen umwandeln. Graustufe=Farbe dot (0.3,0.4,0.3)
Mit ARB_texture_env_dot3 kann man da so realisieren:

Code:
  1.  
  2. glcolor3f(0.3,0.4,0.3);
  3. glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_COMBINE_ARB);
  4. glTexEnvi(GL_TEXTURE_ENV,GL_COMBINE_RGB_ARB,GL_DOT3_RGB_ARB);
  5. glTexEnvi(GL_TEXTURE_ENV,GL_SOURCE0_RGB_ARB,GL_TEXTURE);
  6. glTexEnvi(GL_TEXTURE_ENV,GL_OPERAND0_RGB_ARB,GL_SRC_COLOR);
  7. glTexEnvi(GL_TEXTURE_ENV,GL_SOURCE1_RGB_ARB,GL_PRIMARY_COLOR);
  8. glTexEnvi(GL_TEXTURE_ENV,GL_OPERAND1_RGB_ARB,GL_SRC_COLOR);


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 17, 2003 12:32 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
LarsMiddendorf hat geschrieben:
Man kann auch mit dem Skalarprodukt eine Texture in Graustufen umwandeln. Graustufe=Farbe dot (0.3,0.4,0.3)
Mit ARB_texture_env_dot3 kann man da so realisieren:

Wow. Ds geht. Find ich ja geil. Wobei ich dabei dann aber als Werte 1/3 oder 0.333 nehmen würde. Oder geht das dabei nicht? Mit den Werten (0.3, 0.4, 0.3) würde grün ja mehr in die Berechnung einfließen als die anderen. Was ja nicht unbedingt vernachlässigbar ist, oder?


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


Wer ist online?

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.

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