Textur mit Alpha Info führt zu falschen Darstellung

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Omenaton_2

Betreff: Textur mit Alpha Info führt zu falschen Darstellung

BeitragSa, Jul 14, 2007 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo !

Ich habe ein eine "Navigationsboje" (Weltraum), bestehend aus 2 getrennten Objekten.
Teil 1 ist der Hauptkörper, alles normal dabei, metallisch. Teil 2 sind die leuchtenden Teile (Selfillumination). Ein Teil des 2 Objektes ist auch transparent, mit Verlauf, da dies einen Scheinwerferlichtkegel darstellt, mit zunehmender Transparenz.

Ich will 1 einzige Textur benutzen, so war mein System ausgelegt und das wäre natürlich auch sparsam, einfach und warum nicht ?
Ich habe für das TGA Bild einen Alpha Kanal gemacht, wo alles Weiß (also undurchsichtig) ist bis auf den Scheinwerferlichtkegel, wo Verlauf zu Schwarz zu sehen ist.

Das müßte theoritisch funktionieren. Alles müßte normal, undurchsichtig (als ob gar keine Alpha da wäre) dargestellt werden nur der Lichtkegel sollte zum Teil durchsichtig sein.

Leider sieht das in Blitz3D schlecht aus.
Der Lichtkegel ist wie es sein sollte, aber bei allen anderen Elementen kommt es zu schweren Verdeckungsproblemen und Flackern. Es scheint so eine Art Z-Buffering Fehler innerhalb des Gesamtobjektes zu sein.

Um zu sagen, daß ich Alpha verwende, lade ich die Textur mit dem Flag 2.

Hat jemand Erfahrung mit 32 Bit TGAs mit Alphachannel ? Kennt jemand das selbe Problem und eventuell eine Lösung ?

Falls BlitzBasic damit nicht zu Recht kommen sollte (und es sieht im Moment danach aus), dann muß ich wohl 1. den Lichtkegel als drittes Extra Objekt nehmen und die dazugehörende Textur von dem normalen Textur trennen und zusätzlich erstellen und laden. Die Textur für alles andere müßte dann ohne Flag 2 für Alpha geladen werden.
 

Dreamora

BeitragSa, Jul 14, 2007 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kannst du leider vergessen.
Trenne Alpha und NonAlpha Objekte.

Blitz hat keine 2 Renderschritte um Alpha und NonAlpha innerhalb eines Objektes zu zeichnen. Das heisst das der Alphabereich mit dem NonAlpha zusammen gezeichnet wird, was zu den Effekten führt die du da siehst.
(wird bei vielen professionelleren Engines auch gemacht, nur die machen es intern)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Omenaton_2

BeitragMo, Jul 16, 2007 10:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe es getrennt gemacht, so geht es wie erwünscht.
Ich lade jetzt 1-3 Modell Teile und dazu 1-3 Texturen ein, je nach gesetzten Flag in meiner einzuladenden Datei werden die Texturen mit oder ohne Alpha eingelesen. So ist das System flexibel (soll ja für unterschiedliche Objekte gut sein, ist es auch bereits) und ich habe meine Transparenz ohne Fehler.
Danke für den Hinweis.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group