nun muss ich auch mal wieder n Anfängerfrage loslassen:
In der Hilfe für CreateSprite3D() steht ja:
"Die Textur muss ein Quadrat in den folgenden Grössen sein: 16*16, 32*32, 64*64, 128*128 oder 256*256.
Andere Größen funktionieren möglicherweise auf einigen Grafikkarten, aber nicht auf allen."
In wie fern hat das "Heute" noch gültigkeit?
Das Heute bezieht sich auf:
PB 4.50, DX9, heutige Grafikkarten.
Einfaches Beispiel:
Code: Alles auswählen
InitSprite()
InitSprite3D()
OpenWindow(0, 0, 0, 800, 600, "Beispiel", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
Sprite3DQuality(#PB_Sprite3D_BilinearFiltering)
CreateSprite(1, 17, 67, #PB_Sprite_Texture)
StartDrawing(SpriteOutput(1))
Box(0, 0, 17, 67, $FFFFFF) : Box(1, 1, 15, 65, $FF0000)
Line(0, 0, 17, 67, $00FF00) : Line(16, 0, -17, 67, $0000FF)
StopDrawing()
CreateSprite3D(1,1)
Repeat
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Until Not Event
ClearScreen(0)
Angle + 1
Start3D()
ZoomSprite3D(1, 17, 67)
RotateSprite3D(1, 0, #PB_Absolute)
DisplaySprite3D(1, 50, 100)
ZoomSprite3D(1, 17, 67)
RotateSprite3D(1, Angle, #PB_Absolute)
DisplaySprite3D(1, 250, 100)
ZoomSprite3D(1, 34+Sin(Radian(Angle))*17, 67)
RotateSprite3D(1, 0, #PB_Absolute)
DisplaySprite3D(1, 450, 100)
ZoomSprite3D(1, 34, 67+Sin(Radian(Angle))*67)
RotateSprite3D(1, Angle, #PB_Absolute)
DisplaySprite3D(1, 650, 100)
Stop3D()
FlipBuffers()
ForEver
Ich meine wenn man jetzt eh DX9 benutzt, gibt es da noch Grafik-Karten auf denen DX9 läuft, bei denen es aber genau hier Probleme gibt ?
Oder gibt es andere Nachteile von "krummen" Sprite3Ds ?
Klar kann man jedes Sprite auf 16*16, 32*32, 64*64, 128*128 oder 256*256 bringen, aber wozu leere Stellen erzeugen wenns auch ohne geht ....