besseres dsa

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Conrad
Beiträge: 27
Registriert: 06.11.2009 18:26
Computerausstattung: Win Vista 32bit , Intel Core 2 Duo CPU t5750 @2GHz
3GB RAM
Kontaktdaten:

besseres dsa

Beitrag von Conrad »

gibt es eigentlich noch schnellere methoden als

Code: Alles auswählen

Repeat
  ClearScreen(0)
  
  ...
  
  StartDrawing(ScreenOutput())
  
  Plot(0,0,0)
  
  StopDrawing()
  
  ...
  
  FlipBuffers()
Until quit=1
ich frage, weil das dsa-drawing so bei mir nicht annährend so schnell ist wie die sprite-darstellung.
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Re: besseres dsa

Beitrag von gnasen »

schau einfach mal in der Help unter DrawingBuffer(). Es gibt auch ein Beispiel dazu, was ganz gut zu verstehen ist.
Das sollte die schnellste native Variante sein.

Generell braucht der Aufruf von StartDrawing() etwas, ist nicht der schnellste. Deswegen möglichst alle Zeichenoperationen in so wenig Drawing-Blöcken wie es gerade geht unterbringen.
pb 4.51
Benutzeravatar
Conrad
Beiträge: 27
Registriert: 06.11.2009 18:26
Computerausstattung: Win Vista 32bit , Intel Core 2 Duo CPU t5750 @2GHz
3GB RAM
Kontaktdaten:

Re: besseres dsa

Beitrag von Conrad »

danke für die schnelle antwort!

DrawingBuffer() hab ich schon versucht, habe ihn 2x am anfang vor der schleife aufgerufen und den wert gespeichert und dann
direkt in den mem geschrieben (immer abwechselnd für je einen flippbuffers()-mem). hat aber geflackert wie wild.
Bild

YEYQ!!!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: besseres dsa

Beitrag von Kaeru Gaman »

je nachdem was du machen willst...
es ist meistens schneller, mehrere hundert sprites darzustellen, als was umfangreiches zu drawen.
"objekte" die du per drawing zusammensetzen willst, kannst du zu beginn auf ein Sprite drawen und später nur noch displayen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Conrad
Beiträge: 27
Registriert: 06.11.2009 18:26
Computerausstattung: Win Vista 32bit , Intel Core 2 Duo CPU t5750 @2GHz
3GB RAM
Kontaktdaten:

Re: besseres dsa

Beitrag von Conrad »

das ist eine gute idee, die aber nur ein teilproble von mir löst, es muss nämlich auch noch gezoomt werden (alles was gedrawt wird) ...
Bild

YEYQ!!!
Benutzeravatar
Conrad
Beiträge: 27
Registriert: 06.11.2009 18:26
Computerausstattung: Win Vista 32bit , Intel Core 2 Duo CPU t5750 @2GHz
3GB RAM
Kontaktdaten:

Re: besseres dsa

Beitrag von Conrad »

hab mal getestet, wieviel punkte er jz wirklich drawt : ca. 70.000
mit entsprechenden performance-algos (keine pixel mit gleichen koordinaten 2x darstellen,etc...) komm ich vieleicht auf 30000,
aber mit allem was noch dazukommen wird, werden es sicher noch mal 2.5x so vieler.
Bild

YEYQ!!!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: besseres dsa

Beitrag von Kaeru Gaman »

ach übrigens... soweit ich weiß, nutzt der PB-Befehl Plot nur DSA wenn du die Farbe mit angibst, ohne Farbe geht er über den DC, wie die anderen Draw befehle.
(deswegen ist es wichtig, Plots mit Farbangabe nicht mit anderen Drawings zu mischen, weil er sonst hin und her schalten muss, das verlangsamt das ganze extrem)

das galt jedenfalls für die alte Drawing-Lib, obs seit der 4.40 mit der neuen Lib noch zutrifft ist mir jetzt nicht bekannt.

zu dem gezoomten:
du könntest auch auf ein Sprite displayn, daraus ein Sprite3D machen und das zoomen.
das geht allerdings nur mit DX7 richtig.

alternativ könntest du noch einen WondowedScreen mit Autostretch benutzen,
wenn du einen 100x100 WindowedScreen mit Autostretch in ein 200x200 Fenster packst,
wird der automatisch 2x gezoomt, damit überläßt du es der Hardware, das ist das schnellste.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Conrad
Beiträge: 27
Registriert: 06.11.2009 18:26
Computerausstattung: Win Vista 32bit , Intel Core 2 Duo CPU t5750 @2GHz
3GB RAM
Kontaktdaten:

Re: besseres dsa

Beitrag von Conrad »

Kaeru Gaman hat geschrieben:ach übrigens... soweit ich weiß, nutzt der PB-Befehl Plot nur DSA wenn du die Farbe mit angibst, ohne Farbe geht er über den DC, wie die anderen Draw befehle.
(deswegen ist es wichtig, Plots mit Farbangabe nicht mit anderen Drawings zu mischen, weil er sonst hin und her schalten muss, das verlangsamt das ganze extrem)
plot hat bei mir praktisch immer eine farbangabe.

aber was macht den die sprite-engine(?) so groß anders als dsa?
Bild

YEYQ!!!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: besseres dsa

Beitrag von Kaeru Gaman »

das sind nur noch reine textures, die sich direkt in der Grafikkarte tummeln.
du schiebst also nur noch die position für die ausgabe durch den port, alle daten sind im GraRam.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Conrad
Beiträge: 27
Registriert: 06.11.2009 18:26
Computerausstattung: Win Vista 32bit , Intel Core 2 Duo CPU t5750 @2GHz
3GB RAM
Kontaktdaten:

Re: besseres dsa

Beitrag von Conrad »

also ist es am schnelsten, die sich nicht ändernden obj. mit sprites(3d) anzuzeigen und den rest mit dsa zu drawen, oder?
eigentlich wollte ich ja keine sprites verwenden, sondern alles direkt aus der berechnung auf den screen bringen >.<
Zuletzt geändert von Conrad am 24.01.2010 16:20, insgesamt 1-mal geändert.
Bild

YEYQ!!!
Antworten