Сецкање (рачунарска графика)

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

Сецкање, у области рачунарска графика, је метода за селективно коришћење операција рендеровања међу одређеним областима употребе. Математички, сецкање се може опсати као део конструктивне геометрије. Алгоритам за рендеровање само црта пикселе на раскрсници између прозора за сецкање и модела. Линије напољу поља се уклањају.[1]

Прозори за сецкање се често наводе да би побољшали алгоритме за рендеровање. Добро изабрано сецкање може да убрза рад рендерера као и да сачува меморију тако што ће прескочити израчунавања која су повезана са пикселима које корисници не могу да виде. Пиксели који ће бити нацртани се налазе у оквиру прозора за сецкање. Пиксели који се неће нацртати се налазе ван њега. Неформално се каже за пикселе који неће бити нацртани да су исечени, исецкани одакле и потиче назив ове методе.

Сецкање у 2D графици[уреди]

У дводимензионалној графици, прозор за сецкање може да се дефинише тако да се пиксели исцртавају само у граници оквира прозора. Регије сецкања такође могу да се користе за селективну контролу рендеровања пиксела за естетске или уметничке намене. У многим имплементацијама, финална област сецкања је раскрсница једног или више облика који су дефинисани апликацијом, као и било која ограничења система.

У једном примеру примене, разматра се програм за обраду слика. То је корисничка апликација која рендерује слику да може да се обрађује. Како корисник зумира и скролује да би видео мањи део слике, апликација поставља границу сецкања тако да се пиксели ван оквира не рендерују. Уз то, GUI пречице, преклапања и слојеви и други прозори или оквири могу да поремете неке пикселе из оригиналне слике, што представља проблем. Софтвер апликације може да искористи информацију о сецкању и да уштеди време, меморију и енергију, а да избегне посао са пикселима који нису видљиви.

Сецкање у 3D графици[уреди]

Један фрустум, са блиским и далеким равнима за сецкање. Само је осенчен део рендерован.

У тродимензионалној графици, термин сецкања може да се користи за описивање многих појмова. Обично се користи за описивање операција у равни које раде са правоугаоним облицима, док се „калинг“ као термин користи за општије методе за селектвину обраду модела елемената. Ова терминологија није стриктна и варира међу изворима.

У моделе елемената спадају разлочити примитивни геометријски облици: течке и гране; сегменти грана; многоуглови; као и абстрактинији модели објеката као криве, испрекидане линије, површи, па чак и текст. У компликованијим моделила, појединачни елементи могу да се селективну сецкају из различитих разлога (видљивост у самом прозору (фрастум калинг), оријентација (бекфејс калинг), смањена видљивост због других елемената, оквира, прозора (оклужн калинг)). Сложени алгоритми постоје да би се ефикасно детектовали елементи на којима треба да се врши сецкање. Многи оптимизирани методи сецкања зависе од специфичног хардвера конкретно графичке картице и јединице за графичку обраду (ЈГО).

Концепт сецакња може да се прошири до већих димензија помоћу метода абстрактне алгебре.

Оклузија ( З – или дубинско сецкање)[уреди]

У 3D графици, „З“ се често односи на дубину осе у систему координата које центриране на извор погледа: „З“ се користи колико и „дубина“, и концептуално одговара даљини у виртуелном екрану. У овом координатном систему „X“ и „Y“ се онда односе на конвенционалне координате Декартовог координатног система који је постављен на корисников екран који представља извор. Извор се дефинише преко геометрије фрустума и параметризује као поље погледа.

З- сецкање, или дубинско сецкање, се односи на технике које селективно рендерују одређене објекте на основу њихове дубине у односу на екран. Већина алата за графику дозвољава програмеру да наведе блиско и далеко сецкање дубине, и само делови објеката између те две равни се приказују. Креативни програмер апликације може да користи ову методу да рендерује визуелизацију унутршњости 3D објекта у тој сцени. На пример, апликација за представљање хируршке операције може да користи технику да рендерује органе који се налазе унутар људског тела. Програмер видео игре може да користи информације које сецкање даје да би убрзао логику игре. На пример, висока зграда са високим зидовима која заклања остале ентитете игре може да уштеди рад ЈГО које би иначе било потрошено на трансформацију и израду текстуре у позадиниским областима сцене који су заклоњени зградом; а софрверски програм може да користи ту исту информацију да да сачува време рада процесора тако што оптимизује логику игре за објекте које играч не може да види.

Важност и значај сецкања у видео играма[уреди]

Добра стратегија сецкања је битна у развоју видео игара да би се моксимизирао број фрејмова и визуелни квалитет. Упркос ЈГО чиповима који су све бржи сваке године, и даље је врло „скупо“ да се трансформишу, текстуришу и сенче многоуглови, нарочито са вишеструком текстуром и сенчењем који су врло чести данас. Дакле, људи који развијају видео игре морају да мисле на одређени „буџет“ многоуглова који могу да се исртавају ус сваком видео фрејму.

Да ви се максимизирао визуелни квалитет игре, девелопери више воле да да им уместо границе и лимити хардвера, буџет диктира естетика. Оптимизација која штеди перфорамансе дакле искоришћава брзину ЈГО да би побољшала доживљај играча.

Овај тип оптимизације може да убрза рендеровање тренутне сцене, и да штеди време и меморију рендерера да притом користи што боље могућности хардвера. Програмери често смишљају домишљату хеуристику да би убрзали сецкање, јер је понекад некорисну да се користи кастовање линије итд. да би се са стопостотном прецизношћу одредила прецизност колико се многоуглови не налазе у видном пољу камере. Структуре података које су „свесне“ простора као нпр. Октална стабла или R* стабла могу да се користи за цепање сцене на мање делове који представњају делове који треба или не треба се рендерују.

Оптимизација оклузије која се заснива на геометрији видног поља могу да уведу атрифакте ако сцена садржи рефлективне површине. Честа техника, мапирање рефлексија, може да оптимално користи постојећу оклузију; или ако перформансе то дозвољавају да рачуна од одвојене позиције камере. 

Из историјских разлога, неке видео игра су користиле оптимизацију детекцију удара која је идентична са логиком и убрзавањем хардвера као тест оклузије. Термин сецкање се понекад односио на детекцију судара. 

Алгоритми[уреди]

Види још[уреди]

Литература[уреди]

Референце[уреди]

  1. ^ Bertoline, Gary; Wiebe, Eric (2002). Fundamentals of Graphics Communication (3rd изд.). McGraw-Hill. стр. G-3. ISBN 0-07-232209-8. Приступљено 2015-01-04. 
  2. ^ Sekulić, Dean (2004). „Efficient Occlusion Culling”. GPU Gems. Pearson. Архивирано из оригинала на датум 05. 06. 2013. Приступљено 2. 1. 2015. 
  3. ^ „java.awt.Graphics.clipRect”. Oracle. 2014. 
  4. ^ Martz, Paul (2001). „Clipping, Culling, and Visibility Testing”. OpenGL.org. Приступљено 2. 1. 2015.