Начало Ревюта hardwareBG ревюта Мобилни компютри с Nvidia графични процесори GeForce RTX 30 серия

Мобилни компютри с Nvidia графични процесори GeForce RTX 30 серия

367
1


Nvidia RTX

Рейтрейсинг технологията е един от основните акценти на Nvidia от предходното поколение графични процесори насам. Така че изобщо не е чудно, че в Ampere са подсилени блоковете за обработка на рейтресинг (Raytracing Cores), което помага за по-ефективната работа на технологията, като производителността на блока за проверка на пресичане с тригълниците е удвоена и вече е възможно да се ускорява и Motion Blur паралелно с рейтрейсинг. Но тъй като за производителността на тази част от чипа вече имаме цял материал с подробни тестове и сравнения, може да се насочите към него за повече подробности.

В древната ера на началото на 3D графиката се използваха различни методи за изграждане на 3D изображението – векторна графика (описване на обектите с векторни уравнения), растеризация, воксели (обемни пиксели) и т.н. Растеризацията, обаче, стана предпочитания вариант поради един простичък факт – производителността. „Растеризация“ най-общо означава преобразуването на дадено изображение или сцена, в мрежа от дискретни обекти (пиксели), всеки с определен цвят. Причината за това е, че изображенията на компютърния монитор се показват по този начин – чрез мрежа от отделни точки/пиксели. При растерната 3D графика сцената се образува от обекти създадени от отделни триъгълници, известни и като полигони (многоъгълници), като за тях се знаят координатите на върховете. По този начин се пести място за описанието на обекта и изчислителна способност. След това на екрана се проектира видимата част от сцената. Именно този процес на проекция се нарича растеризация. Но растеризацията има един генерален проблем, които все още не може да се разреши достатъчно ефективно. Това е осветлението и всичко свързано с него. На практика за всеки един източник на светлина и засенчването на пиксела се изчислява поотделно и към това се наслагат разните отражения и пречупвания. Нещата са относително прости за точковите източници, но обемните правят ситуацията по-сложна, като на практика трябва да се симулират чрез множество точкови източници. Отраженията и сенките също често не се изчисляват (изцяло) в реално време, като се използват различни „хакове“ и предварително изчислени карти, за да се намали натоварването, но това понякога води до сериозни визуални артефакти или разминавания между случващото се в реалната сцена и отраженията. Изчислението на правилните сенки и тяхната „мекота“ в зависимост от отдалечеността на обекта е изключително тежка задача, като не рядко един от най-честите методи за вдигане на производителността е да се намали качеството на рендериране на сенките или изцяло да се изключат.

Рейтрейсингът на свой ред е по-късна технология, при която се разчита на обраното – вместо да се проектира сцената върху екрана, от всеки пиксел се проследява обратно пътя на светлината до източниците й. И тъй като този метод в същността си е съсредоточен върху светлината, достигаща до виртуалния екран, автоматично в процеса на проследяването се разрешават повечето проблеми с отражение, пречупване и рефракция и генерирането на реалистична осветеност. Проблемът с рейтрейсинга обаче е, че той е изключително изчислително тежък. Например, проследяването на лъча до срещането му с обект изисква редица проверки и най-лошото е, че това е свързано с толкова „ненавистните“ разклонения и условни преходи, които просто убиват производителността на компютърните процесори. Освен това в момента, в който даден лъч срещне обект, в зависимост какво качество искаме да постигнем, то самия лъч може да генерира още няколко – за осветление (проверка дали се среща с даден светлинен източник), пречупване, отражение, проверка за попадане в сянка (проверява се дали по пътя към светлинните източници има препятствие) и т.н., като всеки от тези лъчи на свой ред може да генерира още един или повече такива при среща с друг обект. Както виждате, освен първоначалните и без това тежки сметки, в последствие обема на нужните изчисления се увеличава лавинообразно. Но това не е всичко – ако искаме още по-добро качество на картината, тъй като всеки пиксел е дискретен елемент с дадена физическа площ, в него реално могат да попаднат множество лъчи и да се смесят повече цветове. Съответно самият пиксел се разбива на подпиксели, за всеки от които се генерира отделен лъч/лъчи по отделно.

За момента в игрите се използва хибриден подход – сцената се създава основно с помощта на растеризация, като рейтрейсингът са използва само с реализацията на сложните светлинни ефекти, които отнемат много време. Тук можем да разделим основно 3 области, за които технологията е особено ефективна:

– изчисление на отражения и пречупвания – това е най-очевидната полза от технологията, като за разлика от растеризация не се налага създаването на предварителни карти на наличните обекти или рендериране на изображението в текстура и т.н. Още повече че в този случай могат да се решат много лесно проблеми, (почти) нерешими за досегашните начини за изчисление на отраженията, като например отражение в дадена повърхност на обект, който се намира зад друг в линията на зрението.

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

– сенки – отново една много тежка задача за растерните енджини, особено когато се налага да се симулират ефектите от полупрозрачни повърхности или от растителност. Особено ако се опитвате да правите реалистични меки сенки според разстоянието от източника на светлина.

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

Рейтрейсинг технологията обаче не е само за постигане на по-качествено и най-вече реалистично изглеждащо изображение в игрите, но може да се използва и за ускоряване на работата в приложения за 3D моделиране и рендериране, като Blender, Autodesk Arnold, Maxon Cinema 4D, Chaos Group V-Ray и прочее. Всъщност от доста време мощните графични адаптери от висок клас се използват за рендъринг на 3D изображения за филми и специални ефекти, като големият брой изчислителни блокове помагат за целта. А новата архитектура Ampere е особено силна в това отношение, защото броят на CUDA ядрата в чипа е удвоен спрямо предходното поколение. А в някои рендър енджини вече се добавя и поддръжка за RTX технологията, което ускорява значително проверките за пресичане на лъчите светлина и дава допълнително ускорение при използване на RTX.

1 коментар

ВАШИЯТ КОМЕНТАР

Моля, въведете коментар!
Моля, въведете името си тук