Кіріспе

Көп үлгілі антиалиазинг (MSAA) - кеңістіктік антиалиазингтің бір түрі, ол компьютерлік графикада жагларды жою үшін қолданылатын әдіс.

Анықтама

Бұл термин әдетте суперсемплиннің ерекше жағдайын білдіреді. Толық көрініс антиалиазингінің (FSAA) бастапқы іске асырылуы тұжырымдамалық түрде көріністі жоғары ажыратылымда көрсету арқылы, содан кейін төменгі ажыратылым шығысына дейін төмендету арқылы жұмыс істеді. Қазіргі заманғы GPU-лардың көпшілігі антиалиазингтің осы түріне қабілетті, бірақ ол текстура, жолақты кеңдік және толтыру жылдамдығы сияқты ресурстарды қатты жүктейді. (Егер бағдарламаның TCL-ге немесе CPU-ге байламы жоғары болса, суперсемплингті өнімділікке көп әсер етпей пайдалануға болады.) OpenGL GL ARB көп үлгілік спецификациясына сәйкес "көп үлгілік" дегеніміз супер үлгілік ерекше оптималдандыруды білдіреді. Спецификация рендерердің фрагмент бағдарламасын пикселге бір рет бағалайтынын және тек тереңдік пен штемпель мәндерін "нағыз" суперсемплер жасайтынын талап етеді. (Бұл суперсамплингпен бірдей емес, бірақ OpenGL 1.5 спецификациясымен анықтаманы толық суперсамплингті іске асыру үшін жаңартты.) Жалпы графикалық әдебиетте "мультисемплинг" дегеніміз - түпкілікті кескіннің кейбір компоненттері толық суперсемплингке ие емес суперсемплингтің кез келген ерекше жағдайы. Төмендегі тізімдер ARB-нің көп үлгілік анықтамасымен тікелей байланысты.

Сипаттама

Суперсемплер анти-алиасингінде әр пикселдің ішінде бірнеше орыннан үлгі алынады, ал осы үлгілердің әрқайсысы толықтай рендерингтен өткізіліп, басқалармен біріктіріліп, ақыр соңында көрсетілетін пикселді шығарады. Бұл есептеу жағынан қымбат, өйткені барлық рендеринг процесін әрбір үлгілік орын үшін қайталау керек. Бұл сондай-ақ тиімді емес, өйткені псевдо-тақырыпты пайдалану әдетте суреттің кейбір бөліктерінде, мысалы, жиектерде ғана байқалады, ал суперсемплинг әрбір пиксел үшін жүргізіледі. Көп үлгілі антиалиазингте, егер пикселдегі көп үлгілі орындардың кез-келгенін түсіріліп жатқан үшбұрыш қамтыса, сол үшбұрыш үшін көлеңкелеу есептеуін жүргізу керек. Алайда бұл есептеуді қанша үлгілік позиция қамтылғанына қарамастан, бүкіл пиксел үшін бір рет қана орындау қажет; көлеңкелеу есептеуінің нәтижесі барлық тиісті бірнеше үлгілік орындарға қолданылады. Пиксел ішіндегі әрбір көп үлгілік орынды тек бір үшбұрыш қамтитын жағдайда, тек бір көлеңкелеу есептеулері жүргізіледі және бұл пиксельдер анти-алиазивті емес кескінге қарағанда арзан (және нәтиже басқаша емес). Бұл үшбұрыштың ортасында, ал аллиазинг мәселе емес. (Еңбекті анықтау бұл жағдайды MSAA есептеуін піксельдерге, олардың үлгілері бірнеше үшбұрышты немесе бірнеше тереңдіктегі үшбұрышты қамтитын піксельдерге шектеу арқылы одан әрі азайта алады.) Көп үлгілі орындардың әрқайсысы әртүрлі үшбұрышпен қамтылған жағдайда әр түрлі көлеңкелеу есептеулері әр орын үшін жүргізіледі, содан кейін нәтижелер соңғы пикселді беру үшін біріктіріледі, ал нәтиже мен есептеу шығыны эквивалентті суперсемплерленген кескіндегідей болады. Көлдірлеуді есептеу - бұл берілген пикселге орындалуы тиіс жалғыз операция емес; көп үлгі алудың іске асырылуы түрлі үлгі алу деңгейлерінде көріну сияқты басқа операцияларды әртүрлі үлгілеуі мүмкін.

Артықшылықтар

Пиксельдік шаяруды әдетте кемінде бір үлгі нүктесін қамтитын әрбір үшбұрышты пиксел үшін бір рет қана бағалау қажет. Көпбұрыштардың жиектері (3D графикада атаусыздықтың ең анық көзі) анти-атаусыздыққа қарсы. Бір пикселге бірнеше субпикселден үлгі алынғаны үшін, MSAA болмаса жоғалып кетуі мүмкін бір пикселден кіші көпбұрышты бөлшектер түсірілуі мүмкін және жеткілікті үлгілер алынса, соңғы берілген кескіннің бір бөлігіне айналуы мүмкін.

Альфа сынағы

Альфа-тестілеу - бұл эски видео ойындарда қолданылатын, фреймбуферге жазылудан пикселдерді қабылдамау арқылы мөлдір нысандарды көрсету үшін қолданылатын әдіс. Егер мөлдір фрагменттің (пикселдің) альфа-маңызы белгіленген шектен төмен болса, ол жойылады. Бұл пиксел бойынша пиксел негізінде орындалғандықтан, сурет бірнеше үлгі алудың пайдасын алмайды (пикселдегі барлық көп үлгілер альфа-тесті негізінде жойылады) осы пиксельдер үшін. Нәтижесінде алынған кескінде мөлдір нысандардың шеттері бойымен немесе текстуралар ішіндегі шеттерде алиазинг болуы мүмкін, бірақ кескін сапасы антиалиазингсіз болатыннан нашар болмайды. Альфа-тестілеу текстураларын пайдалана отырып модельденген мөлдір объектілер де альфа-тестілеуден кейін аталады. Бұл әсерді мөлдір текстуралы объектілерді бірнеше рет көрсету арқылы азайтуға болады, бірақ бұл көптеген мөлдір объектілерді қамтитын көріністерде жоғары өнімділікті азайтуға әкеледі.

Аталық атауы

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

Өнер көрсету

SSAA-дан (суперсемплингтен) төмен өнімділік интенсивті болғанымен, белгілі бір сценарийлерде (көптеген күрделі фрагменттердегі көріністер) MSAA FXAA, SMAA және MLAA сияқты антиалиазингтік әдістерден бірнеше есе жоғары болуы мүмкін. Бұл санаттағы ерте техникалар өнімділікке әсерін төмендетеді, бірақ дәлдік проблемалары бар. Соңғыда постөңдеуге негізделген алиазингке қарсы әдістер, мысалы, уақытша антиалиазинг (TAA), ол бұрын берілген кадрлардан алынған деректерді біріктіру арқылы алиазингті азайтады, бұл үрдістің кері бұрылуын көрді, өйткені постөңдеуге негізделген АА MSAA-ға қарағанда көпжақты және қымбат болады, ол бүкіл кадрды жалғыз өзі антиалиазалай алмайды.

Нысаннан үлгі алу

Нүктелік үлгідегі маскада әрбiр көп үлгіге арналған қамту биті тек егер көп үлгі берілген примитивтің ішінде орналасса ғана қойылады. Үлгілер ешқашан бастапқыдан тыс жерде алынбайды, сондықтан нүктелік үлгі алу арқылы алынған суреттер геометриялық жағынан дұрыс болады, бірақ сүзгілеу сапасы төмен болуы мүмкін, өйткені пикселдің қамту маскасында орнатылған биттердің үлесі пикселдің нақты бөлігінен айырмашылығы болуы мүмкін.

Аумақтық сынама алу

Өлшемі бойынша сынама алынған маскаларды қолдану арқылы сүзгілеу сапасын жақсартуға болады. Бұл әдісте пикселдің қаптамалық маскасында орнатылған биттердің саны фрагменттің нақты ауданына пропорционал болуы тиіс. Бұл кейбір жапсыру биттерінің реенделенген примитив ішінде нақты орналаспайтын көп үлгілер үшін орнатылуына әкеледі және алиазинг пен басқа да артефакттерді тудырады.

Тұрақты тор

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

Спарс тұрақты тор

Қалыңдығы аз тұрақты тор үлгісі - тұрақты тор үлгісінен таңдалған үлгілердің кіші жиынтығы. Қалыпты тордағыдай, атрибуттарды бағалау тұрақты арақашықтыққа байланысты оңайлатылады. Бұл әдіс есептеу жағынан арзан, өйткені оның үлгілері аз. Шекараны оңтайландыру экранның тізбектелген шекаралары үшін жақсы, ал бейне сапасы орташа сандағы көп үлгілер үшін жақсы.

Стокстатикалық үлгілер

Стохастикалық үлгі - пиксел бойынша көп үлгілердің кездейсоқ таралуы. Үлгілердің арақашықтығы бұзылуы атрибуттарды бағалауды қиындатады. Бұл әдіс үлгілердің саны аз болғандықтан (дәстүрлі желілік үлгілермен салыстырғанда) тиімді. Бұл әдіспен жиектерді оңтайландыру, бірақ экранның тіке орналасқан жиектері үшін оңтайлы емес. Үлгілердің орташа саны үшін сурет сапасы өте жақсы.

Сапасы

Суперсемплинге қарағанда, көп үлгідегі антиалиазинг жоғары өнімділікте ұқсас сапаны немесе бірдей өнімділік үшін жақсы сапаны қамтамасыз ете алады. Бұрылатын торлық субпиксель маскаларын пайдалану арқылы одан әрі жақсартылған нәтижелерге қол жеткізуге болады. Егер Z және түстерді қысу мүмкіндігі болса, бірнеше үлгі алу үшін қажетті қосымша жолақтың ені өте аз. Қазіргі заманғы GPU-лардың көпшілігі 2×, 4× және 8× MSAA үлгілерін қолдайды. Жоғары мәндер сапаны жақсартады, бірақ баяу жүреді.