Transparenz einzelner Triangles eines Surfaces ändern.
Übersicht

![]() |
hecticSieger des IS Talentwettbewerb 2006Betreff: Transparenz einzelner Triangles eines Surfaces ändern. |
![]() Antworten mit Zitat ![]() |
---|---|---|
So hab mich jetzt 1½ Stunden hier im Forum rumgeschlagen und darüber nichts ausfindig machen können. Ist das richtig, das man bei einem Singlesurface nicht die Transparenz einzelner Triangles bestimmen kann? Oder wie habt ihr dann das Problem bei Rauchpartikel die von Feuerrot ins schwarze gehen und eigendlich langsam ausgeblendet werden sollten gelöst? Wenn sie einfach nur gelöscht werden, dann siehts ja irgendwie doof aus.
Zweite Frage noch nebenbei. Wie kann ich am besten den Alphaflag einer PNG-Datei beim einlesen ignorieren? Mit LoadBrush("00.png",0) funktioniert das nicht! Ich möchte eine Textur laden, wo dunklere Stellen transparenter dargestellt werden. Diese Bilddatei hat aber bereits ein Alphaflag und auf eine zweite Bilddatei möchte ich gerne verzichten... Danke im Vorraus... |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dunklere Stellen = transparent wäre Alpha. Masking würde heissen 0,0,0 ist schwarz, alles andere nicht. Hast du es versucht per LoadTexture zu laden?
Die Texturstandardflags sind eigentlich nicht so eingestellt, dass sie automatisch mit Alpha geladen werden, aber vielleicht ist dein Textureblend / EntityBlend ja auf Add gestellt, wo schwarz eine wirkung wie transparent hat. Und du kannst die Alpha nicht auf triangle basis ändern, sondern nur auf Vertexbasis. Danach musst du die EntityFX aber auch einstellen, dass es die Vertexfarben und Alpha nutzt (glaub 8 + 32 oder nur 32?), sonst geht die Vertexalpha wieder flöten. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, danke. Die zweite Frage hat sich schonmal erledigt. Das mit VertexAlpha habe ich noch nicht gewusst. Hoffe mal das die ganze manuelle Berechnung per Sin/Cos der Vertexkoordinaten etc. dann schneller ist, als die Rauchpartikel in einzelne Meshes zu packen...
Zu meiner ersten Frage. Ich habe eine PNG-Datei (256x512), in welcher alle Bilder für mein Spiel vorhanden sind. Die einzelnen Texturen (Bis auf die drei Planes (LoadAnimTexture)) werden mit LoadBrush und den dazugehörigen UV-Koordinaten ausgelesen. Das Rauchpartikel ist nun aber ein Dreieck was auf ein Triangle aufgezogen wird... Die PNG-Datei hat aber ein Alphaflag welches 0,0,0 als Transparent angibt. Ich besitze leider kein Programm mit welchen mir bewusst währe eine ganze Alphapallete abspeichern zu können. Daher meine Frage für folgender Funktion von BB. [2] Alpha Map = Die Textur benutzt Alpha Map für Transparenz. Wenn Alpha Map nicht vorhanden ist, dann erscheinen dunkle Stellen transparenter. Genau dieses will ich für mein Rauchpartikel benutzen. Habe mir schon überlegt die Stelle per ReadPixel auszulesen und dann in den Texturpuffer zu packen. Aber es muß doch eine elegantere Lösung dazu geben. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das was du mit alpha bezeichnet ist Masking. Inwiefern die automatische Umwandlung funktioniert, wenn du LoadBruch mit der Flag für Alpha nutzt, kann ich nicht sagen, da ich bis anhin immer direkt alpha bilder verwendet haben.
Wenn du ein Programm dafür brauchst: PaintShop Pro, PhotoShop oder auch GIMP / Pixia um noch freeware Programme zu nennen. (Alpha geht nicht durch eine Alphafarbe sondern durch Alphalayer und Alphamasks |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group