Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

25.11.2009, 23:34

100 Screenshots in der Sekunde

Hi,

ich möchte ein kleines Programm schreiben welches einen Screenshot macht und ihn mit den Screenshot den es davor gemacht hat vergleicht. Das ganze müsste ca 100 mal in der Sekunde gemacht werden ohne dabei großartig das System zu belasten! :oops:
Nach ein wenig suchen bin ich auf die BitBlt Methode gestoßen.

Wie schnell würde das ganze ablaufen? Ist das überhaupt machbar?

zur Info : ich will wissen wann ein neues Bild gezeichnet wird um eine Shutterbrille zu Syncen

mfg Ludwig

2

25.11.2009, 23:43

Re: 100 Screenshots in der Sekunde

Zitat von »"Ludwig"«


ich möchte ein kleines Programm schreiben welches einen Screenshot macht und ihn mit den Screenshot den es davor gemacht hat vergleicht. Das ganze müsste ca 100 mal in der Sekunde gemacht werden ohne dabei großartig das System zu belasten! :oops:


Is schon ein klein bisschen grenzwertig.

Du könntest jedesmal auf den Backbuffer zugreifen, dort hast du das Bild bereits abgelegt.

3

26.11.2009, 00:15

Erkläre bitte, wofür du das willst, die Fragestellung ist noch sehr wirr.
Lieber dumm fragen, als dumm bleiben!

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

4

26.11.2009, 01:06

Also der Bitblt ist auf einem halbwegs flotten Rechner schon schnell genug für 100hz, allerdings das Komprimieren und Speichern wirst Du so schnell vermutlich nicht hinbekommen - hängt aber auch etwas vom Inhalt und Deinen Programmierfähigkeiten ab. Ob es eine Möglichkeit gibt den Sync zu tracken weiß ich nicht, aber wenn es sich um einen externen Monitor handelt, dürfte das auf jeden Fall technisch machbar sein. Wenn es sich um mehrere Puffer handelt, könntest Du evtl. irgendwie den Zeiger prüfen und wenn dieser wechselt ist auf jeden Fall ein Sync erfolgt.

5

26.11.2009, 08:20

mhh eure ideen sind super werde in der Richtung erstmal weiterlesen ... mein erster Ansatz war es den vsync hardwaremäßig auszulesen und damit zu vergleichen ob sich das Bild verändert hat. Es müssten ja von Stereo Treiber zwei Puffer angelegt sein (werde da auch mal nachforschen) aber ändert sich der Zeiger wenn sich das Bild ändert ? Dachte immer das wäre der gleiche Speicherbereich nur der Inhallt ändert sich. Oder meinst du ich gucke welcher der aktuelle Buffer ist und vergleiche ihn mit dem vorherigen ?

danke schonmal Ludwig

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

6

26.11.2009, 11:03

Es sind immer zwei Speicherbereiche, weil sonst nicht sichergestellt wäre, daß der nächste Frame rechtzeitig fertig berechnet wird. Das würde zu einem unregelmäßigen Wechsel der Frames führen und der 3D-Effekt von Shutterbrillen wäre weg. Ich hab hier eine alte 3D-Relevator rumfliegen, die hat auch einfach den VSync abgefragt (Pin 14) http://de.wikipedia.org/wiki/VGA_%28Anschluss%29

7

26.11.2009, 15:44

nachdem du sie umgebaut hast? Die elsa Brille arbeitet normal mit dem DCC Pin welche vom Grafiktreiber angesteuert wird. Da Nvidia aber eine eigene Brille auf dem Markt hat unterstützen die Treiber schon lange diese Art der Syncronisation nicht mehr. Deswegen will ich ja versuchen die Brille anders anzusteuern. Einfach nur per vSync würde ja voraussetzen das du immer mehr fps hast als der vsync über die Leitung schicken kann.

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

8

26.11.2009, 16:05

Also die Brille hat auch bei NVidia Stereo Treibern einwandfrei funktioniert.

9

27.11.2009, 17:45

mit den neuen treiber leider nicht mehr...

habe mal über die Idee mit dem vergleichen der Zeiger nachgedacht. Wie komme ich am besten an die Buffer? Ich abe mir ein Paar Tuts über das D3d Hooken durchgelesen aber habe noch nicht so den Durchblick.

10

08.12.2009, 15:59

nach lesen vieler Tutorials über das Hooken von D3d bin ich zu dem Ergebniss gekommen das ich Probleme mit anticheat Programmen bekommen werde (VAC) , da hacks ja auch oft dafür verwendet werden. BitBlt scheint auch nicht das richtig zu sein.
Gibt es eine andere Möglichkeit an den Zeiger bzw an den Backbuffer zu kommen? Ich will ihn ja nur auslesen und nicht schreiben!

danke

ludwig

Werbeanzeige