Renderuję duszki z dokładnymi współrzędnymi pikseli, aby uniknąć efektu rozmycia spowodowanego wygładzaniem krawędzi (duszki są pikselami i wyglądałyby okropnie, gdyby były filtrowane). Ponieważ jednak ruch obiektów obejmuje zmienną prędkość, grawitację i interakcje fizyczne, trajektoria jest obliczana z precyzją subpikseli.
Przy wystarczająco dużych prędkościach przestrzeni ekranu (vΔt większych niż 2 lub 3 piksele) działa to bardzo dobrze. Jednak gdy prędkość jest mała, może pojawić się zauważalny efekt schodowy, szczególnie wzdłuż linii ukośnych. Nie jest to już problemem przy bardzo niskich prędkościach przestrzeni ekranu (v << 1 piksel na sekundę), więc szukam tylko rozwiązania dla średnich wartości prędkości.
Po lewej stronie jest wykreślona trajektoria dla dużej prędkości, uzyskana przez proste zaokrąglenie współrzędnych obiektu. Na środku widać, co dzieje się, gdy prędkość staje się mniejsza, i efekt schodów, o którym mówię. Po prawej stronie chciałbym uzyskać miejsce trajektorii.
Interesują mnie pomysły algorytmów do filtrowania trajektorii w celu zminimalizowania aliasingu, przy jednoczesnym zachowaniu oryginalnego zachowania przy dużych i małych prędkościach. Mam dostęp do Δt, natychmiastowej pozycji i prędkości, a także dowolnej liczby poprzednich wartości, ale ponieważ jest to symulacja w czasie rzeczywistym, nie wiem o przyszłych wartościach (choć w razie potrzeby oszacowanie można ekstrapolować przy pewnych założeniach) . Pamiętaj, że z powodu symulacji fizyki mogą również wystąpić nagłe zmiany kierunku.
velocity.y / velocity.x
współczynnik korekcji proporcjonalny do prędkości.