Sprites bzw. 2D-Bilder in 3D Umgebung ?
-
Misantropius
- Beiträge: 5
- Registriert: 14.12.2010 13:01
Sprites bzw. 2D-Bilder in 3D Umgebung ?
Gibt es eigentlich eine Möglichkeit 2D-Grafiken in einer 3D-Umgebung einzufügen, also z.B. einem Terrain, ähnlich wie ein Pappaufsteller, der aber immer mit der Front zur Kamera zeigt und nur in seiner Größe abhängig von seiner Entfernung varriert ? Wenn ja, wie geht daß ? Würde mich über ein Script-Beispiel z.B. in Bezug zum Beispielsprogramm "Terrain.pb" freuen. Ziel wäre es z.B. ein gemaltes 2D-Männchen auf weißem Hintergrund in JPG-Datei in dieses 3D-Terrain zu stellen !
Würde mich über einen Tip freuen !
Würde mich über einen Tip freuen !
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Hilfe nicht gelesen ?
PureBasic - Billboard
PureBasic - Billboard
btw: Willkommen im ForumBillboards sind 3D-Ebenen (zusammengesetzt aus 2 Dreiecken), welche sich immer vor der Kamera befinden. Billboards sind nützlich, um schnell eine große Anzahl an Elementen - wie Regen, Schnee, Bäume, Vegetation oder Partikel-basierende Effekte - darzustellen.
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
Misantropius
- Beiträge: 5
- Registriert: 14.12.2010 13:01
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Ja, danke für den Wink mit den Billboards !
Habe inzwischen erfolgreich das 2D-Bild in eine 3D-Welt integrieren können.
Würde jetzt aber gerne die weißen Hintergründe des 2D-Bilder durchsichtig machen. Irgendeine Idee ?
Würde jetzt aber gerne die weißen Hintergründe des 2D-Bilder durchsichtig machen. Irgendeine Idee ?
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Du solltest dafür das PNG-Bildformat nutzen mit vollen 32Bit , dort hast du dann einen Alpha-Channel welcher dann angibt ob eine Farbe sichtbar ist oder nicht ...
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
Misantropius
- Beiträge: 5
- Registriert: 14.12.2010 13:01
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Ja, danke. Habe davon auch vorher schon gelesen, aber irgendwie krieg ich das nich hin. Habe bisher wenig Erfahrung mit den
Malprogrammen wie GIMP oder MtPaint. Mir ist zwar bewußt, das es diesen Alphawert gibt, aber selbst nach viel Gefummel hats irgendwie nicht hingehauen und ne vernünftige Hilfe-Funktion gibts da irgendwie auch nicht. Würde mich freuen, wenn mir als Zeichenlprogramm-Anfänger mal einer schrittweise sagen kann z.B. bei GIMP, wie ich einen Hintergrund transparent mache, damit das Ganze in der 3D-Welt nicht mehr zu sehen ist.
Malprogrammen wie GIMP oder MtPaint. Mir ist zwar bewußt, das es diesen Alphawert gibt, aber selbst nach viel Gefummel hats irgendwie nicht hingehauen und ne vernünftige Hilfe-Funktion gibts da irgendwie auch nicht. Würde mich freuen, wenn mir als Zeichenlprogramm-Anfänger mal einer schrittweise sagen kann z.B. bei GIMP, wie ich einen Hintergrund transparent mache, damit das Ganze in der 3D-Welt nicht mehr zu sehen ist.
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Ganz banal ...
Gimp - Menueleiste -> Ebene -> Transparenz -> z.B. Farbe zu Transparenz
Da kannste mal mit experimentieren
Gimp - Menueleiste -> Ebene -> Transparenz -> z.B. Farbe zu Transparenz
Da kannste mal mit experimentieren
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- NicTheQuick
- Ein Admin
- Beiträge: 8812
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Vorher vielleicht noch mit dem Zauberstab die weiße Fläche auswählen und mit dem Auswahl-Menü ein kleines Stückchen erweitern, dann erst Farbe-zu-Transparenz machen. Falls der Menüpunkt ausgegraut ist, musst du vorher den Alphakanal erst hinzufügen. Das müsste im Menü Farben oder Kanäle oder sowas sein.
- mpz
- Beiträge: 505
- Registriert: 14.06.2005 15:53
- Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
- Wohnort: Berlin, Tempelhof
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Hi,
ich habe mal mit meiner Engine ein kleines Programm geschrieben was eine png Datei mit Alphachannel erzeugt. Du lädst deine "rgb" Grafik ein, die auf einem Rechteck angezeigt wird. Die zweite Grafik muss genausogross sein wie die erste Grafik, aber alle "Farben" werden in Graustufen verwandelt und als Alpha Eben integriert. D.h. Du malt in Schwarz was durchscheinen soll und je heller das Grau desto undurchsichtiger (Ich hoffe die Erklärung kapiert jemand
). Danach als png speichern.
http://www.file-upload.net/download-304 ... l.exe.html
Gruß Michael
Quellcode falls es jemand interessiert, man benötigt aber die mp3d
ich habe mal mit meiner Engine ein kleines Programm geschrieben was eine png Datei mit Alphachannel erzeugt. Du lädst deine "rgb" Grafik ein, die auf einem Rechteck angezeigt wird. Die zweite Grafik muss genausogross sein wie die erste Grafik, aber alle "Farben" werden in Graustufen verwandelt und als Alpha Eben integriert. D.h. Du malt in Schwarz was durchscheinen soll und je heller das Grau desto undurchsichtiger (Ich hoffe die Erklärung kapiert jemand
http://www.file-upload.net/download-304 ... l.exe.html
Gruß Michael
Quellcode falls es jemand interessiert, man benötigt aber die mp3d
Code: Alles auswählen
;////////////////////////////////////////////////////////////////
;//
;// Project Title: MP 3D Engine Beispielprogramme
;// Dateiname: MP_CreatePNGwithAlphaChannel.pb
;// Erstellt am: 14.12.2010
;// Update am :
;// Author: Michael Paulwitz
;//
;// Info:
;// Create a png file with alphachannel. You load a rgb grafic and load a second grafic for greyscales inage.
;// Both images must have the same size Bl
;//
;//
;////////////////////////////////////////////////////////////////
;- ProgrammStart
MP_Graphics3D (640,480,0,3) ; Erstelle ein WindowsFenster #Window = 0
SetWindowTitle(0, "Create Alpha Textur")
If CreateMenu(0, WindowID(0)) ; Menü erstellen/Create Menu
MenuTitle("load / save grafic")
MenuBar()
MenuItem( 1, "Load RGB grafic")
MenuItem( 2, "Load Alphachannel")
MenuBar()
MenuItem( 3, "Save png grafic with Alpha Channel")
MenuBar()
MenuItem( 4, "Exit")
EndIf
Width=256
Height=256
If CreateImage(0, 640, 480)
MP_CreateImageColored(0, 0, RGB(0,255,255), RGB(0,255,255), RGB(0,0,255), RGB(0,0,255))
EndIf
Surface = MP_ImageToSurface(0,0) ; Image = 0,
FreeImage(0)
MP_SurfaceSetPosition(Surface,0,0,1)
MP_SurfaceDestRect(Surface,0, 0, 640, 480)
camera=MP_CreateCamera() ; Kamera erstellen
light=MP_CreateLight(1) ; Es werde Licht
Mesh=MP_CreatePlane(1,1)
MP_MeshSetAlpha(Mesh, 2) ; AlphaMode on
MP_PositionEntity (Mesh,0,0,1.4) ; Position of plane
MP_AmbientSetLight(RGB(123,22,200))
While Not MP_KeyDown(#PB_Key_Escape) And Not MP_WindowEvent() = #PB_Event_CloseWindow ; Esc abfrage / SC pushed?
Select MP_WindowEvent() ; WindowsEvent abfrage
Case #PB_Event_Menu
Select EventMenu() ; Welches Menü? / Menuquestion
Case 1 ; Load RGB grafic
Pattern$ = "Image Files (bmp,jpg,tga,png,dds,ppm,dib,hdr,pfm|*.bmp;*.jpg;*.tga;*.png;*.dds;*.ppm;*.dib;*.hdr;*.pfm"
directory$ = "C:\Programme\PureBasic\media\"
File.s = OpenFileRequester("Load RGB grafic", directory$, Pattern$, 0)
If File
MP_FreeTexture (Texture1)
Texture1 = MP_LoadTexture(File.s,1)
MP_EntitySetTexture(Mesh, Texture1)
EndIf
Case 2 ; Load Alphachannel grafic
Pattern$ = "Image Files (bmp,jpg,tga,png,dds,ppm,dib,hdr,pfm|*.bmp;*.jpg;*.tga;*.png;*.dds;*.ppm;*.dib;*.hdr;*.pfm"
directory$ = "C:\Programme\PureBasic\media\"
File.s = OpenFileRequester("Load Alphachannel grafic", directory$, Pattern$, 0)
If File
MP_FreeTexture (Texture2)
Texture2 = MP_LoadTexture(File.s)
If Not MP_CreateTextureAlpha(Texture1, Texture2)
MessageRequester("Cant create alphachannel grafic ", "Important both grafic must have the same size", #PB_MessageRequester_Ok)
EndIf
MP_EntitySetTexture(Mesh, Texture1)
EndIf
Case 3 ; Save png grafic with Alpha Channel
File.s = SaveFileRequester("Save grafic as PNG", "Textur.png", "Textur Files(*.png)|*.png", 0)
If File
MP_SaveTexture (File, Texture1 , 3)
EndIf
Case 4; end
End
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
MP_RenderWorld() ; Erstelle die Welt
MP_Flip () ; Stelle Sie dar
Wend
Working on
- LibSGD - MP3D Engine - 
-
Misantropius
- Beiträge: 5
- Registriert: 14.12.2010 13:01
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Puuh ! Jetzt hab ich in Gimp das mal versucht und nun ist mein Hintergrund schachbrettartig gerastert. Datei hab ich als PNG gespeichert, aber leider verschwindet beim Anwenden des Bildes in PureBasic immer noch nicht der Hintergrund. Stattdessen bleibt er weiß, hat aber dafür ein paar schwarze Punkte auf dem Hintergrund, wo vorher Nix war und die Konturen haben sich auch leicht verfärbt ? Was mach ich falsch ??
-
Misantropius
- Beiträge: 5
- Registriert: 14.12.2010 13:01
Re: Sprites bzw. 2D-Bilder in 3D Umgebung ?
Joah ! Hab mein Problem inzwischen selbst gefunden. Mußte noch den MaterialBlendingMode anwenden und schwupps hats geklappt. Jetzt würde ich nur noch gerne scharfe Konturen bekommen.....