Ray Tracing не е нещо ново. Всъщност съществува от години – особено във филмовата индустрия. Но благодарение на nVidia, вече можем най-малкото да си мечтаем за проследяване на лъчи в реално време – поне в игри. За никого не е тайна, че нищо, освен най-мощните RTX карти, не се справя добре с ray tracing сценарий. Днес това може би ще се промени с нов ъпдейт на DirectX за подобрен Ray Tracing.
Ray tracing – tier 1.1
Всъщност новият ъпдейт все още е само за разработчици на софтуер. Идеята му е да покаже на какво е способен DXR програмният интерфейс. Включените подобрения са обощени като изцяло нова степен на имплементация, наречена tier 1.1. Подобренията включват:
- поддръжка за добавяне на допълнителни шейдъри към вече същестуващи Raytracing PSO (pipeline-state object или обекти, чието изпълнение предстои). Това ще доведе до неминуемо подобрение в скоростта на добавянето на обекти в опашките за изпълнение.
- поддръжка за ExecuteIndirect за ray tracing. Това позволява интеграцията на адаптивни алгоритми в определени ситуации. Пример би бил случай, в който видеокартата определя броя на използваните лъчи за дадена опашка. Подобни алгоритми могат да бъдат изключително полезни и за определяне на броя лъчи, които могат да бъдат обработени едновременно. Представете си го като адаптивно определяне на качеството на рендираното изображение. По-мощна видеокарта значи повече лъчи, обработени по едно и също време, което значи по-красиво изображение. Същото изображение може да изглежда по различен начин с друга карта, без намеса от наша страна за определяне на качеството.
- интеграция на Inline Ray tracing, което дава по-директен контрол върху алгоритъма за изчисление на лъчи и връзката им с изчислителните ядра във видеокартата. Това е абослютно ключов момент в правилното управление на тази техника за създаване на изображения. Чрез интеграцията на този похват, RayQuery (маркерът за иницииране на ray tracing изчисления) може да бъде „повикан“ по всяко време в изчислителния период. Подобно ниво на контрол дава нови хоризонти за имплементацията на DXR в много по-разширен набор от ситуации и създаването на изцяло нови техники за проследяване на лъчи.
Защо е важно?
Огромното значение на този нов ъпдейт на DirectX идва от факта, че е изцяло фокусиран върху решаване на най-болезнените проблеми при имплементацията на ray tracing рендирането. Не че изведнъж ще видите проследяване на лъчи във всяка една игра, или че то ще бъде оптимизирано дори за слаб харуер. По-скоро този ъпдейт показва две ключови неща:
- ray tracing технологията е тук, за да остане, и очевидно ще играе голяма роля в индустрията за в бъдеще
- microsoft искат DXR да бъде достъпен за всички. Не в смисъла, че очакваме магическо подобрение в FPS-а, а в смисъла, че ray tracing няма да остане заключен в RTX екосистемата
Важно е да отбележим, че този ъпдейт не е нито случаен, нито изненадващ. Това важи с особена сила за тези от вас, които следят темата. Предстоящите конзоли ще поддържат някаква форма на ray tracing и няма да използват хардуер на nVidia, а на AMD. Нищо чудно, че Microsoft искат технологията да напредне и да бъде по-лесна за имплементация от разработчиците на игри. Вече времето ще покаже какво точно ще могат конзолите на 2020 г.