Freigeben über


Bewegungsunschärfe (Direct3D 9)

Sie können die wahrgenommene Geschwindigkeit eines Objekts in einer 3D-Szene verbessern, indem Sie das Objekt verschwommen und einen verschwommenen Pfad von Objektbildern hinter dem Objekt hinterlassen. Direct3D-Anwendungen erreichen dies, indem das Objekt mehrmals pro Frame gerendert wird.

Denken Sie daran, dass Direct3D-Anwendungen Szenen in der Regel in einem Offscreenpuffer 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 eine Szene rendern, bevor der Frame auf dem Bildschirm angezeigt wird.

Programmgesteuert führt Ihre Anwendung mehrere Aufrufe an eine DrawPrimitive-Methode durch, wobei wiederholt dasselbe 3D-Objekt übergeben wird. Vor jedem Aufruf wird die Position des Objekts geringfügig aktualisiert, wodurch eine Reihe verschwommener Objektbilder auf der Zielrenderingoberfläche erzeugt wird. Wenn das Objekt eine oder mehrere Texturen aufweist, kann Ihre Anwendung den Bewegungsunschärfeeffekt verbessern, indem das erste Bild des Objekts mit allen zugehörigen Texturen nahezu transparent gerendert wird. Jedes Mal, wenn das Objekt gerendert wird, nimmt die Transparenz der Textur des Objekts ab. Wenn die Anwendung das Objekt an seiner endgültigen Position rendert, sollte es die Texturen des Objekts ohne Transparenz rendern. Die Ausnahme ist, wenn Sie einem anderen Effekt Bewegungsunschärfe hinzufügen, der Texturtransparenz erfordert. In jedem Fall sollte das anfangsbild des Objekts im Frame das transparentste sein. Das endgültige Bild sollte am wenigsten transparent sein.

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

Wenn Ihre Anwendung den Effekt simuliert, den der Benutzer mit hoher Geschwindigkeit durch eine Szene bewegt, kann sie der gesamten Szene Bewegungsunschärfe hinzufügen. In diesem Fall rendert Ihre Anwendung die gesamte Szene mehrmals pro Frame. Jedes Mal, wenn die Szene gerendert wird, muss die Anwendung den Standpunkt leicht verschieben. Wenn die Szene sehr komplex ist, kann der Benutzer eine sichtbare Leistungsbeeinträchtigung sehen, da die Beschleunigung aufgrund der steigenden Anzahl von Szenenrenderings pro Frame erhöht wird.

Antialiasing