Powered by Invision Power Board


  Reply to this topicStart new topic

> Blending OpenGL in C++ Problem
Sky
geschrieben am: 05.05.2010, 18:46
Quote Post





Gruppe: Mitglieder
Beiträge: 3
Mitglieds-Nr.: 791
Mitglied seit: 05.05.2010



Hallo,

bin zufällig bei der Suche nach einer Antwort auf dieses Forum hier gestoßen und bin der Meinung, dass ihr mir weiterhelfen könnt. :)

Es geht um Folgendes:

Ich habe eine Skybox und darin befindet sich ein Quadrat (dieses dreht sich bei Ändern der Kameraperspektive mit, ist ja aber egal ;)).


Auf der Skybox und diesem Quadrat befinden sich Texturen.
Bei derTextur auf dem Quadrat ist der Hintergrund schwarz. Diesen wollte ich via Blending 100%ig Transparent (also nicht sichbar) haben.

Klappt aber leider nicht so wie ich will. :( Habs zwar jetzt schon soweit, dass das Schwarze weg ist, nur leider ist der Rest vom Bild auch halb Transparent...

Wüsste auch nichtmehr woran es liegt..
Hoffe ihr könnt mir helfen. Crush hatte heute Nachmittag schon kurz versucht mir zu helfen, ohne Erfolg.
Danke nochmals. :)

Vielen Dank im voraus,
Sky

Beitrag bearbeitet von Sky am 12.05.2010, 14:22
PMEmail Poster
Top
Sky
geschrieben am: 05.05.2010, 21:41
Quote Post





Gruppe: Mitglieder
Beiträge: 3
Mitglieds-Nr.: 791
Mitglied seit: 05.05.2010



Okeeeeeeeeeeeeh, habe erfahren, dass es wohl am Bild liegt. Bin jetzt dabei das Bild im *.tga Format zu laden.

Wenn ich es soweit habe gebe ich nochmal bescheid ob es klappt. ;)

Cu,
Sky
PMEmail Poster
Top
Cyberpuer
geschrieben am: 06.05.2010, 11:17
Quote Post





Gruppe: Mitglieder
Beiträge: 640
Mitglieds-Nr.: 352
Mitglied seit: 24.03.2005



Was ist denn, wenn du statt des Fliegers mal testweise ein weißes Quadrat auf schwarzem Hintergrund lädst? Wenn Das Quadrat dann nicht durchsichtig ist, wird er wohl je näher du bei deinem Flieger dem Wert "schwarz" kommst, desto mehr blenden.

Eine Lösung wäre dann in tga oder png statt schwarz direkt einen AlphaWert von 0 einzufügen. Geht ganz gut mit Gimp oder Photoshop. Imho musst dann aber deine Blendingmethode von schwarz auf Alpha umstellen. wink.gif


--------------------
Who the fuck is General Failure? And why is he reading my harddisk?

Wenn Baumeister Gebäude bauten, so wie Programmierer Programme machen, dann würde der erste Specht, der vorbeikäme, die Zivilisation zerstören...
PMEmail PosterICQ
Top
NetPanther
geschrieben am: 08.05.2010, 21:55
Quote Post


Administrator


Gruppe: Administratoren
Beiträge: 7.696
Mitglieds-Nr.: 1
Mitglied seit: 29.08.2004



Guten Abend Sky,

ich glaube Cyberpuer liegt mit seinem Tipp schon nicht ganz verkehrt. Vielleicht hilft dir folgender Eintrag aus den OpenGL FAQ weiter:

QUOTE (OpenGL FAQ)
How can I make part of my texture maps transparent or translucent?

It depends on the effect you're trying to achieve.

If you want blending to occur after the texture has been applied, then use the OpenGL blending feature. Try this:
glEnable (GL_BLEND);
glBlendFunc (GL_ONE, GL_ONE);

You might want to use the alpha values that result from texture mapping in the blend function. If so, (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA) is always a good function to start with.

However, if you want blending to occur when the primitive is texture mapped (i.e., you want parts of the texture map to allow the underlying color of the primitive to show through), then don't use OpenGL blending. Instead, you'd use glTexEnv(), and set the texture environment mode to GL_BLEND. In this case, you'd want to leave the texture environment color to its default value of (0,0,0,0).


MfG


--------------------
:: NetPanther :: NetPanther@gmx.net :: Website :: IRC Channel: #NetPanther ::

Das Leben ist eine Beta. Nichts ist vollkommen.
PMEmail PosterUsers WebsiteICQAOLYahooMSN
Top
Sky
geschrieben am: 12.05.2010, 14:20
Quote Post





Gruppe: Mitglieder
Beiträge: 3
Mitglieds-Nr.: 791
Mitglied seit: 05.05.2010



Für die, die es wissen wollen:

Ich habe jetzt TGA-Bilder genommen.
Ob es mit BMP Bildern auch geht weiß ich nicht, weil ich erst im nachhinein gemerkt habe, das sich PaintShopPro5 NICHT dazu eignet, ein Transparenten Hintergrund zu erzeugen und das Bild als solches auch abzuspeichern.
Oder ich habs falsch gemacht. kA. Mit Gimp klappts aufjedenfall ganz gut. :)

Ebene->Transparenz->Alphakanal hinzufügen
Dann den schwarzen Hintergrund mit dem Zauberstab auswählen und löschen. Als *.tga speichern und fertig.


Jedenfalls klappts jetzt. :)
Danke für die Tipps.

Gruß,
Skyy
PMEmail Poster
Top
1 Besucher zu diesem Thema (1 Gäste und 0 'versteckte' Mitglieder)
0 Mitglied(er):

Topic Options Reply to this topicStart new topic

 



[ DB Queries: 11 ]   [ Execution Time: 0.0488 ]   [ GZIP aktiviert ]