OpenGL - Masking



  • Hey,

    Ich habe mit OpenGL mal das Masking probiert aber wirklich klappen will es nicht. Als Beispiel habe ich mir mal folgende 2 Texturen genommen:
    Normale Texture: http://www.abload.de/img/palm6a75i.png
    Alpha Texture: http://www.abload.de/img/palm_alpha6078f.png

    Wenn ich diese Texturen nun auf einem Quad zusammen richtig raufpacke, dann müsste quasi nur die Palmentexture zu sehen sein und der Rest wird transparent. Dies sollte eigentlich über die glBlendFunc zu regeln sein aber ich weiss leider nicht wirklich wie, kann mir da jemand weiterhelfen und es mal erklären? Hab schon ein Tutorial von NeHe gelesen aber das hat nicht wirklich geklappt. Habe auch schon mit GL_ONE bei der Alphatexture den schwarzen Teil ausblenden können aber es mit der anderen Textur zu kombinieren klappt nicht wirklich.



  • Okay ich habe das jetzt über einen Fragment-Shader realisiert.
    Sollte vom Objekt ein RGB Part = 0.0 entsprechen, dann wird er transparent gemacht. Ich bin mir nur nicht sicher ob das eine optimale Lösung ist 😕

    Edit// Okay es ist wohl nicht die Optimale Lösung! Wäre daher über eine andere Variante Dankbar!



  • Pack den alpha-Kanal in den alpha-Kanal der RGB Textur (da gehört er hin). Und lade die Textur als RGBA dann sollte es klappen!



  • Gast_0025 schrieb:

    Pack den alpha-Kanal in den alpha-Kanal der RGB Textur (da gehört er hin). Und lade die Textur als RGBA dann sollte es klappen!

    This.
    Am besten eignet sich hier tga oder png als format.
    Zusätzlich, prüfe nicht auf == 0.0, sondern eher auf <= 0.10f oder sowas... das gibt einen schöneren Übergang.



  • Alles klar, läuft 🙂


Anmelden zum Antworten