V-Sync - Synchronizacja pionowa.
Pozwoliłem sobie "przepisać" bardzo ciekawy tekst o synchronizacji pionowej, która działa pod OpenGL.
Tekst napisał Peter Hamel, a tłumaczenie na polski wykonał Krzysztof 'Necromancer' Sapkowski.
Życze miłej lektury.
Jeśli jesteś stałym czytelnikiem pism o grach na PC i stron internetowych, to zauważyłeś prawdopodobnie, że wiele z omawianych tam zaawansowanych technicznie kart graficznych osiąga znacząco podobne wyniki podczas pomiarów szybkości w Quake3. Czy tak wiele kart graficznych może być tak do siebie podobnych gdy idzie o benchmarki ? Odpowiedź oczywiście brzmi "nie" - i jest to sytuacja, która zirytowała wielu graczy, ze mną włącznie. Nie ma znaczącej różnicy pomiędzy tym jak szybko Voodoo3 3000 jest w stanie renderować grafikę trójwymiarową w porównaniu z "przestarzałym" obecnie zestawem Voodoo2 SLI, ale pomiar tego jak szybko może działać Voodoo3 jest ograniczony przez coś, co nazywa się V-Sync. Potraktujcie to jak ograniczenie szybkości do 100 km/h. Jak możesz naprawdę ocenić swoją maszynę z podrasowanym silnikiem osiągającą 200km/h, jeśli największa szybkość z jaką możesz (legalnie) jechać to 100km/h? Na tym polega problem z V-Sync.Zostaw V-Sync włączony, a wydajność twojego nowoczesnego akceleratora spadnie znacznie poniżej jego potencjalnych możliwości.Ponieważ Microsoft "odradza" producentom akceleratorów wprowadzanie przełącznika V-Sync do sterowników DirectX, również twórcy gier zalecają by w ich gry grać z włączoną V-Sync, zaś pisma komputerowe i strony internetowe testowały akceleratory 3D z włączoną V-Sync. Jednak jako gracz, gdy czytam artykuł zachwalający potencjalnym nabywcom wspaniałości nowychakceleratorów, chcę prawdy - chcę wiedzieć do czego każda z tych kart jest naprawdę zdolna. Może ta ekstra wydajność nie jest dziś wykorzystywana, ale jeśli wiem gdzie kończą się możliwości każdej z tych kart, to mogę się dzięki temu zorientować czy za rok będę musiał kupić nową kartę graficzną, czy też będę mógł jej używać z nowymi grami o bogatej grafice, które ukazują się co roku. Jeśli włączymy v-sync nigdy nie dowiemy się z jaką mocą karty mamy naprawdę do czynienia.Na szczęście ostatnio nastąpiła w prasie kompterowej zmiana nastawienia w odniesieniu do V-Sync i dlatego mogę podać wszystkie związane ze tą sprawą szczegóły.
Podstawy
Prosto rzecz ujmując V-Sync to relacja pomiędzy prędkością odświeżania twojego akceleratora 3D a prędkością odświeżania monitora. Prędkość odświeżania oznacza po prostu ile razy na sekundę monitor odnawia obraz, który widzisz na ekranie. Kiedy po raz pierwszy podłączasz swój nowiutki monitor, Windows zwykle automatycznie go rozpozna (plug-and-play) i ustawić domyślną prędkość odświeżania dla twojego konkretnego monitora - zwykle w okolicach 75Hz, czyli 75 klatek na sekundę. Ogólnie rzecz biorąc sprawa wygląda wtedy w ten sposób, że monitor ustawiony na 75Hz ogranicza tym samym prędkość odświeżania do 75 klatek na sekundę, ponieważ pozostają one ze sobą w bezpośrednim związku.Dla większości programów i edytorów tekstu jest to akurat w sam raz. W rzeczywistości przy wartościach wyższych niż 75Hz ludzkie oko przestaje tak naprawdę nadążać i nie rejestruje niczego co jest szybsze. Polecałbym jednak zachowanie prędkości odświeżania 75Hz lub wyższej, ponieważ przy każdej niższej wartości możesz wyczuć coś w rodzaju "stroboskopu" na ekranie, kiedy niemal "widzi się" jak monitor odnawia obraz. Powoduje to zmęczenie oczu i silne bóle głowy po dłuższym korzystaniu z komputera.
No dobrze, ale jak to wszystko ma się do V-Sync?
Jak wyjaśniłem powyżej to ważne by zrozumieć na czym polega prędkość odświeżania, ponieważ pozwala ci ona uzyskać na monitorze najlepszy możliwy obraz dzięki temu, że możesz dostosować go w taki sposób by czerpać korzyści z najszybszej możliwiej prędkości odświeżania posiadanego akceleratora i tak płynnej pracy gier, do jakiej zdolny jest twój komputer. Im wyższa prędkość odświeżania, tym "szybszy" będzie twój akcelerator, a co za tym idzie tym płynniej będą chodzić gry. To jeden z powodów, dla których powinieneś ustawić prędkość odświeżania akceleratora na wyższą niż domyślne 75Hz w odrębnym oprogramowaniu dla sterownika, które masz zainastalowane we Właściwościach Ekranu. Pamiętaj jednak, że najnowsze akceleratory 3D nadal są ograniczane przez moc procesora, co powoduje w pewnym sensie "blokadę" ze strony CPU podczas przetwarzania instrukcji z karty.
Zadajesz sobie pewnie pytanie "Dlaczego zatem po ustawieniu prędkości odświeżania na tak wysoką jaką zaleca producent miałbym się nią jeszcze kiedykolwiek przejmować?". Cóż, jeśli masz włączoną V-Sync, monitor nie jest w stanie dotrzymać kroku maksymalnej ilości klatek na sekundę osiąganej przez nowsze akceleratory w grach. W pewnym sensie monitor spowalnia twój akcelerator. No, więc dlaczego miałbyś się przejmować?
Prawda w reklamie.
Wyłączenie V-Sync ma krytyczne znaczenie podczas testów faktycznej wydajności, ale włączenie V-Sync ma także krytyczne znaczenie dla jakości obrazu i działania gier.
Robimy sobie dobrze
Kiedy skłaniasz się ku temu, by zostawić V-Sync wyłączoną - aby osiągnąć najwyższą możliwą liczbę wyświetlanych klatek na jaką pozwala twój akcelerator - to akcelerator może teraz wyświetlać na ekranie monitora obrazy tak szybko jak potrafi nie czekając na to aż wyświetlaną przez niego liczbę klatek dogoni monitor. Teraz możesz stwierdzić dokładnie jak szybko twój akcelerator jest w stanie produkować klatki animacji.Oto co przy użyciu Quake3 V-Sync oznaczała dla benchmarków. Do przeprowadzenia testów posłużyłem się komputerem 450MHz Pentium II z 128MB RAM i akceleratorem Voodoo3 3000. Nie dostosowywałem sterowników karty w żaden sposób, ani nie wyłączyłem żadnych efektów oprócz V-Sync.
________V-sync włączona____V-sync wyłączona
800x600.......51.5 fps..............97.4 fps
1024x768.....39.6 fps..............60.6 fps
1600x1200...18.3 fps..............28.5 fps
A więc, jak widzisz, jest znacząca różnica w ilości wyświetalnych klatek, gdy zostawi się V-Sync wyłączoną i wtedy, gdy się ją włączy. Coś się wtedy zyskuje, ale coś się jednak również traci...
Co tracisz?
Jedyny problem z wyłączeniem v-sync polega na skutkach dla jakości obrazu.Jeśli monitor nie jest w stanie dotrzymać kroku akceleratorowi, akcelerator zacznie wyświetlać na ekranie nowy obraz zanim zniknie poprzedni czego efektem jest "rozrywanie" tych dwóch obrazów. Oprócz wizualnego rozdarcia i tekstur, które się ze sobą nie pokrywają, mogą pojawić się inne anomalie obrazu, takie jak "rozmazywanie", które nie wpływa na szybkość gry, ale jej stronę wizualną czyni mniej powabną.
W większości przypadków 60fps wystarcza by grało się świetnie i to dlatego rozsądnie jest zostawić v-sync włączoną gdy nie przeprowadza się pomiarów szybkości. Ustaw jednak prędkość odświeżania tak wysoką jaka zalecana jest dla twojej rozdzielczości i to samo zrób dla ustawień odświeżania akceleratora. Zapewne uzyskasz prędkości odświeżania, które będą do przyjęcia (w zależności od komptera i karty graficznej), a także płynną grę i wizualną ucztę dla oczu.
Gdzie jest przełącznik?
Nie ma jednej standardowej metody włączania i wyłączania v-sync. Różnice mogą być znaczące w zależności od akceleratora. Nie mam miejsca by wyjaśnić tutaj jak się to robi w przypadku każdego z dostępnych akceleratrów, ale mogę podać przykład jak to zrobić gdy masz Voodoo3 3000 (*).W rzeczywistości jest to bardzo proste. Wystarczy tylko, że ściągniesz bardzo popularny Voodoo3 Overclocker Utility napisany przez Gary Petersona.Program pozwala włączać i wyłączać v-sync, a także dostosować Voodoo3 pod kilkoma innymi względami aby poprawić jego wydajność.