Тапсырысқа тәуелсіз ашықтық - Order-independent transparency

Аралас тәртіптің маңыздылығы. Үстіңгі жағы реттелмеген альфа қоспасымен дұрыс емес нәтиже береді, ал төменгі жағы геометрияны дұрыс сұрыптайды. Тереңдікке дұрыс тапсырыс бермей қаңқа құрылымының төмен көрінуіне назар аударыңыз. Кескін ATI Mecha Demo

Тапсырысқа тәуелсіз ашықтық (OIT) - бұл техникалар класы растерациялық компьютерлік графика көрсету үшін мөлдірлік геометрияны сұрыпталған тәртіпте көрсетуді қажет етпейтін 3D көріністе альфа композициясы.

Сипаттама

Әдетте, мөлдірлігі бар 3D геометрия араластыру арқылы қолданылады (қолдану арқылы) альфа композициясы ) барлық беттерді бір буферге айналдырыңыз (мұны кенеп деп ойлаңыз). Әрбір бет қолданыстағы түстерді жауып тастайды және оған байланысты өзіндік түстерін қосады альфа мәні, жарықтың қатынасы өткізгіштік. Беттердің араласу реті жалпы окклюзияға немесе әсер етеді көріну әр бетінің Дұрыс нәтиже алу үшін беттерді, байланысты, ең жақыннан жақынға немесе жақыннан араластыру керек альфа композициясы жұмыс, аяқталды немесе астындаТапсырысқа геометрияны сұрыпталған тәртіпте беру арқылы қол жеткізуге болады, мысалы үшбұрыштарды тереңдігі бойынша сұрыптау, бірақ әрдайым шешім шығара бермейді (қиылысатын немесе дөңгелектес геометрия жағдайында) уақыт өте алады, ал орындалуы күрделі .Оның орнына ретті тәуелсіз мөлдірлік геометрияны расталғаннан кейін пиксельге сұрыптайды. Нақты нәтиже үшін бәрін сақтау қажет фрагменттер сұрыптау және құрастыру алдында.

Тарих

А-буфер[1] - бұл 1984 жылы енгізілген компьютерлік графика техникасы, ол фрагменттік деректердің бір пиксельге тізімдерін сақтайды (соның ішінде) микро полигон ақпарат) программалық растерде, АШЫҚ, бастапқыда арналған лақап атқа қарсы сонымен қатар ашықтықты қолдау.

Жақында, тереңдіктегі пиллинг[2] 2001 жылы жеделдетілген OIT техникасын сипаттады. Графикалық жабдықтағы шектеулермен сахна геометриясы бірнеше рет көрсетілуі керек болды. Тереңдету қабілетін жақсартуды жақсарту үшін бірқатар әдістер қолданылды, әлі де көп реңктермен шектелген. Мысалы, Қосарланған тереңдіктің қабығы (2008).[3]

2009 жылы GPU аппараттық құралына / драйверлеріне / Graphics API интерфейстеріне екі маңызды мүмкіндіктер енгізілді, бұл сахнаның бір рендеринг кезінде фрагменттік деректерді сақтауға және сақтауға мүмкіндік берді, бұған дейін мүмкін емес нәрсе болды, мысалы, бейненің ерікті GPU жадына жазу мүмкіндігі. атомдық операциялар. Осы ерекшеліктермен сахна геометриясының көптеген көрсетілімдерін қажет етпейтін OIT техникасының жаңа класы пайда болды.

  • Біріншісі - фрагменттік деректерді 3D массивінде сақтау,[4] мұнда фрагменттер бойымен сақталады з әрбір пиксел үшін өлшем х / у. Іс жүзінде 3D массивінің көп бөлігі пайдаланылмайды немесе толып кетеді тереңдік күрделілігі әдетте біркелкі емес. 3D массивінің асып кетуіне жол бермеу үшін үлкен көлемдегі жад қажет, бұл көптеген жағдайларда практикалық емес.
  • Бұл жадты азайтуға арналған екі тәсіл бар.
    1. 3D массивін префикстің жиынтық сканерлеуімен орау немесе сызықтық,[5] пайдаланылмаған жад мәселесін жойды, бірақ қосымша қажет тереңдік күрделілігі геометрияны есептеуді ұсыну. The «Сирекшілік туралы» S-буфер, динамикалық фрагментті буфер,[6] «дека» D-буфер[дәйексөз қажет ], Сызықтық қабатты фрагментті буфер[7] барлық сканерлеу префиксі бар фрагменттік деректер пакеті және OIT көмегімен көрсетілген.
    2. Пикселге байланысты тізімдерде фрагменттерді сақтау[8] осы деректердің тығыз оралуын қамтамасыз етеді және 2011 жылдың аяғында драйвердің жетілдірілуі атомдық жұмысты жанжалды төмендетіп, техниканы өте бәсекеге қабілетті етеді.[7]

Нақты OIT

Дәл, керісінше шамамен, OIT соңғы түстерді дәл есептейді, ол үшін барлық фрагменттер сұрыпталуы керек. Күрделілігі жоғары көріністер үшін сұрыптау тығырыққа айналады.

Сұрыптау кезеңіндегі бір мәселе - жергілікті жады шектеулі толтыру, бұл жағдайда а SIMT GPU-дің өнімділігі мен жұмысының кешігуін жасыруға қатысты атрибут. Артқа жадыны бөлу[9] (BMA) пикселдерді тереңдігі бойынша күрделілігі бойынша топтастырады және оларды тереңдіктің күрделілігі жоғары көрініс контекстінде тереңдіктің күрделілігі төмен пикселдердің өнімділігін жақсарту үшін топтамада сұрыптайды. Жалпы OIT өнімділігінің 3 есе өсуі туралы хабарланды.

Сұрыптау әдетте жергілікті массивте жүзеге асырылады, бірақ өнімділігі GPU жадының иерархиясын қолдану және регистрлерде сұрыптау арқылы жақсартылуы мүмкін,[10] ұқсас сыртқы біріктіру сұрыптамасы, әсіресе BMA-мен бірге.

Шамамен OIT

Шамамен OIT әдістері тезірек нәтиже беру үшін дәл бейнелеудің шектеулерін жеңілдетеді, барлық фрагменттерді сақтамау немесе геометрияны ішінара сұрыптау арқылы жоғары өнімділікке қол жеткізуге болады. азайту, фрагмент деректері. Оларға мыналар кіреді:

  • Стохастикалық мөлдірлік: үлкен мөлдірлікте жоғары ажыратымдылықпен салыңыз, бірақ кейбір үзінділерді тастаңыз. Содан кейін кіші таңдау мөлдірлікке әкеледі.[11]
  • Адаптивті ашықтық,[12] екі жылдамдықты техника, мұнда біріншісі жылдамдықта қысылатын көріну функциясын жасайды (бұл қысу үзінділерді толығымен сұрыптаудан аулақ болады), ал екіншісі осы деректерді реттелмеген фрагменттерді құрастыру үшін қолданады. Intel's пикселдік синхрондау[13] барлық басқа фрагменттерді сақтау қажеттілігін болдырмайды, көптеген басқа OIT әдістерінің шексіз жад қажеттілігін алып тастайды.

Жабдықтағы OIT

  • Сега Dreamcast ойын консолінде автоматты OIT үшін аппараттық қолдау бар.[14]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ Лорен Карпентер. «А-буфер, антивиазиялы жасырын беттік әдіс», SIGGRAPH '84 Компьютерлік графика және интерактивті әдістер бойынша 11-ші жылдық конференция материалдары 103-108 беттер, 1984 ж. Шілде
  2. ^ Everitt, Cass (2001-05-15). «Интерактивті тапсырыс-тәуелсіз мөлдірлік». Nvidia. Архивтелген түпнұсқа 2011-09-27. Алынған 2008-10-12.
  3. ^ Бавойл, Луи (ақпан 2008). «Екі қабатты қабықшамен тәуелсіз мөлдірлікке тапсырыс беру» (PDF). Nvidia. Алынған 2013-03-12.
  4. ^ Фан Лю, Мен-Ченг Хуан, Сюэ-Хуй Лю және Эн-Хуа Ву. «CUDA растеризаторы арқылы бір реттік тереңдіктегі пиллинг», SIGGRAPH 2009 жылы: келіссөздер (SIGGRAPH '09), 2009 ж
  5. ^ Крейг Пипер. «А-буферлік сақтауды сызықтық түрге көшірудің префиксі», Патенттік өтінім, желтоқсан, 2008 ж
  6. ^ Марилена Маул мен Джоао Л.Д. Комба және Рафаэль Торшелсен және Руи Бастос. «Динамикалық фрагменттің буферімен жадқа оңтайландырылған тәртіпке тәуелсіз мөлдірлік», In Computers & Graphics, 2014 ж.
  7. ^ а б Pyarelal Knowles, Geoff Leach және Fabio Zambetta. «20 тарау: қабатты буфер буферінің тиімді әдістері», OpenGL Insights, 279-292 беттер, Редакторлар Козци және Риччио, CRC Press, 2012 ж
  8. ^ Джейсон C. Янг, Джастин Хенсли, Холгер Грюн және Николас Тибиероз. «Графикалық процессордағы нақты уақыттағы параллельді тізімді құру», Рендеринг бойынша 21-ші Eurographics конференциясының материалдары (EGSR'10), 2010 ж
  9. ^ Білім; т.б. (Қазан 2013). «Жадыны артқа бөлу және жақсартылған OIT» (PDF). Eurographics сандық кітапханасы. Архивтелген түпнұсқа (PDF) 2014-03-02. Алынған 2014-01-21.
  10. ^ Білім; т.б. (Маусым 2014). «Кешенді көріністердің нақты OIT үшін жылдам сұрыптау» (PDF). Springer Berlin Heidelberg. Архивтелген түпнұсқа (PDF) 2014-08-09. Алынған 2014-08-05.
  11. ^ Эндертон, Эрик (ndd). «Стохастикалық мөлдірлік» (PDF). Nvidia. Алынған 2013-03-12.
  12. ^ Сальви; т.б. (2013-07-18). «Бейімделгіш мөлдірлік». Алынған 2014-01-21.
  13. ^ Дэвис, Лей (2013-07-18). «Pixel синхронизациясымен тәуелсіз ашықтықты жақындату». Intel. Алынған 2014-01-21.
  14. ^ «Dreamcast Microsoft Direct3D өнімділігін оңтайландыру». Microsoft. 1999-03-01.