Sprite3D mit Alpha-Channel wird nicht gezeichnet

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Sprite3D mit Alpha-Channel wird nicht gezeichnet

Beitrag von Thorium »

Hab ein Problem und hoffe das ich da nur irgendwas falsch gemacht/verstanden hab.

Ich will ein .png mit Alpha-Channel auf den Screen zeichnen. Problem dabei ist, wenn ich es mit Alpha-Channel laden lasse, wird nix gezeichnet. Das Laden selbst klappt. Lade ich es ohne den Alpha-Channel wird es gezeichnet aber den Alpha-Channel will ich ja haben.

Hier ein lauffähiger Beispielcode den ich schnell zusammengehackt hab.
PureBasic 4.20

Code: Alles auswählen

EnableExplicit

Define.l ShipSprite,ShipSprite3D,EndGame

UsePNGImageDecoder()
InitSprite()
InitSprite3D()
InitKeyboard()

OpenScreen(1024,768,32,"Test")

ShipSprite = LoadSprite(#PB_Any,"player1.png",#PB_Sprite_Texture | #PB_Sprite_AlphaBlending)
ShipSprite3D = CreateSprite3D(#PB_Any,ShipSprite)

Repeat

  Delay(10)
  
  Start3D()
  DisplaySprite3D(ShipSprite3D,100,100)
  Stop3D()
  FlipBuffers()

  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape) <> 0
    EndGame = #True
  EndIf

Until EndGame = #True
Hier das .png, welches ich verwendet habe. Ist nur ein Dummy, den ich mir geklaut hab, halt zum testen.
Habe den Alpha-Channel mit gimp hinzugefügt.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

das Bild ist einfach "falsch"

mit einem "echten" Bild mit Alpha-Kanal funzt der code ...

außerdem ist ein ClearScreen NÖTIG !
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

STARGÅTE hat geschrieben:das Bild ist einfach "falsch"

mit einem "echten" Bild mit Alpha-Kanal funzt der code ...

außerdem ist ein ClearScreen NÖTIG !
Öhm, kannst du mir sagen was genau daran falsch ist? Was ist ein "echtes" Bild? gimp zeigt mir den Alpha-Kanal an.

ClearScreen ist in dem Beispiel aber wurscht, da das Sprite sowiso immer an die selbe Stelle gezeichnet wird. Zumindest funzt das Zeichnen bei mir auch ohne Alpha-Kanal auch ohne ClearScreen.
Zuletzt geändert von Thorium am 27.08.2008 16:36, insgesamt 1-mal geändert.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

benutzt du das DX9 subsystem?
da gabs letztens ne bugmeldung, dass das nicht richtig funktioniert.

und gerade für Alphablending ist ein ClearScreen nötig, denk mal drüber nach.


zum testen mal dieses:
http://www.purebasic.fr/german/viewtopi ... 771#207771
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Kaeru Gaman hat geschrieben:benutzt du das DX9 subsystem?
Jepp
Kaeru Gaman hat geschrieben: und gerade für Alphablending ist ein ClearScreen nötig, denk mal drüber nach.
Theoretisch ja, praktisch in diesem Beispiel nicht, da in dem Sprite praktisch kein nutzen aus dem Alphakanal gezogen wird. Da gibts nur 100% transparanz oder 0% Transparenz drinnen. Ich habs nur rausgelassen um das Beispiel möglicht klein zu halten.
Kaeru Gaman hat geschrieben: zum testen mal dieses:
http://www.purebasic.fr/german/viewtopi ... 771#207771
Ok, danke.
Wie Stargate geschrieben hat, liegt es am Bild. Dein Code mit deinem Bild funzt, dein Code mit meinem Bild und es wird nicht gezeichnet.

Nur was genau ist falsch an dem Bild?
Baut gimp den Alpha-Kanal falsch ein oder ist es was anderes?
Alle Programm, die ich hier hab zeigen es richtig an.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

AH :mrgreen:
Habs gefunden, weis jetzt was Stargate mit "echtes" Bild meinte. Hät er auch gleich so sagen können. :wink:
Mein PNG hat eine Palette also indizierte Farben, es muss aber ein 32Bit RGBA sein.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

lol jetzt bin ich wieder schult ^^ :lol:
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten