ich möchte mich nun mit der 3D Engine von PB befassen, und suche verzweifelt nach einfache Beispielen.
Wunsch: Ich suche ein Code wo ein Würfel mit Textur aus SetMeshData() gebaut wird, und dnan dargestellt wird.
Problem: Das allen einfachen Codes die ich gefunden habe wird die Textur nicht dargestellt, obwohl "unten" definiert wurde wie sie drauf liegen soll.
Ich habe mal selber was gebastelt und erhalte auch nur ein komplett grauen Würfel, kann mir einer helfen?
Code: Alles auswählen
#CameraSpeed = 0.2
Define.f KeyX, KeyY, MouseX, MouseY
Procedure Wuerelpunkte(x,y,Zahl)
Restore WuerfelPunkte
For n = 2 To Zahl
For i = 1 To 9 : Read Leer : Next i
Next n
For iy = -1 To 1
For ix = -1 To 1
Read Punkt
If Punkt
Circle(x+ix*16,y+iy*16, 4)
EndIf
Next ix
Next iy
EndProcedure
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
xP = 800
yP = 600
OpenWindow(0, 0, 0, xP, yP+MenuHeight(), "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, xP, yP, 0, 0, 0)
CreateMesh(0, 8)
SetMeshData(0, #PB_Mesh_Vertex, ?CubePunkte, 8)
SetMeshData(0, #PB_Mesh_Face, ?CubeDreiecke, 12)
SetMeshData(0, #PB_Mesh_UVCoordinate, ?CubeTextur, 8)
CreateTexture(0,256,256)
StartDrawing(TextureOutput(0))
Box(0,0,256,256,$FFFFFF)
DrawingMode(4)
FrontColor($000000)
Box( 0, 0,64,64)
Box( 0, 64,64,64) : Box( 64, 64,64,64) : Box(128, 64,64,64) : Box(192, 64,64,64)
Box( 0,128,64,64)
DrawingMode(1)
FrontColor($707070)
Wuerelpunkte( 32, 32, 2)
Wuerelpunkte( 32, 96, 1) : Wuerelpunkte( 96, 96, 3) : Wuerelpunkte(160, 96, 6) : Wuerelpunkte(224, 96, 4)
Wuerelpunkte( 32,160, 5)
StopDrawing()
CreateEntity(0, MeshID(0), CreateMaterial(0, TextureID(0)))
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 0, 0, 1000)
Repeat
ClearScreen(0)
ExamineKeyboard()
KeyX = ( -KeyboardPushed(#PB_Key_Left) + KeyboardPushed(#PB_Key_Right) )*#CameraSpeed
KeyY = ( -KeyboardPushed(#PB_Key_Up) + KeyboardPushed(#PB_Key_Down) )*#CameraSpeed
ExamineMouse()
MouseX = -MouseDeltaX()*#CameraSpeed
MouseY = -MouseDeltaY()*#CameraSpeed
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
FlipBuffers()
If KeyboardPushed(#PB_Key_Escape) : End : EndIf
ForEver
End
DataSection
WuerfelPunkte:
Data.l 0,0,0, 0,1,0, 0,0,0
Data.l 1,0,0, 0,0,0, 0,0,1
Data.l 1,0,0, 0,1,0, 0,0,1
Data.l 1,0,1, 0,0,0, 1,0,1
Data.l 1,0,1, 0,1,0, 1,0,1
Data.l 1,1,1, 0,0,0, 1,1,1
CubePunkte:
Data.f -100, 100, -100
Data.f 100, 100, -100
Data.f 100, -100, -100
Data.f -100, -100, -100
Data.f -100, 100, 100
Data.f 100, 100, 100
Data.f 100, -100, 100
Data.f -100, -100, 100
CubeDreiecke:
Data.w 0,2,3
Data.w 0,1,2
Data.w 1,6,2
Data.w 1,5,6
Data.w 4,6,5
Data.w 4,7,6
Data.w 0,7,4
Data.w 0,3,7
Data.w 0,5,1
Data.w 0,4,5
Data.w 2,7,3
Data.w 2,6,7
CubeTextur:
Data.f 0.00, 0.25
Data.f 0.25, 0.25
Data.f 0.25, 0.50
Data.f 0.00, 0.50
Data.f 0.75, 0.25
Data.f 0.50, 0.25
Data.f 0.50, 0.50
Data.f 0.75, 0.50
EndDataSection