Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Ranma JLI'ler

Anmeldedatum: 10.12.2002 Beiträge: 167 Wohnort: Cadolzburg Medaillen: Keine
|
Verfasst am: 27.06.2004, 15:16 Titel: DirectDraw Speed |
|
|
ich würde gern wissen wie ich generel meinen DirectDraw Speed verbessern könnte? Leider kann ich es zurzeit nicht ausprobieren,
aber ich vermute das mein Spiel TheMaverick bei schwächeren PC's
bei der Standart Auflösung von 1024*768
nicht viel mit reden könnten...
also hoffe ich von den hierigen alt eingesessenen DirectDraw'lern
ein paar Tips zu erhaschen
Danke schon jetzt  _________________ "Deutsche Sprache schwere Sprache"
sprach der C++er |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 27.06.2004, 15:58 Titel: |
|
|
Tja, ich weiß nur so viel. Am schnellsten ist das was nicht gezeichnet wird. Also solltest du es möglichst vermeiden Obejke die gar nicht zu sehen sind zu zeichen. Und natürlich auch nix Doppelt zeichnen. Am besten ist es wenn alle Rexourcen im Grafikkartenspeicehr liegen können, und du keinen direkten zugriff auf die Oberflächen hast.
Ansonsten kann man bei DirectDraw glaub ich nicht viel machen. Aber die Grafikausgabe ist ja nicht das einzige was Geschwindigkeitsoptimiert werden kann. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 27.06.2004, 21:41 Titel: |
|
|
Bei DD gilt grundsätzlich: Je mehr Zeichenvorgänge, desto langsamer.
D.h. die Größe der Sprites spielt weniger eine Rolle. Wichtiger ist, dass du z.B. Sprites, die gegenseitig immer(oder zeitweise) im gleichen (X- und Y-)Abstand stehen, als ein Sprite zusammengefasst werden können.
So gibt es weniger Zeichenforgänge pro Frame  _________________ 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 |
|
 |
Ranma JLI'ler

Anmeldedatum: 10.12.2002 Beiträge: 167 Wohnort: Cadolzburg Medaillen: Keine
|
Verfasst am: 30.06.2004, 10:59 Titel: |
|
|
Danke schon mal
also:
egal wie groß die oberflächen auch sind.
es ist nur wichtig das so wenig wie möglich gezeichnet wird?
seh ich das richtig
bringt es vorteile, wenn ich gleiche oberflächen die öfter gezeichnet werden müssen hinter einander zeichnen lasse
also statt:
Zeichne X
Zeichne A
Zeichne C
Zeichne F
Zeichne X
Zeichne C
das:
Zeichne X
Zeichne X
Zeichne A
Zeichne F
Zeichne C
Zeichne C
bringt das für DirectDraw forteile, besonders wenn die Dateien im
Arbeitsspeicher liegen  _________________ "Deutsche Sprache schwere Sprache"
sprach der C++er |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.06.2004, 11:24 Titel: |
|
|
1.
Ranma hat Folgendes geschrieben: | egal wie groß die oberflächen auch sind.
es ist nur wichtig das so wenig wie möglich gezeichnet wird?
seh ich das richtig |
Fast...natürlich spielt die Größe auch eine Rolle. Man kann hier leider nicht pauschal sagen, wie das am Schnellsten ist. Aber jedenfalls verlangsamen viele Zeichenvorgänge den Rendervorgang.
Wenn du jetzt aber Sprites, die ohne Zwischenräume nebeneinander liegen(z.B. Tiles) in ein großes Surface kopierst, dann bringt das garantiert Vorteile.
Die Fläche der zu zeichnenden Fläche bleibt ja gleich, bloß die Anzahl wird verringert.
2. Nein, die gleichen Sprites hintereinander bringt AFAIK bei DD nichts. Das ist bei D3D so, weil man da nicht immer verschiedene Texturen im Speicher hin und her schieben muss. Deswegen nimmt man da die Modelle mit gleichen Texturen auch direkt hintereinander.
Aber ich kann bei DD keinen Grund erkennen, wieso das schneller sein sollte  _________________ 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 |
|
 |
Ranma JLI'ler

Anmeldedatum: 10.12.2002 Beiträge: 167 Wohnort: Cadolzburg Medaillen: Keine
|
Verfasst am: 30.06.2004, 11:36 Titel: |
|
|
aha also das mit den tiles hab ich ja fast so ähnlich in meinem Scrolling
ich hab zwei Flächen in meinem Videospeicher in der die derzeit benötigten Oberflächen fürs Scrolling aus dem Hauptspeicher kopiert werden (wenn se da sind), das bringt für PC's mit wenig speicher vorteile
aber soll ich größere Surfaces in kleinere verteilen um dort vielleicht noch mehr speed zu bekommen  _________________ "Deutsche Sprache schwere Sprache"
sprach der C++er |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.06.2004, 11:54 Titel: |
|
|
Hmm...wieso kopierst du sie denn aus dem Hauptspeicher?
Das ist auch langsam im Vergleich zu Vidmem<->Vidmem.
Ranma hat Folgendes geschrieben: | aber soll ich größere Surfaces in kleinere verteilen um dort vielleicht noch mehr speed zu bekommen  |
Dann hättest du doch noch mehr Zeichenvorgänge. Ergo: Weniger Speed.
Du solltest eher wo es geht die Surfaces (sinnvoll) zusammenfassen.
Also nicht einen Pixel links oben mit einem Pixel rechts unten in ein Surface kopieren und dann das Bildschirmgroße Surface blitten. Dann hast du nämlich den gesamten inneren Platz verschenkt. In dem Fall wäre es auch schneller, die beiden Pixel einzeln zu zeichnen.
Bsp:
(O=Pixel in Colorkeyfarbe)
Zusammen ergäbe das:
Jetzt hast du aber 7 Os umsonst gezeichnet, weil sie sowieso nicht sichtbar sind(Colorkeyfarbe).
Du solltest also wenn du Surfaces in ein größeres zusammenfasst, den Platz so gut wie möglich ausfüllen. _________________ 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 |
|
 |
Ranma JLI'ler

Anmeldedatum: 10.12.2002 Beiträge: 167 Wohnort: Cadolzburg Medaillen: Keine
|
Verfasst am: 30.06.2004, 12:15 Titel: |
|
|
also das mit dem rauskopieren.....
meine Hintergründe brauchen zu viel Platz für eine 64 MB Karte,
so also erstelle ich im VideoMem von anfang an 2x dieser Hintergrundflächen und kopiere die zwei Surfaces die dafür gebraucht werden in die Oberflächen vom VideoMem,
ich muss alle 10 sek. eine Oberfläche aus dem Hauptspeicher laden
anstadt sie ständig herauszukopieren
und das mit dem Surfaces, mein ich jetzt Explosions animationen oder
Fliegeranimationen _________________ "Deutsche Sprache schwere Sprache"
sprach der C++er |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.06.2004, 12:23 Titel: |
|
|
Ranma hat Folgendes geschrieben: | und das mit dem Surfaces, mein ich jetzt Explosions animationen oder
Fliegeranimationen |
Achso...meinst du wegen dem Blitten von nur einem Frame des gesamten Animationsurfaces?
Ich glaube, das bringt keinen Vorteil. Das ist glaube ich egal, ob du das jetzt aus einem Surface kopierst oder aus mehreren.
Die Hauptsache ist ja die Anzahl der Kopierungen. _________________ 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 |
|
 |
Ranma JLI'ler

Anmeldedatum: 10.12.2002 Beiträge: 167 Wohnort: Cadolzburg Medaillen: Keine
|
Verfasst am: 30.06.2004, 14:26 Titel: |
|
|
hmmmm,
ich denk jetzt hab ich die Performance schon etwas gesteigert......
bei meinem Bruder seinem gehts schon besser
wer noch tipps hat einfach posten
Danke schon jetzt  _________________ "Deutsche Sprache schwere Sprache"
sprach der C++er |
|
Nach oben |
|
 |
daybreaker Mini JLI'ler
Anmeldedatum: 05.07.2004 Beiträge: 9
Medaillen: Keine
|
Verfasst am: 07.07.2004, 15:33 Titel: |
|
|
The Lord of Programming hat Folgendes geschrieben: |
D.h. die Größe der Sprites spielt weniger eine Rolle. Wichtiger ist, dass du z.B. Sprites, die gegenseitig immer(oder zeitweise) im gleichen (X- und Y-)Abstand stehen, als ein Sprite zusammengefasst werden können.
So gibt es weniger Zeichenforgänge pro Frame  |
Zusatzfrage: Also ist es besser die einzelnen Sprites vor dem Blitten auf ein einzelnes Surface zu packen und dann lieber das große Surface zu Blitten?
day _________________ Visit: www.software1987.de |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 07.07.2004, 15:48 Titel: |
|
|
Ja wäre besser solange du die Sprites nicht bei jedem renderdurchlauf in das Surface renderst das wäre dann verschwendung sondern nur ins Surface renderst wenn es nötig ist. Also entweder nach dem laden der Karte oder wenn etwas gravierendes mit der map geschehen ist. _________________ "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 |
|
 |
|