Wie kann ich denn ein Dreieck durch eine Textur zum teil durchsichtig machen? also zB. das ich etwas auf der textur gemalt habe (in schwarz) das was schwarz ist, soll durchsichtig sein und der rest, soll die farbe von dem Dreieck behalten.
Geht das und wie?!
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Du musst zur Textur einen Alphakanal hinzufügen und beim normalen Blenden wird der Alphakanal mit berücksichtigt. Hinzufügen kannst du den entweder durch einen Klassenbasierten Loader, der kann zusätzlich einen solchen Kanal hinzufügen, oder durch ein Grafikprogramm was TGA's mit Alphakanal speichert.
Das klappt irgendwie nie... ich wills ja dann auch ohne Textur haben.
Weiß net wie ich das machen soll.
Hab das mal so gemacht, ohne Textur und das geht net.
So, bei der Partikelengine ist das genau so, wie ich es haben möchte, da wird aber drinne nicht erklärt wie das funktioniert.
Ich weiß net wie ich das realisiere.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Was heisst "ohne Textur"? Eine untexturierte Primitive kann man nicht mittels Alphamasking teilweise undurchsichtig machen.
Oder meinst du damit das du keine zweite Textur in der der seperate Alphakanal drin ist willst? Wenn dem so ist, dann nutz einfach ein Bildformat das auch nen Alphakanal anbietet, also u.a. TGA und PNG und speichere den Alphakanal den ich in ner seperaten Datei hab direkt dort mit hinein, denn diese Formate speichern zu RGB auch noch A.
P.S. : Bei Partikelsystemen wird nichts im eigentlichen Sinne"durchsichtig" gemacht. Die Partikel werden dort auf die Sezene geblendet, und zwar so das schwarze Teile der Textur aufgrund des gewählten Blendmodus nicht sichtbar sind. Siehe dazu unser Blendingtut.
Hi,
hab auch vor kurzem meine ersten Erfahrungen mit Blending in OpenGL gemacht und hatte dann nach einiger Zeit sogar brauchbare Ergebnisse .
Ein Problem, was ich aber bisher nie mit Blending ganz lösen konnte, war das Masking.
Im Blending-Tutorial steht ja was zum Masking drinn. Aber, das ist nicht das Masking, was ich brauch. Ich brauch so ein Masking, wie Delphic im Tetris-Programm verwendet hat. Bloß nicht im 2D-Modus, sondern in 3D.
Lässt sich nun vielleicht etwas schwer vorstellen, was ich meine, aber im Redbook steht im Blending-Kapitel ein Bild von einem Baum herum, der aus 2 Quads besteht. Der hat eine schöne Baum-Textur und wohl auch eine Maskentextur. Im Prinzip also sowas wie ich brauch. Eigentlich genau das, was ich brauch. *g*
Das ganze wäre ja auch kein Problem, wenn mir dieser Depth_Test nicht andauernd dazwischenfunken würde.
Ich mein, wenn man an ein und derselben Stelle das gleiche Quad mit 2 verschiedenen Texturen (einmal Baum und einmal Maske) zeichnet, überschneiden sich die doch hinten und vorn. Das ganze läuft dann so, dass nur eine Textur angezeigt wird. Wenn ich den Depth_Test deaktiviere, dann schaut es genau so aus, wie ich es brauch, aber ...
Es dürfte wohl klar sein, was passiert wenn der Depthtest ausgemacht wurde...
Falls nicht:
Andere Objekte in der Szene sind nicht unbedingt da, wo sie hingehören. Wenn ich die Szenenobjekte in der richtigen Reihenfolge zeichne, dann kann ich das ganze von einer Seite betrachten und werde keinen Unterschied feststellen, ob der depth_test an oder aus ist. Kaum dreh ich aber die Ansicht und schau von der anderen Seite drauf, dann wissen die Quads nicht merhr, wo hinten und vorn ist. (Is ja eigentlich logisch. Drum heißt das Teil ja auch Tiefen-Test.).
Aber wie bringt man das Zeug dazu, so einen schönen Baum, wie im Redbook, zu zeichnen ohne, dass man Probleme mit dem Depth-Test bekommt?
Wie was wo? Alphamasking?
Hört sich gut an. *g*.
Wenn des das Zeug mit TGA ist...
Wird eine TGA-Textur automatisch an den betreffenden Stellen transparent, oder muss man da erst wieder mit Blending rumhantieren?
EDIT:
Hab da grad was gefunden, was damit zu tun haben könnte:
viewtopic.php?t=2315
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn du die Maske mit in der Datei haben willst, dann musst du von Hand in deinem Bildbearbeitungsprogramm einen Alphakanal erstellen. Wie das geht, hängt aber von deinem Bildbearbeitungsprogramm ab.
Wenn du dann nen Alphakanal in deiner Datei hast und diesen dann auch aus der Textur lädst, kannst du die so markierten Pixel via Alphamasking komplett transparent machen (Zwischending gibts nicht). Alphamasking hat den Vorteil das es per-Fragment passiert, also im Gegensatz zum Blending mit Tiefentest keine Probleme macht.
Hm. Ich glaub, ich hab meine Frage falsch gestellt.
Also, in der Theorie hab ichs ja verstanden. Und Alpha-Channels kann ich auch machen. Aber wo gibt's hier ein konkretes Beispiel dazu?
Mist hab ich die Antwort zu früh gegeben, hab ja noch ne Frage Hab das nicht so ganz verstanden, 2 Texturen auf ein Quad?!
Oder 2 Quads mit den gleichen texturen dort hin?
I don't know!
Wie mache'n ich 2 Tex auf 1 Quad?
Zuletzt geändert von Adler am Do Dez 25, 2003 21:37, insgesamt 1-mal geändert.
Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.