Seckanje (računarska grafika)

S Vikipedije, slobodne enciklopedije

Seckanje, u oblasti računarska grafika, je metoda za selektivno korišćenje operacija renderovanja među određenim oblastima upotrebe. Matematički, seckanje se može opsati kao deo konstruktivne geometrije. Algoritam za renderovanje samo crta piksele na raskrsnici između prozora za seckanje i modela. Linije napolju polja se uklanjaju.[1]

Prozori za seckanje se često navode da bi poboljšali algoritme za renderovanje. Dobro izabrano seckanje može da ubrza rad renderera kao i da sačuva memoriju tako što će preskočiti izračunavanja koja su povezana sa pikselima koje korisnici ne mogu da vide. Pikseli koji će biti nacrtani se nalaze u okviru prozora za seckanje. Pikseli koji se neće nacrtati se nalaze van njega. Neformalno se kaže za piksele koji neće biti nacrtani da su isečeni, iseckani odakle i potiče naziv ove metode.

Seckanje u 2D grafici[uredi | uredi izvor]

U dvodimenzionalnoj grafici, prozor za seckanje može da se definiše tako da se pikseli iscrtavaju samo u granici okvira prozora. Regije seckanja takođe mogu da se koriste za selektivnu kontrolu renderovanja piksela za estetske ili umetničke namene. U mnogim implementacijama, finalna oblast seckanja je raskrsnica jednog ili više oblika koji su definisani aplikacijom, kao i bilo koja ograničenja sistema.

U jednom primeru primene, razmatra se program za obradu slika. To je korisnička aplikacija koja renderuje sliku da može da se obrađuje. Kako korisnik zumira i skroluje da bi video manji deo slike, aplikacija postavlja granicu seckanja tako da se pikseli van okvira ne renderuju. Uz to, GUI prečice, preklapanja i slojevi i drugi prozori ili okviri mogu da poremete neke piksele iz originalne slike, što predstavlja problem. Softver aplikacije može da iskoristi informaciju o seckanju i da uštedi vreme, memoriju i energiju, a da izbegne posao sa pikselima koji nisu vidljivi.

Seckanje u 3D grafici[uredi | uredi izvor]

Jedan frustum, sa bliskim i dalekim ravnima za seckanje. Samo je osenčen deo renderovan.

U trodimenzionalnoj grafici, termin seckanja može da se koristi za opisivanje mnogih pojmova. Obično se koristi za opisivanje operacija u ravni koje rade sa pravougaonim oblicima, dok se „kaling“ kao termin koristi za opštije metode za selektvinu obradu modela elemenata. Ova terminologija nije striktna i varira među izvorima.

U modele elemenata spadaju razločiti primitivni geometrijski oblici: tečke i grane; segmenti grana; mnogouglovi; kao i apstraktiniji modeli objekata kao krive, isprekidane linije, površi, pa čak i tekst. U komplikovanijim modelila, pojedinačni elementi mogu da se selektivnu seckaju iz različitih razloga (vidljivost u samom prozoru (frastum kaling), orijentacija (bekfejs kaling), smanjena vidljivost zbog drugih elemenata, okvira, prozora (oklužn kaling)). Složeni algoritmi postoje da bi se efikasno detektovali elementi na kojima treba da se vrši seckanje. Mnogi optimizirani metodi seckanja zavise od specifičnog hardvera konkretno grafičke kartice i jedinice za grafičku obradu (JGO).

Koncept secaknja može da se proširi do većih dimenzija pomoću metoda apstraktne algebre.

Okluzija ( Z – ili dubinsko seckanje)[uredi | uredi izvor]

U 3D grafici, „Z“ se često odnosi na dubinu ose u sistemu koordinata koje centrirane na izvor pogleda: „Z“ se koristi koliko i „dubina“, i konceptualno odgovara daljini u virtuelnom ekranu. U ovom koordinatnom sistemu „X“ i „Y“ se onda odnose na konvencionalne koordinate Dekartovog koordinatnog sistema koji je postavljen na korisnikov ekran koji predstavlja izvor. Izvor se definiše preko geometrije frustuma i parametrizuje kao polje pogleda.

Z- seckanje, ili dubinsko seckanje, se odnosi na tehnike koje selektivno renderuju određene objekte na osnovu njihove dubine u odnosu na ekran. Većina alata za grafiku dozvoljava programeru da navede blisko i daleko seckanje dubine, i samo delovi objekata između te dve ravni se prikazuju. Kreativni programer aplikacije može da koristi ovu metodu da renderuje vizuelizaciju unutršnjosti 3D objekta u toj sceni. Na primer, aplikacija za predstavljanje hirurške operacije može da koristi tehniku da renderuje organe koji se nalaze unutar ljudskog tela. Programer video igre može da koristi informacije koje seckanje daje da bi ubrzao logiku igre. Na primer, visoka zgrada sa visokim zidovima koja zaklanja ostale entitete igre može da uštedi rad JGO koje bi inače bilo potrošeno na transformaciju i izradu teksture u pozadiniskim oblastima scene koji su zaklonjeni zgradom; a sofrverski program može da koristi tu istu informaciju da da sačuva vreme rada procesora tako što optimizuje logiku igre za objekte koje igrač ne može da vidi.

Važnost i značaj seckanja u video igrama[uredi | uredi izvor]

Dobra strategija seckanja je bitna u razvoju video igara da bi se moksimizirao broj frejmova i vizuelni kvalitet. Uprkos JGO čipovima koji su sve brži svake godine, i dalje je vrlo „skupo“ da se transformišu, teksturišu i senče mnogouglovi, naročito sa višestrukom teksturom i senčenjem koji su vrlo česti danas. Dakle, ljudi koji razvijaju video igre moraju da misle na određeni „budžet“ mnogouglova koji mogu da se isrtavaju us svakom video frejmu.

Da vi se maksimizirao vizuelni kvalitet igre, developeri više vole da da im umesto granice i limiti hardvera, budžet diktira estetika. Optimizacija koja štedi perforamanse dakle iskorišćava brzinu JGO da bi poboljšala doživljaj igrača.

Ovaj tip optimizacije može da ubrza renderovanje trenutne scene, i da štedi vreme i memoriju renderera da pritom koristi što bolje mogućnosti hardvera. Programeri često smišljaju domišljatu heuristiku da bi ubrzali seckanje, jer je ponekad nekorisnu da se koristi kastovanje linije itd. da bi se sa stopostotnom preciznošću odredila preciznost koliko se mnogouglovi ne nalaze u vidnom polju kamere. Strukture podataka koje su „svesne“ prostora kao npr. Oktalna stabla ili R* stabla mogu da se koristi za cepanje scene na manje delove koji predstavnjaju delove koji treba ili ne treba se renderuju.

Optimizacija okluzije koja se zasniva na geometriji vidnog polja mogu da uvedu atrifakte ako scena sadrži reflektivne površine. Česta tehnika, mapiranje refleksija, može da optimalno koristi postojeću okluziju; ili ako performanse to dozvoljavaju da računa od odvojene pozicije kamere. 

Iz istorijskih razloga, neke video igra su koristile optimizaciju detekciju udara koja je identična sa logikom i ubrzavanjem hardvera kao test okluzije. Termin seckanje se ponekad odnosio na detekciju sudara. 

Algoritmi[uredi | uredi izvor]

  • Line clipping algorithms:
  • Polygon clipping algorithms:
    • Greiner-Hormann
    • Sutherland–Hodgman
    • Weiler–Atherton
    • Vatti
  • Rendering Methodologies
    • Painter's algorithm

Vidi još[uredi | uredi izvor]

Literatura[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ Bertoline, Gary; Wiebe, Eric (2002). Fundamentals of Graphics Communication (3rd izd.). McGraw-Hill. str. G-3. ISBN 0-07-232209-8. Pristupljeno 2015-01-04. 
  2. ^ Sekulić, Dean (2004). „Efficient Occlusion Culling”. GPU Gems. Pearson. Arhivirano iz originala 05. 06. 2013. g. Pristupljeno 2. 1. 2015. 
  3. ^ „java.awt.Graphics.clipRect”. Oracle. 2014. 
  4. ^ Martz, Paul (2001). „Clipping, Culling, and Visibility Testing”. OpenGL.org. Pristupljeno 2. 1. 2015.