PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenGL Problem (mit Blending)


devor
12.06.2005, 13:53
Es geht um folgendes:
ich wollte ein Bild einfach ohne eine bestimmte farbe zeichnen also so wie colorkey bei dx. Nur hab ich sowas bei opengl nicht gefunden! Hab nur nen trick mit blending gefunden nur geht der nur auf dunklem hintergrund und nicht auf weiß... GL_SRC_ALPHA GL_ONE kennt da wer ne bessere methode wie man ein bild zeichnen kann und z.b. die farbe weiß oder schwarz herausfiltern kann?? kann auch ne andre sein ist völlig egal aber ich bräucht das echt bald denn es ist für eine animation von einem vergaser. Bis jetzt hab ich opengl leider fast nur für 3d verwendet und kenn mich 2d leider nicht so gut aus. zur not muss ich halt dx nehmen nur wäre das wieder viel aufwand.. (devpacks besorgen; code neu schreiben...) Hab leider auch kaum zeit das inet gründlich zu durchsuchen da ich noch einige parts offen habe und es bis dienstag oder mittwoch vorzeigbar sein sollte... Ich hoffe es kann mir da jemand helfen.

mfg Devor


Scavi
12.06.2005, 16:16
Guck mal hier: http://www.esstin.uhp-nancy.fr/~jouvi2/OpenGl/Tutorials/Tutorial9.php

Blue Cobold
12.06.2005, 19:31
Um's kurz zu sagen: zusätzliche Alpha-Komponente und dann Blending mit GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA. Allerdings müsstest du dann deinen Alpha-Layer mit 1 und 0 füllen, je nachdem was weg soll und was nicht.

devor
13.06.2005, 12:21
Ja danke für die hilfen! Hab das mit dem 1. link schon gelöst! Das Problem war das ich es irgendwie ohne maske machen wollte aber das geht so nicht wirklich! (müsst man irgendwie blenden das man alle farben außer schwarz schwarz zeichnet und schwarz ausläst aber ich glaub das ist so nicht wirklich möglich)

Ja jetzt hab ichs mit maske und zuerst GL_DST_COLOR, GL_ZERO mit der maske und dann GL_SRC_COLOR GL_ONE mit dem bild! Danke nochmal für die hilfe!

mfg devor

Blue Cobold
13.06.2005, 13:31
???
Maske = Alpha-Kanal -> RGBA oder BGRA_EXT
Und dann nur ein einziger Pass: GL_SRC_ALPHA, GL_ONE_MINUS_ALPHA

devor
14.06.2005, 18:20
???
Maske = Alpha-Kanal -> RGBA oder BGRA_EXT
Und dann nur ein einziger Pass: GL_SRC_ALPHA, GL_ONE_MINUS_ALPHA

Ja auch ne gute idee aber grafikprogramm==paint also kein alpha channel editirbar und die andre lösung ist ja auch ok. Es geht nur um ein schulprojekt und daher pulver ich da auch nicht soviel rein obwohls eh schon genug ist! Werd hoffentlich bald fertig und kann dann ein hobby-projekt anfangen...
Trotzdem danke!

mfg devor

Blue Cobold
14.06.2005, 18:41
Also wenn's darum geht hättest du das auch beim Laden vom BMP "berechnen", bzw. das BMP dahingehend erweitern können. Aber is egal. Wenn du keine Performance brauchst, ist es Wurscht.

devor
15.06.2005, 19:30
Ja ist ziemlich wurscht aber danke für den tip denn für das Grafik-engine projekt (bzw. game engine | werd mich aber eher bei der grafik angergieren) werd ichs vielleicht mal brauchen!

mfg devor