Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:19

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Mo Dez 22, 2003 21:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hi!

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?!

Mfg da Adlerchen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 22, 2003 21:44 
Offline
DGL Member
Benutzeravatar

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.

Sonst ist da überhaupt nichts wildes bei.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: :/
BeitragVerfasst: Mo Dez 22, 2003 22:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
:-/
Werd mal sehen was sich da so machen lässt...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Hi!
BeitragVerfasst: Do Dez 25, 2003 00:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Moin!

Danke, hab das Tutorial von DelphiGl.de durch gemacht, ich glaube ich kanns jetzt realisieren, schönes tut mit dem Baum.

Thx from Me


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Mist
BeitragVerfasst: Do Dez 25, 2003 17:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Nachmal *g*
BeitragVerfasst: Do Dez 25, 2003 19:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 25, 2003 19:34 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Verblendet
BeitragVerfasst: Do Dez 25, 2003 20:17 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 25, 2003 20:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Warum nutzt du dann kein Alphamasking? Da gibts keine Probleme mit dem Tiefentest und du kannst die Maske sogar direkt in der Textur speichern.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 25, 2003 20:45 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
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

Ist das Alphamasking?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 25, 2003 20:49 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 25, 2003 20:58 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Also
BeitragVerfasst: Do Dez 25, 2003 21:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
www.delphigl.de
Dort, bei den Tutorials, das mit dem Baum, ich glaube soetwas suchst du oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Also
BeitragVerfasst: Do Dez 25, 2003 21:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
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.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Dez 25, 2003 21:17 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Exakt!
Komisch, dass ich das mit dem Baum nicht schon früher da entdeckt hab...

Thx


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 19 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]