Autor Beitrag
Visum
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mo 05.05.03 21:00 
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):
  • Quad mit der unteren Textur zeichnen
  • Blending aktivieren (glblendfunc(GL_DST_ALPHA, GL_ONE);)
  • Quad nochmal zeichnen, diesmal mit der Mask als Textur
  • glblendfunc(GL_ONE,GL_ONE);
  • Quad nochmal mit der transparent zu zeichnenden Textur malen
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
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1280

Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
BeitragVerfasst: Di 06.05.03 16:54 
richtig googlen oder die richtigen Seiten kennen ;)
[url]www.delphigl.de[/url]

_________________
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Di 06.05.03 18:44 
hi,

aber wer sich das Tutorial auf 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 www.delphiGL.com wird das Thema nur sehr knapp beantwortet und hat nur eine Zeile Quelltext (die dann auch noch anders ist als bei 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
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1280

Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
BeitragVerfasst: 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 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!

_________________
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: 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:
www.Koshigaya.de/Download/Textures.zip

Funktionieren tut das ganze dann so:

ausblenden 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~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: 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