Textur-Problem
Textur-Problem
Hallo zusammen,
ich bin gerade dabei mir die 3d-Funktionen anzueignen. Meine Programmgrundlage ist das Beispeil MeshManual.pb.
Hier ist schon mein erstes Problem, das Programm arbeitet korrekt, nur wird die Textur clouds.jpg schon gar nicht angezeigt sondern nur blaue Farbe.
Weiß vielleicht jemand wo mein Problem liegt?
Muss ich vorher noch irgendetwas zusätzlich installieren?
Oder liegt mein Problem im Texturaufruf versteckt?
Ich arbeite mit den Beispieldateien aus der aktuellsten Version.
Wäre schön, wenn jemand einen Rat für mich hat, gruß scoty
ich bin gerade dabei mir die 3d-Funktionen anzueignen. Meine Programmgrundlage ist das Beispeil MeshManual.pb.
Hier ist schon mein erstes Problem, das Programm arbeitet korrekt, nur wird die Textur clouds.jpg schon gar nicht angezeigt sondern nur blaue Farbe.
Weiß vielleicht jemand wo mein Problem liegt?
Muss ich vorher noch irgendetwas zusätzlich installieren?
Oder liegt mein Problem im Texturaufruf versteckt?
Ich arbeite mit den Beispieldateien aus der aktuellsten Version.
Wäre schön, wenn jemand einen Rat für mich hat, gruß scoty
- dllfreak2001
- Beiträge: 2925
- Registriert: 07.09.2004 23:44
- Wohnort: Bayern
Re: Textur-Problem
Jo hat mich auch etwas genervt, als ich etwas mit 3D experimentiert habe.
Darum jetzt mal hier eine "neue" Version wie man ein Wurfel macht ...
Mit Textur und Licht ...
Darum jetzt mal hier eine "neue" Version wie man ein Wurfel macht ...
Mit Textur und Licht ...
Code: Alles auswählen
InitSprite()
InitSprite3D()
InitEngine3D()
UsePNGImageDecoder()
UsePNGImageEncoder()
Enumeration
#Window
#Camera
#Mesh
#Image
#Entity
#Material
#Texture
EndEnumeration
OpenWindow(#Window, 0, 0, 800, 600, "Screen", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, WindowWidth(#Window), WindowHeight(#Window), 0, 0, 0)
CreateCamera(#Camera, 0, 0, 100, 100)
CameraBackColor(#Camera, $FFFFFF)
CameraLocate(#Camera, 0, 0, 1000)
CameraRenderMode(#Camera, #PB_Camera_Textured)
CreateMesh(#Mesh, 100)
SetMeshData(#Mesh, #PB_Mesh_Vertex|#PB_Mesh_Normal|#PB_Mesh_UVCoordinate, ?VertexNormalData, 24)
SetMeshData(#Mesh, #PB_Mesh_Face, ?FaceData, 12)
Add3DArchive(GetTemporaryDirectory(), #PB_3DArchive_FileSystem)
CatchImage(#Image, ?Wuerfel_png)
SaveImage(#Image, GetTemporaryDirectory()+"Wuerfel.png", #PB_ImagePlugin_PNG)
LoadTexture(#Texture, GetTemporaryDirectory()+"Wuerfel.png")
CreateMaterial(#Material, TextureID(#Texture))
CreateEntity(#Entity, MeshID(#Mesh), MaterialID(#Material))
ScaleEntity(#Entity, 100, 100, 100)
CreateLight(#PB_Any, $FF0000, 150, -100, 100)
CreateLight(#PB_Any, $0000FF, -150, -100, 100)
CreateLight(#PB_Any, $00FF00, 0, 200, 100)
Repeat
ClearScreen($FFFFFF)
RotateEntity(#Entity, 0, 1, Sin(ElapsedMilliseconds()/1000), #PB_Relative)
RenderWorld()
FlipBuffers()
Until WindowEvent() = #PB_Event_CloseWindow
DataSection
VertexNormalData: ; Vertex : Normal : Textur :
; Vorn
Data.f -1,-1, 1 : Data.f 0, 0, 1 : Data.f 0.00, 0.25
Data.f 1,-1, 1 : Data.f 0, 0, 1 : Data.f 0.25, 0.25
Data.f -1, 1, 1 : Data.f 0, 0, 1 : Data.f 0.00, 0.50
Data.f 1, 1, 1 : Data.f 0, 0, 1 : Data.f 0.25, 0.50
; Hinten
Data.f -1,-1,-1 : Data.f 0, 0,-1 : Data.f 0.50, 0.25
Data.f 1,-1,-1 : Data.f 0, 0,-1 : Data.f 0.75, 0.25
Data.f -1, 1,-1 : Data.f 0, 0,-1 : Data.f 0.50, 0.50
Data.f 1, 1,-1 : Data.f 0, 0,-1 : Data.f 0.75, 0.50
; Unten
Data.f -1,-1,-1 : Data.f 0,-1, 0 : Data.f 0.25, 0.25
Data.f 1,-1,-1 : Data.f 0,-1, 0 : Data.f 0.50, 0.25
Data.f -1,-1, 1 : Data.f 0,-1, 0 : Data.f 0.25, 0.50
Data.f 1,-1, 1 : Data.f 0,-1, 0 : Data.f 0.50, 0.50
; Oben
Data.f -1, 1,-1 : Data.f 0, 1, 0 : Data.f 0.75, 0.25
Data.f 1, 1,-1 : Data.f 0, 1, 0 : Data.f 1.00, 0.25
Data.f -1, 1, 1 : Data.f 0, 1, 0 : Data.f 0.75, 0.50
Data.f 1, 1, 1 : Data.f 0, 1, 0 : Data.f 1.00, 0.50
; Rechts
Data.f 1,-1,-1 : Data.f 1, 0, 0 : Data.f 0.25, 0.00
Data.f 1, 1,-1 : Data.f 1, 0, 0 : Data.f 0.50, 0.00
Data.f 1,-1, 1 : Data.f 1, 0, 0 : Data.f 0.25, 0.25
Data.f 1, 1, 1 : Data.f 1, 0, 0 : Data.f 0.50, 0.25
; Links
Data.f -1,-1,-1 : Data.f -1, 0, 0 : Data.f 0.25, 0.50
Data.f -1, 1,-1 : Data.f -1, 0, 0 : Data.f 0.50, 0.50
Data.f -1,-1, 1 : Data.f -1, 0, 0 : Data.f 0.25, 0.75
Data.f -1, 1, 1 : Data.f -1, 0, 0 : Data.f 0.50, 0.75
FaceData: ; Face
;Vorne
Data.w 0,3,2
Data.w 0,1,3
;Hinten
Data.w 4,7,5
Data.w 4,6,7
;Unten
Data.w 8,11,10
Data.w 8,9,11
;Oben
Data.w 12,15,13
Data.w 12,14,15
;Rechts
Data.w 16,19,18
Data.w 16,17,19
;Links
Data.w 20,23,21
Data.w 20,22,23
EndDataSection
DataSection
Wuerfel_png:
Data.q $0A1A0A0D474E5089,$524448490D000000,$4000000040000000,$E60B250000000208,$4D41670400000089
Data.q $61FC0B8FB1000041,$4144495A01000005,$830EED59ED436854,$8CCEE6F7D1F40C20,$9EB05685A5A410C5
Data.q $719FB3BBDA0C96BF,$715167E2ECF85EDB,$4BACB9E1EFCFFE12,$C0401CF1C09E80E0,$953E845421088147
Data.q $A7A2BD5B0E023E0F,$0468818F95D861F2,$BE55B0E023EA9298,$00C7CAEC30F9E7F6,$AD87FE3E0FE8A043
Data.q $3E56B0C3E4502646,$561FE3EEDCB3C406,$DF9DAB121B405397,$97F0EB81F7C900FA,$F4AC587E0DF6BDDF
Data.q $A695207DAA020E99,$99D2C71F7EA25E73,$48DE67DEAF0E7CE2,$BE7E21084E52B540,$E908672BC26378EF
Data.q $C793442C78ED0DF6,$FF6F9300954AF0B4,$CA17BE73408D1E82,$00FB3A789A06F569,$0601F7E7D7524345
Data.q $7D12FAEB571FBE7D,$0FA1303EEA812C20,$E5F9EE7A75530250,$03EDA0296A0063A6,$6FD79EAFFFB77B2D
Data.q $C041D79EA870D847,$6363CC2421088158,$A8D39FD109CCACE5,$652660203B335F95,$8FA9ED4C4908A1A7
Data.q $FA9ECC0278F03EF9,$324CEA81454C4FEC,$01400A005002835C,$02801400A0050028,$CE2F8142BC0A0050
Data.q $00F8C5BD31D2C518,$AE444E4549000000,$0000000000826042
EndDataSection
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
Re: Textur-Problem
Danke für die Antworten.
Ich habe gerade versucht den Beispielcode lauffähig zu machen. Bis jetzt noch ohne Erfolg.
Habe erst mal die JPEG-Decoder hinzugefügt, daran lag es aber nicht.
Da mein eigenes Programm auf dem Beispiel basiert, versuche ich es auch zum laufen zu bekommen, sollte es mir gelingen, melde ich mich wieder.
Ich habe gerade versucht den Beispielcode lauffähig zu machen. Bis jetzt noch ohne Erfolg.
Habe erst mal die JPEG-Decoder hinzugefügt, daran lag es aber nicht.
Da mein eigenes Programm auf dem Beispiel basiert, versuche ich es auch zum laufen zu bekommen, sollte es mir gelingen, melde ich mich wieder.
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- 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: Textur-Problem
Bei mir gibt der Debugger zu folgender Zeile '0' aus.
Aber unter '/tmp/Wuerfel.png' ist alles da und kann gelesen werden.
Code: Alles auswählen
Debug LoadTexture(#Texture, GetTemporaryDirectory()+"Wuerfel.png")
Re: Textur-Problem
Das mit dem Catch/Save ist eigentlich nur drin, weil es kein CatchTexture gibt -.-
Warum er nun den Würfel bei euch nicht laden will ist mir rätselhaft ...
Ich habe schon den Umlaut entfernt, da es sonst probleme bei mir gab ...
Mal mit einer anderen Textur probiert ?
Anderer Decoder?
also:
BTW: Das seltsamme an der 3D-Engine ist, das er "Wuerfel.png" nicht laden will, wenn es ein JPG ist, scheinbar ist ihm die Endung sehr wichtig ^^
Was aber irgendwie totaler blödsinn ist, schließlich kann ich genausogut eine Datei namens "Laber.exe" als PNG laden solange der Inhalt zum PNG gehört ...
Das es immer noch Programme/Routienen gibt die sich auf die Dateiendung verlassen ist mir schleierhaft.
Wozu gibs denn MagicNumbers und usw. ...
Warum er nun den Würfel bei euch nicht laden will ist mir rätselhaft ...
Ich habe schon den Umlaut entfernt, da es sonst probleme bei mir gab ...
Mal mit einer anderen Textur probiert ?
Anderer Decoder?
also:
Code: Alles auswählen
UseJPEGImageEncoder()
UseJPEGImageDecoder()
SaveImage(#Image, GetTemporaryDirectory()+"Wuerfel.jpg", #PB_ImagePlugin_JPEG)
LoadTexture(#Texture, GetTemporaryDirectory()+"Wuerfel.jpg")
Was aber irgendwie totaler blödsinn ist, schließlich kann ich genausogut eine Datei namens "Laber.exe" als PNG laden solange der Inhalt zum PNG gehört ...
Das es immer noch Programme/Routienen gibt die sich auf die Dateiendung verlassen ist mir schleierhaft.
Wozu gibs denn MagicNumbers und usw. ...
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
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: Textur-Problem
Allerdings sollte man LoadTexture ohne absoluten Pfad aufrufen, denn dafür sind eigentlich die 3DArchive da.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Re: Textur-Problem
Schönes Beispiel 
Also bei mir gings auf Anhieb.
Nurundsind überflüssig.
Gruß grapy

Also bei mir gings auf Anhieb.
Nur
Code: Alles auswählen
InitSprite3D()
Code: Alles auswählen
ClearScreen($FFFFFF)
Gruß grapy
