Wielki audyt matematyki Moonlight Animate — setki weryfikacji, dziesiątki poprawek precyzji
Przeprowadziliśmy największy jak dotąd przegląd jakości Moonlight Animate: pełny audyt poprawności matematycznej całej aplikacji — od trybów mieszania i zarządzania kolorem, przez silnik pędzli, zaznaczenia, tekst i wektory, po animację, węzły proceduralne i eksporty. Każdy obszar został zweryfikowany względem kanonicznych wzorów i specyfikacji formatów, a następnie wszystkie potwierdzone błędy naprawiliśmy i zweryfikowaliśmy drugim, niezależnym przeglądem.
Co się poprawiło w praktyce
Bezpieczeństwo pracy:
- Obrót obrazu o 90° na niekwadratowym płótnie działał błędnie — naprawione.
- Grupy warstw z kryciem poniżej 100% renderowały się zbyt ciemno (krycie liczone podwójnie), a scalanie w dół utrwalało ten błąd w pikselach — teraz krycie grup jest dokładnie takie, jak ustawisz.
- Import plików PSD: kolejność warstw i widoczność masek są teraz poprawne.
Eksporty:
- Eksport MP4 miał błędny zegar ścieżki wideo — teraz animacje grają w dokładnym tempie, z audio w synchronizacji.
- GIF-y utrzymują równe tempo niezależnie od liczby klatek na sekundę; APNG obsługuje ułamkowe fps co do ułamka.
- Zapis powtórki ze Studia transmisji zapisuje pełny bufor, a pliki dostają poprawne metadane rozdzielczości.
Rysowanie:
- Korekta pociągnięcia po zakończeniu kreski realnie działa; kreski nie zaczynają się już zgrubieniem przy lekkim dotknięciu i nie kończą o segment za wcześnie.
- Skalowanie i obrót źródła klonowania działają we właściwą stronę; kopie lustrzane przy malowaniu symetrycznym są teraz dokładnymi odbiciami (łącznie z pochyleniem rysika i losowością).
- Aerograf nakłada farbę w stałym tempie niezależnie od obciążenia komputera.
Zaznaczenia i tekst:
- Wtapianie nie rozmywa wielokrotnie istniejącego zaznaczenia przy dodawaniu kolejnych obszarów; różdżka nie „przecieka" przez przezroczyste tło; przekształcanie zaznaczenia zachowuje miękkie krawędzie.
- Wcięcia akapitu i odstępy przed akapitem naprawdę działają, interlinia w punktach jest dokładna, a kursor tekstowy trafia idealnie tam, gdzie klikniesz — również przy wcięciach i justowaniu.
Kolor:
- Ciemne gradienty w dokumentach o szerokim gamucie wyświetlają się bez pasm i przekłamań w cieniach — zarówno na ekranie, jak i w eksportach.
- Tryby mieszania z rodziny Freeze/Heat/Glow/Parallel/Negation liczą się według klasycznych wzorów.
Animacja i sceny:
- Edycja osi czasu nie wydłuża już sceny przy każdej zmianie; synchronizacja z chmurą nie gubi obiektów utworzonych po drugiej stronie; malowanie przy włączonej kamerze 2D trafia pod kursor.
- Odtwarzacz w przeglądarce, eksport HTML i aplikacja desktopowa grają teraz identycznie: te same easingi (zweryfikowane wzór po wzorze), to samo tempo, te same sekwencje klatek, ta sama głośność — i nowość: panorama stereo dźwięku działa w całym łańcuchu, od edytora po czytnik.
Węzły proceduralne:
- Przepięcie połączenia natychmiast odświeża wynik; szum przepływowy animuje się płynnie bez migotania; rastr komiksowy oddaje tony poprawnie (z wygładzonymi krawędziami kropek); gwiazda ma proste ramiona; kafelkowanie nie wnosi szwów do środka tekstury.
Skala przeglądu
Audyt objął ~150 tysięcy linii kodu w 13 obszarach. Zweryfikowaliśmy setki wzorów — od algebry kompozycji kolorów, przez podział krzywych Béziera i dyskretyzację równania Poissona w narzędziach retuszu, po zgodność interpolacji animacji między aplikacją a przeglądarką. Wszystkie poprawki przeszły drugi, niezależny przegląd weryfikacyjny, który potwierdził matematykę i wyłapał ostatnie niuanse zanim trafiły do Was.
To fundament pod kolejne funkcje: teraz, gdy każde narzędzie liczy dokładnie to, co obiecuje, możemy budować dalej na pewnym gruncie.