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

Aktuelle Zeit: Fr Jul 18, 2025 21:03

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ränder an 1-D Texturen
BeitragVerfasst: Mi Feb 14, 2007 17:13 
Offline
DGL Member

Registriert: Di Jan 30, 2007 14:44
Beiträge: 14
Beim basteln einer Skala für eins meiner Programme ist mir aufgefallen, dass der Rand von 1D-texturen anscheinend dunkelrot ist.
für meine skala, die als quader dargestellt wird, hilft als workaround größtenteils, einfach boden und decke manuell ohne textur einzufärben - solange ich die textur nicht änder.

unangenehmer wird es, wenn meine messwerte beim nullpunkt liegen, denn dann wird auch dort dunkelrot anstatt schwarz gefärbt.
momentan fällt mir dazu nicht mehr ein als lösung ausser dass ich den rand nicht mitbenutze, was aber eine sehr bescheidene lösung ist.

testweise hab ich versucht als texturenfilter GL_NEAREST anstatt GL_LINEAR zu verwenden ... dann wird die fläche nicht dunkelrot sondern rot-schwarz gesprenkelt, was ja noch schlimmer ist.


mein textur loader:
Code:
  1.     tex := IMG_Load(PChar(ExtractFileDir(paramStr(0))+'\high_tex.jpg'));
  2.     if assigned(tex) then
  3.     begin
  4.       glGenTextures(1, @TexID);
  5.       glBindTexture(GL_TEXTURE_1D, TexID);
  6.  
  7.       glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  8.       glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  9.  
  10.       glTexImage1D(GL_TEXTURE_1D, 0, 3, tex^.w,         0, GL_RGB, GL_UNSIGNED_BYTE, tex^.pixels);
  11.       SDL_FreeSurface(tex);
  12.     end;


vielleicht weiß wer obs ne möglichkeit gibt das ganze per einstellung wegzukriegen


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 14, 2007 18:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Die ist nicht dunkelrot! Das ist die andere Seite deiner Textur. ;)

Das kommt davon wie der Wrap Modus eingestellt ist. Bei dir denke ich mal steht der per Standard auf GL_REPEAT. Und dann wird ab der hälfte deines Pixels in die andere Farbe geblendet.

Abhelfen kannst du das in dem du den Modus auf GL_CLAMP_TO_EDGE stellst.

Code:
  1.     glGenTextures(1, @TexID);
  2.     glBindTexture(GL_TEXTURE_1D, TexID);
  3.  
  4.     glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  5.     glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  6.  
  7.     glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  8. // Für 2D müsste auch noch WRAP_T gesetzt werden
  9. //    glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);


PS: Habe deinen Code mal in die schönen Pascal Tags gehüllt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 15, 2007 12:58 
Offline
DGL Member

Registriert: Di Jan 30, 2007 14:44
Beiträge: 14
Danke schön, das war die Lösung :)

Woher soll man als Neuling blos auf die Idee kommen .. hab das mit dem Wrapper zwar gelesen aber das nicht mit dem problem assoziiert, hehe


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