Sunteți pe pagina 1din 7

Universitatea Politehnica Bucuresti

Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei

Tehnici de ascundere a obiectelor invizibile, eliminarea


suprafeelor ascunse

Pestritu Ionut-Alexandru
Grupa 442B

Eliminarea prilor ascunse se face prin aplicarea unor algoritmi care permit gsirea fiecrui pixel al
ecranului care este o primitiv vizibil. Aceste este legat de procesul de conversie al obiectelor n pixeli.
Dac aceasta conversie are loc dup eliminarea prilor invizibile, acest proces de desfoar n spaiul
obiectului. n caz contrar, are loc n spaiul ecranului.

Algoritmi cu liste de prioriti


Aceast prim familie de algoritmi are ca principal caracteristic antecalculul ordinului de
vizibilitate nainte de afiare, care se face prin spaiul obiectului.
Cel mai cunoscut algoritm din aceast familie este cel numit algoritmul Newell, numit i algoritm
pentru desenare. Conform acestuia, calculul se deruleaz n dou faze:
se triaz obiectele funcie de distaa lor fa de observator; dac dou obiecte nu sunt
disjuncte din punctul de vedere al acestui criteriu, se decupeaz unul din cele dou obiecte
n mai multe sub-obiecte;
se afieaz ansamblul obiectelor ncepnd cu cel mai ndeprtat fa de observator.
Eliminarea feelor ascunse se face ntr-o manier implicit, obiectele cele mai ndeprtate fiind
acoperite de cele aflate n faa lor. Limitele acestui algoritm constau n faptul c trierea i decupaju
obiectelor care nu sunt disjuncte n profunzime, sunt operaiuni foarte costisitoare.

Algoritmi prin subdiviziune


Principiul de baz al acestui principiu este este realizarea unei subdiviziuni recursive a volumului
care nglobeaz scena sau care trebuie vizualizat n funcie de ecran. Prima soluie care exploateaz
aceast idee a fost elaborat de Warnock, care a decupat scena n patru zone corespunznd fiecare cte
unui sfert de ecran. Decupajul se face conform urmatorilor pai:
zona este vid;
zona conine un singur obiect;
obiectul se afieaz;
zona este complet acoperit de un obiect aflat n faa tuturor celorlalte obiecte;
se afieaz un obiect.
Acest algoritm presupune construirea recursiv a unor seturi (baterii) de obiecte prezente n fiecare
zon n cadrul ansamblului de obiecte, fiecare dintre ele fiind redimensionat la talia zonei. Acest algoritm
apeleaz la conversia obiectelor n pixeli. Singurele calcule sunt culorile obiectelor vizibile.

Algoritmi bazai pe linii de baleiaj


Principiul conform cruia aceast familie de algoritmi propune eliminarea prilor ascunse este
tratarea linie cu linie n spaiul imaginii, pe durata conversiei obiectelor n pixeli. Studierea obiectelor
prezente pe o linie de baleiaj, precum i a calcului interseciilor cu planul de baleiaj, se poate face prin
incrementare. Actualizarea listei de obiecte prezente pe o linie de baleiaj se poate de asemenea
incrementa pornind de la lista de obiecte prezente pe linia anterioar.

Metoda de ascundere Z buffer


Acest algoritm lucreaz n spaiul ecran i necesit o matrice de pixeli avnd talia ecranului grafic.
Se memoreaz adncimea z a atributelor. Se apeleaz acele valori ale atribultelor care permit
determinarea a ceea ce trebuie afiat n fiecare pixel.

Aceste atribute pot fi intensitatea, dac au fost deja efectuate calculele de luminozitate, sau
componentele unui vector normal i caracteristicile proprii obiectului, dac luminozitatea a fost calculat
dup eliminarea prilor ascunse.
Principiul de lucru al acestui algoritm este urmtorul:
adncimea z a tuturor pixelilor matricei este iniializat la cea mai mare valoare posibil;
pentru fiecare obiect al scenei se determin adncimea tuturor pixelilor unde este prezent;
dac ntr-un anumit pixel, adncimea are o valoare inferioar celei memorate, se stoceaz n
memorie pentru acel pixel ca un cuplu (z,a);
obiectele sunt tratate n ordine aleatoare, ele putnd avea form liber, cu singura condiie
s se poat calcula n toi pixelii distana de la observator la obiect.
Nu se apeleaz la trierea obiectelor sau la tratamente inter-obiecte. Obiectele sunt tratate n orice
ordine. Limita acestui algoritm este dat de numrul considerabil de mare de accese la memorie care
trebuiesc realizate. Algoritmul este foarte des utilizat att n forma prezentat mai sus, ct i ntr-o form
particular, care aplic algoritmul Z buffer linie cu linie, n care o linie de ecran corespunde proieciei unui
plan perpendicular pe ecran, apoi se determin interseciile obiectelor cu planul.

In continuare voi folosi aplicaia Blender pentru a putea ilustra cateva exemple de ascundere a
prilor invizibile i de decupare a acestora.
ncepem prin a aduga 4 obiecte : un cub, un con, o sfer i un tor. O prim aplicaie a tehnicilor de
eliminare a suprafeelor ascunse este s privim obiectele din planul de sus (axa z se suprapune cu
perspectiva observatorului) . Acest lucru se face selectnd opiunea View, Top.

Din aceasta perspectiv percepem cubul , conul i sfera ca fiind un ptrat, un cerc i respectiv un
cerc. De asemenea torul nu este observabil fiind ascuns n spatele conului.

Pentru a-l putea observa schimbm perspectiva observatorului. ns, nicio perspectiva nu ne poate
face s observm toata suprafaa unui obiect. (spre exemplu toate feele cubului) . Mereu vor exista
suprafee ascunse i algoritmi care s fac acest lucru.

Atunci cnd obiectele se intersecteaz apare decuparea lor iar afiarea se realizeaz de la cel mai
ndeprtat obiect la cel mai apropiat.

n aceast imagine observm sfera decupat n forma dreptunghiului.

n caz ca nu vrem s lucrm n tot spaiul i vrem ca spre exemplu s conteze doar obiectele dintr-o
suprafa dreptungiular selectm View, Clipping Border. Alegem apoi o suprafa care sa taie obiectele n
genul urmtor:

Rezultatul acestei aplicaii este afiarea doar a pixelilor coninui n suprafaa dreptunghiular.

Restul pixelilor rmn memorai n matrice i se afieaz n momentul cnd translatm imaginea dea lungul axei Z.

Pentru a ascunde un anumit obiect n aplicaia Blender selectm opiunea Restrict viewport
visibility (defibm ochiul). Spre exemplu pentru sfer:

Bibliografie:
http://www.racai.ro/media/TehniciModerne-securizat-Bstefanescu.pdf Tehnici moderne de generare a mediilor virtuale prin sintez grafic asistat
de calculator

https://www.youtube.com/watch?v=g0dZKJko18A - Blender Tutorial Finding


and Hiding Objects in your Scene

S-ar putea să vă placă și