Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
daybreaker Mini JLI'ler
Anmeldedatum: 05.07.2004 Beiträge: 9
Medaillen: Keine
|
Verfasst am: 10.11.2004, 15:00 Titel: C#! Surfaces ja oder nein? |
|
|
Hi, ich plane momentan ein neues Projekt. Das ganze soll eine Weltraumsimulation im 2D Raum werden. Ich frage mich nun ob ich mit Surfaces arbeiten soll oder nicht? Und wenn nicht welche alternativen habe ich in C# + DX9?
day |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.11.2004, 15:18 Titel: |
|
|
Hi,
was spricht gegen Surfaces? Okay Surfaces haben in D3D9 keinen sehr guten Ruf, da sie sehr performance-fressend sind, aber für den Notfall tuts das schon.
Ansonsten gäbe es da noch OpenGL, Vertextransformierung, DirectDraw, GDI oder Java
- Patrick _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
daybreaker Mini JLI'ler
Anmeldedatum: 05.07.2004 Beiträge: 9
Medaillen: Keine
|
Verfasst am: 10.11.2004, 15:27 Titel: |
|
|
Hmm, nee bei DX will ich schon bleiben.. also fällt OpenGL, etc. schon mal raus.. aber Arbeitet DirectDraw nicht mit Surfaces? Ich mein D3D brauch ich für nen 2D Spiel nicht..
day |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.11.2004, 15:59 Titel: |
|
|
Ich würde da schon D3D9 nehmen. In DirectDraw7 hat man zumindest keine automatische Möglichkeit, Surfaces zu blenden. Da muss man das schon manuell(d.h. Pixel für Pixel durchführen). Und das ist nach meinen Erfahrungen sehr performancefressend.  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.11.2004, 16:14 Titel: |
|
|
Microsoft empfiehlt aber selber für 2D Angelegenheiten eher Dx7 anstatt Dx9 zu verwenden. Obwohl das sicher mehr arbeit machen dürfte. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.11.2004, 16:23 Titel: |
|
|
FallenAngel84
Wüsste nicht wo das steht, jedenfalls nicht in der MSDN oder Doku
The Lord of Programming
Naund? was meinste wie schnell du sowas machen kannst heut zu Tage
Nebenbei: Es ist besser für das Ganze Programm nur 1 Surface zu benutzen, die Locken und alles reinstopfen.
Fazit: 1. Lock für jeden Frame, 1 Surface, Speedzuwachs von über 50% und nur eine Blt-Funktion wird aufgerufen.
So kann man auch sehr leicht Alphablending und rotation einfügen
Wer Braucht schon Surfaces für eine einzige BMP Ein 1D-Array reicht *ggg* _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.11.2004, 16:28 Titel: |
|
|
Patrick hat Folgendes geschrieben: | The Lord of Programming
Naund? was meinste wie schnell du sowas machen kannst heut zu Tage  |
Naja...das hat mich eben nicht überzeugt. Ich habs selbst probiert. Ich hab sogar unterschiedliche Speicherorte für die Surfaces gewählt, damit die Kommunikation besser läuft. Aber nach ein paar Blendings war die Framerate im Keller. Ich will ja auch net, dass man das nur auf den neuesten PCs flüssig spielen kann. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.11.2004, 16:35 Titel: |
|
|
The Lord of Programming
Ich möcht ja auch nicht, dass man das Spiel nur auf HighEnd PCs zocken kann
Aber da liegt Dein Fehler: Du hast mehrere Surfaces benutzt, Du darfst aber nur eine, max. 2.
Deine Bitmaps speicherst Du dann in einem 1D Array und davon auch nur die Farbdaten! Die Farbdaten kopierst Du dann in das gelockte Surface usw. usw.usw. und am Ende tust Du die Surface entriegeln und mit einem Blt Aufruf freigeben.
Das Locken und die Blt-Funktion (welche intern auch Lock und Unlock aufruft) kosten am meisten Zeit, die berechnung für Alphablending sogut wie gar nichts wenn man keine Divisionen einbaut oder die Optimiert, dafür braucht man noch nicht einmal Assembler oder sonstige SIMD-Technologien.
- Patrick
Edit: StarCraft benutzt ebenfalls die selbe Technik. _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.11.2004, 16:42 Titel: |
|
|
Ja gut, wenn man alle Grafiken in ein Array legt, dann könnte es besser funktionieren. Allerdings sollte man da schon mit OOP vertraut sein und sich eine Klasse zusammenschreiben. Sonst ist es zu fehleranfällig. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.11.2004, 16:54 Titel: |
|
|
Patrick hat Folgendes geschrieben: | OOP noch nicht mal, ich hab das vor 4 Jahren mal mit DirectDraw1 (beste Version von allen) mal realisiert. |
Klar - man braucht kein OOP, aber es hilft enorm, wenn man nur noch eine Funktion zum blitten aufrufen muss als wenn man das "manuell" macht. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 10.11.2004, 16:56 Titel: |
|
|
ich hatte es so realisiert:
Code: |
__forceinline HRESULT blit (unsigned short *pixeldata)
{
// blablabla
}
|
Ach ja wie ich die alten VESA-Zeiten und DirectDraw1 Zeiten vermisse  _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 11.11.2004, 14:46 Titel: |
|
|
@Patrick:
und wie machst du das dann wenn du einen Colorkey verwenden willst?? |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
|