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

Aktuelle Zeit: So Jul 13, 2025 20:41

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Komischer Farbstich
BeitragVerfasst: Mo Okt 29, 2007 16:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hi

Obwohl ich mich nicht mehr zu den einsteigern zähle, denke ich, dass die Frage hier besser aufgehoben ist.

Ich habe ein Bild angehängt. Dort kann man einen hässlichen blauen Rand an den beiden mit transparenten Texturen versehenen Quads erkennen. Dieser Rand passt sich interessanterweise an die Hintergrundfarbe an. Hier der Rendercode:
Code:
  1.  
  2. glEnable(GL_TEXTURE_2D);
  3.   glBindTexture(GL_TEXTURE_2D, Smoke.TexID);
  4.   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  5.   glEnable(GL_BLEND);
  6.  
  7.   glColor4f(1.0, 1.0, 1.0, 1.0);
  8.   glBegin(GL_QUADS);
  9.     glTexCoord2f(0.0, 0.0);
  10.     glVertex3f(1.0, -1.0, 2.0);
  11.     glTexCoord2f(0.0, 1.0);
  12.     glVertex3f(1.0, 1.0, 2.0);
  13.     glTexCoord2f(1.0, 1.0);
  14.     glVertex3f(-1.0, 1.0, 2.0);
  15.     glTexCoord2f(1.0, 0.0);
  16.     glVertex3f(-1.0, -1.0, 2.0);
  17.  
  18.     glTexCoord2f(0.0, 0.0);
  19.     glVertex3f(1.0, -1.0, 3.0);
  20.     glTexCoord2f(0.0, 1.0);
  21.     glVertex3f(1.0, 1.0, 3.0);
  22.     glTexCoord2f(1.0, 1.0);
  23.     glVertex3f(-1.0, 1.0, 3.0);
  24.     glTexCoord2f(1.0, 0.0);
  25.     glVertex3f(-1.0, -1.0, 3.0);
  26.   glEnd;
  27.   glBindTexture(GL_TEXTURE_2D, 0);      


Da sich der Farbstich an die gewählte glClearColor anpasst, schließe ich einen Fehler in der Textur aus, ich kann sie aber auch noch dazupacken, wenn es nötig ist.
Das Z-Ordering ist in diesem Fall korrekt, daran kanns eigentlich auch nicht liegen.
Hat irgendwer ne idee, woher dieser komische Frabstich kommen kann?

Gruß Lord Horazont


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

_________________
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:
BeitragVerfasst: Mo Okt 29, 2007 16:40 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Kannst du die Beiden Quads mal einzeln drüber rendern.

So:
Code:
  1. [Q1]    [Q2]
  2.  
  3.    [Q1+2]


Vielleicht kann man so was erkennen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 29, 2007 16:41 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
was genau meinst du? und was soll das gequote da?
//Edit: Ah ok, mach ich mal...

Gruß Lord Horazont


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

_________________
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:
BeitragVerfasst: Mo Okt 29, 2007 19:33 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
In welcher Reihenfolge renderst du und renderst du eingeschaltetem Tiefentest?

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 29, 2007 19:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich rendere zuerst die Box, dann die beiden unteren und dann den mittleren und dann den höchsten. Das ist nur ein Testaufbau, ich weiss, dass es nur aus dieser Perspektive funktioniert.
Und ja, ich render mit aktiviertem Tiefentest.

Gruß Lord 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:
BeitragVerfasst: Mo Okt 29, 2007 22:50 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich weiß zumindest jetzt was du meinst: Der Rauch ist im ersten Bild deutlich Bläulich gefärbt. Und so wie du es beschrieben hast, sollte er eigentlich grau sein.

Ich hatte eigentlich spekuliert, dass da was mit der Reihenfolge oder der Blendfunktion nicht stimmt. Kannst du den Fehlern auf einem Anderen Rechner auch nachvollziehen?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 29, 2007 23:19 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hm, ich könnte morgen mal den von meinem Vater ausprobieren... Immer vorausgesetzt, seine Graka kommt mit dem ganzen anderen Kram klar, der noch mit in dem Proggy läuft...

Die Blendfunktion benutze ich an vielen anderen Stellen und sie hat mir immer gute dienste erwiesen :wink:
Aber woher kommt nur dieser Zusammenhang zwischen der glClearColor und diesem Farbstich... Ich hab auch verschiedene andere Hintergrundfarben ausprobiert (rot, grün, schwarz) und immer hat sich der Rauch angepasst...
//Edit: Bei glBlendFunc(GL_SRC_ALPHA, GL_ONE) tritt der effekt übrigens nicht auf.

Gruß Lord 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:
BeitragVerfasst: Di Okt 30, 2007 13:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ah! Ich weiss, wie ich es wegbekomme, aber die Methode gefällt mir nicht: Ich habe mal nur zum Testen den Alphakanal aus meiner Surface genommen und siehe da, es funktioniert. Jetzt berechnet sich der Rauch da richtig rein, aber eigentlich ist es doof, das nur mit 24 bit laufen zu lassen. Oder.. Wofür bräucht man den Alpha-Kanal in der Zeichensurface eigentlich? Und wieso beeinflusst der Alpha-Kanal mein Blending, wenn die ich doch nur SRC-Parameter in glBlendFunc habe...?

//Edit: Ah ich habs! Ich rendere die Szene zunächst in eine Textur, die auch einen Alpha-Kanal hat. Dann cleare ich die Puffer und rendere sie u.U. mit Effekten nochmal. Allerdings habe ich dabei das Blending aktiviert gehabt, weshalb das Alpha sozusagen doppelt mit dem Hintergrund geblendet wurde: Einmal beim ersten Rendern und das zweite mal beim Blenden der Textur. Allerdings ist mir dann noch nicht ganz klar, weshalb auch Quads gefärbt wurden, wo das Alpha eigentlich 1.0 betragen sollte, aber das is mir jetz auch egal :wink:. Es geht auf jeden fall.

Gruß Lord 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:
BeitragVerfasst: Di Okt 30, 2007 21:13 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Man... solche "nebensächlichen" Infos schreibst du erst jetzt? Da kann man ja nicht drauf kommen... :p

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 30, 2007 23:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ja, an sowas denk ich doch nichtmehr. Ich habs doch selbst nur durch zufall entdeckt. Hätte ich nicht diesen Alpha-Kanal Parameter mal zum Testen auf 0 gesetzt, wäre ich da auch nie wieder drauf gekommen. Das sind dinge, die ich vor längerer Zeit (anfang des Jahres?) implementiert habe...

Gruß Lord 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  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


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.009s | 15 Queries | GZIP : On ]