Frage zu Texture Blending (best. Farbe soll durchsichtigkeit markieren)



  • Hallo Leute,

    ich brauch etwas anlaufschwierigkeiten. Ich beschäftige mich grad bischen mit 3D-Grafik und Texturen. Wenn ich nun Eine TExture auf eine Fläche mappe, will ich erreichen das eine best. Farbe der Texture (bspw. schwarz) nicht auf die Fläche gemappt wird. Also voll Transparenz.

    Nehmen wir an ich habe eine weise Quatratische Fläche .. auf der ich eine Texture mappe, die quatriatische Texture eine roter kreisfläche wobei wobei der rand komplett schwarz ist. Nun soll er nur den kreise auf die Geometry mappen und alles was schwarz is ignorieren:)

    Wie nennt man das in der 3d-Grafik? Mit TextureBlending bin ich ja noch ganz dran odeR?

    grüße



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // Linear Filtering  glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // Linear Filtering
    

    Die Vertice-Flächen sollten nur bepinselt seien, wenn du vorher glColor aufrufst.



  • Keine Ahnung was du nutzt, allgemein handelt es sich bei dem, das du suchst um Alpha Blending bzw. Color Keying



  • 3DNooobyy schrieb:

    Nehmen wir an ich habe eine weise Quatratische Fläche .. auf der ich eine Texture mappe, die quatriatische Texture eine roter kreisfläche wobei wobei der rand komplett schwarz ist. Nun soll er nur den kreise auf die Geometry mappen und alles was schwarz is ignorieren:)

    Wie schon geschrieben wurde gibt es grundsätzlich zwei Möglichkeiten: Color-Keying und Alpha-Blending.
    Was du beschreibst ist Color-Keying.

    Bei Alpha-Blending speichert man die Information über die Durchsichtigkeit eines Texels (Texture-Element) nicht implizit über die Farbe ab, sondern verwendet einen zusätzlichen Kanal, den sog. Alpha-Kanal.

    Color-Keying hat gegenüber Alpha-Blending den Nachteil, dass es nur (*) mit "nearest pixel" Filter funktioniert, und nearest pixel sieht halt Kacke aus.
    Alpha-Blending dagegen funktioniert mit jedem Texturfilter.

    *: man kann natürlich irgendwie irgendwas hinfaken, nur wird es vermutlich nicht gut aussehen, und ist mehr Aufwand als es gleich "ordentlich" mit Alpha-Blending zu machen.



  • Ich würde auch ein Bildformat wählen welches die Speicherung eines Alpha-Channels zulässt wie tga und png.
    Und dann musst Du eigentlich nur noch die Bilder als RGBA laden und Alpha-Blending einschalten.
    Mehr dazu gibts hier: http://wiki.delphigl.com/index.php/glBlendFunc
    Ist zwar Delphi als Sprache aber falls OpenGL verwendet wird, sind die Befehle die selben. Bei DirectX gibts wieder andere Befehle, aber das Prinzip ist das gleiche.
    Der Ansatz von Kóyaánasqatsi ist komplett falsch.
    rya.


Anmelden zum Antworten