Written by Evgeniy Romin.
Артыкул падрыхтаваны адмыслова для канферэнцыі Innotech - http://conference.msa.pstu.ru/
Аўтары: Бояршинов Аляксандр і Раміну Яўген.
На сучасным этапе развіцця 3D рэдактараў і сродкаў мадэлявання стала досыць лёгка ствараць дэталізаваныя 3D мадэлі для выкарыстання ў розных прыкладаннях якія працуюць з трохмернай графікай. Асабліва актыўна высока дэталізаваныя мадэлі выкарыстоўваюцца ў вытворчасці спецэфектаў для кінафільмаў або ў гульнях. Аднак пры спробе выкарыстоўваць гэтыя мадэлі ў інтэрактыўных прыкладаннях для мабільных прылад, сімулятарах і ГІС узнікаюць праблемы. Асноўныя перашкоды заключаюцца ў неабходнасці вылучэння вялікага аб'ёму вылічальных рэсурсаў, складанасці апрацоўкі аб'ектаў. Таксама наяўнасць вялікай колькасці палігонаў у сцэне або ў мадэлі абмяжоўвае магчымасць запуску прыкладання на прыладах з нізкай вылічальнай магутнасцю. Такім чынам існуе праблема патрабуе аптымізацыі ўжо гатовых трохмерных дэталізаваных мадэляў для выкарыстання ў прыкладаннях на прыладах з нізкай вылічальнай магутнасцю.
Мэтай гэтага артыкула з'яўляецца агляд некалькіх метадаў аптымізацыі высока дэталізаваных 3D мадэляў і прымяненне іх на практыцы, у рамках работы над студэнцкім праектам WitchCraft.
Алгарытмы выдалення нябачных граняў і ліній. Вылучаюць тры класа такіх алгарытмаў [1]:
- Алгарытмы, якія працуюць у прасторы экрана. Яны заснаваны на разліку траплення граняў ў зону бачнасці назіральніка з пэўнай кропкі.
- Алгарытмы, якія працуюць непасрэдна ў прасторы аб'ектаў (сцэны). Часцяком у мадэлях існуюць мяжы, якія размяшчаюцца ўнутры аб'екта, або на адваротным баку схаванай ад назіральніка. Для вылічэнні бачных паверхняў выкарыстоўваецца параўнанне і разлік размяшчэння ўсіх аб'ектаў знаходзяцца ў сцэне і выдаленне ўсіх нябачных граняў.
- Алгарытмы, са спісам прыярытэтаў. З'яўляюцца гібрыднай мадыфікацыяй першых двух і працуюць выкарыстоўваючы абодва алгарытму напераменку.
Мал. 1 Прыклад выкарыстання алгарытмаў выдалення граняў нябачных для карыстальніка ў звычайным рэжыме
Да вартасцяў алгарытмаў выдалення нябачных граняў і ліній можна аднесці высокай ўзровень аптымізацыі і адсутнасць страт якасці бачнага для назіральніка. Недахопамі ж з'яўляецца нізкая хуткасць апрацоўкі, высокае спажыванне вылічальных рэсурсаў і адсутнасць магчымасці апрацоўкі ў рэальным часе на большасці прылад.
Алгарытмы рэдукцыі палігонаў (Polygon Reduction). Рэдукцыя - працэс спрашчэння 3D мадэлі шляхам змяншэння колькасці палігонаў. Прынцып працы метаду заключаецца ў замяшчэнні групы палігонаў адным, найбольш блізкім да зыходнай групе па размяшчэнню вяршыняў. Большасць 3D рэдактараў маюць магчымасць задаваць інтэнсіўнасць рэдукцыі, што дазваляе выбраць патрэбныя суадносіны паміж узроўнем прапрацоўкі мадэлі і эканоміяй вылічальнай магутнасці.
Мал. 2 Метад рэдукцыі палігонаў на прыкладзе персанажа і выбар аптымальнай канфігурацыі.
Да вартасцяў адносяць лёгкасць выкарыстання і высокую хуткасць апрацоўкі. Аднак недахопамі з'яўляецца скажэнне мадэлі пры моцным ці няправільным ужыванні метаду і неабходнасць перамалёўкі тэкстур, калі на першасную мадэль ужо была накладзеная тэкстура.
Алгарытмы ручнога стварэння низкополигональных мадэляў. Низкополигональные (low-poly) мадэлі выкарыстоўваюцца калі не патрабуецца высокая дэталізацыя, калі прымальнае якасць малюнка можна атрымаць, з дапамогай прапрацаваных тэкстур, карт нармалей і іншых візуальных эфектаў. Часцей за ўсё такія мадэлі выкарыстоўваюцца для эканоміі вылічальных рэсурсаў у 3D прыкладаннях, дзе ёсць неабходнасць адлюстравання мадэляў і анімацыі ў рэжыме рэальнага часу [2].
Пры стварэнні низкополигональных мадэляў варта імкнецца за мінімальна магчымая колькасць вяршыняў і рэбраў стварыць мадэль аб'екта досыць падобную на рэальны прататып. Існуе некалькі спосабаў стварэння візуальнага прадстаўлення трохмернага аб'екта з мінімальнымі стратамі якасці [3]:
Заданне аптымальнага колькасці палігонаў (дастатковую для захавання формы аб'екта, але не залішняе). Варта ўлічваць вобласць ужывання мадэлі і даступныя рэсурсы вылічальнай тэхнікі.
Мал. 3 Прыклады заданні прымітыву рознымі колькасцямі палігонаў.
- Зліццё суседніх блізкіх вяршыняў. У шэрагу выпадкаў мадэль можа мець некалькі вяршыняў засяроджаных на малой адлегласці адзін ад аднаго або якія знаходзяцца на адной прамой. Самым аптымальным рашэннем у дадзеным выпадку будзе аб'яднанне ўсіх вяршынь у адну, што паменшыць колькасць нефункцыянальных палігонаў.
"Закругленымі" шляхам зніжэння колькасці граняў на баках цыліндрычных аб'ектаў. Некаторыя сцэны з выкарыстаннем такіх аб'ектаў не маюць на ўвазе неабходнасці высокай дэталізацыі самай паверхні цыліндру. Менавіта ў такіх выпадках варта ўжываць скругленыя так як візуальнае ўспрыманне цыліндру слаба залежыць ад яго граняў.
Мал. 4 Прыклады выкарыстання метадаў "Зліцця вяршыняў» і «закругленымі».
- Выкарыстанне трохкутных палігонаў для мадэлявання сфер. Нягледзячы на больш складанае размяшчэнне палігонаў у параўнанні са сферай з чатырохкутных палігонаў, сфера з трыкутнікаў дазваляе абыйсціся меншым лікам палігонаў пры меншай ступені апраксімацыі.
Мал. 5 Дэманстрацыя адрозненні сфер з трохкутных і чатырохкутных палігонаў
Да вартасцяў ручнога стварэння низкополигональных мадэляў адносяць вельмі высокае фінальнае якасць і мінімальная колькасць палігонаў. Ключавымі недахопамі з'яўляецца высокая працаёмкасць і вельмі нізкая хуткасць мадэлявання.
Мал. 6 Параўнанне высокополигональной мадэлі гурткі (246 граняў) і низкополигональной (50 граняў).
Для таго каб ацаніць эфектыўнасць аптымізацыі высока дэталізаваных 3D мадэляў была створана сцэна з розных тыпаў аб'ектаў, да якіх былі ўжытыя апісаныя вышэй метады і алгарытмы.
Мал.7 Аптымізаваная сцэна для запуску на прыладах з нізкім колькасцю вылічальных рэсурсаў.
Да прыкладу, да будынкаў быў ужыты алгарытм выдалення нябачных граняў і ліній, для аптымізацыі персанажаў выкарыстоўваўся алгарытм рэдукцыі палігонаў, а прадметы інтэр'еру былі нанова змадэляваныя з выкарыстаннем тэхнік стварэння низкополигональных аб'ектаў. Такім чынам атрымалася дамагчыся значнага змяншэння колькасці палігонаў у сцэне, што наглядна паказана ў табліцы №1.
Тэсты і ацэнкі прадукцыйнасці праводзіліся на базе Unity 3D - мультиплатформенном інструменце для распрацоўкі двух-і трохмерных прыкладанняў. У канчатковым выніку скарачэнне колькасці палігонаў з 21292 да 6050 дало значны прырост прадукцыйнасці і памяншэнні нагрузкі на цэнтральны і графічны працэсар прылады.
Мал. 8 Графік нагрузкі на цэнтральны і графічны працэсар да і пасля аптымізацыі
заключэнне
У выніку выкарыстання метадаў аптымізацыі апісаных у артыкуле высокополигональная сцэна была ператворана ў нізка дэталізаваную. Канчатковым вынікам маніпуляцый стала памяншэнне нагрузкі цэнтральнага і графічнага працэсара на 28% і 42% адпаведна. Гэта дало магчымасць запуску сцэны на мабільным прыладзе з абмежаванымі вылічальнымі рэсурсамі, што паказвае эфектыўнасць дадзеных метадаў і перспектывы развіцця напрамкі ў цэлым.
Спіс літаратуры
- «Алгарытмы выдалення нябачных ліній і паверхняў» http://www.astro.tsu.ru/KGaG/text/5_6.html
- «Low-poly models / Паняцце нізка-полигональных мадэляў» http://www.gamedev.ru/art/terms/lowpoly
- «Low Poly Tricks, Tips & Techniques» http://www.loonygames.com/content/1.6/totb/index5.php