Проследяване на лъчи срещу растеризирано изобразяване - обяснено

След стартирането на семейството графични процесори на Tviring на Nvidia през 2018 г., светът на игрите отбеляза експоненциално нарастване на дискусията за функция, известна като „Ray Tracing“. Тогава съвсем новата серия графични карти на Nvidia „RTX“ донесе поддръжка на нещо, наречено „Проследяване на лъчи в реално време“ в игрите. Повечето хора не бяха сигурни каква е тази нова функция и защо тя се натиска толкова силно от Nvidia, но едновременно бяха развълнувани и заинтересовани от технологията. Проследяването на лъчите беше толкова голяма точка според Nvidia, че те сметнаха за необходимо да го включат точно в името на продуктите, които пускаха. Новата серия карти GeForce “RTX” замени по-стария сорт “GTX”, що се отнася до най-добрите SKU като 60,70,80 и -80Ti SKU, които Nvidia обикновено пуска.



Nvidia GeForce RTX 3080 е една от най-бързите графични карти, поддържащи проследяване на лъчи - Изображение: Nvidia

Графичните карти RTX 2000 на Nvidia доведоха до няколко хардуерни промени, които позволиха поддръжка на Ray Tracing в игрите. Новите графични карти, базирани на Тюринг, съдържат специални ядра, посветени на този процес и известни като RT Cores. Целта на RT ядрата беше да се справят специално с всички графични изчисления, необходими, за да направят проследяването на лъчите в реално време възможно в игрите. Nvidia също така допълни картите с допълнителни ядра CUDA, за да увеличи суровата мощ на картите, като същевременно добави и нов набор от ядра, известни като Tensor Cores. Тези ядра имаха за цел да помогнат в приложенията за дълбоко обучение и изкуствения интелект, като например нова форма на техника за увеличаване на мащаба, известна като Deep Learning Super Sampling. Вече обсъдихме подробно супердискретизирането на Deep Learning или DLSS в тази статия , където можете да научите повече за техниката за мащабиране с изкуствен интелект.



Проследяването на лъчи не е ново

Докато на пръв поглед може да изглежда, че Ray Tracing е нова технология, която е въведена от Nvidia, истината всъщност е далеч от нея. Да, Nvidia беше първата компания, която внедри поддръжка за Ray Tracing в реално време в игрите, но това не означава, че Ray Tracing не е съществувал преди серията RTX. Вероятно сте се наслаждавали на това, без да го знаете от години, ако сте гледали някой скорошен филм, който включва CGI Effects.



Проследяването на лъчи вече се използва в други области като филми - Изображение: Nvidia



Внедряването във филмите е малко по-различно и много по-интензивно от игралната версия. Големите бюджетни продукции имат лукса да могат да похарчат голяма сума пари и време за рендиране на тези сцени. Съобщава се, че популярните анимационни филми са използвали около 1000 суперкомпютри, за да изобразят целия филм с ефекти на Ray Tracing за период от един месец. Такива мащабни процеси на рендиране, разбира се, не са осъществими или възможни за обикновения геймър, който иска да играе някои игри с някои актуализирани визуални ефекти, така че версията на Ray Tracing, която присъства в съвременните игри, е доста различна в приложението. И все пак Ray Tracing е функция, която присъства в много области на производството извън игрите, като филмите са едни от най-изявените.

Софтуерите за производителност, използвани от професионалисти за работа върху графично интензивни сцени, като Blender, също поддържат функции за проследяване на лъчи. Тези компютърни графики и софтуер за рендиране използват различни нива на приложение за проследяване на лъчи, за да създадат фотореалистични визуализации във все още рендери и 3D анимации.

Какво е растеризация?

И така, защо се счете за необходимо от Nvidia да внедри такъв сложен процес в традиционните игри? Има ли някаква разлика в процеса на проследяване на лъчи в игрите, за да бъде по-оптимизиран за натоварването? За да разберем механизма зад Ray Tracing, първо, трябва да разберем механизма, по който игрите традиционно се представят. Това ще ни помогне да разберем защо проследяването на лъчи се счита за подобрение и голям скок напред в графичната вярност.



Техниката, която в момента се използва за изобразяване, е известна като „растеризация“. При тази техника кодът на играта насочва графичния процесор да рисува 3D сцена с помощта на полигони. Тези 2D форми (предимно триъгълници) съставляват повечето визуални елементи, които се показват на екрана. След изчертаването на сцена тя се превежда или „растеризира“ в отделни пиксели, които след това се обработват от специален шейдър. Шейдърът добавя цветове, текстури и светлинни ефекти на база пиксел, за да създаде напълно рендирана рамка. Тази техника трябва да се повтаря около 30-60 пъти в секунда, за да се получат 30FPS или 60FPS визуални изображения в игрите.

Подробности за механизма на растеризацията - Изображение: Medium.com

Ограничения на растеризацията

Докато растеризацията е режим на изобразяване по подразбиране в игрите от доста време, присъщият процес зад растеризацията има някои ограничения. Основният проблем с растеризацията е, че тази техника има трудно време да проследи как точно трябва да пътува светлината в дадена сцена и да взаимодейства с други елементи на сцената. Растеризираното рендиране не дава същите резултати като рендирането с проследяване с лъчи, когато става въпрос за светлинни ефекти и цялостно осветяване на определена сцена. Растеризираното изобразяване понякога може да създаде донякъде неточни визуални ефекти по отношение на осветлението, което наистина може да навреди на потапянето в определена игра. Ето защо проследяването на лъчите се счита за превъзходна форма на изобразяване, когато става въпрос за графична точност, особено по отношение на осветлението.

Какво точно представлява проследяването на лъчи?

Сега, когато обсъдихме традиционната форма на растеризирано изобразяване, нека обсъдим новото приложение на проследяване на лъчи в реално време в съвременните игри. Проследяването на лъчи е техника за изобразяване, която създава изображение въз основа на виртуална светлина и как този източник на светлина взаимодейства с всички обекти във виртуалната сцена. Проследяването на лъчи може да създаде много по-живото изображение на сцени, които се възползват от взаимодействието на светлината с обектите в сцената, за да дадат усещане за реализъм. С прости думи, Ray Tracing е техника, която кара светлината да се държи във видеоигрите, както в реалния живот.

Ray Tracing обещава да преработи изцяло визуалните изображения в игрите - Изображение: Nvidia

Механизмът зад Ray Tracing

Механизмът, който стои зад проследяването на лъчи в игрите, по своята същност се различава от другите форми на проследяване на лъчи, които вече се срещат в други индустрии като филмите. Вместо да проследява всички милиони лъчи, които идват от всеки източник на светлина, потребителското проследяване на лъчи намалява изчислителното натоварване, като вместо това проследява пътя от камерата, който представя перспективата на потребителя, през един пиксел, след това до какъвто и да е обект зад това пиксел и след това накрая обратно към източника на светлина на въпросната сцена. Тази техника на проследяване на лъчи може също да доведе до множество ефекти като абсорбция, отражение, пречупване и дифузия на светлината, определени от обекта, който взаимодейства със светлината в сцената. Алгоритъмът за проследяване на лъчи може също да вземе предвид резултантните лъчи, така че всички отражателни ефекти или сенки да се показват точно.

При проследяването на лъчи светлината се държи в играта така, както в реалния живот - Изображение: Nvidia

Различни форми на проследяване на лъчи

Не всички изпълнения на проследяването на лъчи са еднакви. Разнообразието от игри, които поддържат Ray Tracing, изпълняват функцията по малко по-различен начин. Това зависи от разработчика на играта да увеличи или намали сложността на проследяването на лъчи в играта, така че играта да осигури перфектния баланс между производителност и визуално качество. Към 2020 г. повечето игри, които поддържат Ray Tracing, обикновено използват Ray Tracing само за един аспект на сцена, за разлика от изобразяването на цялата сцена, използвайки самия Ray Tracing. Възможно е, но изчислителните разходи за пълноценно проследяване на лъчи са астрономически в сравнение с другите подходи и следователно не си струва усилието поне в момента. Към момента на писане, различните изпълнения на Ray Tracing, които в момента се използват в игрите, са:

  • Сенки: Най-простата и най-малко интензивната реализация на Ray Tracing е свързана със сенките. Тук Ray Tracing се използва за перфектно изобразяване на сенките в сцена въз основа на произхода на светлината от източника на светлина и положението на самия обект. Тази техника се използва най-вече в „Shadow of the Tomb Raider“ за създаване на по-подробна карта на сенките, която отговаря на промените в околната среда около обектите, които произвеждат сенките. Най-забележителното е, че движението и ъгълът на светлинния източник вече могат да предизвикат същите промени в получените сенки, както наблюдаваме в реалния живот.
  • Размисли: Отраженията са доста по-изчислително интензивни, за да се визуализират с помощта на Ray Tracing, но Ray Traced отраженията изглеждат феноменално в съвременните игри и са може би най-забележителното графично подобрение, което може да се получи с помощта на Ray Tracing. Отраженията използват източника на светлина в сцена, за да направят точно отраженията от отразяващи обекти като стъкло и вода. Една от най-популярните игри, в които се използват отразени лъчи, е „Control“.
  • Оклузия на околната среда: Това също е свързано със сенките и е горе-долу свързано с един и същ основен процес. Ambient Occlusion използва Ray Tracing за прогнозиране на ъгъла и интензивността на сенките въз основа на позицията и разположението на обекти в рамките на сцена. Когато се направи правилно, Ambient Occlusion може да добави някои невероятни детайли и реализъм към играта.
  • Глобално осветление: Вероятно най-изчислителната форма на внедряване на Ray Tracing в съвременните игри, Global Illumination използва Ray Tracing за точно изобразяване на световното осветление. Това осигурява много по-реалистично усещане за осветление, когато е включено, но също така има огромен удар в производителността поради огромното количество обработвани данни. “Metro Exodus” използва Ray Tracing, за да осигури много по-реалистична форма на глобално осветление.
  • Пълно проследяване на пътя: И накрая, виждаме и появата на някои игри, които са напълно проследени по пътя, което по същество означава, че всичко е проследено от Ray. Понастоящем тези игри са малко по-прости и по-малки от останалите игри, които са повече или по-малко AAA заглавия от големи компании, но това не означава, че те не изглеждат впечатляващи. Всъщност някои биха могли да твърдят, че тези игри с пълно проследяване на пътя изглеждат по-добре от всички други внедрения на Ray Tracing. „Minecraft RTX“ и „Quake RTX“ са две от заглавията, които са напълно проследени по пътя, налични по време на писането.

Ray Traced Reflections може да бъде най-приятното за окото приложение на Ray Tracing в игрите - Изображение: Nvidia

Какво ми трябва за проследяване на лъчи?

Както бе споменато по-рано, Ray Tracing е много изчислително интензивна задача, така че изисква някои определено хардуер от висок клас, за да се представя добре. Към момента на писане има няколко графични карти както от AMD, така и от Nvidia, които поддържат хардуерно ускорено проследяване на лъчи. Дори конзолите на Sony и Microsoft поддържат тази функция. Това малко разширява списъка с поддържан хардуер:

  • Nvidia GeForce RTX 2000 серия
  • Nvidia GeForce RTX 3000 серия
  • AMD Radeon RX 6000 серия
  • Microsoft Xbox Series X
  • Sony PlayStation 5

Имайте предвид, че ако AMD обработва Ray Tracing малко по-различно от Nvidia, така че има малко по-голямо наказание за производителност, което се наблюдава, когато използвате AMD карти за Ray Tracing. Освен това, ако искате да изпитате подобрената производителност с помощта на Deep Learning Super Sampling, тази функция е налична само на RTX картите на Nvidia. Предполага се, че AMD работи по подобна на DLSS функция за своите карти от серията RX 6000, но в момента тя все още е в процес на разработка по време на писането.

Nvidia също е въвела термина „Giga Rays“, за да даде на потребителите представа за относителните възможности за проследяване на лъчи на своите RTX графични карти. Nvidia казва, че 5 гига лъча в секунда е минималното количество виртуална светлина, идеално необходимо за пълно осветяване на типична стая в среда на видеоигри. GeForce RTX 2070 предлага 5 Giga Rays / sec, докато RTX 2080 предлага 8 Giga Rays в секунда. RTX 2080Ti предлага огромен 10 гига лъча / сек. Това е донякъде произволна единица, така че трябва да се използва само за показване на относителни очаквания за ефективност.

Загуба на производителност и DLSS

Както е очевидно досега, най-големият недостатък на проследяването на лъчи е удрянето на производителността поради голямото количество специални изчисления, които трябва да бъдат направени в процеса. В някои игри изпълнението е толкова голямо, че може да отведе играта до честота на кадрите, която вече не се счита за играеща. Успехът на производителността е дори по-голям в игрите, които използват по-сложни реализации на проследяване на лъчи като Reflections, Global Illumination или Full Path Tracing.

Разбира се, Nvidia помисли за тази ситуация с наказание за изпълнение и разработи нова техника за компенсация, известна като Deep Learning Super Sampling. Тази техника, наречена DLSS, беше пусната заедно с серията RTX 2000 на Nvidia още през 2018 г. Вече разгледахме DLSS подробно в тази статия , но същността на тази технология е, че тя прави изображението с по-ниска разделителна способност и след това интелигентно и методично надгражда изображението, за да съответства на изходната резолюция, за да осигури значително по-добра производителност на естественото изобразяване. DLSS е отличен компенсационен механизъм за загуба на производителност на Ray Tracing, но може да се използва и без Ray Tracing, за да осигури още по-висока честота на кадрите и много по-добро изживяване.

Значително повишаване на производителността в контрола, когато DLSS е ВКЛЮЧЕН - Изображение: Nvidia

Най-голямото предимство на DLSS е, че използва Deep Learning и AI за надграждане на изображението, така че да има малка или никаква разлика в визуалната яснота между естественото и разширеното изображение. Nvidia използва ядрата Tensor на своята серия от карти RTX, за да ускори процеса на DLSS, така че това изчисляване на мащабирането да може да се извършва с темпото на играта, която се изобразява. Това е наистина вълнуваща технология, която бихме искали да видим да се развива по-нататък и да се подобрява, отколкото е сега.

Бъдещето на проследяването на лъчи

Проследяването на лъчи в игрите тепърва започва и можем да кажем със сигурност, че е тук, за да остане. AMD току-що пуснаха своите първа гама от карти, които поддържат пълен проследяване на лъчи в реално време със серията RX 6000 , а PlayStation 5 и Xbox Series X също имат поддръжка за проследяване на лъчи. Настоящите препятствия, които трябва да бъдат преодолени, включват загуба на производителност и малкия брой игри, които го поддържат. Настоящите игри, които поддържат Ray Tracing по време на писането, включват:

  • Сред злото
  • Battlefield V
  • Светла памет
  • Call of Duty: Modern Warfare (2019)
  • Call Of Duty: Black Ops Cold War
  • Контрол
  • Crysis Remastered
  • Доставете ни Луната
  • Fortnite
  • Ghostrunner
  • Справедливост
  • Mechwarrior V: Наемници
  • Метро Изход
  • Minecraft
  • Лунно острие
  • Тиквен Джак
  • Quake II RTX
  • Сянката на гробницата
  • Останете в светлината
  • Watch Dogs Legion
  • Волфенщайн: Youngblood

Междувременно Nvidia потвърди, че следните заглавия също ще поддържат Ray Tracing, след като излязат:

  • Атомно сърце
  • Cyberpunk 2077 (стартиране)
  • Умираща светлина 2
  • Doom Eternal
  • Включен (ноември затворена бета версия)
  • JX3
  • Mortal Shell (ноември)
  • Наблюдател: System Redux
  • Готов или не (стартиране с ранен достъп)
  • Ring Of Elysium (стартиране)
  • Синхронизирано: извън планетата
  • Вещицата III
  • Vampire: The Masquerade - Bloodlines 2
  • World Of Warcraft: Shadowlands (ноември)
  • Xuan-Yuan Sword VII (стартиране)

Предстоящи игри, които поддържат RTX и DLSS - Изображение: Nvidia

Макар че те може да не изглеждат като много игри, това представлява начало към посока, в която преобладаващата форма на рендиране би могла да бъде Ray Tracing. Що се отнася до производителността, наистина е трудно да се предвиди дали изпълнението на Ray Tracing ще бъде намалено или не. Това, което е разумно да се очаква, е DLSS да се подобри и да предложи достатъчна компенсация за загубата на производителност, причинена от включването на Ray Tracing. Към момента на писане списъкът на игрите, които поддържат DLSS, по никакъв начин не е обширен, но е добро начало, като се има предвид, че Nvidia обяви DLSS поддръжка и за няколко предстоящи игри. Ето всички игри, които в момента поддържат Deep Learning Super Sampling:

  • Химн
  • Battlefield V
  • Светла памет
  • Call Of Duty: Black Ops Cold War
  • Контрол
  • Смъртта
  • Доставете ни Луната
  • F1 2020
  • Final Fantasy XV
  • Fortnite
  • Ghostrunner
  • Справедливост
  • Marvel’s Avengers
  • Mechwarrior V: Наемници
  • Метро Изход
  • Minecraft
  • Ловец на чудовища: Свят
  • Сянката на гробницата
  • Watch Dogs Legion
  • Wolfenstein Youngblood

Както може би сте забелязали, повечето игри, които поддържат DLSS, са заглавия, които също имат някаква форма на Ray Tracing поддръжка. Това предлага допълнително потвърждение на теорията, че DLSS е разработен и пуснат главно като компенсационна технология за облекчаване на огромната загуба на производителност в Ray Tracing. DLSS обаче е сериозно впечатляваща технология, тъй като Nvidia обясни, че използва суперкомпютър за извършване на сложни изчисления, който обучава алгоритъма, който ядрата на Tensor в графичните процесори на Nvidia следват. Подобно на Ray Tracing, DLSS се очаква да дойде и в повече игри:

  • Сред злото
  • Атомно сърце
  • Граница
  • Cyberpunk 2077 (стартиране)
  • Edge Of Eternity (ноември)
  • JX3
  • Mortal Shell (ноември)
  • Mount & Blade II Bannerlord (ноември)
  • Готов или не (стартиране с ранен достъп)
  • Почиствачи
  • Vampire: The Masquerade - Bloodlines 2
  • Xuan-Yuan Sword VII (стартиране)

DLSS в комбинация с Ray Tracing изглежда е бъдещето на игралната индустрия от 2020 г.

Списъкът с игри, поддържащи DLSS 2.0, продължава да се увеличава - Изображение: Nvidia

Заключение

Растеризацията е техника, която се използва за преобразуване на 2D равнина на многоъгълници в 3D изображение на екрана в игрите от дълго време. През 2018 г. Nvidia представи серия графични карти RTX 2000 с пълна поддръжка за проследяване на лъчи в реално време в игри, техника, която използва сложни изчисления за проследяване на лъчите на светлината в сцена, за да създаде точни изображения на това как светлината ще взаимодейства с обектите в сцена. Това взе света на игрите от неочаквана буря и цялата индустрия постави Ray Tracing като основния си фокус напред.

Към момента на написването, Nvidia пусна друго поколение графични карти, които допълнително подобряват производителността си на Ray Tracing, докато AMD и конзолите също обявиха пълна поддръжка за функцията. Nvidia също подобри техниките си за дълбоко учене на супер дискретизация, които използват AI и Deep Learning, за да подобрят интелигентно изображението, което е изобразено с по-ниска резолюция, за да компенсира загубата на производителност поради проследяване на лъчи.

Изглежда, че Ray Tracing е тук, за да остане и докато първоначалният брой заглавия, които поддържат функцията, не е експанзивен, се обявяват все повече заглавия, които имат пълна поддръжка за Ray Tracing в реално време напред. Сега зависи от разработчиците да прецизират характеристиките на Ray Tracing в предстоящите си игри, а също и да увеличат броя на заглавията, които поддържат тази функция. Nvidia и AMD също носят отговорност да направят своя хардуер оптимизиран за тази функция, така че геймърите да не изпитват опустошителна загуба на производителност, когато искат да включат Ray Tracing.