Problem mit der Draw3D
Übersicht

![]() |
Der EisvogelBetreff: Problem mit der Draw3D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo bei folgendem Code werden die Bilder leider immer Halbtranzparent auf den Hintergrund gemalt. ![]() Code: [AUSKLAPPEN] Function Bilder(typ)
ColorG3D ordner=ReadDir("data\images\seehundbank\") .start name$=NextFile(ordner) DebugLog name$ If name$="." Or name$=".." Or name$="Thumbs.db" Then Goto start DrawImage3D LoadImage3D("data\images\seehundbank\"+name$),0,0 RenderWorld Clear3D Flip 0 WaitKey If Not KeyHit(1) Then Goto start End Function Ich habe keine Ahnung warum. Immer mal wieder passiert mir sowas, das Bilder Tranzparent gezeichnet werden, was nervt. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
- Probleme, die nichts mit der Draw3D zu tun haben:
Da du in dieser Funktion nur die Bilder lädst aber kein Handle der Bilder speicherst, wirst du so lange das Programm läuft, keines dieser Bilder mehr mit FreeImage3D ![]() Noch ein Problem, wenn man Sachen in der Funktion lädt, sollte das Handle über Return ![]() - Probleme die z.T. mit der Draw3D zu tun haben: Da sowohl DrawImage3D ![]() ![]() ColorG3D() oder zur besseren Übersicht ColorG3D(255,255,255,1) DrawImage3D (LoadImage3D("data\images\seehundbank\"+name$),0,0) Tipp: Die Standardvorgabe ist LoadImage3D( Datei$, mode%, blend% ). Wenn nun die Bilder kein eigenen Alphachannel haben, werden dunklere Stellen transparenter gezeichnet. Daher hast du immer teiltransparente Bilder zu sehen bekommen. Da kaum welche Programme Aplhachannelbearbeitung unterstüzt, habe ich den mode=3 erstellt. Dieser lädt das Bild und belegt ein Komplettalpha über das ganze Bild. Danach erscheint es nur (komplett gleichmässig) transparent wenn man es mit ColorG3D() auch ensprechend angibt. - Wenn ich es richtig erkenne, dann müßte es so in etwa richtig sein: Code: [AUSKLAPPEN] Function Bilder(typ)
Local Ordner Local Name$ Local Image ColorG3D FreeImage3D(typ) Ordner=ReadDir("data\images\seehundbank\") Repeat Name=NextFile(Ordner) DebugLog Name If Lower$(Right$(Name,4))=".png" Then FreeImage3D(Image) Image=LoadImage3D("data\images\seehundbank\"+Name$,3,2) DrawImage3D(Image,0,0) RenderWorld Clear3D Flip 0 WaitKey End If Until Not KeyHit(1) Return Image End Function Der Funktionsaufruf sollte dann das Image zwischenspeichern, welches man ausgewählt hat und entsprechend wie folgt aufgerufen werden: Code: [AUSKLAPPEN] Bild=Bilder(Bild)
Damit nie mehrfach geladene und unbenutzte Bilder im Speicher rumlungern. Ausserdem ist das ganz komplett on the fly von mir erstellt. Also nichts per Laufzeit getestet. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group