Nvidia Turing – детските болести на една потенциална революция

Nvidia Turing – детските болести на една потенциална революция

В раздел: Ревюта, Ревюта, статии и ръководства от на 29.11.2018, 6,163 показвания
Страница от ревюто: 1 2 3 4 5 6 7 8 9 10 11 12 13 14


20 август 2018 г. Тази дата означава старт на нова графична революция с появата на първата фамилия декстоп графични процесори – Nvidia Turing, които имат способността да ускорява хардуерно рейтрейсинг. Това ще направи масово достъпни и използваеми в реално време наистина реалистично осветление, отражение и сенки, докарвайки потребителската графика най-накрая до така желаното от десетилетия фотореалистично ниво.

Или поне така трябваше да бъде. Междувременно потенциалната революция, която Turing трябваше да предизвика, затъна в обсъждания на безумно високи цени, ниска производителност при рейтрейсинг и фабрични дефекти при (част от) картите. Но да караме по ред на номерата.

Първо на първо – задължителното обяснение за разликата между растеризация и рейтрейсинг.

 

Растеризация и рейтрейсинг

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

При растерната 3D графика сцената се образува от обекти създадени от отделни триъгълници (или в някои редки случаи от по-дълбоката „древност“ – четириъгълници), известни и като полигони (многоъгълници), като за тях се знаят координатите на върховете. По този начин се пести място за описанието на обекта и изчислителна способност. След това на екрана се проектира видимата част от сцената. Именно този процес на проекция се нарича растеризация.

Растеризацията, сам по себе си е много бърз процес, но това което прави е само да разбере от кой полигон трябва да запише цвета в дадения пиксел. В ранните етапи на 3D графиката това е било изключително важен фактор, за да може изобщо да се получи анимирано изображение. Но оттам нататък започват проблемите. Какъв трябва да е цвета на пиксела зависи от цвета на полигона, цвета на полигона се получава след като се изчисли осветлението/засенчването му (shading) и се наложи двуизмерна карта симулираща някакъв материал (текстура). Да, но реалната повърхност на обектите не плоска, а с множество вдлъбнатини, изпъкналости и кривини. Тъй като за да се постигне реална симулация на това, се изисква огромно количество полигони, а както казахме целта на тяхното използване е да се намали обема на съхраняваните и предавани данни, то се прилага т.нар. bump map (карта на вдълбанитните). Или поне това беше до относително скоро, тъй като в наши дни с помощта на теселацията стана възможно да се генерират много полигони, директно в графичния адаптер. След това идва проблемът с (полу)прозрачните обекти, при които трябва да се виждат и обектите разположени зад тях, както и отражения от околните, които трябва да се симулират. Към това (в последствие) се насложиха вертексните и пикселните шейдери, които позволяват да се манипулират в реално време статично генерирани обекти и текстури и т.н., и т.н.

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

Отделни всички тези процеси увеличават натоварването на програмистите и дизайнерите, които се налага да отделят все повече време за генерирането на различните визуални „хакове“.

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

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

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

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



Всички страници от статията:

  1. Растеризация и рейтрейсинг
  2. Nvidia Turing, архитектура I
  3. Nvidia Turing, архитектура II
  4. Гамата на Turing
  5. Противоречия
  6. Моделите от MSI
  7. Тестова система
  8. Резултати – 2560х1440
  9. Резултати – 3840х2160
  10. Резултати – eSports@1080p
  11. Battlefield 5 - визуално сравнение
  12. Battlefield 5 - производителност
  13. Резултати - GPU рендъринг, криптомайнинг, консумация, температури
  14. Заключениe


Страница от ревюто: 1 2 3 4 5 6 7 8 9 10 11 12 13 14




Етикети: , , , , , , , , ,


3 коментара

  1. 1 Capcom // 30.11.2018 в 18:05

    Като се знае какъв скандал стана, и че е пълно с прецакани или нацяло умрели RTX карти, изобщо не виждам AMD за какво да се притесняват, а и те правят със Vega пари на съвсем друго място, щото игрите не са всичко и във compute Vega троши 1080TI..
    RTX the way nVIDIA is meant to be RMA`ed…

  2. 2 Konami // 03.12.2018 в 11:25

    Този ефект коства едни 50-60 кадъра, което не е никак малко.И с карта под 2080 ti нещата стават плачевни.По-добре да си кътам 1080-тката

  3. 3 BGRS // 13.12.2018 в 02:39

    Доколкото четох, производителността при Batlefield 5 с използване на DXR е вдигната доста с нов драйвер. Споменават се 50% повече кадри.

    Като всяко ново нещо и това си има големи кусури. Но пък вчера се наложи да търся нова видеокарта и…не видях вече да се продават 1080Ti, а и тия, дето се продават, са на цената на 2080. Това ми напомня за 2011 година, когато си купувах нова кола и се чудех, дали да взема модел, спрян вече от производство, но наличен в магазина или нов модел, който е на мода, по-съвременен и всичко по-по, включително и новите дефекти :) Все пак се спрях на новот, щото дет се вика, старото ще спрат да го поддържат след няколко години. Особено NVIDIA правят тия нмомерца с не толкова старите си видеокарти.

Коментари: