Проследяването на лъчи е техника за изобразяване на компютърна графика, която създава изображение чрез проследяване на пътя на лъчите през сцена. Лъчите могат да взаимодействат с обекти в сцената, да отскачат от тях и да придобиват свойства, като цвят.
Проследяване на лъчи: Основите
Проследяването на лъчи емулира осветление от реалния свят. Светлината, която виждаме, е резултат от фотони, излъчвани от енергийни източници, като слънцето. Фотоните могат да отскачат и да се разпръскват, докато се сблъскват с обекти. Огледалото е всичко, от което се нуждаете, за да видите това в действие. Светлината, попадаща в огледалото, създава отражение.
Проследяването на лъчи симулира това. Броят на проследените лъчи е нищожен в сравнение с реалния свят, където милиони фотони скачат през нашето зрително поле. Съвременните игри проследяват някъде между един и четири лъча на пиксел. Все пак това е достатъчно, за да симулира реалния свят.
Проследяването на пътя на лъч също му позволява да взаимодейства със света на играта. Лъч, който отскача от червен обект, може да бъде повлиян от този цвят, хвърляйки червена светлина наблизо. Лъчите могат да се разпръскват по различни начини въз основа на свойствата, които художниците на играта придават на обектите, позволявайки реалистични полуотразяващи или грапави повърхности.
Проследяването на лъчи е значителна стъпка напред за 3D графиките. Той създава реалистично изображение, като симулира пътя на лъчите, докато се движат през игра. Това води до осветление, което може да взаимодейства с околната среда, дори когато средата не е видима за играча. Проследяването на лъчи не изисква специално създаден хардуер, за да функционира, но е практично само на видеокарта или игрова конзола, която може да ускори проследяването на лъчи, защото е много взискателно.
Проследяване на лъчи срещу растеризация (или 3D графики, каквито познавате)
Възможно е все още да сте объркани, дори ако разбирате това обяснение. Отражения присъстваха в минали игри, дори тези, които вече са на няколко десетилетия. Как се различава трасирането на лъчи?
Минали 3D игри и повечето съвременни игри използват растеризация. Растеризацията съчетава елементите на 3D игрален свят, видим за играча, в 2D изображение. Той изобразява само това, което трябва да бъде видимо за играча, тъй като всяка производителност, използвана за генериране на това, което играчът не може да види, се губи. Това обаче създава проблем.
Да се върнем към примера с огледалото. Средата на играча и персонажът на играча не са видими за играча (поне в игра от първо лице). С растеризацията няма какво да отразява огледалото.
Разбира се, огледалата съществуват в съвременните игри. Те изобразяват сцената два пъти. Един пас е от гледна точка на играча, докато друг е от различна гледна точка. Това обаче удвоява производителността, необходима за изобразяване на сцена.
Отраженията на екранното пространство, техника в популярните двигатели за 3D игри, използват данни от екрана, за да създадат отражение. Тази техника е идеална за отразяващи повърхности под ъгъл спрямо гледната точка на играча, като например вода. Отразените обекти обаче изчезват, ако отразеният елемент се премести извън екрана.
Проследяването на лъчи не споделя тези проблеми, защото, за разлика от растеризацията, то може да проследява извън перспективата на играча.
Също така, в игри, които позволяват на лъчите да взаимодействат с повърхности, проследяването на лъчи може да покаже реалистични цветни преливания и полуотразяващи повърхности, трудни за обработка на растеризация.
Какъв хардуер изисква Ray Tracing?
Проследяването на лъчи не е нова идея. Компютърните учени експериментираха с проследяване на лъчи в началото на 80-те години, създавайки статични изображения с реалистично осветление, отражения и сенки. За съжаление изобразяването им отне часове.
Видеоиграта се нуждае от проследяване на лъчи в реално време при 30 кадъра в секунда или по-висока. Това е възможно само с видеокарта, проектирана да ускорява проследяването на лъчи.
Проследяването на RTX лъчи на Nvidia разчита на силиций, наречен Tensor Core. Tensor Cores се намират само във видеокарти RTX. GTX картите на Nvidia могат да рендират игра, използвайки проследяване на лъчи, тъй като, както беше казано, проследяването на лъчи не изисква специално създаден силикон. Производителността обаче е ужасна в сравнение с RTX картите. А някои игри, като Minecraft с RTX проследяване на лъчи, изискват RTX видеокарта поради специфичния начин, по който позволяват проследяване на лъчи.
AMD карти, които ускоряват трасирането на лъчи, нямат специфична марка и нямат специален силикон. Вместо това те използват хардуерни настройки и софтуерни актуализации за по-добри резултати. По-трудно е да се идентифицират AMD карти, които ускоряват проследяването на лъчи, така че обърнете внимание на детайлите.
PlayStation 5 и Xbox Series X и S на Sony имат графичен хардуер от AMD, който може да ускори проследяването на лъчи. Разработчиците обаче трябва да активират, а много игри не го правят. Забележителен пример е Cyberpunk 2077, който поддържа RTX проследяване на лъчи на компютър при стартирането, но не поддържа проследяване на лъчи на конзоли от следващо поколение. Функцията е обещана за конзоли от следващо поколение в бъдеща корекция.