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

05.07.2003, 21:42

kapitel 2 einfaches Triangle

Hi,

in Kapitel 2, wird ein einfaches Dreieck gedreht. Im Vollbildmodus läuft dies extrem flüssig ab. Im Fenstermodus kann man allerdings erkennen, wie das Dreieck vorallem wenn die Spitze ganz nach unten zeigt doch Sprünge vorhanden sind.
Ich habe eine GF4 TI 4200. Da müsste dieses Dreieck mit mindestens 1000 FPS laufen. ???
Warum ist dann ein krasser Unterschied erkennbar ?

ciao,
TomCat :)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

05.07.2003, 22:01

In Wirklichkeit sind es auch im Fenstermodus wahrscheinlich 1000 FPS oder mehr. Jedoch scheint Windows den Programmen im Fenstermodus generell weniger Priorität zuzuteilen, sodass kleine Sprünge unvermeidbar sind. Das wirst Du bei allen Programmen und Spielen im Fenstermodus bemerken, auch bei den DirectX-SDK-Samples...

3

05.07.2003, 22:28

Hi,

leider stimmt das so nicht. Der Scheduler von Windows läuft relativ schnell. Es kann natürlich passieren, dass bei Auslagerungen etc. ein Programm mal kurz stehen bleibt.
Die SDK Samples laufen auch im Fenstermodus sehr flüssig. Der Dolphin läuft bei mir mit einer Auflösung von 1024 immer noch mit ca. 400 FPS ohne zu ruckeln.
Ich habe gerade das "Environment-Mapping" aus Kapitel 11 getestet.
Es läuft im Vollbildmodus perfekt flüssig. Im Fenstermodus (1024*768) springt es aber so richtig. geschätzte 5 FPS !!!!!

Teste es bitte mal, ob das bei dir auch so ist. ;)

ciao,
TomCat :)

[EDIT] Ich könnte mir vorstellen, dass es an DInput liegt.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

05.07.2003, 22:51

Kann nicht sein, DirectInput wird da nicht verwendet.
Habe aber jetzt etwas gefunden. Ersetze in "TriBase\Beispiele\Allgemeines\InitDirect3D.cpp" und in "TriBase\Src\tbDirect3D.cpp" den Bezeichner "D3DPRESENT_INTERVAL_DEFAULT" durch "D3DPRESENT_INTERVAL_IMMEDIATE".
Hätte eigentlich auch so klappen sollen, aber egal. Mit "D3DPRESENT_INTERVAL_IMMEDIATE" geht es in jedem Fall so schnell wie nur möglich.
DirectX-SDK-Beispielprogramme zeigen übrigens dasselbe "ruckelige" Verhalten, wenn man sie mit dem ursprünglichen Wert "D3DPRESENT_INTERVAL_DEFAULT" startet.

5

05.07.2003, 23:28

Hi,

jetzt läuft es absolut flüssig !!
Durch den "D3DPRESENT_INTERVAL_IMMEDIATE" kommt es durch den fehlenden VSync zu minimalen Versetzen. Das lässt sich selbverständlich nicht vermeiden.

Meines Erachtens lag der "Fehler" in der Erfassung der Tastatur, die (ausser man benutzt DInput) vom Tastaturtreiber "gepulst wird(je nach Einstellung ca. 18 mal /Sek). Da kann es dann zu Timing problemen kommen, wenn der VSync eingeschaltet ist. Das ist dann sehr hardwareabhängig. Wenn das zufällig passt, kann es bei manchen Rechner durchaus keine Probleme geben. :)

Das nur mal als Anregung. :)

ciao,
TomCat :)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

05.07.2003, 23:31

Ah, jetzt weiß ich, was Du damit meinst. Aber das dürfte auch nicht zu einem Problem führen, weil ich Funktionen wie GetAsyncKeyState benutze. Die liefern immer den momentanen Status. Wenn ich eine Taste gedrückt halte, wird diese Funktion zu jedem Zeitpunkt TRUE zurückliefern, und nicht nur 18x pro Sekunde oder so.

7

06.07.2003, 00:16

Hi,

du hast Recht !
Selbst wenn man die ganze Tastaturerfassung herausnimmt, und das Bild einfach durchlaufen lässt, hat man den selben Ruckeleffekt !

Wie kann denn das sein ? :crying:
Das würde mich schon sehr interessieren !

ciao,
TomCat:)

8

06.07.2003, 13:58

Hi,

keiner eine Idee ?

ciao,
TomCat :)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

06.07.2003, 14:01

Die Zeit, die zum Rendern gebraucht wird, ist ja nicht immer gleich. Wenn er mit dem Rendern dann kurz nach einem V-Sync fertig ist, kann er diesen nicht mehr "erwischen" und muss auf den nächsten warten. So sind zumindest kleinere Ruckler erklärbar.

10

06.07.2003, 14:51

Hi,

an dem liegts definitiv nicht, da der Rendervorgang wesentlich schneller ist, als der Refreshzyklus, sodass immer auf den nächsten refresh gewartet wird.
Aber ich habe den Fehler jetzt gefunden, und es läuft astrein ! :)

ciao,
TomCat

Werbeanzeige