Nowy DirectX 11.2 tylko dla nowych klientów. Czy znowu zadziała sprawdzony trik Microsoftu?
Najjaśniejszą gwiazdą konferencji BUILD 2013 organizowanej przez Microsoft był Windows 8.1. Jednak nie tylko o nim warto wspominać w jej kontekście. Wyjątkowo ważna, zwłaszcza dla graczy, jest nowa wersja Microsoftowego API, czyli DirectX 11.2. Ma być ona wspierana tylko przez system Windows 8.1 oraz nadchodzącą wielkimi krokami konsolę Xbox One. Użytkownicy starszego oprogramowania najprawdopodobniej obejdą się smakiem.
Co nowego przyniesie DirectX 11.2? Mniejsze poprawki to zmniejszenie opóźnień w działaniu aplikacji korzystających z DirectXa, co przełoży się na przyspieszenie ich czasu reakcji. Oprócz tego Microsoft wprowadził wiele mniejszych optymalizacji, do których należą skalowanie bufora ramki oraz wczesne kompilowanie Shaderów HLSL. Wszystkie informacje udostępnione przez Microsoft i dotyczące tych nowości, podane w niemal tak samo lakonicznej formie znajdziecie tutaj.
Tiled Resources
Osobiście chciałem tu wspomnieć o dwóch bardzo ważnych dla DirectX 11.2 funkcjach. Pierwsza z nich to Tiled Resources, która w dużym stopniu poprawia jakość tekstur. Działanie tej funkcji zostało pokazane na podstawie dwóch demonstracji – pierwsza to oglądanie powierzchni planety Mars, a druga to symulator lotu. Istotnym elementem pierwszej aplikacji była tekstura pokrywająca powierzchnię Marsa, która ważyła 3 GB pamięci. Mimo to całość działała płynnie na karcie graficznej, której udostępniono zaledwie 16 MB pamięci. Drugie demo przedstawiało lot dwóch szybowców nad piękną wyspą, z których każdy składał się z 4 GB tekstur. Tiled Resources pozwala GPU korzystać z dwóch typów pamięci jednocześnie – swojej i systemowego RAM-u. Podobne rozwiązanie były znane wcześniej (MegaTexture znany z gier id Software), ale były to rozwiązania programowe. W tym przypadku jest to rozwiązanie w pełni sprzętowe, a więc znacznie szybsze.
Dwa plany składane w jeden
Druga ważna technika to kompozycja grafiki w grach z dwóch niezależnych planów. Układ graficzny może renderować dwa oddzielne obrazy, dodatkowo mogą one mieć różne rozdzielczości. Obraz o mniejszej szczegółowości jest wówczas skalowany do rozdzielczości wyższej. Dodatkowo obraz ten może skalować się dynamicznie, praktycznie w każdej z klatek. Przykładowo na jednym planie mogą być renderowane mało wymagające elementy w rozdzielczości 1080p, zaś na drugim bardzo wymagające w rozdzielczości 720p. Gdy scena będzie łatwa do policzenia, będzie renderowana w rozdzielczości 1080p. W przypadku trudniejszych efektów rozdzielczość będzie redukowana do mniejszej, np. 900p lub 540p, po czym skalowana do 1080p i scalana z prostszą do policzenia częścią. Dzięki temu gry będą działać płynnie nawet na kiepskim sprzęcie. Rozwiązanie to jest używane między innymi w obecnej generacji konsol do gier.
Jak wspominaliśmy DirectX 11.2 nie będzie dostępny na systemie innym niż Windows 8.1. Jest to klasyczny trik Microsoftu, który ma zmusić graczy do zmiany systemu operacyjnego tylko z powodu nowych opcji graficznych. Podobnym zagraniem było wprowadzenie DirectX 10 tylko na Windowsa Vistę. Wówczas ten trik nie zadziałał, ciekawe czy teraz okaże się skuteczny. Szczerze mówiąc, mimo całej swej sympatii dla Windowsa 8, wątpię. Zapewne Microsoft niebawem ugnie się wprowadzi swoje najnowsze API również dla posiadaczy kochanego przez użytkowników Windowsa 7.