Entwickler-Ecke

Multimedia / Grafik - OpenGL: Alpha Masking mit Bitmaps


Visum - Mo 05.05.03 21:00
Titel: OpenGL: Alpha Masking mit Bitmaps
Hi,

ich versuch mich gerade an OpenGL und will jetzt eine Textur transparent über eine andere legen, sodass nur bestimmte Bereiche der Textur sichtbar sind und ansonsten die darunterliegende angezeigt wird. Mit schwarz/weißen Texturen und Alphablending hab ich das auch hinbekommen, nur mit dem Aplhamasking funktionierts nicht so ganz ...

Das hab ich so versucht (ich hab das so in einem tut gefunden):
Naja, und so funktionierts halt nicht und ich finde auch zu dem Thema kein wirklich gutes Tutorial. Könnte mir also bitte einer erklären, wie ich das richtig mache?

visum

Moderiert von user profile iconTino: List-Tag hinzugefügt.


Phobeus - Di 06.05.03 16:54

richtig googlen oder die richtigen Seiten kennen ;)
[url]http://www.delphigl.de[/url]


Visum - Di 06.05.03 18:44

hi,

aber wer sich das Tutorial auf http://www.delphigl.de zum Thema Alphamasking angeguckt hat, wird feststellen, dass da überhauptnicht auf Bitmaps eingegangen wird, sondern das ganze nur mit tngs gemacht wird, die ihren eigenen alphachannel besitzen (im gegensatz zu Bitmaps ...).

Bei http://www.delphiGL.com wird das Thema nur sehr knapp beantwortet und hat nur eine Zeile Quelltext (die dann auch noch anders ist als bei http://www.delphiGl.de). Hier wird zwar ein Beispiel zum Download gegeben, aber die Exe, die man runterladen kann und die auch das richtige macht kann ich nicht mit dem Quellcode in verbindung bringen, den man sich dazu runterladen kann.
Bisher hab ich eigenlich alles mit diesem Tut gemacht und fand die auch gut ...

Ich hab ausführlich bei Google gesucht und mehrere Tutorials angeschaut. Vielleicht werden jetzt einige sagen ich wär zu blöd dafür, aber jedes dieser Tutorials hat mir was anderes erzählt und benutzt andere Methoden zum Laden der Texturen usw.

Ich würd mich echt tierisch freuen, wenn mir jemand den richtigen Quelltext von DelphiGl.com schicken könnte (vielleicht sollte ich auch mal da ins forum schreiben) oder mir sonst jemand erklären könnte, wie man das macht ...

so long
visum


Phobeus - Di 06.05.03 21:03

So ganz spontan kann ich Dir nicht folgen, was an meinem Tutorial nicht korrekt ist, werde es aber nochmal bei aller Ruhe verinnerlichen ;) Alpha-Masking wird direkt bei mir nicht angesprochen, sondern nur eine Methode um einen ähnlichen Effekt per Blending zu erreichen. Möchte man aber mehre Studen blenden zum Beispiel Dampf, so kann man auf diesem Weg schnell ins stolpern kommen (vermeide hier den Begriff "Genickbruch") ;)

Daher verweise ich eben auch gerne auf http://www.delphigl.de. Das ist einwandfrei und ich selbst kann Dir nur einen Rat geben, nämlich dich von BMPs verzuhalten. Sie sind das denkbar schlechteste Format, wenn Du Texturen einsetzen willst. Solange es klein sein soll, sind JPGs zu gebrauchen, bei Qualität IMAO TGAs gerade auch weil sie einen Alpha-Channel haben, der sich mehr als bevorzugt hier anbieten sollte.

Bei DGL selbst findest Du auch unter Projekte ein Tetris-Clone. Der Autor hat darinne IMAO auch Alpha Masks eingesetzt IMAO Jpegs. Schau Dir das sonst auch mal an!


Aya - Di 06.05.03 22:08

huhu,

wenn du AlphaMasking mit Bitmaps machen möchtest, kannst du dafür meine Textur-Unit benutzen, dort kannst du ein Bitmap als Textur laden, dann eine Transparent-Farbe festlegen, und fertig ;)

Runterladen kannst du sie unter:
http://www.Koshigaya.de/Download/Textures.zip

Funktionieren tut das ganze dann so:


Quelltext
1:
2:
3:
4:
5:
6:
var
  MyTex: TTextur;
begin
  MyTex:=TTextur.Create('C:\MyTex.bmp'); // Textur laden
  MyTex.SetAlphaColor(0,255,0,255); // Hiermit machst du alles was gelb ist komplett Transparent.
  MyTex.Bind; // Bindet die Textur


Au'revoir,
Aya~


Visum - Mi 07.05.03 20:50

ok, so funktionierts ;)
danke aya!
habs zwar noch nicht verstanden, aber was nicht ist kann ja noch kommen ... :D