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

Aktuelle Zeit: Di Jul 15, 2025 17:27

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: TextSuite + FBO + Blending
BeitragVerfasst: Sa Dez 31, 2011 00:32 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich steh grad vor nem Problem, wo ich nicht weiter weiß. Ich hab das Gefühl, das ich das irgendwann schonmal hatte, aber ich kann mich beim bessten Willen nicht daran erinnern. In meinen alten Projekten find ich auch nichts. Folgendes Problem:
Ich will ein Quad wo ein Text drauf steht in ein FBO zeichnen. Für den Text benutz ich die TextSuite. Das FBO wird folgenderweise befüllt:
Code:
  1. procedure TguiFrame.UpdateFBO;
  2. begin
  3.   fFBO.Bind;
  4.  
  5.   glMatrixMode(GL_PROJECTION);
  6.   glPushMatrix;
  7.   glLoadIdentity;
  8.   glOrtho(0, Width, Height, 0, -10, 10);
  9.  
  10.   glMatrixMode(GL_MODELVIEW);
  11.   glPushMatrix;
  12.   glLoadIdentity;
  13.  
  14.   glClearColor(0.0, 0.0, 0.0, 0.0);
  15.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  16.  
  17.   glDisable(GL_DEPTH_TEST);
  18.   glBlendFunc(GL_SRC_ALPHA, GL_ONE);
  19.  
  20.   glColor4f(1, 1, 1, FRAME_TRANSPARENCY);
  21.   glBegin(GL_QUADS);
  22.     glVertex2f(    0,      0);
  23.     glVertex2f(    0, Height);
  24.     glVertex2f(Width, Height);
  25.     glVertex2f(Width,      0);
  26.   glEnd;
  27.  
  28.   tsTextColor4f(1, 1, 1, 1);
  29.   tsSetParameteri(TS_ALIGN, TS_ALIGN_BLOCK);
  30.   tsSetParameteri(TS_VALIGN, TS_VALIGN_TOP);
  31.   tsTextBeginBlock(20, 20, 200, 200, TS_BLOCKFLAG_WORD_WRAP);
  32.     tsFontBind(fFontID);
  33.     tsTextOutA(PAnsiChar(fCaption));
  34.   tsTextEndBlock;
  35.   glDisable(GL_TEXTURE_2D);
  36.  
  37.   glMatrixMode(GL_PROJECTION);
  38.   glPopMatrix;
  39.  
  40.   glMatrixMode(GL_MODELVIEW);
  41.   glPopMatrix;
  42.  
  43.   glEnable(GL_DEPTH_TEST);
  44.  
  45.   fFBO.Unbind;
  46. end;


Den Inhalt des FBOs zeichne ich so:
Code:
  1.   glColor4f(1, 1, 1, 1);
  2.   fFBO.BindTexture;
  3.   glBegin(GL_QUADS);
  4.     glTexCoord2f(0, 1); glVertex2f(    0,      0);
  5.     glTexCoord2f(0, 0); glVertex2f(    0, Height);
  6.     glTexCoord2f(1, 0); glVertex2f(Width, Height);
  7.     glTexCoord2f(1, 1); glVertex2f(Width,      0);
  8.   glEnd;
  9.   fFBO.UnbindTexture;  


Da hat der Text jetzt aber nen schwarzen Rand?! Siehe Anhang. Normalerweiße sollten doch die Farbwerte, wo jetzt der schwarze Rand ist den Farbwerten des Quads entsprechen, weil der Alpha-Wert des Textes dort 0 ist. Sieht da jmd von euch nen Fehler?

MfG Bergmann.


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

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TextSuite + FBO + Blending
BeitragVerfasst: Sa Dez 31, 2011 15:21 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hast du in UpdateFBO auch sicher GL_BLEND an?

Hast du beim zeichnen des Quads aus dem FBO auch sicher GL_BLEND mit passender glBlendFunc an?

Hat das FBO einen Alphakanal?

greetings

_________________
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: TextSuite + FBO + Blending
BeitragVerfasst: So Jan 01, 2012 06:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

das Blending war deaktiviert *fail* Das kommt davon, wenn man den Code wild zwischen den Klassen hin und her kopiert und dann von Sachen ausgeht, die gar nicht so sind wie sie sind^^ Danke für den Hinweis. (Vlt sollte ich mir für solche Fälle mal ne Checklist an den Monitor heften^^)

MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TextSuite + FBO + Blending
BeitragVerfasst: Di Jan 10, 2012 22:28 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich hab schon wieder ein ähnliches Problem, nur das es diesma nicht um Text geht. Und zwar lade ich das Fenster was ich darstellen will aus einer Textur, bau mir dann die richtige Größe zusammen, zeichne das Ganze in ein FBO und gebe das FBO dann auf einem Quad aus. Wenn ich im FBO Blending benutze, dann ist das Endergebnis sehr blaß. Irgendwie geht da ein Teil des Alphas verloren. Wenn ich das Blending im FBO abschalte, oder die Zeichenmethode ohne FBO ausführe, dann sieht es so aus wie es aussehen soll (nämlich so, wie ich es in der Textur gespeichert hab). Die Zeichenroutine ist die selbe wie oben, nur das die Quads etwas komplexer geworden sind. Irgendwie steh ich mit Blending auf Kriegsfuß :/

MfG Bergmann.


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

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


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


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 25 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 | 15 Queries | GZIP : On ]