Udostępnij za pośrednictwem


Rozmycie ruchu (Direct3D 9)

Można zwiększyć postrzeganą szybkość obiektu w scenie 3D, rozmycie obiektu i pozostawienie rozmytego śladu obrazów obiektów za obiektem. Aplikacje Direct3D to robią, renderując obiekt wiele razy na ramkę.

Pamiętaj, że aplikacje Direct3D zwykle renderują sceny w buforze poza ekranem. Zawartość buforu jest wyświetlana na ekranie, gdy aplikacja wywołuje metodę IDirect3DDevice9::P resent. Aplikacja Direct3D może wielokrotnie renderować obiekt w scenie, zanim wyświetli ramkę na ekranie.

Programowo aplikacja wykonuje wiele wywołań metody DrawPrimitive, wielokrotnie przekazując ten sam obiekt 3D. Przed każdym wywołaniem pozycja obiektu jest nieznacznie aktualizowana, tworząc serię rozmytych obrazów obiektów na docelowej powierzchni renderowania. Jeśli obiekt ma co najmniej jedną teksturę, aplikacja może zwiększyć efekt rozmycia ruchu, renderując pierwszy obraz obiektu ze wszystkimi jego teksturami prawie przezroczystymi. Za każdym razem, gdy obiekt jest renderowany, przezroczystość tekstury obiektu zmniejsza się. Gdy aplikacja renderuje obiekt w końcowej pozycji, powinien renderować tekstury obiektu bez przezroczystości. Wyjątkiem jest dodanie rozmycia ruchu do innego efektu, który wymaga przezroczystości tekstury. W każdym razie początkowy obraz obiektu w ramce powinien być najbardziej przezroczysty. Końcowy obraz powinien być najmniej przezroczysty.

Gdy aplikacja renderuje serię obrazów obiektów na docelowej powierzchni renderowania i renderuje resztę sceny, powinna wywołać metodę IDirect3DDevice9::P resent, aby wyświetlić ramkę na ekranie.

Jeśli aplikacja symuluje efekt przechodzenia przez scenę z dużą prędkością, może dodać rozmycie ruchu do całej sceny. W takim przypadku aplikacja wielokrotnie renderuje całą scenę na ramkę. Za każdym razem, gdy scena jest renderowana, aplikacja musi nieznacznie przenieść punkt widzenia. Jeśli scena jest bardzo złożona, użytkownik może zobaczyć widoczne obniżenie wydajności w miarę zwiększania przyspieszenia ze względu na rosnącą liczbę renderowania scen na ramkę.

antialiasing