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

Aktuelle Zeit: Do Mär 28, 2024 16:10

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



Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: MipMap aktivieren
BeitragVerfasst: Do Jul 13, 2017 20:19 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Egal, ob ich glTexParameterf oder glGenerateMipmap nehme, das Ergebniss is 2x das gleiche.
Was mache ich falsch ?

Irgendwie sehen beide Flächen nicht nach MipMap aus.

Das Bild im Anhang ist zeigt beide Varianten,

Code:
  1.   glBindTexture(GL_TEXTURE_2D, textureID);
  2.   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, @Textur32_0);
  3.  
  4. //  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  5. // oder
  6.   glGenerateMipmap(GL_TEXTURE_2D);


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

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Do Jul 13, 2017 23:16 
Offline
DGL Member

Registriert: Fr Mai 11, 2012 13:25
Beiträge: 229
Programmiersprache: c++, c, JavaScript
Versuch mal:

glTeximage(...

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

glGenerateMipmap(GL_TEXTURE_2D);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);


wenn du die Tex updatest, die letzten 3 Zeilen wieder aufrufen.

_________________
"Pixel, ich bin dein Vater."
-Darf Shader


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Fr Jul 14, 2017 20:01 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Dies bringt leider auch keine Verbesserung.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Sa Jul 15, 2017 20:30 
Offline
DGL Member

Registriert: Fr Mai 11, 2012 13:25
Beiträge: 229
Programmiersprache: c++, c, JavaScript
glgeneratemipmap kam erst recht spät dazu, evtl is deine version zu niedrig, chau mal nach mit glgetversion.
deine GK settings überschreiben evtl auch die texturfiltermodi oder zu setzt irgendwann den minfilter wieder auf nen anderen wert in deinem prog, oder du verwendest die falsche glsl-funktion.
evtl. hilft es auch, ein tutorial source zu compilen, um zu sehen, ob da alles passt.
allerings könnte auch bei deinen custom mipmapexperimenten was schief gegangen zu sein.

_________________
"Pixel, ich bin dein Vater."
-Darf Shader


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Sa Jul 15, 2017 20:59 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich denke dies sollte reichen.
Code:
  1.    Max core profile version: 4.2


Aber irgendwie habe ich das Gefühl, das mein Mesa-Treiber sowieso spinnt.

Nich mal dies geht ! :twisted:
Code:
  1.     glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
  2.     glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

Auf meinem Win10 Laptop geht es komischerweise.

_________________
OpenGL


Zuletzt geändert von mathias am So Jul 16, 2017 16:34, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: So Jul 16, 2017 07:15 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
Bei so einfachen Sachen spinnt Mesa nicht. Hast du schon geprüft, ob irgendwelche OpenGL-Fehler auftreten? Wenn ja, wo genau? Der Code im ersten Post lädt eine 2x2-Textur hoch. Willst du davon wirklich eine Mipmap generieren?

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: So Jul 16, 2017 16:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich habe mal den ganzen Code hoch geladen, vielleicht sieht man mehr.

Der Code sollte sich kompilieren lassen, bis auf die fehlende dglOpenGL.pas .




Zitat:
Nich mal dies geht ! :twisted:
Code:
  1.     glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
  2.     glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

Auf meinem Win10 Laptop geht es komischerweise.

Dies hat sich auch erledigt, wird mit GL 3.3 nicht mehr unterstützt.
Code:
  1. Indeed, GL_CLAMP was removed from core GL 3.1+, so it's not even an option anymore.


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

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: So Jul 16, 2017 18:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
Wie du siehst, verhält sich Mesa einfach spezifikationstreu, während der proprietäre Windows-Treiber bei GL_CLAMP ein Auge zudrückt. Bitte baue doch mal ganz einfaches Error-Checking ein. Das geht wirklich einfach:
Code:
  1. // Code wurde nicht getestet
  2. procedure checkError;
  3. var
  4. err : Integer;
  5. begin
  6.   err = glGetError();
  7.   if err <> 0 then
  8.   begin
  9.     // gebe Fehler aus
  10.     // hier einen Haltepunkt setzen
  11.   end
  12. end;
Alles was du machen musst, ist Aufrufe von checkError zwischen deine OpenGL-Aufrufe zu setzen. Damit kannst du die Fehlerquelle ganz schnell einkreisen. Viel leichter als den Fehler durch bloßes Anschauen des Codes zu finden.

Mit dieser Vorgehensweise hättest du auch herausgefunden, dass glTexParameter mit GL_CLAMP einen Fehler produziert. Ein Blick auf die entsprechende Wiki-Seite und du siehst direkt, dass GL_CLAMP kein gültiger Parameter für GL_TEXTURE_WRAP_S ist. Das ist übrigens ein gängiger Fehler.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: So Jul 16, 2017 19:10 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Danke für den Tip, mit GL_CLAMP wird folgender Fehler ausgegeben.
Code:
  1.   GL_INVALID_ENUM = $0500;


Die Funktion könnte man noch ausbauen, das der Fehler als Text ausgegeben wird.

So viele Fehler gibt es nicht zum auswerten. :wink:
Code:
  1.   { ErrorCode }
  2.   GL_NO_ERROR = 0;
  3.   GL_INVALID_ENUM = $0500;
  4.   GL_INVALID_VALUE = $0501;
  5.   GL_INVALID_OPERATION = $0502;
  6.   GL_OUT_OF_MEMORY = $0505;  

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Di Jul 18, 2017 09:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Es gibt gluErrorString welches einen GL-Error in einen String umwandelt.

Ansonsten debugt sich sowas sehr gut mit apitrace: Programm mitschneiden und dann replayen, beim replay werden Fehler etc. ausgegeben.

viele Grüße,
Horazont

_________________
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  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Di Jul 18, 2017 17:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Es gibt gluErrorString welches einen GL-Error in einen String umwandelt.

GLU will ich meiden, wen nicht unbedingt nötig.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Mi Jul 19, 2017 06:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
mathias hat geschrieben:
Zitat:
Es gibt gluErrorString welches einen GL-Error in einen String umwandelt.

GLU will ich meiden, wen nicht unbedingt nötig.
Warum?

(Verwechselst du GLU mit dem veralteten GLUT?)

viele Grüße,
Horazont

_________________
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  
 Betreff des Beitrags: Re: MipMap aktivieren
BeitragVerfasst: Mi Jul 19, 2017 16:51 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
(Verwechselst du GLU mit dem veralteten GLUT?)


Wen ich es richtig verstehe ist GLUT zum zeichnen von fertigen Objecten wie Kugel, Scheiben, Zylinder.
Und GLU ist da, um OpenGL zu verwalten, Context-Erzeugung, etc.

_________________
OpenGL


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


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 27 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.088s | 18 Queries | GZIP : On ]