Wiadomości :: OpenGL a DirectX 9.0
dwa silniki graficzne w RO
Author: _KaszpiR_
Submitted by: _KaszpiR_   Date: 2007-03-17 10:26
Comments: (2)   Ratings:
 
Average members rating (out of 10) : 7.00   
Votes: 1 since 2007-03-17 11:19

Zdecydowałem się napisać ten tekst w związku z tym tematem na forum.

Wiadomo, że RO bazuje na silniku Unreal Tournament 2004, a to oznacza, że domyślnie powinna działać na OpenGL. Cóż, szybki skok do menu w grze i widzimy jasno : DirectX i jego rożne wersje i... nic poza tym!!!

Jak można wyczytać z kilku postów na oficjalnym forum RO (potem znajdę linki), deweloperzy zdecydowali się ukatrupić (usunąć) opcję silnika OpenGL w grze z powodu zbytniej ilości ograniczeń technologii. Głównym powodem była snajperka, a dokładnie jej tryb modelu, gdzie widok z lunetki zachowuje się jak soczewka i zakrzywia wpadające światło.

W związku z tym zdecydowałem że nagram filmiki z tego testu. Notka - obrazki są z filmików więc nie są super jakości, a filmy polecam oglądać w oknie w oryginalnym rozmiarze. Filmy trwają mniej więcej 30s, każdy ma rozmiar poniżej 10mb, ale mają na tyle wysoką jakość, żeby widać było o co chodzi. Nie wrzucałem większych, bo nie widać znaczącej różnicy w jakości a pliki są prawie 3x większe. W niższej jakości wychodzi straszny chaos, dlatego ich nie dodałem.

Wracając do tematu - specjalnie aktywowałem sobie tryb OpenGL (w sumie sprowadza się to do edycji pliku RedOrchestra.ini i wstawienia jednego średnika a usunięcia drugiego), i porównałem gry. Pamiętam, że wcześniej to robiłem na poprzedniej karcie graficznej, ale po paru minutach zrezygnowałem z przyczyn, jakie ujawnię niżej.

Tak więc odpaliłem grę, na danzig i co widzę? To co kiedyś - koszmarnie migające tekstury.





A teraz spójrzcie na obrazek niżej i je porównajcie. Wystarczy przypatrzeć się na niemiecki transporter, jest to model na mapie, ale widać, że nie ma on normalnej powierzchni a paski jak zebra, na filmiku widać dokładnie jakie elementy na mapie migoczą z powodu tekstur.

Pomyślałem sobie, fajnie, juz to kiedyś widziałem, i było to samo, nie dawało się grać bo oczy bolą i jest zwykły horror. Wtedy wróciłem do menu i wpadła mi w oko opcja 16bit. Zmieniłem na 32bit, obraz mignął, wyszedłem z menu i.... wooow, zupełnie inna bajka :)





Na filmiku widać, że obraz nie migocze. Wygląda to inaczej na DirectX, nie ma np rozmycia i paru innych efektów. No ładnie ładnie, ale.... co ze snajperką, przez którą wyrzucono ten tryb graficzny?

W podskokach odpaliłem grę znowu :)





Acha, nie powiedziałem, że menu wygląda koszmarnie, i że wybór klasy w grze jest utrudniony? Nie? No cóż, teraz widzicie :)

Jak widać w filmie snajperka w trybie modelu jest bezużyteczna - dla mnie pół biedy, korzystam od początku gry z trybu tekstury, czyli z tym czarnym obramowaniem. Na filmie widać także, że nie ma efektu rozmycia, tylko przyciemnienie. Dla mnie to także nie problem, od startu gry efekt rozmycia mnie przyprawiał o mdłości, i wolę ściemnienie :)

No dobra, wszystko fajnie, ale ja tu lecę na maksimum detali w grze - no.. część filmów nie ma np. efektu deszczu i paru innych, jakoś tego nie lubię - ale wiem, że poprawia klimat w grze. Zdecydowałem jednak, że warto odpalić grę na minimum detali....





Pamięta ktoś gry typu Quake? Na pewno tak, rozmycie tekstur jak się patrzy, wygląda ohydnie ale każdego wroga widać, ciekawe co na to regulamin roladder czy innych lig. No i ta wyskoa ilość fps, wreszcie na poziomie.

Ja jednak wróciłem do ustawienia high detail, co więcej zauważyłem, że na OpenGL różnica wizualna między High a Normal jest nieznaczna, a na Normal jest znacznie więcej fps - gra jest płynniejsza. Trzeba by to dokładniej obadać.

Tyle. Mam nadzieję, że ci bardziej ogarnięci sami przeprowadzą eksperymenty, i sprawdzą na własnej skórze jak się gra na OpenGL. Pamiętajcie jednak, że mapy są tworzone z myślą o DirectX, czyli mogą zupełnie inaczej wyglądać w innym trybie - np może czegoś brakować, albo może wyglądać inaczej niż zwykle, wprowadzając jeszcze więcej błędów. No i grający w klanach niech sprawdzą regulaminy lig!

Firma Tripwire, producent gry oficjalnie przyznaje, że nie prowadzi supportu dla gry w trybie OpenGL, co więcej, wszelkie błędy wykryte w tym trybie są automatycznie odrzucane. Tak więc gracie i się cieszycie albo cierpicie na własne życzenie.




A co do rezygnacji z OpenGL. Cóż, deweloperzy chyba nie widzieli silnika Doom III gdzie nie takie bajery widać (chociażby efekt ugięcia obrazu od ciepłych elementów jak gorąca rura), i czasem DirectX może się schować. Prawda jest taka, że większość gier na Steam jest na silnikach wykorzystujących DirectX a to z powodu podpisanej umowy z Microsoftem - czyli kasa i kasa a na końcu użyteczność. Przyznac trzeba ze Microsoft ma naprawdę użyteczny zestaw narzędzi w Visual Studio, gdzie wszystko się robi (prawie) przez kopiuj/wklej, więc pisanie niektórych rzeczy idzie szybko, ale odbija się to na wydajności programów. A że technologia idzie naprzód i w końcu trzeba kupić nowy komputer to już nie ma się co bawić w optymalizację.






Film z Quake4 w trybie Ultra High 1024x768 z FSAA 2x, więc nieźle obciąża grafikę. Widać licznik fps w prawym górnym rogu ekranu, no ale ilość cieni i innych bajerów jest na najwyższym poziomie. I tak większość bajerów nie widać z powodu kompresji obrazu - 4x mniejsze polo obrazu oraz sama kompresja video drastycznie obcina ilość detali. Wybrałem ten fragment z powodu efektu ugięcia obrazu od RailGuna potwora.

Produkty na DirectX przeważnie na dobrych kompach często jadą na granicy 30fps, więć na efekcie wystarczającym, ale wiadomo, że w grach szybkich jest to drastycznie mało. Przeważnie te same gry w trybie OpenGL zasuwają jak króliki na wiosnę. Doprowadziło to nawet do pewnego ruchu z firmy id software, gdzie silnik gry ogranicza ilość generowanych klatek do 60, aby wyrównać szanse na turniejach online, gdzie ludzie z super sprzętem będą mieli 20x więcej fps niż ludzie ze słabym. Z jednej strony mozna powiedzieć, że jest to karygodne, bo wielu graczy chce wycisnąć fps na max, a tu ich ograniczają. No ale na szczęście ograniczają dość wysoko, i silnik gry ma sporo luzu do wykorzystania.

Pozostaje czekać na Unreal Engine 3 oraz na Enemy Territory: Quake Wars