Sprite3D wirklich langsamer als Sprite?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Sprite3D wirklich langsamer als Sprite?

Beitrag von MVXA »

Hallo!
In der Hilfe von PB musste ich gerade folgenden Satz lesen:
Beachten Sie aber bitte, dass sie langsamer als normale Sprites sind...
Entspricht diese Aussage immer noch der Wahrheit oder sollte der Abschnitt der Hilfe überarbeitet werden? Ich meine, wenn die Sprite operationen von der Grafikkarte übernommen werden, müsste die CPU doch mehr Zeit dafür haben den Hauptcode auszuführen, oder? Bin grad bischen verwirrt :freak:.
Bild
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Ich bin der Meinung, dass 3D-Sprites flotter sind. Aber wegen der seltsamen Handhabung durch Textur + daraus gebasteltem 3D-Sprite gefällt mir diese Methode in PB nicht so recht.
Jedenfalls sind normale PB-Sprites nicht so schnell, würde mich wundern wenn 3D-Sprites auch so langsam wären... Hier bekomm ich gerade mal 2000 normale 2D-Sprites in der Größe von 32 x 32 Pixel flüssig mit > 30 FPS zum Laufen.
Mit OpenGL (in C++ geschrieben) und entsprechenden Sprites, Größe 32 x 32, waren auch Mengen von mehr als 5000 Sprites möglich, mit mehr als 30 FPS.
Allerdings habe ich keinen Vergleichswert zu den 3D-Sprites zur Hand. Das könnte man ja mal machen und austesten.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Wenn du so nett wärst und deine Funktionen in eine Library compilieren könntest und diese mir dann geben, dann könnte ich es ja mal testen :D. Ich suche noch einen Weg, da mir Sprites zu langsam sind. 2000 Sprites mit 16x16 und nichts geht mehr :cry:. Hab leider nur eine kleine GF 4 MX 400.
Bild
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

C++ lässt sich afaik nicht für PureBasic libben. (nenn ich mal so^^)
Wenn's rein C wär, würde das wohl gehen...
Wer eine Möglichkeit kennt möge sie hier nennen.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

mittels dll? :?
-.-"
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

@GreenSnake:
Sunny hat geschrieben:C++ lässt sich afaik nicht für PureBasic libben.
Hat er doch schon ausgeschlossen. :freak:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Ich hab die normalen PB-User-Libs mal ausgeschlossen, denn die können wohl nur in Assembler oder C geschrieben werden. (Unter Umständen auch in PB).
Wie es mit Dlls steht weiß ich nicht, keine Ahnung wie man in C++ eine DLL aus dem Programmcode erstellt.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Ich hab im Unterforum "Andere Sprachen" ein Thread erstellt, wo ich gefragt habe wie man eine DLL erstellt. Danilo war so freundlich und hat sich gemeldet :).
Bild
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Mich regt auf, daß bei mir 3D-Sprites irgendwie nicht funktionieren. Hab 'ne RIVA TNT2, hat jemand 'ne Ahnung, warum das mit der nicht funktioniert?

(sorry für leicht offtopic)
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Ist dein Computer der in deinem Profil unter 'Desweiteren'?

Wenn ja, und wenn die Riva TNT2 dazugehört, würd ich mich nicht wundern, vor allem wenn die Sprite3Ds, die du hast, nicht quadratisch und Höhe und Breite nicht so aussehen: 16*16, 32*32, 64*64, 128*128 oder 256*256.
Guck das mal nach.

Tipp: Wenn du nichtquadratische Sprites brauchst, lad sie mal in einer der oben genannten Größen und dann hilft TransformSprite3D() :allright:
Antworten