Freigeben über


Bewegungsunschärfe (Direct3D 9)

Sie können die wahrgenommene Geschwindigkeit eines Objekts in einer 3D-Szene erhöhen, indem Sie das Objekt verschwommen und eine verschwommene Spur von Objektbildern hinter dem Objekt hinterlassen. Direct3D-Anwendungen erreichen dies, indem sie das Objekt mehrmals pro Frame rendern.

Denken Sie daran, dass Direct3D-Anwendungen Szenen in der Regel in einem Off-Screen-Puffer rendern. Der Inhalt des Puffers wird auf dem Bildschirm angezeigt, wenn die Anwendung die IDirect3DDevice9::P resent-Methode aufruft . Ihre Direct3D-Anwendung kann das Objekt mehrmals in einer Szene rendern, bevor der Frame auf dem Bildschirm angezeigt wird.

Programmgesteuert führt Ihre Anwendung mehrere Aufrufe an eine DrawPrimitive-Methode aus und übergibt wiederholt dasselbe 3D-Objekt. Vor jedem Aufruf wird die Position des Objekts leicht aktualisiert, sodass eine Reihe von unscharfen Objektbildern auf der Zielrenderingoberfläche erzeugt wird. Wenn das Objekt über eine oder mehrere Texturen verfügt, kann Ihre Anwendung den Bewegungsunschärfeeffekt verbessern, indem das erste Bild des Objekts mit all seinen Texturen nahezu transparent gerendert wird. Jedes Mal, wenn das Objekt gerendert wird, nimmt die Transparenz der Textur des Objekts ab. Wenn Ihre Anwendung das Objekt an seiner endgültigen Position rendert, sollte es die Texturen des Objekts ohne Transparenz rendern. Die Ausnahme ist, wenn Sie Bewegungsunschärfe zu einem anderen Effekt hinzufügen, der Texturtransparenz erfordert. In jedem Fall sollte das Anfangsbild des Objekts im Rahmen das transparenteste sein. Das endgültige Bild sollte das am wenigsten transparente sein.

Nachdem Ihre Anwendung die Reihe von Objektbildern auf der Zielrenderingoberfläche gerendert und den Rest der Szene gerendert hat, sollte sie die IDirect3DDevice9::P resent-Methode aufrufen, um den Frame auf dem Bildschirm anzuzeigen.

Wenn Ihre Anwendung den Effekt simuliert, dass sich der Benutzer mit hoher Geschwindigkeit durch eine Szene bewegt, kann sie der gesamten Szene bewegungsunschärfen. In diesem Fall rendert Ihre Anwendung die gesamte Szene mehrmals pro Frame. Jedes Mal, wenn die Szene gerendert wird, muss ihre Anwendung den Standpunkt leicht verschieben. Wenn die Szene sehr komplex ist, kann dem Benutzer eine sichtbare Leistungsbeeinträchtigung angezeigt werden, da die Beschleunigung aufgrund der steigenden Anzahl von Szenenrenderings pro Frame erhöht wird.

Antialiasing