JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=439a76b04e892de0eb0235012b4dcd33Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

DirectDraw Speed

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Ranma
JLI'ler



Anmeldedatum: 10.12.2002
Beiträge: 167
Wohnort: Cadolzburg
Medaillen: Keine

BeitragVerfasst am: 27.06.2004, 15:16    Titel: DirectDraw Speed Antworten mit Zitat

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... Exclamation
also hoffe ich von den hierigen alt eingesessenen DirectDraw'lern
ein paar Tips zu erhaschen
Wink

Danke schon jetzt Very Happy
_________________
"Deutsche Sprache schwere Sprache"
sprach der C++er
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 27.06.2004, 15:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 27.06.2004, 21:41    Titel: Antworten mit Zitat

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 Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ranma
JLI'ler



Anmeldedatum: 10.12.2002
Beiträge: 167
Wohnort: Cadolzburg
Medaillen: Keine

BeitragVerfasst am: 30.06.2004, 10:59    Titel: Antworten mit Zitat

Danke schon mal Wink
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 Question
bringt es vorteile, wenn ich gleiche oberflächen die öfter gezeichnet werden müssen hinter einander zeichnen lasse Question
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 Confused
_________________
"Deutsche Sprache schwere Sprache"
sprach der C++er
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 30.06.2004, 11:24    Titel: Antworten mit Zitat

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 Question

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 Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ranma
JLI'ler



Anmeldedatum: 10.12.2002
Beiträge: 167
Wohnort: Cadolzburg
Medaillen: Keine

BeitragVerfasst am: 30.06.2004, 11:36    Titel: Antworten mit Zitat

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 Question
_________________
"Deutsche Sprache schwere Sprache"
sprach der C++er
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 30.06.2004, 11:54    Titel: Antworten mit Zitat

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 Question

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)
Zitat:
XOO
OOO
OOO

Zitat:
OOO
OOO
OOX

Zusammen ergäbe das:
Zitat:
XOO
OOO
OOX

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ranma
JLI'ler



Anmeldedatum: 10.12.2002
Beiträge: 167
Wohnort: Cadolzburg
Medaillen: Keine

BeitragVerfasst am: 30.06.2004, 12:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 30.06.2004, 12:23    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ranma
JLI'ler



Anmeldedatum: 10.12.2002
Beiträge: 167
Wohnort: Cadolzburg
Medaillen: Keine

BeitragVerfasst am: 30.06.2004, 14:26    Titel: Antworten mit Zitat

hmmmm,
ich denk jetzt hab ich die Performance schon etwas gesteigert......
bei meinem Bruder seinem gehts schon besser Wink
wer noch tipps hat einfach posten
Danke schon jetzt Cool
_________________
"Deutsche Sprache schwere Sprache"
sprach der C++er
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
daybreaker
Mini JLI'ler



Anmeldedatum: 05.07.2004
Beiträge: 9

Medaillen: Keine

BeitragVerfasst am: 07.07.2004, 15:33    Titel: Antworten mit Zitat

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 Wink


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
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 07.07.2004, 15:48    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum