Autor Beitrag
kampfkoloss23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 96



BeitragVerfasst: Di 28.01.03 17:56 
Ich versteh nicht so ganz, was Sprites sind, sind das einfache einzelne Pixel oder ganze normale bmps oder was??? Warum sind sie gearde indeal zur Spieleprogrammierung, ein paar Bilder in einer Imagelist tuen es doch auch ?? ODER??

Könnte mir das bitte einer erklären :roll: :?:
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Di 28.01.03 18:39 
Sprites sind einfache Grafiken, die immer plan zum Betrachter liegen, im Gegensatz zu Polygonen, die man Drehen und Wenden kann, wie man will. Sprites werden Depth-Sorted (also ich gehe jetzt mal von 3D-Bibliotheken aus), und haben einen Z-Buffer, wodurch die prites, die weit weg sind, von anderen überlappt werden und kleiner sind. Dabei wird das Bild gefiltert, also mit AA und so weiter so zurechtgestutzt, das es gut aussieht. Für Pseudo-3D-Spiele (wie Siedler, C&C 1-4, usw) sind die Dinger deshalb so gut, weil sie eben nur 2D sind (Schatten werden also durch die Bilder an sich hervorgerufen) und somit weniger Rechenleistung benötigen und weil sie einen Z-Buffer haben, sich der Programmierer also nicht mehr um die Render-Reihenfolge kümmern muss, da das die GraKa "von alleine" übernimmt. Deshalb sind Sprites praktisch.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
kampfkoloss23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 96



BeitragVerfasst: Di 28.01.03 18:45 
Bilder im Imagelists sind schneller als sich schon im Speicherbefindliche einfach so geladene bmps. Wie siehts mit SPrites aus?? Da sie für Spiele ausgelegt sind, sollten sie eigentlich schnell sein.

Wie siehts aus??
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Mi 29.01.03 11:34 
In Imagelists sind doch auch bloß Bitmaps drin, warum sollten sie "schneller" (was immer das bei einer Bitmap bedeutet) sein als andere?
Fakt ist, Sprites ist nur ein Oberbegriff. Es können einfache Bitmaps sein, oder in tommie-lies Beispiel liegen sie halt in Texturen, das heißt normalerweise im Speicher der Grafikkarte, der um einiges schneller (und außerdem durch die Grafikkarte besser erreichbar) ist als der Systemspeicher. Sie haben aber keinen Z-Puffer, sondern nur eine Z-Koordinate (kleiner, aber feiner Unterschied (c; ). Wenn du dich mal an die Brotkastenzeiten zurückdenkst, das war so ziemlich die erste Plattform, die Sprites unterstützt hat. Diese wurden noch im Quellcode "erzeugt", das Prinzip hat sich seither aber nicht geändert. Übrigens SOLLTE sich der Programmierer unbedingt um die Renderreihenfolge kümmern, weil wenn er es nicht tut, gibt es eine Menge Overdraw oder eine Menge Z-Buffer-Tests, beides tut der Performance nicht so gut.

Die Bitmaps, die du in deiner Imagelist hast, sind praktisch auch Sprites. Was ein Sprite von einer einfachen Bitmap unterscheidet, ist die Tatsache, dass Sprites unregelmäßig geformt sein können, d.h. unsichtbare bzw. transparente Pixel haben.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
kampfkoloss23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 96



BeitragVerfasst: Mi 29.01.03 16:18 
danke,


Kannst du mir einfach mal den Befehl geben wie man von einem rohen bmp auf der Festplatte zu einem Sprite oder was auch immer in dem Grafikkartenspeicher und als letztes wie man ihn aufruft. (Ich hab da meine Probleme, weil man halt überall nur kleine Bruchstücke findet)
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Mi 29.01.03 17:35 
Wie willst du denn die Sprites darstellen? In OpenGL gibt's dafür Befehle. Und in DirectX auch. Müsstest dir nur das entsprechende SDK von der OpenGL-Group bzw von MS holen. ODer du nimmst eine Komponente, für OpenGL zum Beispiel GLScene und da ist dann ein Sprite-Objekt schon dabei.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Mi 29.01.03 20:55 
Unter DirectX steht dir die ID3DXSprite-Schnittstelle zur Verfügung. Diese kann eine IDirect3DTexture9 als Textur verwenden, die du wiederum mit D3DXCreateTextureFromFile() laden kannst. Wenn du wissen willst, wie das am einfachsten geht (speziell wenn du eigentlich NUR 2D-Grafik haben willst), kannst du mal auf gamedev.net unter Articles & Resources -> DirectX -> DirectX Graphics gucken, da ist ein einfacher 2D-Framework erklärt.

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 31.01.03 18:34 
Es gibt auch eine Komponenten für delphiX;)
wenn du mit der DXImageList bilder auf den Surface von der DX zeichnes ist das das gleiche als wenn du es mit Sprints machst......
So viel wie ich weiß.
die unterschiede wurden dir bereist oben genat....

_________________
MFG
Michael Springwald, "kann kein englisch...."