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

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

1

29.03.2014, 19:45

V-Sync in Direct X11

Liebe Leser.

Mir ist etwas aufgefallen, als ich in meiner D3D11-Klasse die Initialisierung noch mal durchging. Im Buch, worauf meine Engine (Die Klasse inklusive) basiert, wurde kein V-Sync Implementiert.
Wie macht man das in D3D11.

Geht das zufälligerweise hiermit

C-/C++-Quelltext

1
SwapChainDesc.BufferDesk.RefreshRate.Denominator = 1  ?



oder muss ich es selbst implementiere?

Ich persönlich hasse diese Verzerrungen! bevor ich vor 3 Jahren anfing Spiele zu entwickeln wusste ich nicht, woher diese Verzerrungen kommen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

29.03.2014, 19:58

Schau dir mal an, was der erste Parameter von IDXGISwapChain::Present() macht... ;)

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

3

29.03.2014, 20:46

Achso. Danke

Ich habe mich mal im Internet schlau gemacht.

Man kann folgende Werte angeben

0 -> Es findet keine Synchronisation statt.
1 -> Es wird Syncronisiert.


Jedoch heißt es nicht, das bei "1" Synchronisiert wird und bei "0" nicht. Man kann auch 2, 3, 4 angeben.
Es ist eine Art Skalar. Jedoch habe ich das nicht so richtig verstanden.

"
0 - The presentation occurs immediately, there is no synchronization.
1,2,3,4 - Synchronize presentation after the nth vertical blank.
"

Quelle -> MSDN

CentuCore

Frischling

Beiträge: 43

Wohnort: Wien

  • Private Nachricht senden

4

30.03.2014, 07:56

1 vertical blank entspricht einer kompletten Bilddarstellung (1 Hertz), wenn ich mich nicht irre.
Sprich: Wieviele Wiederholungen soll dein letzter Frame mindestens dargestellt werden (max. 4)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

30.03.2014, 13:44

0 -> kein VSync
1 -> Sync auf den nächsten Vertical Blank (<- das, was du wohl willst)
2 -> Sync auf den übernächsten Vertical Blank
3 -> Sync auf den überübernächsten Vertical Blank
...

;)

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

6

30.03.2014, 16:06

OK. Danke.

Ich nehme an das der Wert 2 mehr als der Wert 1 an Ressourcen verbraucht.

CentuCore

Frischling

Beiträge: 43

Wohnort: Wien

  • Private Nachricht senden

7

30.03.2014, 19:47

Wenn du mit Ressourcen Zeit meinst, dann ja.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

30.03.2014, 19:55

Bist du dir eigentlich sicher, dass dir klar ist, was V-Sync eigentlich ist? Was genau tut V-Sync denn deiner Meinung nach?

LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

9

31.03.2014, 16:29

Ein anderes V-Sync Intervall als 1 zu verwenden, habe ich schon mal ausprobiert. Ich verstehe aber nicht, wozu das gut sein soll.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

31.03.2014, 16:42

Ein anderes V-Sync Intervall als 1 zu verwenden, habe ich schon mal ausprobiert. Ich verstehe aber nicht, wozu das gut sein soll.

Damit kannst du z.B. eine Framerate von 30 fps hinkriegen.

Werbeanzeige

Ähnliche Themen