You are on page 1of 138

MINISTERUL NVMNTULUI A REPUBLICII MOLDOVA

UNIVERSITATEA TEHNIC A MOLDOVEI


Facultatea Calculatoare, Informatic, Microelectronic
Veaceslav Perju
GRAFICA PE CALCULATOR
Curs de prelegeri
pentru studenii specialitilor
"Automatica i Informatica", "Calculatoare",
"Microelectronic", "Tehnologii informaionale", FAF
Chiinau 2005
1
Cuprins
1. Sisteme grafice
1.1. Sinteza, prelucrarea i analiza imaginilor
1.2. Aplicaii grafice
1.3. Arhitecturi ale sistemelor grafice
1.4. Dispozitive de intrare ale sistemelor grafice
1.5. Echipamentele de ieire grafic
1.6. Softul sistemelor grafice
1.7. Standarde in grafic
2. Adaptoare video i moduri grafice
2.1. Adaptoare video.
2.2. Moduri grafice.
2.3. Iniializarea modului grafic.
2.4. Schimbarea si interogarea modului grafic.
2.5. Ieirea din modul grafic.
3. Primitive grafice
3.1. Operaii cu pixeli.
3.2. Construirea liniilor.
3.3. Poligoane.
3.4. Curbe conice.
3.5. Suprafee.
4. Atributele de afiare ale primitivelor grafice
4.1. Specificarea culorilor.
4.2. Atributele de afiare ale liniilor.
4.3. Atributele de afiare ale suprafeelor.
5. Textul n mod grafic
5.1. Afiarea textului in mod grafic.
5.2. Atributele de afiare ale textelor.
5.3. Seturi de caractere.
6. Operaii cu imagini
6.1. Poarta de vizualizare.
6.2. Operaii cu imagini in memorie.
6.3. Salvarea si restaurarea imaginilor.
6.4. Fiiere cu mai multe imagini
6.5. Operarea cu mai multe pagini video.
6.6. Corecia formelor imaginilor sintezate.
7. Formatele fiierelor de grafic
7.1. Modele de reprezentare bitmap (harti de biti)
7.2. Formatul BMP
7.3. Modul vectorial
2
7. Interpolarea i netezirea imaginilor
7.1. Operaiuni de interpolare i netezire a imaginilor
7.2. Interpolarea prin funcii Bezier
7.3. Interpolarea prin funcii B-spline.
7.4. Construirea curbelor i a suprafeelor de netezire
8. Transformri geometrice 2D
8.1. Transformri geometrice elementare
8.1.1. Translaia
8.1.2. Scalare
Scalare fa de origine
Scalare fa de un punct oarecare din plan
8.1.3. Rotaia
Rotaia fa de origine
Rotaia fa de un punct oarecare din plan
8.2.Compunerea transformrilor
8.3.Trasnsformri n coordonate omogene
8.4. Transformri geometrice inverse
8.5. Transformri geometrice fa de un punct oarecare din plan
8.6. Transformare de oglindire
8.7. Transformare de forfecare a imaginilor
8.8. Transformri ale sistemului de coordonate
8. Transformri geometrice 3D
8.1. Matrici de transformare 3D.
8.2. Translaia 3D.
8.3. Scalarea 3D.
8.4. Rotaia 3D.
8.5. Forfecarea 3D.
8.6. Transformri 3D inverse.
8.7. Compunerea transformrilor 3D.
8.8. Oglindirea fata de un plan al sistemului de coordonate.
8.9. Rotaia in jurul unei axe oarecare in spaiul 3D.
8.10. Oglindirea fa de un plan oarecare.
9. Transformri grafice tridimensionale
9. 1. Matrici de transformare
9. 2. Translaia
9. 3. Scalare
9. 4. Rotaia n jurul unei axe a sistemului de coordonate
9. 5. Transformri inverse
9. 6. Forfecarea
9. 7. Oglindirea fa de un pian al sistemului de coordonate
9. 8. Compunerea transformrilor tridimensionale
9. 9. Rotaia n jurul unei axe oarecare
9. 10. Oglindirea fa de un plan oarecare
10. Vizualizarea scenelor
10.1. Transformarea de vizualizare 2D.
10.2. Decuparea 2D.
3
10.3. Modelul procesului de vizualizare 3D.
10.4. Proiecii. Proiecia perspectiv.
10.5. Vizualizarea imaginilor 3D.
11. Determinarea vizibilitii obiectelor la afiarea scenelor 3D
11.1. Clasificarea algoritmilor de determinare a laturilor i a feelor vizibile ale obiectului.
11.2. Determinarea laturilor vizibile ale unui poliedru.
11.3. Determinarea feelor vizibile ale obiectului.
11.3.1. Algoritmul GalimbertiMontanari.
11.3.2. Algoritmul Zbufer.
12. Redarea luminii si a umbrelor in imagini
12.1. Parametrii luminii
12.2. Modele de culoare.
12.3. Modele de reflexie a luminii.
12.3.1. Reflexia difuz.
12.3.2. Reflexia spicular.
12.4. Metode de redare a suprafeelor iluminate.
12.4.1. Modelul Lambert.
12.4.2. Modelul Gouraud.
12.5. Transparena.
12.6. Umbrirea.
13. Editoare grafice
13.1. Adobe Photoshop
13.2. Adobe Illustrator
13.3. Adobe PhotoDeluxe
13.4. Correl Draw
13.5. Correl PrintHouse Magic
13.6. ClarisDraw
13.7. Graphix Advantage
13.8. Xara3D
13.9. Animatec World Builder
13.10. Digital Video Producer
13.11. Polytran
14. Editorul grafic 3D Studio Max
14.1. Descrierea general a editorului grafic 3D Studio.
14.2. Structura pachetului grafic 3D Studio.
14.3. Principiile de lucru n editorului grafic 3D Studio.
14.4. Metode de creare a obiectelor.
14.5. Crearea i redactarea liniilor i a altor figuri.
14.6. Formarea textelor.
14.7. Crearea obiectelor 3D.
14.8. Crearea surselor de lumin.
14.9. Crearea camerei.
14.10. Rendering.
14.11. Alegerea materialelor.
4
14.12. Crearea materialelor.
14.13. Crearea obiectelor de rotaie.
14.14. Animaia.
5
1.SISTEME GRAFICE
1.1. Sinteza, prelucrarea i analiza imaginilor
Prin sistem grafic se nelege un ansamblu din echipamente i programe, specializate n
sintez, prelucrarea i analiz a informaiei grafice, prezentate n forma de imagini. Echipamentele
pot fi calculatoare, staii grafice, imprimante, plotter-e .a.
Un sistem grafic care permite interaciunea cu utilizatorul prin echipamente specializate
(mouse, tableta grafic, joy-stick .a.) se numete sistem grafic interactiv.
Sistemele grafice pot fi clasificate dup scopul prelucrrilor pe care le efectueaz.
Din acest punct de vedere se face distincie ntre:
-sisteme de sintez a imaginilor, sisteme de prelucrare a imaginilor i sisteme de analiz a imaginilor.
Secvena de prelucrri efectuate ntr-un sistem de sintez a imaginilor poate fi reprezentat
schematic ca n figura 1.1.
Modelul imaginii este o list de primitive grafice (linia, cercul, poligonul, textul i altele),
nsoite de atribute cum ar fi: culoarea, tipul i limea liniei, etc. ntr-
un sistem grafic 3D primitive pot fi i diferite tipuri de suprafee i obiecte. Algoritmii de
sintez codific fiecare primitiv grafic ntr-o form special. Modelul imaginii poate rezulta din
calcule specifice aplicaiei (de exemplu, reprezentarea grafic a unei funcii) sau poate fi editat de
utilizator prin intermediul programului de aplicaie (de exemplu, schia unei piese, a unei case,
etc.). Utilizatorul poate solicita diferite transformri asupra obiectelor redate n imagine sau
asupra imaginii n ansamblu.
Programele de aplicaie sunt specializate pe diferite domenii, de exemplu, proiectarea
asistat de calculator n electronic, n mecanic, n arhitectur, cartografie, birotic, gestiune
economic, tipografie electronic, producia de filme, etc.
n sistemele de prelucrare i de analiz a imaginilor datele de intrare se extrag din imagini.
Imaginea poate fi o fotografie sau o imagine din lumea real.
Sistemele de preluare a imaginilor au ca scop ameliorarea imaginilor sub aspectul perceperii lor
de ctre om (figura 1.2.) prin: modificarea culorilor, mbuntirea contrastului, redarea selectiv a
diferitelor pri din imagine i altele.
Analiza imaginilor are ca scop identificarea obiectelor reprezentate n imaginile codificate
numeric (figura 1.3.). Sistemele de analiz a imaginilor se folosesc n aplicaii de recunoatere a
formelor, de exemplu pentru identificarea obiectelor, pentru analiza reliefului i a resurselor
naturale etc.
1.2. Aplicaii grafice
Din categoria aplicaiilor grafice fac parte:
- Programele de desenare (paint programs): permit crearea desenelor sub form de hri de bii;
- Programe pentru desen tehnic i artistic (draw programs): furnizeaz funcii avansate de desenare,
bazate n special pe prelucrarea liniilor curbe. Imaginile sunt reprezentate n formate vectoriale;
- Programe grafice de prelucrare a datelor tabelare (graphic worksheet): sunt destinate aplicaiilor n
domeniul financiar-contabil. Cu ajutorul lor se editeaz tabele de profituri, analize de tabele etc.
Datele sunt introduse n celule (o celul reprezint intersecia dintre o linie i o coloan ntr-un
tabel). Unele celule pot fi definite ca relaii ntre dou sau mai multe celule introduse anterior. Aceste
produse folosesc grafica pentru prezentarea datelor din tabele n forme atractive sau sintetice.
- Programe grafice de prezentare (slide show): permit crearea diagramelor (dreptunghiulare sau
circulare), graficelor, a altor tipuri de imagini pentru prezentri i rapoarte, pun la dispoziia
utilizatorului colecii de diverse scenarii de reclam. Diagramele pot fi rezultatul prelucrrii i
reprezentrii datelor din aplicaii pentru foi de calcul;
6
- Programe pentru animaie: permit nlnuirea i secvenierea seriilor de imagini pentru a simula
micarea. Fiecare imagine este considerat un cadru ntr-un film. Propun faciliti din domeniul
filmului (mixaje, selecie de secvene, modificri de obiecte pentru obinerea efectelor de animaie);
- Programe CAD: aplicaii dedicate proiectrii, destinate arhitecilor i inginerilor. Printre funciile
cele mai cunoscute, permit: trasare n 2D i 3D, numeroase sisteme de coordonate i tipuri de
proiecii; selectarea dintre numeroase sisteme de msur a dimensiunilor paginii de desen,
localizarea obiectului prin referina la alte obiecte, mrirea sau micorarea desenelor (zoom), editri
de simboluri; tipuri de linii de trasare i culori, scalri i rotaii de obiecte selectate, compatibilitatea
formatelor fiierelor, ce pot fi importate sau exportate i de alte aplicaii, umplerea poligoanelor n
diverse stiluri (fill), numeroase tipuri de caractere text n alfabete latin, chirilic, grec, simboluri
matematice, meteorologice, astronomice, muzicale, facilitatea de dispunere pe masa de desen, cotri
automate a obiectelor selectate, atribute de vizibilitate, prioritate, culoare, stil, ataate obiectelor i
posibilitatea editrii facile a acestor atribute, introducerea posibilitii desenrii de mn cu
dispozitivul de intrare: mouse, tablet grafic, trasri de curbe, suprafee, polilinii, faciliti de trasare
n 3D (crearea obiectelor 3D din 2D, eliminarea liniilor ascunse, simularea fotografierii cu lentile de
distan focal variabil, teleobiectiv, cu specificarea uneia sau mai multor surse de lumin, realism
vizual, iluminri, umbriri, crearea unor macroinstrunciuni cu AUTOLISP sau C;
- Editoare grafice (desktop publishing): sunt colecii de funcii de procesare a textului, care permit
controlul poziionrii textului i imaginilor, astfel nct pot fi create reviste, ziare, reclame, cri. Pun
la dispoziia utilizatorului module pentru: scrierea documentului cu procesorul de texte,
editarea/revizuirea textului pn la ajungerea n forma final n modul WYSIWYG (What You See Is
What You Get), inserarea textului n pagin, innd cont de dimensiunea literelor, tipul de text,
numrul de coloane pe pagin, lungimea coloanelor, ilustrarea prin crearea diagramelor, graficelor,
diverselor desene sau preluarea fotografiilor (histograme, imagini scanate), revizuirea aspectului
paginii, machetarea, tiprirea n tirajul dorit;
- Aplicaii dedicate exploatrii suportului de informaie multimedia (hrtie, film, band magnetic),
respectiv dispozitivelor multimedia (microfon, magnetoscop, sintetizator). Sunt aplicaii care ofer
utilitare de conversie, de comprimare, funcii de arhivarea imaginilor, filmelor, retuarea imaginilor
video, recunoaterea caracterelor documentelor imprimate, recunoaterea, procesarea i arhivarea
datelor sonore.
1.3. Arhitecturi ale sistemelor grafice
In calculatoarele personale grafica este susinut de ctre procesorul unic al sistemului.
Calculatoarele conin un modul denumit plac grafic care conine memoria grafic,
dispozitivele de semnalizare i conversie video i controller-ul video, care are rolul de a genera
semnalele de sincronizare a monitorului i de a extrage sincron informaia din memoria video.
O staie grafic este n general dotat cu dou module de prelucrare i anume unitatea
central de prelucrare (UCP) i procesorul grafic (PG).
Procesorul grafic al unei staii grafice performante este un procesor specializat, dotat cu un
modul de memorie proprie, i cu un set de module care implementeaz n hardware algoritmi
specifici prelucrrilor grafice. Astfel de procesoare pot fi dedicate funciilor de generare de
segmente sau curbe, operaiilor de decupare, operaiilor de eliminare a suprafeelor ascunse,
procesoare de formare a iluminrii i altele.
1.4. Dispozitive de intrare ale sistemelor grafice
Dispozitivele de intrare au funcia de realizare a interaciunii dintre utilizator la sistemul
grafic.
7
Tastatura: este cel mai comun dispozitiv de intrare. Prin intermediul acesteia pot fi
implementate toate funciile de intrare ntr-un sistem, prin alocarea corespunztoare, prin program,
a fiecrei taste sau grupuri de taste.
Mouse: este actualmente cel mai utilizat dispozitiv pentru implementarea funciei de intrare
de tip locator-punctator la nivelul ecranului. Mouse-ul posed dou sau trei butoane a cror
apsare determin transferul la calculator a unui cod special. Aciunea pe care programul o
efectueaz ca urmare a apsrii unui buton este specific programului care utilizeaz acest
dispozitiv.
Tracking-ball: principiul constructiv i funcional al acestui dispozitiv este cel al mouse-
ului, cu deosebirea c dispozitivul st fix, iar micarea de rotaie a sferei este produs de ctre
palma operatorului.
Joy-stick: este un dispozitiv utilizat ca locator-punctator. Este alctuit dintr-o manet care
are dou grade de libertate de rotaie pe dou axe perpendiculare. Fiecare micare de rotaie se
transfer ntr un numr de impulsuri care se transmit la calculator.
Light pen: este un dispozitiv punctator direct pe ecran, al crui principiu se bazeaz pe
elementul fotosensibil din vrful creionului optic impresionat de lumina emis de ctre punctul
de pe ecran atins de creion.
Digitizorul i tableta grafic. Construcia este de forma unei plci plane dreptunghiulare, cu
dimensiune de la formatul A3 pn la o mas cu laturi de doi metri. Sub aceast plac se gsesc
reele de fire paralele amplasate la distane foarte mici (sutimi de milimetru). Exist dou reele,
cte una pentru fiecare ax. Pe masa de desen se poate amplasa desenul care trebuie digitizat.
Operaia de introducere a punctelor se poate face cu un dispozitiv special La selecia unui punct
de pe desen se apas un buton, sistemul depisteaz linia i coloana deasupra cruia este amplasat
punctatorul i transmite la calculator indicii liniei i coloanei astfel determinate.
Scanner: acest dispozitiv utilizeaz tehnici de fotografiere a imaginii prezentate pe o foaie
de hrtie, pelicul etc. Scanner-ul descompune imaginea n rastru de puncte i o transfer pixel
cu pixel la calculator. Pentru diminuarea volumului de date transferate scanner realizeaz o
compresie de date, anterioar transferului.
1.5. Echipamentele de ieire grafic
Echipamentele de ieire grafic sunt acele echipamente care prezint imaginea sintetizat de
ctre sistemul de calcul, pe un suport cu caracter permanent (hrtie, film ,etc.), sau pe ecranul unui
monitor. In aceast clas de echipamente se ncadreaz: imprimantele cu ace, nregistratoarele
(plotter) cu peni sau electrostatic, imprimantele laser, cu jet de cerneal, cu transfer termic i
fotonregistratoare pe pelicul (photo-plotter).
Se vor defini noiunile care caracterizeaz calitatea imaginii obinute pe suportul de ieire.
Dimensiunea punctului reprezint diametrul unui punct singular generat de echipamentul de
ieire. Forma punctului este n general circular, dei anumite echipamente pot fi astfel
construite nct forma punctului este dreptunghiular.
Adresabilitatea reprezint numrul de puncte individuale pe care le poate crea echipamentul
pe unitatea de lungime. Adresabilitatea axei X este inversa distanei dintre centrele a dou
puncte vecine (adiacente) aflate pe aceeai linie orizontal. In mod similar se definete
adresabilitatea axei Y. Nu ntotdeauna adresabilitatea are aceeai valoare pe ambele axe.
Rezoluia este o noiune corelat cu dimensiunea punctului, iar valoarea ei maxim este egal
cu valoarea adresabilitii. Rezoluia se definete ca spaierea minim ntre iruri de linii negre
alternate cu linii albe, care pot fi decelate de observator. De exemplu dac pe un centimetru
8
pot fi decelate 20 de perechi intercalate de linii albe i negre, spunem c rezoluia este de
40 linii pe centimetru.
Dispozitivele grafice de afisare exist de doua tipuri: video display si display cu cristale
lichide.
(a)
(b)
Figura 1-1. Configuratia unui sistem de afisare a imaginii: (a) arhitectura standard; (b) arhitectura cu
accelerator grafic.
Video display este un ecran cu o pelicula foto-luminiscenta pe baza de fosfor, care permite
fiecarui pixel al sau sa fie luminos doar cand este lovit de un fascicol de electroni. Deoarece pelicula
fosforescenta isi pierde luminozitatea, imaginea trebuie rescanata repetat, cu o frecventa de cel putin
60 ori pe secunda.
Afisajul cu cristale lichide (Liquid Crystal Display, LCD) este un dispozitiv care foloseste
un camp electric pentru a modifica polarizarea celulelor cristaline la nivelul fiecarui pixel. Fiecare
astfel de celula este caracterizata de stralucire: prin schimbarea polarizarii pe pixel, se modifica
nivelul stralucirii, deci intensitatea afisarii pixelului.
Afisarea la ecran poate fi facuta in doua moduri: in regim text si in regim grafic.
In regim grafic, ecranul este considerat format din pixeli. Pixelii ecranului sunt pusi in
corespondenta biunivoca cu bitii din memoria video (video buffer).
9
Rezolutia dispozitivului grafic reprezinta produsul dintre numarul de pixeli pe linie si
coloana. Rezolutia defineste dimensiunea (exprimata in pixeli) a dreptunghiului in care imaginea este
reprezentata.
In regimul text, ecranul este considerat mprit in 25 linii de 80 coloane fiecare; in fiecare zona
fiind afiate diferite caractere grafice (litere, cifre, simboluri etc.). Si in aceasta regiune, ecranul este
pus in corespondenta biunivoca cu o parte a memoriei, de data aceasta zonele de ecran fiind asociate
cu octetii ce definesc caracterele text.
Indiferent de tipul dispozitivului de afiare, pentru ca imaginea sa fie afiata, memoria video
(frame buffer) este citita de un dispozitiv hardware, numit placa video (video controller sau adaptor
grafic). In cazul in care se doreste o crestere a calitii si vitezei de afiare in mod grafic, adaptorul
grafic este inzestrat cu memorie video suplimentara si cu dispozitive de procesare grafica
(coprocesor grafic), care preiau o mare parte din sarcina de procesare grafica realizata prin software
de unitatea centrala de prelucrare (Central Processing Unit, CPU). Acestea se numesc acceleratoare
(placi) grafice.
In figura 1-10 este descrisa arhitectura unui accelerator grafic. Astfel de arhitecturi devin din ce in ce
mai complexe, pe msura ce cresc cerinele de procesare a imaginilor si elementelor de grafica.
Figura 1-3. Arhitectura acceleratorului grafic.
Acceleratorul grafic preia, practic, realizarea urmtoarelor operaii:
10
- transformari (rotatii si scalari), aprute in reprezentarea obiectelor in micare sau a modificarii
pozitiei observatorului;
- decupaje, ce provin din deplasarea obiectelor in afara ferestrei de vizualizare;
- proiectii, pentru redarea imaginilor folosind transformarile prospective;
- texture mapping: colorarea obiectelor si umplerea suprafetelor;
- eliminarea suprafetelor ascunse, prin determinarea acelor obiecte care se proiecteaza in acelasi
pixel si sunt mai apropiate de observator, pentru a putea fi afisate.
Dispozitive de trasare
Imprimantele sunt dispozitive de imprimare a unor informaii transmise de la calculator pe hrtie
(sau alte suporturi: folii transparente, plicuri etc.). Sunt orientate pentru imprimare text/grafic. Conin
componente electronice (RAM, controler, microprocesoare, plac de reea). Din punctul de vedere al
modului de imprimare, pot fi: imprimante text, respectiv imprimante grafice. Din punctul de vedere
al metodei de imprimare, putem identifica imprimantele cu ace, imprimantele laser i imprimantele
cu cerneal.
Caracteristic pentru imprimantele text (matriceale) sunt seturile de caractere (litere, cifre i
simboluri pe care imprimanta este capabil s le imprime). Imprimantele matriceale (dot matrix) au
setul de caractere standard ncrcat n ROM.
Cele mai folosite sunt imprimante cu 9 ace (o imprimare pe vertical a 9 puncte) sau cu 24 ace
(imprimare pe vertical a unei matrice 8x3). Sunt prezente n formate dependente de dimensiunea
maxim a colii de hrtie utilizate: A3, A4.
Imprimantele matriceale sunt definite de viteza de imprimare, exprimat n caractere pe secund
(cps). Aceasta poate varia ntre 50 i 500 cps. Multe tipuri de imprimante matriceale ofer practic
viteze diferite de imprimare, n funcie de calitatea cerut a imprimrii.
Un dezavantaj major al acestui tip de imprimante este zgomotul, care crete odat cu numrul de ace
i cu calitatea imprimrii.
Imprimantele grafice. Cele mai interesante i performante tehnologii de imprimare sunt folosite de
imprimante laser i LED (Light Emitting Diode). Deosebirea dintre imprimantele laser i LED const
n modul de impresionare a cilindrului fotosensibil (figura 1-13). La imprimantele laser obinuite, o
singur diod laser special realizeaz raza laser i o dirijeaz spre oglind. Aceasta se rotete cu cca
7600 rotaii/min. Oglinda dirijeaz raza pe o in de reflexie care face ca raza laser s ajung pe
cilindrul fotosensibil ncrcat negativ. Raza neutralizeaz cilindrul ncrcat electric n punctele de
inciden.
Tehnologia bazat pe laser i deviere se nlocuiete pentru categoria imprimantelor LED cu un rnd
complet de diode luminiscente (LEDuri): 2500 dispuse pe dou linii deasupra cilindrului fotosensibil
(figura 1-13). Diodele sunt comandate s se aprind/sting individual i conduc la o rezoluie de pn
la 600 dpi, rezultnd mai puine piese mobile, compactitate.
Tehnologiile laser i LED folosesc 6 etape n procesul de imprimare: cilindrul fotosensibil se ncarc
electric (negativ); raza laser transfer imaginea de tiprit n puncte pe cilindru (n punctele n care
raza de lumin ntlnete cilindrul, ncrcarea electric este neutralizat); tonerul incrcat negativ
rmne agat numai n zonele neutralizate ale cilindrului; cilindrul transfer tonerul pe hrtie sub
11
presiune (10g/cm) i temperatur (1500C); deoarece, dup transfer, pe cilindru rmn resturi de
toner, o lam le rzuie, resturile fiind plasate ntr-un recipient de evacuare (Wastebox).
Imprimantele laser/LED sunt caracterizate de calitatea imprimrii, exprimat n dpi (dots per inch).
Rezoluiile imprimantelor actuale variaz n intervalul 300 dpi - 1200 dpi, valorile uzuale fiind 300
dpi i 600 dpi (prin comparaie, imprimarea offset are valori ale rezoluiei ntre 1200 dpi i 2400
dpi). Unele imprimante din aceast categorie pot s permit o rezoluie mrit prin folosirea unor
tehnici speciale (resolution enhancement) care se bazeaz pe dispozitive de recunoatere a imaginilor
(spre exemplu a liniilor curbe) ce folosesc algoritmi inteligeni i pe modificarea dimensiunii
punctului de imprimare (dot). Acesta este motivul pentru care productorii de imprimante grafice
laser/LED propun n documentaia tehnic dou valori caracteristice ale rezoluiei: rezoluia
dispozitivului de imprimare (engine resolution) i rezoluia efectiv (effective resolution).
Imprimantele laser/LED pot fi monocrome (imprimare negru/nuane de gri) sau color. n ultimul caz
folosesc patru tonere pentru a imprima full color, ceea ce mrete proporional preul pe pagina
tiprit. Pentru a mri viteza de imprimare (exprimat n pagini per minut, ppm), dispun de seturi de
caractere (internal/resident fonts). Viteza imprimantelor variaz practic ntre 4 i 20 ppm, dac
pagina este n general text. O valoare tipic 6 ppm este echivalent cu 40 cps.
Imprimantele laser/LED sunt cunoscute ca imprimante grafice. n acest scop, sunt dotate cu memorie
intern, necesar n procesul de imprimare la o rezoluie acceptabil a unei imagini de dimensiune
A4 sau A3. Spre exemplu, pentru imprimarea unei pagini A4 la rezoluie 300 dpi este necesar minim
1 MB de memorie printerRAM. Evident, pentru o rezoluie 600 dpi, necesarul de memorie printer
RAM este de cel puin 4 MB.
Imprimantele laser/LED sunt controlate prin intermediul unor limbaje de descriere PDL (Page
Description Language). Standardele PDL actuale sunt PCL (Printer Control Language), propus de
Hewlett-Packard (HP) i PostScript (propus de Apple Macintosh).
Imprimantele cu cerneal propun cteva tehnologii de transfer a informaiei ctre suportul de
hrtie. Imprimantele termice cu cerneal (tehnologia BubbleJet/InkJet) se bazeaz pe prezena n
capul de imprimare a unui element de nclzire (figura 1-14b). Din momentul alimentrii cu energie
electric, acesta se nclzete n 4-7

s la 400
0
C, determinnd apariia unei bule de gaz care se
destinde, produce o suprapresiune i preseaz o pictur minuscul de cerneal prin duz spre
exterior. Bula de gaz se formeaz din nou: n capul de imprimare apare o depresiune care asigur
transferul cernelei din cartu. Cerneala care intr n cap rcete elementul de nclzire. Aceste faze se
repet pentru fiecare punct de tiprit. Aceast tehnologie prezint ca dezavantaj faptul c, dup o
utilizare ndelungat, pe elementul de nclzire se formeaz un strat subire de resturi de cerneal
care mpiedic lucrul la parametri normali. Bulele de gaz devin mai mici i picturile de cerneal mai
slabe. Pentru evitarea acestui comportament trebuie nlocuit nu numai cartuul ci i capul de
imprimare (aceasta se ntmpl n medie dup 10 reumpleri cu cerneal).
Imprimarea piezoelectric cu cerneal (Epson) nlocuiete bula de gaz cu un element format din
cristale piezoelectrice (figura 1-14a). Cnd elementul se ncarc electric, cristalele se lungesc n 5

s. Dup 5

s de la ntreruperea alimentrii electrice, circuitele revin la forma iniial.


Piezoelementul nu este n contact cu cerneala, ci se gsete n faa unei membrane. Prin apsarea
membranei se produce tensiune n duz, rezultnd o pictur minuscul de cerneal. Pictura este
foarte fin (datorit frecvenei de max 10

s de generare) i fr picturi satelit (ca n cazul


elementelor termice). Prin
12
comparaie, aceast tehnologie are avantajul absenei fenomenelor de uzur termic (deoarece capul
de imprimare nu are elemente supuse nclzirii).
Imprimantele cu cerneal sunt caracterizate de o rezoluie de minim 300 dpi i sunt mai ieftine dar
i mai lente dect imprimantele laser. Sunt des utilizate deoarece ofer un cost mult mai redus dect
imprimantele color laser pentru imprimarea unei pagini color, ca i datorit dimensiunilor reduse,
ceea ce le caracterizeaz ca portabile.
Plotterele sunt dispozitive de ieire care creaz imagini bidimensionale (spre exemplu grafice) pe
hrtie. Se mpart n dou categorii (din punct de vedere constructiv):
- drum plotter: mecanismul de trasare const ntr-un mecanism de naintare a hrtiei, similar celui de
la imprimant, i un stilou (cap de scriere) ce se deplaseaz pe o dreapt de-a latul hrtiei conform
comenzilor primite de la interfa;
- flatbed plotter: mecanismul de trasare folosete un bra mecanic ce manipuleaz un stilou (cap de
scriere) peste o hrtie ntins (pe baza unui mecanism de control pe axele XY).
1.6. Softul sistemelor grafice
Programele din componena unui sistem grafic de sintez sunt n general structurate n dou
nivele (figura 1.5.):
-nivelul dependent de echipamente, format din programele "driver";
-nivelul independent de echipamente, realizat ca o bibliotec de subprograme apelabile din
programele de aplicaie, numit biblioteca grafic.
Exist cte un program driver pentru fiecare tip de echipament n configuraia
sistemului grafic. Pentru ca programele de aplicaie s fie independente de echipamente este
necesar ca subprogramele bibliotecii grafice s fie independente de echipamente. Un program
trebuie s poat fi folosit cu o gam ct mai variat de echipamente.

Funciile bibliotecilor grafice pot aparine urmtoarelor categorii:
- rutine de configurare (selectarea modului grafic dorit, stabilirea zonelor de memorie pentru scrierea
fiierelor de imagini);
- rutine pentru stabilirea coordonatelor desenului i a zonei active;
- rutine pentru stabilirea paletei de culori;
- rutine pentru stabilirea atributelor liniei: culoare de trasare, stil, grosime;
- rutine pentru trasarea liniilor, arcelor, elipselor, cercurilor, poliliniilor, umplerea contururilor;
- rutine pentru afiarea textului;
- drivere i rutine pentru copierea imaginilor grafice la imprimant, rutine pentru gestiunea memoriei
ecran.
Este necesar ca subprogramele bibliotecii grafice s fie apelabile din programe scrise ntr-
un limbaj de nivel nalt: Pascal, C, Ada, Basic i altele. Un sistem grafic poate cuprinde biblioteci
pentru mai multe limbaje de programare. Unele biblioteci grafice ofer numai funcii de nivel
cobort; astfel sunt bibliotecile grafice din mediile Turbo Pascal, Borland C, Borland C++ pentru
DOS. Altele ofer funcii de nivel nalt, inclusiv posibiliti de redare a obiectelor tri-dimensionale
i de interaciune folosind o varietate mare de echipamente.
13
1.7. Standarde in grafic
Obiectivele urmrite prin standardizare au fost:
1. Portabilitatea programelor, cu dou aspecte:
- independena fa de sistemul de calcul i de sistemul grafic folosit;
- independena fa de echipamente.
2. Portabilitatea informaiei grafice, adic posibilitatea transferului descrierilor de imagini ntre
sisteme grafice diferite.
3. Posibilitatea stocrii pe termen lung a informaiei grafice.
4. Uniformitatea instruirii n domeniul proiectrii i utilizrii sistemelor grafice, asigurarea unui
vocabular unic de termeni i concepte.
Primul standard internaional n domeniul sistemelor de sintez a imaginilor, adoptat n
1985 de ctre ISO (International Standards Organisation) i de ctre ANSI (American
National Standards Institute) a fost G.K.S. (Graphical Kernel System). El definete un set complet de
funcii de afiare 2D independente de echipamente, funcii de segmentare (grupare a primitivelor
grafice), de transformare, de control al staiilor de lucru, i de interaciune. Standardul are dou
pri:
I - Specificaia funciilor sistemului grafic, ntr-o manier independent de limbaj;
II - Interfee pentru diferite limbaje de nivel nalt (Fortran, Pascal, C, Ada), adic denumirile
subprogramelor prin care sunt implementate funciile sistemului, parametrii fiecrui subprogram i
erorile de semnalat.
Ulterior a fost adoptat o extensie a standardului GKS, pentru sinteza imaginilor care redau
obiecte tridimensionale, numit GKS-3D.
Subprogramele prin care sunt implementate funciile definite n standardele GKS / PHIGS
formeaz nucleul independent de dispozitive al sistemului grafic. Prelucrrile dependente de
caracteristicile diferitelor tipuri de echipamente sunt grupate n modulele driver.
Au fost propuse i alte standarde: CGI (Computer Graphics Interface) i VDI (Virtual Device
Interface).
Pentru arhivarea i transmisia informaiilor grafice ntre sisteme a fost elaborat standardul
CGM (Computer Graphics Metafile, ISO-DIS 8632).
Exist deasemenea standarde pentru transmisia la distan a documentelor coninnd texte, figuri,
imagini discrete (CAPTAIN, CEPT) i standarde pentru arhivarea i transferul de date de
proiectare (IGES).
2. ADAPTOARELE VIDEO I MODURI GRAFICE
2.1. Adaptoarele video
Unitate de afiare a sistemului grafic are doua componente de baza: adaptorul video;
monitorul video.
Adaptoarele video permit afiarea textelor i imaginilor grafice. Informaia care se afieaz
pe ecran se extrage din memoria adaptorului video. Adaptoarele grafice mai sunt numite de diversi
14
producatori: video cards, video boards, video display boards, video controllers, graphics cards sau
graphics adapters.
Fiecrui punct (pixel) de pe ecran i corespund unul sau mai muli bii n aceasta memorie.
Accesul n memoria video se poate face ca la orice alta locaie de memorie a calculatorului.
Capacitatea memoriei video i organizarea ei depind de tipul adaptorului.
Ecranul este considerat ca fiind mprit printr-o grila de 25x80 celule. Fiecare celula poate
conine un caracter. Ecranul este adresat la nivel de caracter, intr-un sistem de coordonate cartezian,
cu originea (1, 1) n coltul din stnga sus.
n modul grafic ecranul este considerat ca fiind divizat printr-o grila rectangulara n celule
numite pixeli. Numrul de pixeli ai ecranului (rezoluia) depinde de tipul adaptorului video i de
modul n care acesta lucreaz. Imaginile grafice sunt alctuite din puncte, fiecare punct corespunznd
unui pixel. Numrul de bii alocai n memoria video fiecrui pixel determina numrul de culori
afiabile simultan pe ecran.
n mod grafic ecranul este adresat intr-un sistem de coordonate carteziene avnd originea
(0,0) situata n coltul stnga sus. Coordonatele (x, y) ale unui punct de pe ecran sunt numere ntregi.
Valoarea lui x creste spre dreapta iar cea a lui y spre partea de jos a ecranului.
n funcie de rezoluie i de numrul de culori ce se pot afia simultan pe ecran, n memoria
video se pot pstra una sau mai multe imagini ecran. Numrul de imagini ecran, numite i pagini
video este limitat de capacitatea memoriei video.
Adaptoarele video standard sunt:
EGA (Enhanced Graphics Adapter) - permite lucrul n mod text i n mod grafic. n mod
grafic, rezoluia este de 640x350 puncte, cu 16 culori simultan pe ecran i 2 pagini video.
VGA (Video Graphics Array) - permite lucrul n mod text i n mod grafic. Acest adaptor
este considerat un succesor al adaptorului EGA. n mod grafic rezoluia este: 640x480 puncte i 16
culori simultan pe ecran din 256K culori posibile, o pagina video sau 320x200 puncte i 256 culori
simultan pe ecran cu o singura pagina video.
XGA (Extended Graphics Array) - 1024x768 pixeli, 24..210 culori;
SVGA (Super Video Graphics Array). Rezoluia este de la 640x400 puncte i 16 culori pn
la 1280x1024 puncte i 16 mii culori.
AGA (Advanced Graphics Adapter) 1024 x 768 pixeli rezoluie. Pentru aplicaii grafice
complexe s-au realizat adaptoare grafice dedicate cu o rezoluie excepional (cele mai bune rezoluii
ntlnite depind nivelul de 4096 x 4096 pixeli).
Adaptoarele EGA folosesc monitoare digitale iar VGA i SVGA folosesc monitoare
analogice.
Un monitor digital folosete un numr fix de semnale. Astfel, monitorul pentru adaptorul
EGA folosete 6 semnale: trei pentru culorile de baza R, G, B (rou, verde, albastru) i trei pentru
intensiti r, g, b. Fiind 6 semnale digitale ar putea fi afiate 64 culori distincte simultan pe ecran, dar
numrul este limitat la 16 deoarece culoarea unui pixel se retine pe 4 bii n memoria video.
La un monitor analogic, semnalele R, G, B pot varia continuu. Aceasta permite o variaie
continua a nuanelor de culori. ns, numrul de culori disponibile este limitat de reprezentarea
digitala n memoria video.
n momentul alegerii plcii grafice i a monitorului, utilizatorul trebuie s i pun problema
performanei i ergonomiei. Corelaia dintre frecvena de remprosptare a imaginii i mrimea
memoriei video (ca termeni de alegere a plcii grafice) este prezentat n tabelele 1-1 i 1-2.
15
Conform acestor clasificri, grupa 1 de dispozitive cuprinde plci ce ofer 1-2 MB DRAM. Plcile se
bazeaz pe acceleratoare ieftine. Plcile grafice mai lente aduc rezoluii suplimentare mai nalte
numai plpind. Grupa a doua este caracterizat de preuri medii, plci cu 2MB DRAM/VRAM. n
aceast clas pot apare acceleratoare video. Grupa 3-4 este cea a dispozitivelor profesioniste (VRAM
rapid, tehnic de vrf) i, evident, extrem de scumpe.
2.2. Drivere
Operaiile cu adaptoarele video sunt realizate de module driver-e. Modulele driver conin
rutine prin care sunt accesate memoria video i alte dispozitive ale adaptorului.
Module driver sunt definite ca fiiere cu extensia .BGI (Borland Graphics Interface) i fiiere
cu extensia .CHR.
Exista aplicaii n care viteza de generare a imaginilor este foarte importanta. Astfel de
aplicaii sunt cele care trebuie sa actualizeze imaginea n timp real i cele de animaie. n aceste
cazuri se pot folosi direct rutinele BIOS din memoria ROM a calculatorului. Rutine respective se
refera la:
- stabilirea modului video: text sau grafic
- citire/scriere valoare pixel - n mod grafic
- scriere caractere cu atribute - n mod text.
Ele permit accesul direct la memoria video. Avantajul il constituie viteza sporita de generare
a imaginii.
2.3. Moduri grafice
Fiecare tip de adaptor permite foloirea calculatorului n unul sau mai multe moduri grafice,
numite i moduri video. Ele se deosebesc prin rezoluia ecranului, numrul de culori ce se pot afia
simultan pe ecran i numrul de pagini video disponibile. n tabelul 1 sunt prezentate modurile video
specifice fiecrui tip de adaptor, moduri accesibile prin bibliotecile grafice existente n mediile de
programare C i Pascal.
Prin operaia de autodetecie se determina tipul de adaptor video, se ncarc n memorie
fiierul .BGI corespunztor i se selecteaz modul video cu rezoluia maxima.
Tabelul 1. Moduri grafice
Constanta
Driver
Grafic
Constanta
mod video
mod
Rezolutie
(col*lin)
Paleta
culori
Pagini
video
VGA VGALO 640x200 16 cul. 4
VGAMED 640x350 16 cul. 2
VGAHI 640x480 16 cul. 1
2.4. Iniializarea modului grafic
InitGraph(GraphDriver, GraphMode) - funcia stabilete valorile implicite ale parametrilor de
operare n mod grafic i ncarc de pe disc n memorie modulul driver corespunztor primului
parametru. Modul de lucru al driver-ului ncrcat este specificat prin al doilea parametru iar
16
denumirea completa a caii unde se va caut fiierul .BGI corespunztor este prezentata prin al treilea
parametru.
Valoarea zero a parametrului GraphDriver determina apelul funciei pentru autodetecia
tipului adaptorului video instalat. n acest caz, efectul execuiei funciei initgraph este urmtorul: se
detecteaz tipul adaptorului video instalat, se ncarc n memorie fiierul .BGI corespunztor i se
selecteaz modul grafic cu rezoluia maxima pentru adaptorul respectiv. Funcia initgraph va ntoarce
numrul driver-ului ncrcat n parametrul GraphDriver i numrul modului grafic selectat n
parametrul GraphMode.
Funcia initgraph memoreaz intr-o variabila interna un cod care indica operaie reuita sau
terminata prin eroare. Codul poate fi obinut cu funcia Graphresult. Daca operaia de iniializare a
modului grafic s-a desfurat cu succes, codul este egal cu 0, altfel este o valoare negativa. n caz de
insucces funcia ntoarce codul de eroare. n tabelul 2 sunt prezentate codurile de eroare ntoarse de
funciile initgraph detectgraph i graphresult.
Tabelul 2. Coduri de eroare intoarse la Iniializarea modului grafic detectgraph
Cod eroare Semnificatie
-2 Nu se poate detecta tipul adaptorului video
-3 Nu se poate localiza fiierul .BGI
-4 Format incorect al fiierului .BGI
-5 Memorie insuficienta pentru a ncrca driver-ul grafic
Detectgraph(Graphdriver, Graphmode) - funcia detecteaz tipul adaptorului video instalat. Este
de regula apelata de funcia Initgraph. Poate fi apelata i independent, dac se dorete doar stabilirea
configuraiei hardware i nu selectarea automata a modului grafic de rezoluie maxim.
Spre deosebire de initgraph funcia nu ncarc n memorie fiierul .BGI corespunztor. De
aceea, dup apelul funciei date trebuie apelata funcia Initgraph. Ulterior, daca se dorete
schimbarea modului grafic selectat, se va folosi funcia Setgraphmode.
Pentru a cunoate daca execuia unei funcii din biblioteca grafica a decurs normal sau nu, se
pot folosi funciile Graphresult i Grapherrormsg.
Graphresult - funcia ntoarce codul de eroare referitor la execuia ultimei funcii grafice. Codul de
eroare este o valoare ntreaga cuprinsa intre -14 i 0. Semnificaia fiecrui cod eroare este
prezentata n tabelul 3.
Grapherrormsg - funcia ntoarce un ir de caractere reprezentnd mesajul corespunztor codului de
eroare furnizat de funcia graphresult.
Tabelul 3. Coduri i mesaje de eroare ntoarse de funciile graphresult i grapherrormsg
Cod eroare Nume Simbolic Mesajul afiat (de funcia grapherrormsg)
0 grOk No error
-1 grNoinitGraph (BGI) graphics not installed (use initgraph)
-2 grNotDetect Graphics hardware not detected
-3 grFileNotFound Device driver file not found
-4 grInvalidDriver Invalid device driver file
-5 grNoLoadMem Not enough memory to load driver
17
-6 grNoScanMem Out of memory n scan fill
-7 grNoFloodMem Out of memory n flood fill
-8 grFontNotFound Font file not found ()
-9 grNoFontMem Not enough memory to load font
-10 grInvalidMode Invalid graphics mode for selected driver
-11 grError Graphics error
-12 grIOError Graphics I/O error
-13 grInvalidFont Invalid font file ()
-14 grInvalidFontNum Invalid font number
2.5. Schimbarea i interogarea modului grafic
Fiecare driver permite doua sau mai multe moduri video cu diferite rezoluii i palete de
culori. n biblioteca grafica exista funcii care permit schimbarea modului video stabilit sau
interogarea modului video. Aceste funcii sunt:
Getgraphmode - funcia ntoarce o valoare ntreag ce reprezint modul video curent.
Setgraphmode - funcia stabilete un nou mod video. La apelul acestei funcii se terge ecranul i se
iniializeaz toi parametrii de operare n mod grafic la valorile implicite.
Funcia se poate utiliza la revenirea din mod text n mod grafic. Funciile getgraphmode i
setgraphmode se pot folosi numai dup iniializarea modului grafic.
Getmoderange - funcia primete ca parametru numrul unui driver grafic i ntoarce doua valori
reprezentnd numrul minim i maxim al modului video permis pentru driver-ul grafic specificat.
Getmaxmode - funcia ntoarce numrul maxim de moduri video pentru driver-ul grafic curent
(ncrcat n memorie de funcia initgraph).
Spre deosebire de funcia getmoderange, funcia getmaxmode se poate utiliza pentru orice
driver, inclusiv pentru cele definite de utilizator.
Getmodename - funcia primete ca parametru numrul modului grafic activ, specificat fie printr-o
variabila ntreag. Funcia ntoarce un ir de caractere ce reprezinta denumirea modului video.
Graphdefault - funcia iniializeaz toi parametrii de operare n mod grafic la valorile implicite.
Restorecrtmode - funcia reiniializeaz sistemul de afiare n modul text, dup utilizarea modului
grafic. Se poate folosi alternativ cu setgraphmode pentru a comuta din mod text n mod grafic, n
funcie de aplicaie. La trecerea dintr-un mod n altul, ecranul se terge i se afieaz informatia din
memoria video corespunztor noului mod.
2.6. Ieirea din modul grafic
Closegraph - funcia efectueaz revenirea n modul text, modul implicit de lucru al sistemului de
afiare. Ea apeleaz funcia graphfreemem pentru a elibera memoria ocupata de driver-ul grafic, setul
sau seturile de caractere utilizate de program precum i zonele de memorie interne.
18
2.7. Instalarea unui driver
Modulele din biblioteca grafica sunt independente de adaptor datorita existentei modulelor
driver. Pentru acces la memoria video, modulele din biblioteca folosesc driver-ul ncrcat n
memorie.
Programatorii pot rescrie un driver grafic pentru un adaptor existent sau pot scrie unul nou.
Funcia Installuserdriver permite utilizarea unui nou driver, incluznd fiierul .BGI specificat ca
parametru, intr-o tabela interna meninut de pachetul de funcii grafice. Un al doilea parametru,
opional, este adresa rutinei de detectare i are valoarea NULL daca nu exista o astfel de rutina.
Funcia ntoarce indexul de driver pe care l va primi driver-ul utilizator astfel instalat sau
codul de eroare -11 daca tabela driverelor instalate este deja plina.
2.8. Includerea driver-lor grafice n forma executabila a unui program
Execuia unui program care nu conine driver-ul grafic n forma .EXE presupune existenta
driver-ului grafic n directorul specificat la apelul funciei Initgraph.
Acest lucru poate sa duc la unele probleme n cazul utilizrii programului furnizat "la
cheie". n cazurile date driver-ul grafic poate fi la inclus n program n forma executabila.
Pentru includerea unui driver grafic n forma executabila a unui program se procedeaz
astfel:
1. Se convertete fiierul .BGI n fiier .OBJ cu utilitarul BGIOBJ:
2. Se leag fiierul .OBJ rezultat, la programul executabil.
3. n codul sursa al programului se apeleaz funcia Registerbgidriver sau Registerbgifont, pentru
nregistrarea driverului.
3. Primitive grafice
Primitive grafice reprezint elementele de imagine care pot fi afiate cu ajutorul funciilor
din biblioteca grafica. Astfel de elemente sunt: punctul, linia, cercul, elipsa, arcul de cerc, arcul de
elipsa, sectorul de cerc, dreptunghiul, poligonul.
Toate primitivele grafice au atribute geometrice (coordonate ecran .a.) i atribute de afiare
(culoarea, tipul de linie, tipul de interior, grosimea liniei .a.). Fiecare atribut de afiare are o valoare
implicita, stabilita la iniializarea modului grafic sau prin apelul funciei Graphdefault.
3.1. Operaii cu pixeli
Putpixel(x,y,c) - funcia afieaz un pixel, ale crui coordonate i culoarea sunt specificate ca
parametri.
Getpixel(x,y) - funcia ntoarce culoarea unui pixel ale crui coordonate x i y sunt specificate ca
parametri.
Poziia curenta de desenare poate fi stabilita cu ajutorul funciilor grafice Moveto i Moverel.
Implicit, poziia curenta de desenare este n coltul din stnga sus al porii de vizualizare curente.
Moveto(x,y) - funcia stabilete ca poziie curenta de desenare punctul de coordonate (x,y)
specificate ca parametri. n mod text, funcia echivalenta este Gotoxy.
19
Moverel(xr,yr) - funcia deplaseaz poziia curenta de desenare relativ la vechea poziie de
desenare, cu distantele xr i yr pe axele x i y respectiv. Noua poziie de desenare nu este limitata la
dimensiunea porii de vizualizare curente.
Getx i Gety - funciile ntorc coordonata poziiei curente de desenare pe orizontala i verticala.
Aceste coordonate sunt relative la poarta de vizualizare curenta.
3.2. Construirea liniilor
Line(x1,y1,x2,y2) - funcia afiseaza o linie intre punctele de coordonate (x1,y1) i (x2, y2),
specificate ca parametri. Linia este afiata folosindu-se valorile curente ale atributelor de afiare ale
liniilor: culoare de desenare, grosime i tip linie, mod de scriere n memoria ecran. Valorile trebuie
sa fie stabilite nainte de apelul funciei line.
Valori implicite au urmtoarele atributele de afiare
culoare : alb
tip de linie : continua
grosime linie : un pixel
mod de scriere n memoria ecran: COPY_PUT
Lineto(xf,yf) - funcia afiseaza o linie din poziia curenta de desenare pn n punctul de coordonate
(xf,yf) specificate ca parametri. Pentru afiarea liniei se folosesc valorile curente ale atributelor
menionate la funcia line. Dup afiare, poziia curenta de desenare va deveni punctul de coordonate
(xf, yf).
Linerel(xr,yr) - funcia afiseaza o linie din poziia curenta de desenare pna intr-un punct specificat
prin deplasamentul relativ fata de poziia curenta de desenare (xr, yr).
3.3. Poligoane
Rectangle(x1,y1,x2,y2) - funcia afiseaza un dreptunghi specificat prin doua vrfuri diametral opuse:
stinga sus i dreapta jos. Coordonatele acestor doua vrfuri constituie parametrii funciei.
Bar(x1,y1,x2,y2) - funcia afiseaza o suprafa dreptunghiulara specificata prin doua vrfuri
diametral opuse. La afiarea suprafeei se folosesc valorile curente ale atributelor de afiare ale
suprafeelor: tip de interior i culoare de interior.
Aributele de afiare ale suprafeelor au urmtoarele valori implicite:
culoare de interior : alb
tip de interior : uniform (toi pixelii de aceeai culoare)
Bar3d(x1,y1,x2,y2,dz,ind) - funcia afiseaz un paralelipiped dreptunghic, cu fetele paralele cu
planele principale ale sistemului de coordonate 3D. La afiare se folosesc valorile curente ale
atributelor tip de linie i culoare de desenare pentru contururi, respectiv tip de interior i culoarea de
interior pentru fete.
20
Primii patru parametri ai funciei reprezint coordonatele a doua vrfuri diametral opuse ale
fetei paralelipipedului situata mai aproape de observator. Parametrul dz reprezint dimensiunea
paralelipipedului pe axa z i se exprima n numr de puncte. Ultimul parametru permite desenarea
opionala a fetei de sus a paralelipipedului. Aceasta nu se deseneaz daca parametrul are valoarea 0.
Opiunea este utila n aplicaii n care se dorete suprapunerea mai multor astfel de figuri.
Parametrii funciei sunt: numrul de vrfuri ale liniei poligonale i vectorul cu coordonatele
(x, y) ale acestora. Pentru a desena o linie poligonala nchisa cu n vrfuri, primul parametru al
funciei va fi n+1, iar coordonatele ultimului vrf vor fi egale cu coordonatele primului vrf n
vectorul cu coordonate.
3.4. Curbe conice
n biblioteca grafica exista funcii pentru desenarea urmtoarelor curbe conice: cerc, arc de
cerc, elipsa i arc de elipsa.
La afiarea curbelor conice se folosesc valorile curente ale atributelor: culoare de desenare i
grosime linie. Ele sunt afiate cu linie continu, indiferent de valoarea curenta a atributului tip de
linie.
Circle(x,y,r) - funcia afiseaza un cerc avnd centrul de coordonate (x,y) i raza r, specificate ca
parametri. Raza se exprima printr-un numr ntreg.
Arc(x,y,ui,uf,r) - funcia afiseaza un arc de cerc, intre unghiul iniial ui i unghiul final uf
specificate ca parametri. Raza cercului i coordonatele centrului x i y sunt de asemenea parametri ai
funciei. Unghiurile iniial i final se exprima n grade, cuprinse intre 0 i 360 grade.
Ellipse(x,y,ui,uf,a,b) - funcia afiseaza o elipsa sau un arc de elipsa. Coordonatele centrului x i y,
semiaxele a i b precum i unghiurile iniial ui i final uf sunt specificate ca parametri ai funciei.
3.5. Suprafee
Suprafaa poligonala
Fillpoly - funcia afiseaza o suprafaa poligonala utiliznd valorile curente ale atributelor de afiare
ale liniilor pentru contur, i valorile curente ale atributelor de afiare ale suprafeelor pentru restul
punctelor suprafeei. Poligonul se specifica prin numrul de vrfuri i vectorul coordonatelor (x, y)
ale vrfurilor. n cazul n care coordonatele ultimului vrf difer de coordonatele primului vrf
poligonul este nchis automat.
Suprafaa circulara i eliptica, sector de cerc i de elipsa
Fillellipse(x,y,a,b) - funcia afiseaza o suprafaa eliptica cu interiorul determinat de valorile curente
ale atributelor culoare de interior i tip de interior.
Pieslice(x,y,ui,uf,r) - funcia afiseaza un sector de cerc sau un cerc cu interiorul determinat de
valorile curente ale atributelor tip de interior i culoare de interior. La afiarea razelor care
21
delimiteaz sectorul se folosesc valorile curente ale atributelor de afiare a liniilor. Coordonatele
centrului cercului, raza, unghiurile iniial i final sunt specificate ca parametri ai funciei. Pentru
obinerea unei suprafee circulare cele doua unghiuri trebuie sa fie 0 i 360 de grade.
Sector(x,y,ui,uf,a,b) - funcia afiseaza un sector de elipsa. Coordonatele centrului elipsei, unghiurile
iniial i final ale arcului care delimiteaz sectorul i semiaxele elipsei sunt specificate ca parametri
ai funciei. Sectorul este afiat folosindu-se valorile curente ale atributelor tip de interior i culoare de
interior. Pentru afiarea razelor care delimiteaz sectorul se folosesc valorile curente ale atributelor
de afiare a liniilor.
Suprafaa mrginit de un contur oarecare
Floodfill(x,y,c) - funcia modifica culoarea tuturor pixelilor interiori unui contur existent, folosind
valorile curente ale atributelor tip interior i culoare de interior. Conturul este specificat n lista de
parametri prin culoarea sa. Tot prin lista de parametri se specifica valoarea unui punct interior
conturului. Daca punctul specificat nu este interior conturului se va modifica culoarea pixelilor
exteriori conturului pn la limitele porii de vizualizare curente.
4. Atributele de afiare ale primitivelor grafice
Atribute de afiare ale primitivelor grafice snt urmtoarele:
- culoarea de desenare
- tipul de linie
- grosimea liniei
- tipul de interior
- culoarea de interior
Toate atributele au valori implicite. Pentru specificarea valorilor ce se doresc a fi folosite la
generarea primitivelor grafice trebuie apelate o serie de funcii ale bibliotecii grafice.
4.1. Specificarea culorilor
Culorile care pot fi folosite depind de adaptorul grafic i modul grafic curent.
Culori VGA
n funcie de modul grafic utilizat, sistemul VGA permite afiarea a 16 sau a 256 culori
simultan dintr-o gama de 256K nuane posibile.
Cele 16 culori ce pot fi afiate simultan de adaptorul VGA n modul 16 culori formeaz o
paleta, prezentata mai jos:
22
Tabelul 5.1. Paleta implicita VGA
Culoare
(numrul
intrarii)
Valoare
implicita
(hexa)
Valoare
binara
Componente
culoare
Nume culoare
0 0 000000 ------ BLACK
1 1 000001 -----B BLUE
2 2 000010 ----G- GREEN
3 3 000011 ----GB CYAN
4 4 000100 ---R-- RED
5 5 000101 ---R-B MAGENTA
6 14 010100 -g-R-- BROWN
7 7 000111 ---RGB LIGHTGREY
8 38 111000 rgb--- DARKGREY
9 39 111001 rgbB LIGHTBLUE
10 3A 111010 rgb-G- LIGHTGREEN
11 3B 111011 rgb-GB LIGHTCYAN
12 3C 111100 rgbR-- LIGHTRED
13 3D 111101 rgbR-B LIGHTMAGENTA
14 3E 111110 rgbRG- YELLOW
15 3F 111111 rgbRGB WHITE
Paleta folosita poate conine oricare din cele 64 de nuane posibile. Modificarea unei culori
sau a ntregii palete se realizeaz cu funciile Setpalette respectiv Setallpalette.
Funcii pentru stabilirea paletei i a culorii de desenare
Getmaxcolor - funcia ntoarce numrul maxim de culori ce pot fi folosite n modul grafic curent.
Setcolor(c) - funcia poate fi apelata pentru stabilirea culorii de desenare curente.
Getcolor - funcia ntoarce culoarea de desenare curenta.
Setbkcolor(c) - funcia poate fi apelata pentru specificarea culorii fondului. Ea modifica prima
intrare a paletei de culori la valoarea specificata ca parametru.
Utilizarea acestei funcii are ca efect schimbarea a pixelilor afiai n culoarea de fond.
Astfel, o parte din imaginea afiata poate deveni "invizibila", atunci cnd culoarea fondului este
aceeai cu cea a unor elemente de imagine. Imaginea insa nu este modificata i nu se pierde, astfel
incit la o noua modificare corespunztoare a culorii fondului imaginea poate redeveni "vizibila" n
ntregime.
Getbkcolor - funcia ntoarce valoarea curenta a culorii de fond.
Culorile (de desenare, de interior, culoarea fondului) pot fi specificate prin valorile numerice
corespunztoare sau prin numele simbolice, definite n fiierul GRAPHICS.H. dupa cum urmeaz:
BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGREY, DARKGREY,
23
LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW,
WHITE
Setpalette(indpal, c) - funcia modifica o intrare a paletei. Ea primete prin lista de parametri
numrul intrrii i valoarea, care se va memora n intrarea respectiva. (indpal index paleta, c
culoarea).
Schimbarea culorilor de desenare se poate realiza numai prin schimbarea modului grafic. De
reinut ca schimbarea modului grafic are ca efect tergerea ecranului.
Intrrile noii palete pot fi definite explicit sau noua paleta poate fi una obinut anterior cu
apelul getpalette.
Aceasta funcie nu poate fi folosita n modurile grafice care folosesc palete predefinite,
deoarece n aceste moduri grafice doar culoarea fondului poate fi modificata i nu ntreag paleta.
Getpalette - funcia ntoarce paleta de culori curenta.
Setrgbpalette - funcia poate fi folosita pentru modificarea paletei (fizice) de 256 de culori. Fiecare
culoare din paleta se definete prin 3 valori corespunztoare componentelor de baza rou, verde i
albastru (RGB). Aceste valori se reprezint pe cte 6 bii. Funcia are ca parametri: numrul intrrii
din paleta care se redefinete ( ntreg intre 0 i 255) i valorile culorilor primare R, G, B. Daca se
lucreaz n modul VGA cu 16 culori simultan, sunt folosite numai primele 64 intrri ale paletei
fizice.
Din cei 16 bii pe care se reprezint fiecare din parametrii Rval, Gval, Bval sunt folosii doar
cei mai semnificativi 6 bii ai octetului mai puin semnificativ. Aceasta corespunde la valori multiplu
de 4, n intervalul 0..252.
4.2. Atributele de afiare ale liniilor
Tipul i grosimea liniei
n biblioteca grafica sunt predefinite 4 tipuri de linie i doua grosimi. De asemenea, exista
posibilitatea ca utilizatorul sa-i defineasc propriul sau tip de linie.
Setlinestyle(tl,gl) - funcia stabilete valorile curente ale atributelor tip de linie i grosime linie.
n fiierul GRAPHICS.H sunt definite urmtoarele constante simbolice pentru tipul i
grosimea liniei: OLIDLINE, DOTTEDLINE, CENTERLINE, DASHEDLINE, USERBITLINE;
NORMWIDTH, THICKWIDTH.
Valorile implicite ale acestor atribute de afiare sunt SOLIDLINE i NORMWIDTH.
Cel de-al doilea parametru al funciei Setlinestyle (Sablonlinie) are semnificaie numai cnd
primul parametru, tipul de linie, este USERBITLINE (valoarea numerica 4). n acest caz liniile se
vor trasa prin multiplicarea ablonului definit de utilizator. Tabloul definit de utilizator se reprezint
pe 16 bii. Un bit corespunde unui pixel al liniei, cu semnificaia 1 - pixel aprins (desenat cu culoarea
de desenare curenta), 0 - pixel stins.
24
Getlinesettings - funcia ntoarce informaii referitoare la valorile curente ale atributelor tip de linie,
ablon de linie, i grosime linie.
Modul de nscriere a informaiei grafice n memoria ecran
n bibliotecile grafice, exista o funcie ce permite stabilirea modului de nscriere a
informaiei grafice n memoria ecran. Astfel, valorile numerice prin care se reprezint pixelii n
memoria ecran pot fi nscrisee n mod necondiionat, printr-o operaie la nivel de pixel, intre valoarea
care trebuie sa fie nscrisa i valoarea existenta.
Setwritemode(oplog) - funcia stabilete modul de nscriere n memoria ecran a informaiei.
n fiierul GRAPHICS.H sunt definite doua constante: COPYPUT i XORPUT,
corespunztor celor doua modaliti de scriere posibile. COPYPUT specifica afiarea necondiionata
(suprascriere) peste imaginea existenta. XORPUT specifica afiarea condiionata combinnd linia cu
imaginea deja existenta. Aceasta combinaie corespunde operaiei logice XOR. Astfel, daca o linie
este trasat a doua oara prin aceiai pixeli, utiliznd acest mod de afiare, efectul este de tergere a
liniei i restaurare a imaginii iniiale.
4.3. Atributele de afiare ale suprafeelor
Atributele date sunt folosite de funciile: bar, bar3d, fillpoly, floodfill, fillellipse, pieslice i
sector.
Tipul de interior se specifica printr-un sablon de 8x8 pixeli. Culoarea de interior poate fi
diferita de culoarea de desenare, folosita la afiarea conturului figurilor de tip suprafaa.
Setfillstyle(ti,ci) - funcia poate fi apelata pentru specificarea valorilor curente ale atributelor tip de
interior i culoare de interior, specificate ca parametri.
Setfillpattern(sb,ci) - funcia primete prin lista de parametri un ablon i culoarea de interior. Un
ablon se reprezint printr-un vector de caractere.
Getfillpattern funcia ntoarce ablonul utilizat curent, specificat la apelul funciei Setfillpattern.
Getfillsettings funcia ntoarce valorile curente ale atributelor tip i culoare de interior.
5. Textul n mod grafic
n aplicaiile grafice, imaginile care se afiseaza pot conine i texte, formate din iruri de
caractere. Afiarea acestor texte nu pot fi facute n modul text, deoarece trecerea din mod grafic n
mod text i invers are ca prim efect tergerea ecranului. De aceea este necesar ca i n mod grafic sa
existe posibilitatea afirii de texte pe ecran.
n mod grafic afiarea textului difer de afiarea n mod text. Astfel, un caracter poate fi
amplasat n orice poziie pe ecran (specificata prin coordonate de pixel) fata de modul text n care un
caracter poate fi amplasat numai n una din cele 25x80 celule n care ecranul este considerat a fi
divizat.
25
De asemenea pentru modul grafic exista definite mai multe seturi de caractere, iar
dimensiunea caracterelor poate fi modificata. Direcia de scriere a textului poate fi orizontala sau
verticala.
5.1. Afiarea textului n mod grafic
n biblioteca grafica sunt definite doua funcii ce permit scrierea textului n mod grafic:
Outtext(Text) - funcia afiseaza un ir de caractere. Poziia de amplasare a textului este poziia
curenta de desenare.
Pentru afiarea textului, funcia folosete valorile curente ale atributelor set de caractere,
culoare de desenare, dimensiune caractere, direcie de scriere (orientare text) i aliniament. Valorile
acestor atribute se stabilesc cu ajutorul unor funcii speciale.
Outtextxy(x,y,Text) - funcia afiseaza un ir de caractere, n poziia de amplasare x i y,
specificata prin parametri. Funcia Outtextxy nu modifica poziia curenta de desenare. Pentru
afiarea textului, funcia folosete valorile curente ale atributelor menionate la funcia outtext.
5.2. Atributele de afiare ale textelor
Aceste atribute sunt: culoarea de scriere, setul de caractere, dimensiunea (mrimea)
caracterelor, direcia de scriere, aliniamentul textului.
Culoarea de scriere este culoarea curenta de desenare stabilita cu ajutorul funciei Setcolor.
Aliniamentul se refera la poziia de afiare a textului fata de poziia de amplasare text transmisa
funciilor outtext i outtextxy. Textul este considerat ca fiind ncadrat intr-un dreptunghi cu laturile
paralele cu axele sistemului de coordonate. n figura sunt desenate cu linie punctata principalele linii
ce delimiteaz dreptunghiul de ncadrare al textului.
Funciile bibliotecii grafice care pot fi folosite pentru stabilirea valorilor curente ale
atributelor de afiare ale textelor snt urmtoarele.
Settextstyle(car, dir, dim) - funcia poate fi apelata pentru a specifica setul curent de caractere,
direcia de scriere i dimensiunea caracterelor. Cel de-al treilea parametru al funciei settextstyle
reprezinta factorul de scalare pe x i y ce se aplica dimensiunii iniiale a caracterelor. Acest
parametru ia valori intre 0 i 10. Orice valoare n afara acestui interval genereaz o eroare - funcia
Graphresult ntoarce valoarea -11 iar valorile curente ale atributelor set caractere, direcie i
dimensiune nu se modifica.
Valoarea 0 ca dimensiune a caracterelor are semnificaie diferita n funcie de setul de
caractere curent. Astfel, pentru setul implicit de caractere, valoarea 0 este echivalenta cu valoarea 1.
Pentru celelalte seturi de caractere, valoarea 0 semnifica scalare cu factorii de scalare implicii
sx=sy=4 sau cu factorii de scalare definii de utilizator, folosind setusercharsize. Valorile implicite
ale atributelor set caractere, direcie scriere i dimensiune caracter sunt: DEFAULT_FONT,
HORIZ_DIR, respectiv 1.
Numele simbolice ale seturilor de caractere, definite n fiierul GRAPHICS.H, sunt
prezentate n tabelul 5.1.
26
Tabelul 5.1. Seturi de caractere
Nume simbolic Valoare Fiier .CHR
DEFAULT_FONT 0
TRIPLEX_FONT 1 TRIP
SMALL_FONT 2 LITT
SANS_SERIF_FONT 3 SANS
GOTHIC_FONT 4 GOTH
SCRIPT_FONT 5 SCRI
SIMPLEX_FONT 6 SIMP
TRIPLEX_SCRIPT_FONT 7 TSCR
COMPLEX_FONT 8 LCOM
EUROPEAN_FONT 9 EURO
Direcia de scriere poate fi orizontala sau verticala. Pentru specificarea sa se pot folosi
constantele HORIZ_DIR i VERT_DIR:
Nume simbolic Valoare
HORIZ_DIR 0
VERT_DIR 1
Setusercharsize(xm, xd, ym, yd) - funcia permite definirea factorilor de scalare care se vor aplica
dimensiunii caracterelor din setul curent de caractere, exceptnd setul implicit (DEFAULT_FONT).
Factori de scalare se calcul n mod urmtor: sx xm/xd, sy ym/yd. Factorii sx i sy pot fi
numere ntregi sau fracionare. Daca au valori diferite se produce o deformare a caracterelor afiate,
fata de aspectul lor iniial (form de definiie).
Settextjustify(aliniament) - funcia permite specificarea aliniamentului orizontal i a celui vertical
pentru text. Aliniamentul specifica poziia textului fata de poziia de amplasare text folosita de
funciile de scriere outtext i outtextxy.
Valorile numerice i numele simbolice definite pentru aliniament n fiierul GRAPHICS.H
sunt prezentate n tabelul urmtor:
Tabelul 5.2. Aliniamentul textului
Aliniament Nume simbolic Valoare
LEFT_TEXT 0
orizontal CENTER_TEXT 1
RIGHT_TEXT 2
BOTTOM_TEXT 0
vertical CENTER_TEXT 1
TOP_TEXT 2
Valorile implicite sunt LEFT_TEXT, BOTTOM_TEXT.
27
5.3. Seturi de caractere (font-uri)
Exista doua tipuri de seturi de caractere: raster (bitmap) i vectoriale (stroke), care difer prin
modul de descriere a caracterelor.
ntr-un set raster, fiecare caracter este definit printr-o matrice de pixeli, de dimensiune fixa.
ntr-un set vectorial, fiecare caracter este descris ca o secven de segmente de dreapta.
Afiarea caracterelor raster este mai simpla. n schimb, scalarea caracterelor (mrirea sau
micorarea fata de dimensiunea de definiie) este mult mai rapida i mai exacta pentru un set
vectorial dect pentru un set raster.
Setul implicit de caractere, DEFAULT_FONT este un set raster, fiecare caracter fiind definit
intr-o matrice de 8x8 puncte. Celelalte seturi de caractere predefinite sunt seturi vectoriale i sunt
memorate n fiiere cu extensia .CHR.
Fiierele .CHR corespunztoare seturilor de caractere folosite intr-un program pot fi
transformate n fiiere .OBJ cu ajutorul utilitarului BGIOBJ i apoi incluse n programul executabil.
Utilizatorul poate defini noi seturi vectoriale sau poate modifica seturile vectoriale
predefinite. Editarea unui set vectorial se poate face cu utilitarul FE.EXE (Font Editor). Pentru a
putea utiliza noile seturi vectoriale definite, exista n biblioteca funcia Installuserfont:
Installuserfont(cale, nume fiier.CHR) - funcia ncarc n sistemul grafic un nou set vectorial
dintr-un fiier .CHR al carui nume este specificat ca parametru i ntoarce un ntreg, identificator al
setului. Acest identificator poate fi folosit de funcia settextstyle pentru a selecta setul curent de
caractere.
n sistemul grafic exista o tabela ce poate conine pn la 20 de seturi de caractere, instalate
cu aceasta funcie. Daca tabela este plina, funcia ntoarce valoarea -11.
Spaiul ocupat de un text pe ecran depinde de numrul de caractere din text dar i de setul de
caractere i factorii de scalare utilizai. Pentru a determina dimensiunea n pixeli a dreptunghiului n
care se ncadreaz un text, pot fi folosite doua funcii existente n biblioteca grafica: textwidth i
textheight. Se poate astfel calcula spaiul intre diferite texte sau linii de text care se scriu pe ecran.
Textheight - funcia ntoarce nlimea unui text, exprimata n pixeli, innd cont de setul curent de
caractere, factorii de scalare i direcia de scriere.
Txtwidth - funcia ntoarce laimea unui text, exprimata n pixeli, innd cont de setul de caractere
curent, factorii de scalare i direcia de scriere. Caracterele din seturile vectoriale au limi diferite.
6. Operaii cu imagini
6.1. Sistemul de coordonate dispozitiv
n mod grafic, ecranul este considerat ca fiind o matrice de puncte (pixeli), fiecare avnd
culoarea sa. n funcie de adaptorul grafic i de modul grafic n care se lucreaz aceasta matrice poate
avea M coloane i N linii, unde M i N se determin de tipul adaptorului i modul de lucru utilizate.
28
Sistemul de coordonate ataat ecranului, numit "sistem de coordonate dispozitiv" este un
sistem de coordonate carteziane, cu originea n coltul din stnga sus al ecranului, axa x orientata spre
dreapta i axa y orientata n jos.
Coordonatele unui pixel pe ecran sunt cuprinse intre 0 i xmax pe axa x, respectiv 0 i ymax
pe axa y. Valorile xmax i ymax variaza n funcie de adaptorul video instalat i modul grafic n care
se lucreaz, intre 320 i 1024 pe orizontala respectiv intre 200 i 768 pe verticala.
Valorile maxime ale coordonatelor pot fi determinate cu ajutorul a doua funcii din biblioteca
grafica. Aceste funcii sunt utile n programele de aplicaie pentru asigurarea independentei lor de
adaptorul grafic folosit. Cele doua funcii sunt:
Getmaxx, Getmaxy - funciile ntorc coordonata maxima pe orizontala, respectiv pe verticala pentru
adaptorul instalat i modul video curent.
6.2. Poarta de vizualizare (viewport-ul)
Poarta de vizualizare poate fi orice zona dreptunghiulara a ecranului. Ea reprezint zona n
care va fi vizualizat desenul descris n cadrul aplicaiei. Poarta implicita este ntregul ecran.
Coordonatele transmise funciilor de afiare apelate n programele de aplicaie sunt considerate
relative la originea porii de vizualizare curente. Aceasta permite afiarea unui desen oriunde pe
ecran, prin simpla redefinire a porii de vizualizare.
n biblioteca grafica exista funcii specifice pentru definirea i pentru tergerea suprafeei
porii de vizualizare curente:
Setviewport(x1, y1, x2, y2, clip) - funcia stabilete poarta de vizualizare curenta, specificata prin
coordonatele a doua vrfuri diametral opuse (stinga-sus, dreapta-jos).
n cazul n care coordonatele transmise funciei setviewport sunt incorecte, funcia
Graphresult ntoarce valoarea -11, fr a se modifica poarta vizuala curenta.
Ultimul parametru al funciei (clip) este indicatorul de decupare. Prin el programatorul poate
specifica daca dorete sa se efectueze operaia de decupare (clipping) a imaginii afiate la frontiera
porii vizuale curente. Astfel, daca parametrul clip are valoarea 0, decuparea va avea loc la marginile
ecranului i nu la cele ale porii de vizualizare curente. Coordonatele specificate pentru desenare sunt
relative la originea porii vizuale curente, dar imaginea afiata se poate extinde peste limitele
acesteia. Daca parametrul clip are o valoare diferita de 0 se va realiza automat operaia de decupare
la marginile porii vizuale curente. Aceasta nseamn ca numai acele elemente grafice care conin
puncte aparinnd porii vor fi afiate.
Funciile Initgraph i Setgraphmode stabilesc ca poarta vizuala curenta ntregul ecran.
Clearviewport - funcia sterge imaginea afiata n poarta vizuala curenta (folosind culoarea de fond)
i stabilete poziia curenta de desenare n coltul stnga sus al porii. Este echivalenta ca efect cu
funcia clrscr dedicata modului text.
Getviewsettings - funcia ntoarce coordonatele ce definesc poarta de vizualizare curenta i valoarea
indicatorului de decupare (clip).
29
Pentru tergerea ntregului ecran n mod grafic se poate folosi funcia Cleardevice:
Cleardevice - terge ntreg ecranul i muta poziia curenta de desenare n originea sistemului de
coordonate dispozitiv.
Spre deosebire de funcia Clrscr din mod text (care terge fereastra activa) funcia
Cleardevice nu ine cont de poarta de vizualizare curenta. n cazul n care se lucreaz cu mai multe
pagini video n memoria grafica, se va terge doar pagina activa.
6.3. Salvarea i restaurarea imaginilor n/din fiiere
Biblioteca grafica conine funcii ce permit diferite operaii cu imagini sau pri de imagini
ecran: copierea, tergerea, restaurarea, multiplicarea. Aceste Operaii sunt eseniale n aplicaii de
animaie pe calculator; de asemenea, n unele aplicaii este util sa se salveze imagini ecran n fiiere
pe disc.
Funciile care realizeaz operaii cu imagini ecran sunt Getimage i Putimage. "Imaginea
ecran" se refera la imaginea la nivel de pixel dintr-o zona dreptunghiulara specificata prin
coordonatele a doua vrfuri diametral opuse. Determinarea spaiului de memorie necesar pentru
salvarea unei imagini ecran este realizata de funcia Imagesize(x1, y1, x2, y2), care ntoarce
numrul de octei necesari pentru a memora o imagine ecran specificata prin coordonatele a doua
vrfuri diametral opuse.
Funcia Getimage(x1, y1, x2, y2, adr) salveaz o imagine ecran intr-o zona de memorie
alocata anterior. Parametrii funciei sunt cele 4 coordonate prin care se specifica imaginea ecran i
adresa zonei din memoria interna. Zona trebuie sa fie mai mica de 64K.
Funcia Putimage(x1, y1, oper) restaureaz o imagine salvata anterior, afind-o intr-o poziie
specificata prin lista de parametri. Poziia este reprezentata prin coordonatele coltului stnga sus al
zonei dreptunghiulare n care va apare imaginea pe ecran.
Funciile Getimage i Putimage permit transferul imaginilor intre memoria ecran i memoria
interna. Pentru aplicaii grafice care opereaz cu mai multe imagini, alocarea memoriei necesare
pentru salvarea lor poate constitui o problema i de aceea este convenabil sa se lucreze cu fiiere.
Astfel, o imagine ecran se salveaz intr-un fiier care poate fi apoi folosit de mai multe ori n diferite
aplicaii. Se poate crea i stoca intr-un fiier o succesiune de imagini, pentru ca apoi imaginile sa fie
redate rapid prin citire din fiier.
Funcii, care realizeaz operaiuni de salvare a unei imagini ecran intr-un fiier, respectiv
restaurarea ei din fiier, snt Getimg i Putimg.
Funcia Getimg(x1,y1,x2,y2,nf) are ca parametri coordonatele a doua vrfuri diametral opuse
ale zonei ecran ce conine imaginea de salvat i numele fiierului. Pentru lucrul cu fiierul se folosesc
funciile Fopen, Fwrite, Fflush i Fclose.
Funcia Putimg(x1y1,nf,ms) are ca parametri coordonatele coltului stinga-sus ale zonei n
care se va afia imaginea, numele fiierului i modul de scriere. Dimensiunea imaginii ecran se
determina din primii 4 octei citii din fiier. Aceti 4 octei reprezint dimensiunile pe x i pe y.
Citirea celor 4 octei din fiier se realizeaz cu funcia Fgetc. Se determina apoi numrul de octei
necesari pentru memorarea imaginii i se aloca spaiul necesar.
30
Se apeleaz funcia Rewind pentru repoziionare la nceputul fiierului, apoi se citete
imaginea din fiier folosind funcia Fread. Pentru restaurarea imaginii pe ecran se apeleaz funcia
Putimage. n final se elibereaz spaiul alocat i se nchide fiierul.
6.4. Operaii cu imagini n memorie
Ultimul parametru al funciei Putimage specifica modul de scriere al fiecrui pixel imagine.
Sunt definite 5 moduri de scriere care permit combinarea unui pixel al imaginii de afiat cu pixelul
corespunztor din imaginea existenta n zona de afiare. Modurile de scriere sunt reprezentate prin 5
operatori prezentai n tabelul 12.1 i enumerai n fiierul GRAPHICS.H.
Tabelul 12.1. Moduri de scriere a pixelilor imaginei
Nume
operator
Valoare Descriere operaie
COPY_PUT 0 imaginea e copiata nlocuind imaginea existenta
XOR_PUT 1 Se realizeaz operaia logica XOR la nivel de
pixel intre imaginea salvata i cea existenta
OR_PUT 2 Se realizeaz operaia logica OR
AND_PUT 3 Se realizeaz operaia logica AND
NOT_PUT 4 Se realizeaz operaia logica NOT la nivel de
pixel n imaginea salvata i se nlocuiete apoi
imaginea existenta pe ecran
Operaia de copiere (COPY_PUT) este utila atunci cnd se dorete nlocuirea unei imagini
sau poriuni de imagine.
Operatorul XOR_PUT se poate folosi atunci cnd se dorete afiarea temporara a unei
imagini intr-o zona a ecranului. Astfel, daca se afiseaza o imagine de doua ori n aceeai poziie
folosind operatorul XOR_PUT, dup a doua afiare apare imaginea existenta n zona naintea primei
afiri. Metoda se folosete pentru realizarea animaiei.
Funcia Putimage nu afieaz imaginea daca nu ncape n ntregime pe ecran. Nu este luat n
considerare poarta de vizualizare curenta, chiar daca s-a cerut decuparea imaginii la marginile sale.
6.5. Fiiere cu mai multe imagini
Crearea i utilizarea unui fiier cu mai multe imagini este utila n aplicaii care necesita
salvarea/restaurarea unei imagini care ocupa ntregul ecran, la fel i n aplicaii care opereaz cu
mai multe imagini ecran.
n primul caz, salvarea unui ecran se realizeaz prin divizarea imaginii n fii orizontale, de
exemplu n 4 fragmente care se salveaz pe rnd, n acelai fiier. Fragmentele de imagine au aceeai
dimensiune, ceea ce permite o cutare simpla n fiier pentru a determina unde ncepe o noua
imagine.
n al doilea caz, imaginile pot avea dimensiuni diferite, de aceea apare problema localizrii
imaginilor intr-un fiier. O soluie ar constitui-o salvarea n fiier a unor imagini de aceeai
dimensiune i anume dimensiunea celei mai mari imagini. Soluia este convenabila doar n cazul n
care imaginile care se salveaz n fiier au dimensiuni aproximativ egale. Daca imaginile sunt de
31
mrimi mult diferite, restaurarea imaginilor este mai complicata; trebuie determinata dimensiunea
fiecrei imagini n parte i implicit a datelor care se citesc din fiier. Dimensiunea se determina din
primii 4 octei ai unei imagini dar, pentru aceasta trebuie cunoscuta poziia imaginii n fiier. Pentru
salvarea mai multor imagini intr-un fiier se poate folosi opiunea append la operaia de deschidere a
fiierului.
Funcia Savimg salveaz o imagine ecran intr-un fiier pe disc. Fiierul poate conine mai
multe imagini ecran. Funcia ntoarce poziia n fiier a imaginii salvate. Indiferent de dimensiunea
imaginii ecran salvate funcia mparte aceasta imagine n 4 fragmente de aceeai mrime. Divizarea
se face n fii orizontale iar fragmentele sunt salvate apoi n fiier n ordinea de sus n jos.
Restaurarea imaginii salvate anterior intr-un fiier folosind funcia Savimg este realizata de
funcia Restimg. Spre deosebire de funcia Putimg funcia dat are n plus un parametru ce
reprezint poziia n fiier a imaginii ce se restaureaz. Imaginea este formata din 4 fragmente de
aceeai dimensiune.
6.6. Operarea cu mai multe pagini video
Imaginea afiata pe ecran n mod grafic este stocata n memoria video. Capacitatea acestei
memorii difer de la un adaptor grafic la altul. De asemenea, cantitatea de memorie necesara pentru a
memora imaginea de pe ntregul ecran depinde de modul video n care se lucreaz. Astfel, cantitatea
de memorie necesara este cu att mai mare, cu cit rezoluia este mai mare i se lucreaz intr-un mod
video cu mai multe culori afiabile simultan pe ecran.
n unele moduri video, capacitatea memoriei video este suficient de mare pentru a permite
pstrarea mai multor imagini ecran. Zona de memorie video necesara pentru a pstra un ntreg ecran
se numete pagina video. n tabelul urmtor sunt prezentate modurile grafice pentru adaptoarele ce
suporta mai multe pagini video.
Tabelul 12.2. Modurile grafice pentru adaptoarele ce suporta mai multe pagini video
Constanta
Driver gr
Constanta
mod video
Valoare
mod
Rezoluie
(col*lin)
Paleta
culori
Pagini
video
Driver
VGA VGALO 0 640x200 16 cul. 4
VGAMED 1 640x350 16 cul. 2
VGAHI 2 640x480 16cul. 1
n cazul n care adaptorul suporta mai multe pagini video, una singura se afiseaza la un
moment dat. Pagina care se afiseaza la un moment dat se numete pagina vizibila. Pagina n care se
scrie la un moment dat se numete pagina activa.
Iniial pagina 0 este att pagina vizibila cit i pagina activa. Adaptorul poate comuta foarte
rapid de la o pagina la alta. Corespunztor, n biblioteca grafica exista funcii ce permit comutarea i
stabilirea paginii active i a paginii vizibile. Modul de lucru cu mai multe pagini video ofer
avantajul unei actualizri rapide a ntregului ecran. Astfel, n timp ce pe ecran este afiata o pagina,
se poate construi o alta imagine intr-o alta pagina. Prin simpla schimbare a paginii vizibile se va
schimba ntreag imagine afiata pe ecran.
32
Aplicaiile n care se utilizeaz mai multe pagini video sunt de exemplu, programele de
animaie pe calculator, programele care construiesc imagini foarte complexe. n primul tip de
aplicaii pentru a simula micarea, se afiseaza o pagina video, n timp ce se construiete (se
deseneaz) urmtoarele imagini ale filmului de animaie n celelalte pagini video. Se afiseaza apoi
succesiv aceste pagini video comutnd de la una la alta pentru a simula micarea. n cel de-al doilea
tip de aplicaie este de dorit ca utilizatorul sa nu vad detaliile de construire a imaginii complexe.
Timpul de generare a imaginii este suficient de mare i de aceea pe toata aceasta durata se afiseaza o
alta pagina video dect cea activa. n final se comuta pagina activa astfel incit sa devin pagina
vizibila i astfel utilizatorul poate observa imaginea gata construita.
Funciile din biblioteca grafica ce permit lucrul cu pagini video sunt urmtoarele.
Setactivepage - funcia permite selectarea paginii n care se va desena (pagina activa). I se transmite
ca parametru numrul de pagina care devine pagina activa. Daca noua pagina activa nu coincide cu
pagina vizibila, funciile de desenare apelate n continuare n program nu vor afecta imaginea afiata
pe ecran.
Setvisualpage - funcia permite selectarea paginii video care va fi afiata (pagina vizibila). Poate fi
folosita pentru comutarea afirii intre diferite pagini video. Comutarea este mult mai rapida dect
poate urmri ochiul uman; necesita doar un ciclu de remprosptare a imaginii ecran (circa 1/50
secunde) pentru afiarea unei imagini deja construite, orict de complexa.
6.7. Corecia formelor imaginilor sintezate
Fiecrui driver grafic i mod grafic le corespunde o anumita dimensiune a pixelului pe ecran.
Aceasta este reprezentat prin raportul dintre dimensiunea pe orizontala (limea) i dimensiunea pe
verticala ( nlimea) ale unui pixel.
De regula acest raport este subunitar, ce duce la afiarea figurilor generate deformate
(lungite pe verticala). Pentru a calcula i corecta distorsiunile, introduse de forma dreptunghiular a
unui pixel, se folosesc dou funcii din biblioteca Getaspectratio i Setaspectratio.
Getaspectratio(xp,yp) - funcia ntoarce doua valori ntregi, reprezentnd dimensiunile pe x i y a
unui pixel.
Funciile de afiare din biblioteca grafica efectueaz corecia de pixel. Daca figurile apar
deformate pe ecran, cauza o constituie reglarea electronica necorespunztoare a monitorului. Aceasta
poate fi modificata manual. Funcia Circle poate fi folosita ca o metoda de verificare a corectitudinii
reglajului electronic al monitorului. Corecia de pixel nu este efectuata pentru linii, poligoane, elipse
sau arce de elipsa.
Setaspectratio(xp,yp) - funcia stabilete raportul dintre dimensiunea pe x i pe y a unui pixel.
Raportul este folosit automat ca factor de scalare de funciile de afiare cerc, arc de cerc i sector. Se
recomand utilizarea acestei funcii atunci cnd cercul generat de funcia Circle din biblioteca este
deformat (pe verticala sau pe orizontala).
Corecia de pixel se poate realiza prin program - utiliznd funcia Setaspectratio - sau prin
reglarea manuala a monitorului.
33
7. Formatele fiierelor de grafic
Optimizarea lucrarilor grafice si proiectarea aplicatiilor grafice portabile necesita o buna
alegere a formatului fisierului grafic. Modelele de desenare traditionale ce intervin asupra fonturilor
de caractere si asupra marginilor sunt: modul bitmap si modul vectorial. Fiecare din aceste modele
influenteaza crearea imaginilor, modificarile ulterioare, facilitatile de import/export intre aplicatii,
calitatea imprimarii.
7. 1. Modele de reprezentare bitmap (harti de biti)
Imaginile bitmap sunt stocate punct cu punct. Aplicatiile bitmap construiesc imaginea prin
umplerea fiecarui punct, ca un mozaic, putand fi usor editat folosind un instrument pensula
(Paintbrush). Modul bitmap este folosit de scanner pentru analiza imaginii si este singurul mod de
extragere pentru periferice numerice.
Limitarile modelului bitmap sunt date atat de conservarea definitiei imaginii de la creare la
imprimare, fara a tine cont de rezolutia reala a dispozitivelor de iesire (afisare sau imprimare),
rezultand o redare neoptimizata a imaginii, cat si de ocuparea dezavantajoasa a spatiului de memorie.
Culoarea fiecarui punct ce compune imaginea bitmap este reprezentata binar, de unde si necesitatea
unui spatiu de memorie foarte mare.
FORMAT .TIF .GIF .TGA .BMP .JPG
DOMENIUL DE schimburi schimb de imagini de format de video
APLICATIE de fisiere fisiere sinteza imagini in Win

bitmap si OS/2
MARIMEA PE 185 KB sau 67 KB 374 KB 17 MB 303 KB
DISC (exemplu 17 MB
comparativ)
MARIMEA 17 MB 5,8 MB 17 MB 17 MB 17 MB
FISIERULUI
DECOMPRIMAT
COMPRESIE posibila DA DA NU reglabila
SISTEME DE 8b, 24b, index pe 8b 8b, 16b, 4b, 8b,
24b 8b, 24b
CODIFICARE A 32b 24b, 32b
CULORII
NUMAR DE max.16,7 max. 256 max.16,7 max.16,7 mil -
CULORI mil mil
OBSERVATII format nerecomandat
standard pentru imagini
complexe
34
Tabelul 1-1. Principalele formate de fisiere bitmap.
Avantajele modelului bitmap se refera la buna adaptare pentru desenarea imaginilor complexe
(fotografii), fiind folosit de produse software de retusare a imaginii si prezentare asistata de
calculator.
Aplicatiile care utilizeaza imagini in format harti de biti se numesc aplicatii de pictura (paint
programs). Principalele formate de fisiere bitmap sunt comparate in tabelul 1-3.
TIF (Tag Image File Format) este un format bitmap propus de Aldus-Microsoft. Permite o
codificare adaptata cel mai bine schimbului de imagini intre aplicatii si sisteme (cu conditia folosirii
in format necomprimat). In practica exista diferite tipuri de format TIF (prin deosebirea algoritmului
de comprimare facultativ), formatul fiind irecuperabil de la o aplicatie la alta. Versiunea 6.0 a
formatelor TIF (ultima) permite salvarea in standardul CMYK. Formatul permite codificarea
imaginilor monocrome, nuante de gri sau color (RGB pe 8b si pe 24b), cu diferite rezolutii.
TGA (TarGA) este un format bitmap folosit in aplicatii de prelucrare a imaginilor de gama
inalta (imagini de sinteza sau pentru design industrial).
GIF (Graphics Interchange Format), format bitmap propus de CompuServe, este folosit pentru
schimbul de fisiere din retelele publice (inclusive World Wide Web). Exista doua variante ale
standardului: GIF87a si GIF89a. Diferentele intre cele doua formate sunt minore. Are o rata de
compresie ce permite utilizarea extensiva, in special pentru scanarea fotografiilor. Formatul GIF
foloseste pentru comprimare algoritmul Lempel-Ziv Welch (o varianta a algoritmului de codificare
Huffman, vezi sectiunea referitoare la compresii). Formatul permite codificarea imaginilor
monocrome, nuante de gri sau color, cu diferite rezolutii. Este limitat la reprezentarea culorii pe 8
biti (256 culori) deci este folosit in special pentru imagini in culori distinctive, dar si pentru
codificarea imaginilor transparente (culoare dominanta neutra).
Figura 1-1. Rularea si stabilirea caracteristicilor unui fisier GIF animatfolosind aplicatia MS GIF Animator.
Un fisier GIF poate contine o secventa de mai multe cadre bitmap, care sa constituie animatie.
Cadrele sunt transmise la ecran cu sau fara pauza intre ele, fiind folosite in special de proiectantii de
pagini web (figura 1-15).
JPG/JPEG (Joint Photographic Experts Group) comprima imaginile color prin eliminarea
informatiilor superflue (neperceptibile cu ochiul) pana la 5% din dimensiunea initiala (tehnica
denumita lossy compression), pe baza exploatarii caracteristicilor anatomice de (in)sensibilitate a
ochiului uman. Din acelasi motiv, acest format nu este recomandat reprezentarilor crochiurilor,
desenelor animate si imaginilor mono-culoare. O imagine JPEG este decomprimata automat la
deschiderea fisierului. Pot apare probleme de compatibilitate la recitirea fisierului JPEG cu alte
aplicatii decat cea folosita la crearea lor.
Algoritmul de compresie parcurge patru pasi: crearea matricei de pixeli (procesarea esantioanelor de
8x8 pixeli) si conversia schemei de culoare (in general folosind spatii de culoare bazate pe
intensitate/ luminozitate si nu pe nuante RGB), procesarea DCT (Discrete Cosine Conversion),
cuantificare si codificari suplimentare. Calculele aditionale urmaresc transformarea intr-o structura
unidimensionala prin metoda modelului zig-zag (figura 1-16), in vederea pregatirii transferului in
format secvential si a imbunatatirii ratei de compresie.
35
Figura 1-2. Modelul zigzag aplicat unui fisier JPG.
Spre deosebire de formatul GIF, transparenta este o mare problema pentru formatul JPEG. Formatul
GIF utilizeaza o culoare (nefolosita in desen) pentru a marca suprafata imaginii ce va deveni
transparenta. Formatul JPEG nu foloseste insa valori constante de culoare. Dupa compresie, valoarea
unei celule este combinata cu valori ale celulelor apropiate si rotunjita la cel mai apropiat intreg. La
fiecare compresie valoarea se poate schimba, deci nu putem fi siguri ce culoare (intensitate) va avea
pixelul dupa o noua decompresie. Acesta este si motivul pentru care pictogramele si cursoarele sunt
realizate in format GIF.
PNG (Portable Network Graphics) a fost proiectat pentru imbunatatirea si inlocuirea
formatului comercial GIF. Algoritmul de compresie este LZ77 (folosit si in aplicatiile de arhivare
zip, gzip si pkzip). Formatul PNG este freeware (gratis) pentru uz comercial si propune trei modele:
- PNG gray_scale (nuante de gri, pixelii sunt reprezentati pe 16b valoare de iluminare, 0 = black,
256-1 - white);
- PNG true_color (pixelii sunt reprezentati folosind 24b valoare RGB, fiecare componenta folosind
8b pentru specificarea influentei in culoarea pixelului, 0 fara influenta, 28-1 influenta maxima);
- PNG palette_based (pixelii sunt reprezentati printr-un index de culoare dintr-o paleta de culori.
BMP (BitMaP) este un format de fisier legat de sistemul de operare Windows si interfata
Presentation Manager OS/2. Este recunoscut de Clipboard-ul celor doua medii grafice. Permite deci
schimb lejer intre aplicatii diferite. Este un format grafic independent de dispozitivul de iesire, in
sensul ca in momentul in care este transferat la iesirea sistemului, driver-ul dispozitivului de iesire
(monitor, imprimanta) traduce culorile specifice formatului de fisier in culorile curente ale
dispozitivului.
7.2. Formatul BMP
Exista doua versiuni ale formatului de fisier grafic BMP pentru imagini Windows si doua pentru
OS/2 (versiune veche/noua). Versiunile Win/OS/2 vechi sunt identice, cele noi sunt diferite, deci
exista aplicatii care nu suporta toate formatele BMP: aplicatii Windows cu format BMP OS/2 sau
invers, sau formatul BMP contine altceva decat imagine (icoana sau cursor) sau aplicatia veche
contine doar versiunea veche BMP.
Formatul imagine BMP este proiectat pentru reprezentarea imaginilor de orice dimensiuni folosind
1-24 biti pentru informatii privind culoarea. Suporta compresii RLE (Run-Length Encoded) sub
Windows si Huffman 1D sub OS/2 (vezi sectiunea referitoare la compresia imaginilor). Imaginea
este stocata ca linii scanate ordonate bottom-up, ceea ce creaza dificultati la realizarea conversiilor
de format sau la imprimarea imaginii la imprimante matriceale.
Un fisier BMP contine, in ordine, elementele: header de fisier, header bitmap, paleta optionala,
bitmap propriu-zis. Variantele de format depind de header bitmap si paleta. Pentru versiunea
Windows, formatul este reprezentat de structurile:
Format vechi Format nou
BITMAPFILEHEADER BITMAPFILEHEADER
BITMAPCOREHEADER BITMAPINFOHEADER
BITMAPCOREINFO (imagine) BITMAPINFO (imagine)
RGBTRIPLE [ ] RGBQUAD [ ]
Tabelul 1-2. Structura formatului bitmap pentru sistemele Windows.
36
Intrarile pentru paleta de culori in versiunea veche a formatului de fisier constau in 24b (intensitatea
RGB). In versiunea noua are 4B, astfel incat paleta de culori poate fi citita ca vector de date tip long.
Imaginea in fisierul BMP este organizata ca o serie de linii scanate, prezentata incepand cu ultima
linie catre prima. Liniile scanate sunt completate totdeauna astfel incat sa ocupe un numar par de
cuvinte duble de 32 biti. Pentru o imagine data de n pixeli, fiecare pixel avand o adancime de d biti,
numarul de octeti pe linia scanata se calculeaza cu formula:
NumarBytes/linie_scanata=((n*d+31)/32)*4.
Campurile nefolosite sau neimportante ale structurilor trebuie setate la 0. Elementele structurii de
informatii BMP Windows sunt: bfType (2B): validarea inceputului de fisier BMP, plus alte indicatii
despre continut. Pentru un fisier imagine bitmap, campul contine valoarea hexa 4D42 (in forma
lowbyte-highbyte rezultand caracterele ASCII BM (BitMap).
BfSize: dimensiunea necomprimata a fisierului in Bytes
BfOffBits: offsetul (deplasamentul) fata de inceputul fisierului, in Bytes (deci de la inceputul
structurii BITMAPFILEHEADER) pana la inceputul imaginii (bitmap propriu-zis). Se foloseste
pentru localizarea pozitiei imaginii si pentru calculul numarului de intrari ale paletei:
ncolors=(offBits-file_hdr_size-bitmap_hdr_size)/rgb_size.
BiSize: dimensiunea (in Bytes) a headerului bitmap, obtinuta deci ca un apel de functie
Sizeof(BITMAPINFOHEADER). Se folosesc pentru indicarea versiunii de format: 12 (veche
Win/OS/2), 40 (nou Win), 64 (nou OS/2), 12.64 (alt format nou).
BiWidth: latimea imaginii in pixeli.
BiPlanes: numarul de plane de culori din bitmap.
BiBitCount: numarul de biti per pixel (1,4,8,24). Este informatia care permite sa aflam cate culori
sunt folosite pentru reprezentarea imaginii arhivate:
nr_culori=2BiBitCount.
BiCompression: tipul de comprimare folosit de bitmap (pentru comprimare imagine in fisier) In
general este 0 (fara comprimare) pentru fisiere BMP.
Windows decodifica automat imaginea comprimata.
BjSizeImage: dimensiunea hartii de biti in octeti (imagine).
BiClrImportant: numarul de culori necesare pentru afisarea imaginii.
7.3. Modul vectorial
Imaginile vectoriale sunt stocate sub form de primitive grafice sau de curbe Bezier. Desenul este
considerat un vector. Fiecare obiect grafic este creat pornind de la o definire geometric a formelor
componente, crora le sunt alocate atribute (culoare, grosime .a.).
37
Aplicaiile grafice vectoriale creaz obiecte sau forme definite prin formule matematice, conducnd
la obiecte prezentate prin curbe mai netede dect n abordarea bitmap, n cazul n care se folosesc
efecte de scal. Spre deosebire de modul bitmap, un desen vectorial nu este legat de rezoluie,
adaptndu-se rezoluiei perifericului de ieire. n plus, stocheaz imagini n fiiere mai puin
voluminoase i le manevreaz mai uor dect modul bitmap datorit descrierii matematice a
imaginilor. Modul vectorial este folosit n aplicaii de design, arhitectur, reclam.
Spre deosebire de aplicaiile de desenare (paint programs), programele care utilizeaz imagini n
format vectorial se numesc aplicaii de trasare (draw programs). Informaiile comune fiierelor
grafice mod vectorial i bitmap sunt: rezoluia original, dimensiunea imaginii, indicaii despre
paleta de culori, parametrii algoritmului de comprimare (care reprezint n acelai timp obstacole n
efortul de standardizare a formatelor grafice).
Majoritatea sistemelor grafice sofisticate (inclusiv sisteme CAD i aplicaii de animaie) folosesc
grafica vectorial. n plus, multe tipuri de imprimante (spre exemplu imprimantele PostScript)
folosesc grafica vectorial n timpul procesrii. Caracterele (fonts) sunt reprezentate vectorial pentru
a putea fi reprezentate unitar fr s depind de dimensiune. Datorit soluiei de reprezentare, se mai
numesc i vector fonts, caractere scalabile, sau orientate obiect.
Principalele formate de fiiere vectoriale sunt comparate n tabelul 1-12.
PostScript: limbaj de descriere a paginii care descompune imaginea unei pagini prin coordonate
absolute, independente de caracterele fizice ale perifericului. Este un standard de imprimare prezent
pe diferite sisteme de operare (MS DOS/Windows, Mac, OS/2, UNIX) i o gam larg de
imprimante.
EPS (Encapsulated PostScript) definete formatul rezultat din combinarea codului PostScript ca o
resurs (Pict pentru Mac, Tiff pentru PC) corespunztoare descrierii imaginii de pe ecran. La
importul unui desen EPS n blocul imagine al unui software de punere n pagin, acesta este de fapt
resursa (Pict sau Tiff) care se afieaz pe ecran, permind vizualizarea i poziionarea precis pe
monitor. n momentul imprimrii se folosete fiierul PostScript. Unele programe creaz fiiere EPS
fr preview. n acest caz, cadrul destinat pentru recepia imaginii rmne vid la import, dar
rezultatul imprimrii este corect.
DCS (DeskTop Color Separation) este o extensie a fiierului EPS pentru schimbul unei imagini
pentru care s-a realizat deja separarea culorii (productor: Quark). Se compune din cinci fiiere: unul
pe baz de rezoluie Pict pentru plasarea n Xpress, i patru fiiere de rezoluie ridicat reprezentnd
patru culori de imprimat ce sunt trimise automat la imprimant n momentul imprimrii.
DXF (Drawing eXchange Format) este formatul de schimb creat de Autodesk n cadrul software-ului
AutoCad. A devenit standard prin generalizarea utilizrii.
CDR (CorelDRAW!) este formatul nativ de prelucrare i reprezentare vectorial creat de Corel
Corporation n cadrul software-ului CorelDRAW!
CGM (Computer Graphic MetaFile) reprezint formatul de fiier standard recunoscut de trei
organisme de normalizare/standardizare (ISO, ANSI, AFNOR) ce permite schimb de desene
vectoriale ntre aplicaii grafice. Este un format folosit n extensia pentru programele de desen
vectorial.
GEM (Graphics Environment Manager) este o interfa grafic utilizator dezvoltat de Digital
Research pentru PC-urile fabricate de firma Atari, ca i o interfa pentru unele programe DOS. Ca i
38
interfeele Macintosh i Microsoft Windows, GEM furnizeaz un mediu bazat pe ferestre pentru
aplicaiile n lucru. n cadrul sistemului grafic dezvoltat, GEM este i formatul fiierului grafic
vectorial de reprezentare a informaiei n mediul grafic GEM.
WMF (Windows MetaFile) este formatul compatibil CGM propriu aplicaiilor executate sub MS
Windows.
FORMAT . CDR . CGM . DXF EPS . GEM . WMF
DOMENIUL DE ilustraii schimburi schimburi de PAO ilustraii schimburi
APLICAIE de fiiere fiiere desen de fiiere
EXEMPLU 58 KB 31 KB 382 KB 907KB 36 KB 42 KB
COMPARATIV AL
MRIMII
FIIERELOR
PRIMITIVE DA DA DA DA DA DA
GRAFICE
ATRIBUTE DE DA DA DA DA DA DA
LINIE
CURBE BEZIER DA NU NU DA DA NU
IMAGINI BITMAP DA DA NU DA DA DA
OBIECTE 3D - NU DA NU NU NU
COTRI - NU DA NU NU NU
Tabelul 1-10. Principalele formate de fiiere vectoriale.
6.8. Formate standard de imagini
Imaginile grafice pot fi pstrate n fiiere cu format standard: PCX, BMP, TIFF, GIF, IMG i
altele. Fiierele ce conin imagini grafice au un antet (headerul) i zona de date grafice.
Salvarea unei imagini grafice intr-un fiier implica de regula utilizarea unei tehnici de
compresie a datelor citite din memoria ecran. Se reduce astfel dimensiunea fiierului rezultat.
Restaurarea unei imagini grafice dintr-un fiier presupune operaia de decompresie a datelor
i interpretarea lor n funcie de caracteristicile ecranului utilizat.
Exista trei versiuni de format PCX:
- versiunea 2.5 - pentru EGA/VGA modul 16 culori; utilizeaz paleta standard;
- versiunea 2.8 - pentru EGA/VGA modul 16 culori; conine informaii despre paleta, permind
selecia a 16 din 64 culori disponibile;
- versiunea 3.0 - pentru imagini VGA modul 256 culori; conine informaii de culoare, permind
definirea celor 256 culori;
39
Pentru crearea unui fiier .PCX n modul ce asigur 256 culori, se scaneaz ecranul la nivel
de pixel. Daca se utilizeaz unul din modurile grafice ce asigur 16 culori simultan, atunci se
scaneaz la nivel de linie ecran pentru fiecare din cele patru plane de culoare.
Header-ul fiierului PCX are 128 octei a cror semnificaie este prezentata n tabelul
urmtor:
Octet Semnificaie
0 Identificator = 0xA
1 Versiune: 0 = V2.5
2 = V2.8
3 = V2.8 cu paleta
5 = V3.0
2 Tehnica de codificare: 1 = RLE
3 Nr.de bii dintr-un plan de memorie necesari pentru 1 pixel:
1 = EGA/VGA modul 16 culori
2 = CGA modul 4 culori
8 = VGA modul 256 culori
4 11 Dimensiune fereastra imagine 4 ntregi (8 octei) ce
definesc colturile diametral opuse: xmin, ymin, xmax,
ymax;
12 13 Rezoluia pe orizontala a dispozitivului de afiare:
720 Hercules
640 - EGA, VGA 16 culori
320 - VGA 256, CGA
14 15 Rezoluia pe verticala a dispozitivului de afiare:
480 VGA
350 EGA
200 - VGA 256, CGA
348 Hercules
16 63 Harta de culori pentru registrele din paleta.
O culoare se specifica printr-un triplet RGB.
64 Rezervat (= 0)
65 Numr plane memorie ecran:
4 - pentru EGA/VGA mod 16 culori
1 - n rest
66 67 Numr de octei intr-un plan pentru o linie ecran.
Depinde de dimensiunea ferestrei, fiind ntotdeauna un
numr par.
68 69 Informaii despre paleta (de regula se ignora):
1 - color sau B&W
2 nuane de gri
70 127 Completare header pina la 128 octei cu 0x20.
40
La salvarea imaginii sunt necesari 2 bii ce specifica unul din cele patru nivele pentru fiecare
triplet RGB din cele 16 palete. Pentru adaptor VGA n modul 256 culori se poate citi coninutul celor
256 registre de culoare. Aceste informaii se scriu la sfritul fiierului - n ultimii 256 x 3 octei -
separai de zona de date grafice printr-un octet 0x0C.
Tehnica de compresie utilizata este RLE (Run Length Encoding). La salvarea imaginii VGA
16 culori, se citete cte o linie a imaginii din fiecare plan de memorie. Numrul de octei citii din
fiecare plan pentru o linie de imagine depinde de dimensiunea ferestrei.
7. Curbe de aproximare
Curbele de aproximare sunt curbe de forma libera, definite prin puncte. Polilinia avnd ca
vrfuri punctele ce definesc o curba aproximeaz forma curbei. De aceea, construirea unei curbe de
aproximare poate fi efectuata intr-o maniera iterativa, acionnd asupra punctelor, numite i puncte
de control. Curbele de aproximare sunt modelate prin ecuaii parametrice.
Astfel, un segment de curba parametrica cubica, n spaiul 2D, este definit prin sistemul de ecuaii:
1 0

0 1 2 2 3 3
0 1 2 2 3 3
u
,y a ,y a ,y a ,y a y(u)
,x a ,x a ,x a ,x a x(u)
u u u
u u u

+ + +
+ + +
Pentru reprezentarea unei curbe cubice n spaiul 3D se adaug ecuaia:
,z a ,z a ,z a ,z a z(u)
u u u 0 1 2 2 3 3
+ + +
Cei 12 coeficieni se numesc coeficienii algebrici ai curbei. Ei determina mrimea i forma
curbei precum i poziia sa n spaiu. Astfel, doua curbe cu aceeai forma au coeficieni algebrici
diferii daca ocupa poziii diferite n spaiu. Pentru simplificarea scrierii, se prefera notaia vectoriala:
1 0
0 1 2 2 3 3
+ + + u a u a u a u a p(u)
unde, a3, a2, a1, a0 sunt vectori de trei componente iar p(u) este vectorul de poziie al unui
punct (x(u),y(u),z(u)) de pe curba.
Forma algebrica nu este suficient de intuitiva. Ea nu permite controlul formei curbei,
proprietate care se dorete n proiectarea asistata de calculator. De aceea, n multe aplicaii se
folosete forma geometrica, n care apar explicit condiiile geometrice impuse curbei. n cazul
curbelor Bezier i B-spline, la care ne referim n aceasta tema, condiiile geometrice sunt punctele
care determina forma curbei.
7.1. Curbe Bezier
Curbele Bezier sunt curbe de aproximare. Ele au fost definite de matematicianul Bezier, care
a urmrit obinerea unei formulri matematice pentru curbe determinate prin mai multe puncte, uor
de folosit n proiectarea asistata de calculator. Astfel, un segment de curba Bezier este definit prin
ecuaia parametrica:
( ) ( ) 1 0 , *
0

u u n B P u p
n
i
i i
unde Pi sunt punctele de control iar
( )
( ) i n u u
i n i
n
n B
i i i

1 * *
! !
!
,
cu 0!=1.
Pentru n=3 (patru puncte de control) obinem ecuaia segmentului de curba Bezier cubica:
3 3 2 2 1 0
1 3 2 1 3 3 1 P u -u)P ( u P -u) u( P -u) ( p(u) + + +
sau
41
3 3 3 2 3 2 1 3 1 0 3 0
(u)*P B (u)*P B (u)*P B (u)*P B p(u)
, , , ,
+ + +
unde B
0,3
, B
1,3
, B
2,3
, B
3,3
sunt funciile de amestec pentru curbele Bezier cubice.
Proprieti ale curbelor Bezier
Curba i are extremitile n primul i n ultimul punct de control.
1. Tangentele n punctele extreme ale curbei sunt chiar primul i ultimul segment al poligonului de
control (Obs: se numete poligon de control polilinia care unete punctele de control).
2. Curba este cuprinsa n ntregime n figura convexa formata de punctele de control ("convex
hull").
Dezavantaje
4. Gradul polinomului prin care se reprezint curba creste odat cu numrul punctelor de control.
5. Nu poseda proprietatea de control local: deplasarea unui punct de control afecteaz toate punctele
de pe curba.
Trasarea curbelor definite parametric
Pentru trasarea unui segment de curba definit prin ecuaii parametrice se calculeaz diferite
puncte de pe curba folosind ecuaiile parametrice x(u), y(u), z(u), specifice fiecrui tip de curba,
pentru u
min
<= u <=u
max
. Funcia curba prezentata n continuare poate fi folosita pentru trasarea mai
multor tipuri de curbe plane. Astfel, pentru calculul punctului de pe curba corespunztor unei valori
particulare a variabilei u, n funcia curba se apeleaz o funcie specificata n lista de parametri.
Aceasta difer de la un tip de curba la altul.
Trasarea curbelor Bezier
Pentru trasarea unei curbe Bezier am definit funcia Bezier. Ea calculeaz punctul de pe curba
corespunztor unei valori u a variabilei parametrice, folosind ecuaiile parametrice x(u), y(u), care
pentru o curba Bezier definita prin 4 puncte de control (n=3) sunt:
3 3 3 2 3 2 1 3 1 0 3 0
3 3 3 2 3 2 1 3 1 0 3 0
3 3 3 2 3 2 1 3 1 0 3 0
(u)*z B (u)*z B (u)*z B (u)*z B z(u)
(u)*y B (u)*y B (u)*y B (u)*y B y(u)
(u)*x B (u)*x B (u)*x B (u)*x B x(u)
, , , ,
, , , ,
, , , ,
+ + +
+ + +
+ + +
Pentru reducerea timpului de calcul al punctelor de pe curba, mai ales atunci cnd n este
mare, se poate folosi relaia de recurenta:
( )
u
u
i
i n
u n B n B
i i i


1
*
1
* , ,
1
Funcia Bezier prezentata mai jos poate fi folosita pentru calculul punctelor de pe o curba
Bezier, oricare ar fi numrul de puncte de control (n>=3). Punctele de control sunt memorate n
vectorul P (deci, datorita declaraiei sale, n<=20). tiind ca p(0)=Pt0s i p(1)=Ptns, pentru a evita
calculele inutile am tratat separat aceste cazuri. Punctele de control se considera a fi definite n
spaiul ecran.
7.2. Curbe B-spline
Acestea sunt, ca i curbele Bezier, curbe de aproximare definite prin puncte de control, dar spre
deosebire de curbele Bezier, ele sunt descrise prin funcii polinomiale definite pe poriuni, ceea ce le
42
confer proprietatea de control local. Segmentele de curba B-spline sunt descrise prin polinoame de
grad doi sau trei, gradul fiind independent de numrul punctelor de control.
O curba B-spline uniforma periodica de grad 2, data prin n+1 puncte de control este descrisa de
urmtoarea ecuaie matriciala:
( ) 1 1
1
1
0 . . . . . . . 1 . . . . . . . . 1
0 . . . . . . . . 2 . . . . 2
1 . . . . . . 2 . . . . . . 1
1 5 . 0
2

,
`

.
|
+

,
`

.
|

n i
P
P
P
s u t u u p
i
i
i
i

Forma similara pentru curbele B-spline uniforme periodice de grad 3 este:
( ) 1 0 , 2 1
2
1
1
0 . . . 1 . . . . . . . 4 . . . . . . 1
0 . . . 3 . . . . . . 0 . . . 3
0 . . . 3 . . . . . . 6 . . . 3
1 . . . 3 . . . 3 . . . . 1
1
6
1
2 3
<

,
`

.
|

,
`

.
|


u n i
P
P
P
P
s u u t u u p
i
i
i
i
i
Proprieti ale curbelor B-spline
4. Puncte de control multiple. O curba B-spline de grad m trece ntotdeauna printr-un punct de
control de multiplicitate m. Deci, se poate fora trecerea unei curbe B-spline printr-un punct de
control introducnd punctul respectiv n vectorul punctelor de control pe mai multe poziii
succesive.
5. Puncte de control coliniare. Daca m+1 puncte de control succesive sunt situate pe o dreapta,
atunci curba B-spline de grad m este situata parial pe dreapta respectiva. Astfel, daca punctele
Pi-1, Pi, Pi+1 sunt coliniare, segmentul pi de curba B-spline de grad 2 se confunda parial cu
segmentul Pi-1-Pi.
6. Curbe nchise. Pentru a obine o curba B-spline de grad m nchis este suficient ca primele m
puncte de control sa fie identice cu ultimele m.
7. Proprietatea de "nchidere" convexa (convex hull) Orice curba B-spline este complet inclusa n
poligonul convex format prin unirea punctelor de control.
8. Invarianta afina Pentru a transforma o curba B-spline este suficient sa se aplice transformarea
(afina) punctelor de control i apoi sa se regenereze curba. Aceasta proprietate o au i curbele
Bezier.
Trasarea curbelor B-spline
Se poate trasa o curba B-spline apelnd funcia curba pentru fiecare segment de curba. n acest scop
trebuie sa definim o funcie care ntoarce punctul de pe curba corespunztor numrului segmentului
de curba (reprezentat n programul de mai jos prin variabila globala i) i valorii variabilei u.
8. TRANSFORMRI GEOMETRICE 2D
43
Introducere
Operaiuni de transformri geometrice snt frecvent utilizate n sinteza imaginilor pentru
reprezentarea lor n forma necesar (scar, poziie .a.). Transformarea geometric a imaginii (TGI)
const n transformarea coordonatelor ale fiecrui pixel al imaginii iniiale. n mod general, TGI se
descrie ca:
P(x,y) P(x,y),
unde x F
1
(x,y), y F
2
(x,y).
8.1. Transformri geometrice elementare
8.1.1. Translaia
Translaia este transformarea prin care un obiect este deplasat din poziia sa, cu o distan dat,
dup o direcie dat. Matematic, translaia este descris n modul urmtor:
x =x+t
x
y =y+t
y

unde t
x
, t
y
parametrii de translaie.
8.1.2. Scalare
Scalare este transformarea prin care un obiect este mrit sau micorat. Transformarea dat este
specificat prin dou numere, numite factorul de scalare pe axa x i factorul de scalare pe axa y. Un
factor de scalare supraunitar specific o mrire, iar unul subunitar o micorare.
Vor fi examinate dou tipuri de operaiuni de scalare: scalare fa de origine i scalare fa de un
punct oarecare din plan.
Scalare fa de origine
Scalare imaginii P(x,y) fa de origine se descrie n mod urmtor:
x =x*s
x
y =y*s
y

unde s
x
, s
y
sunt factori de scalare.
Dac s
x
=s
y
scalare este uniform; ea nu produce deformarea obiectului transformat. n caz contrar
scalare este numit neuniform.
44
Scalare fa de un punct oarecare din plan
Fie F(x
f
,y
f
) este un punct din plan fa de care este scalat imaginea P(x,y). Punctul F este numit
punctul fix al transformrii deoarece nu se modific prin aplicarea transformrii. Scalarea funciei
P(x,y) fa de F(x
f
,y
f
) cu factorii s
x
, s
y
se descrie ca:
x = (x- x
f
)s
x
+ x
f

y = (y y
f
)s
y
+ y
f

n caz dac x
f
=0 i y
f
=0 se obine formula scalrii fa de origine.
8.1.3. Rotaia
Rotaia fa de origine
Aceast transformare este specificat printr-un unghi; dac unghiul este pozitiv, atunci rotaia este
efectuat n sensul trigonometric, altfel n sensul micrii acelor de ceas. Fie P(x,y) un punct i
u unghiul de rotaie. Calculul punctului P(x ,y ), obinut prin rotaia punctului P(x,y) se
efectueaz n mod urmtor:
x =x*cos(u)-y*sin(u)
y =x*sin(u)+y*cos(u)
Rotaia fa de un punct oarecare din plan
Fie P(x,y) este un punct din plan care se rotete n jurul unui punct F(x
f
,y
f
). Coordonatele
punctului P(x ,y ), rezultat din rotaia punctului P(x,y) n jurul punctului F(x
f
,y
f
) cu un unghi u
vor fi urmtoarele:
x = (x-x
f
)cos(u)-(yy
f
)sin(u)+x
f
y = (x-x
f
)sin(u)-(yy
f
)cos(u)+y
f
8.2. Compunerea transformrilor
n cele mai multe cazuri, transformarea care trebuie s fie aplicat unui obiect la un moment dat este
compus din mai multe transformri elementare. Se poate obine formula oricrei transformri
compuse pe baza expresiilor matriciale ale transformrilor elementare. Astfel, rotaia fa de
origine a unui punct P(x,y) se poate exprima matricial astfel:
|cos(u) sin(u)|
[x y] = [x y] |-sin(u) cos(u)|
O scalare fa de origine se exprim astfel:
45
|s
x
0 |
[x y] = [x y] |0 s
y
|
O scalare fa de origine urmat de o rotaie fa de origine se exprim astfel:
|sx 0 ||cos(u) sin(u)|
[x y] = [x y] |0 sy||sin(u) cos(u)|
Din nmulirea celor dou matrici rezult:
|s
x
*cos(u) s
x
*sin(u)|
[SR]=|s
y
*sin(u) s
y
*cos(u)|
Deci, formula transformrii compuse este:
x =x*s
x
*cos(u)-y*s
y
*sin(u)
y =x*s
x
*sin(u)+y*s
y
*cos(u)
8.3. Trasnsformri n coordonate omogene
Transformrile 2D analizate se exprim matricial, n coordonate carteziene, prin matrici de
dou linii i dou coloane. Nu exist o asemenea matrice pentru translaie. Din acest motiv,
transformrile grafice se exprim n coordonate omogene. Un punct din plan, (x y), se reprezint n
coordonate omogene printr-un vector [x
a
y
a
a], unde x
a
=x*a i y
a
=y*a, iar a este un numr real
oarecare.
Cele trei transformri elementare examinate mai nainte se exprim n coordonate omogene astfel:
Translaia
|1 0 0 |
[x y 1] = [x y 1] |0 1 0 |
|t
x
t
y
1 |
Scalarea fa de origine
|s
x
0 0 |
[x y 1] = [x y 1] |0 s
y
0 |
|0 0 1 |
Rotaia fa de origine
|cos(u) sin(u) 0 |
[x y 1] = [x y 1] |-sin(u) cos(u) 0 |
| 0 0 1|
46
8.4. Transformri geometrice inverse
Fiecare dintre transformrile geometrice elementare are o invers, adic o transformare care
exprim operaia opus aceleia corespunztoare transformrii.
Fie: [T(t
x
,t
y
)] matricea translaiei, [R(u)] matricea rotaiei fa de origine cu unghiul u i [S(s
x
,s
y
)]
matricea scalarii fa de origine cu factorii de scalare s
x
, s
y
.
Transformri geometrice inverse snt:
[T(t
x
,t
y
)]

1
= [T(-t
x
,-t
y
)]
[S(s
x
,s
y
)]

1
= [S(1/s
x
,1/s
y
)]
[R(u)]

1
= [R(-u)].
8.5. Transformri geometrice fa de un punct oarecare din plan
Expresiile matematice ale scalrii i rotaiei fa de un punct oarecare din plan se pot obine prin
compunerea urmtoarelor transformri:
1) Translaia prin care punctul fix al transformrii ajunge n origine;
2) Scalarea/rotaia fa de origine;
3) Translaia invers celei de la punctul 1.
Fie F(x
f
,y
f
) este un punct fix al transformrii, u unghiul de rotaie i s
x
, s
y
factorii de scalare.
Compunerea celor trei transformri conform etapizrii de mai sus se exprim astfel:
Scalarea fa de punctul F
[x y 1] = [x y 1] [T ][ S][ T

1
]

|1 0 0||s
x
0 0||1 0 0|
= [x y 1] |0 1 0||0 s
y
0||0 1 0|
|-x
f
-y
f
1||0 0 1||x
f
y
f
1|
Rotaia fa de punctul F
[x y 1] = [x y 1] [T ][R][T

1
]
|1 0 0||cos(u) sin(u) 0||1 0 0|
= [x y 1] |0 1 0||-sin(u) cos(u) 0||0 1 0|
|-x
f
-y
f
1|| 0 0 1||x
f
y
f
1|
8.6. Transformare de oglindire
Transformarea dat fa de axa x se descrie n mod urmtor:
47
x = x
y =-y
sau
|1 0 0|
[x y 1] = [x y 1]|0 -1 0|
|0 0 1|
Fa de axa y:
x =-x
y = y

sau
|-1 0 0|
[x y 1] = [x y 1]|0 1 0|
|0 0 1|
Fa de origine:
x =-x
y =-y
sau
|-1 0 0|
[x y 1] = [x y 1]|0 -1 0|
|0 0 1|
Fa de dreapta x=y:
x =y
y =x
sau
|0 1 0|
[x y 1] = [x y 1]|1 0 0|
|0 0 1|
Oglindirea fa de o dreapt oarecare
Se poate exprima ca o transformare compus din urmtoarele transformri elementare:
1) O translaie, astfel nct dreapta s treac prin origine;
48
2) O rotaie fa de origine astfel nct dreapta s se suprapun peste una dintre axele principale;
3) Oglindirea fa de axa principal peste care a fost suprapus dreapta;
4) Rotaia invers celei de la punctul 2;
5) Translaia invers celei de la punctul 1.
n notaie matricial, secvena de mai sus se exprim astfel:
[M] = [T][R][O][R]

1
[T]

1
unde [T] este matricea de translaie;
[R] este matricea de rotaie fa de origine;
[O] este matricea de oglindire fa de axa principal.
8.7. Transformare de forfecare a imaginilor
Transformare de tipul dat reprezint o transformare care produce distorsionarea obiectului
transformat. De exemplu, un ptrat se transform ntrun paralelogram. Transformarea se
specific prin dou numere F
x
, F
y
reale, numite factorii de forfecare pe axa x, respectiv factorul de
forfecare pe axa y.
Forfecarea pe axa x:
x = x + F
x
*y
y = y
sau
|1 0 0|
[x y 1] = [x y 1]|F
x
1 0|
|0 0 1|
Forfecarea pe axa y:
x = x
y = y + F
y
*x

sau
|1 F
y
0|
[x y 1] = [x y 1]|0 1 0|
|0 0 1|
Cazul general:
x = x + F
x
*y
y = y + F
y
*x
49
sau
|1 F
y
0|
[x y 1] = [x y 1]|F
x
1 0|
|0 0 1|
8.8. Transformri ale sistemului de coordonate
Considerm dou sisteme de coordonate n plan. Unul cu originea n O i axele x,y, cellalt cu originea
n O i axele x ,y . Fiecrui punct din plan, P, i corespund dou reprezentri: (x,y) - n sistemul xOy i
(x ,y ) - n sistemul x O y . Sistemul x O y se poate obine prin transformarea sistemului xOy;
transformarea se poate defini prin relaia dintre cele dou reprezentri ale aceluiai punct P, (x,y) i
(x ,y ).
Translaia
Dac sistemul x O y s-a obinut prin translaia sistemului xOy, atunci relaia dintre coordonatele lui P n
cele dou sisteme de coordonate este :
x = x - t
x
y = y - t
y

Rotaia fa de origine
Fie sistemul de coordonate x O y , obinut prin rotaia axelor sistemului xOy cu unghiul u.
Punctul P, va avea n sistemul x O y coordonatele:
x = x*cos(u) + y*sin(u)
y = -x*sin(u) + y*cos(u)
Scalare fa de origine
Presupunem c formm un nou sistem de coordonate cu aceeai origine i orientare a axelor, dar
caracterizat printr-o alt unitate de msur de-a lungul axelor x si y. Dac noile uniti de msur se obin
prin scalarea vechilor uniti cu factorii sx, respectiv sy, atunci relaia dintre coordonatele (x,y) i (x,y) ale
aceluiai punct n cele dou sisteme este:
x =x/s
x
y =y/s
y

Oglindire fa de o ax
Dac sistemul x O y s-a obinut prin oglindirea sistemului xOy fa de axa Ox sau axa Oy, atunci
relaia dintre coordonatele aceluiai punct n cele dou sisteme de coordonate este:
50
x = x
y =-y, n cazul oglindirii fa de axa x,
x =-x
y = y, n cazul oglindirii fa de axa y x
Se observ c aceast transformare schimb orientarea axelor sistemului de coordonate.

9. Transformri grafice tridimensionale
Introducere
Transformarea geometric 3D a imaginii se descrie ca:
P(x,y,z) P(x,y,z),
unde x F
1
(x,y,z), y F
2
(x,y,z), z F
3
(x,y,z)
Transformrile geometrice tridimensionale cuprind translaia, scalare, rotaia, oglindirea forfecarea
i proiecia obiectelor 3D.
n coordonate omogene, un punct din spaiu (x, y, z) se reprezint prin vectorul [ x
w
y
w
z
w
w ],
unde w este parametru real, iar x = x
w
/w, y = y
w
/w, z

= z
w
/w, w0.
9. 1. Matrici de transformare
Matricea de transformare generalizat 4x4 pentru coordonate omogene 3D are urmtoarea form:
| a b c p |
| M| | d e f q |
| l m n s |
Aceast matrice poate fi mprit n patru, astfel:
| | 3 |
| 3x3 | x |
| | 1 |
|
| 1x3 | 1x1 |
unde:
51
- matricea 3x3 include transformri de scalare local, forfecare, oglindire i rotaie;
- matricea 1x3 reprezint transformarea de translaie;
- matricea 3x1 reprezint transformarea de proiectare perspectiv;
- matricea 1x1 reprezint transformarea de scalare general
.
Transformarea geometric 3D a imaginii n forma matricial se descrie n mod urmtor:
[xyz1] [x y z 1][ M]
9. 2. Translaia

Dac (x, y, z) sunt coordonatele unui punct P din spaiu, prin translaie el este dus n punctul de coordonate (x', y',
z'), unde:
x' = x + t
x
y y + t
y
z' = z + t
z
sau, n form matriceal:
[xy z 1] [x y z 1] [T]
Matricea de translaie 3D este:
| 1 0 0 0 |
| T| | 0 1 0 0 |
| 0 0 1 0 |
| t
x
t
y
t
z
1 |
9. 3. Scalare
Dac (x, y, z) sunt coordonatele unui punct P din spaiu, prin scalare fa de origine, el este transformat
n punctul de coordonate (x

, y', z'), unde:


x ' s
x
* x
y s
y
*

y
z s
z
* z
sau, n form matriceal:
[ x y z 1] = [x y z 1][S]
Matricea de scalare local este dat de relaia:
| s
x
0 0 0 |
| S| | 0 s
y
0 0 |
| 0 0 s
z
0 |
| 0 0 0 1 |
52
Scalare global se obine folosind urmtoarea matrice:
| 1 0 0 0 |
| S
g
| | 0 1 0 0 |
| 0 0 1 0 |
| 0 0 0 s |

53
9. 4. Rotaia n jurul unei axe a sistemului de coordonate
n cazul rotaiei n jurul axei x cu unghiul a matricea de transformare se descrie n mod urmtor:
[ ]
]
]
]
]
]
]

1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1


x
R
ntr-o manier asemntoare matricea de rotaie n jurul axei y cu unghiul este:
[ ]
]
]
]
]
]
]

1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos


y
R
Matricea de rotaie n jurul axei z cu unghiul este:
[ ]
]
]
]
]
]
]

1 0 0 0
0 1 0 0
0 0 cos sin
0 0 sin cos


z
R
9. 5. Transformri inverse
Toate matricele de transformare au inverse:
[T(t
x
,

t
y
,

t
z
) ]
-1
= [T(-t
x
, -t
y
, -t
z
)]
[S(s
x
, s
y
, s
z
) ]
-1
= [S( 1/s
x
, 1/s
y
, 1/s
z
)]
[R
x
( ) ]
-1
= [R
x
(- ) ]
[R
y
( ) ]
-1
= [R
y
(- )]
[R
z
( ) ]
-1
= [R
z
(- ) ]
6. Forfecarea
Dac (x, y, z) sunt coordonatele unui punct P din spaiu, prin forfecare el este transformat n punctul
de coordonate (x', y', z'), unde:
x = x + y*d + z*g
y = x*b + y + z * i
z = x * c + y * f + z
sau, n form matriceal:
[ x y' z 1'] = [ x y z 1] [F]
Matricea de forfecare este:
[ ]
]
]
]
]
]
]

1 0 0 0
0 1
0 1
0 1
i g
f d
c b
F
9. 7. Oglindirea fa de un pian al sistemului de coordonate
n cazul oglindirii faa de pianul xy, se inverseaz doar coordonata z, coordonatele x i y
rmnnd neschimbate. Astfel, matricea transformrii de oglindire fa de planul xy este:
Matricea oglindirii fa de planul yz este:
Matricea oglindirii fa de planul xz este:
9. 8. Compunerea transformrilor tridimensionale
Matricea corespunztoare transformrii compuse se obine prin nmulirea matricelor transformrilor
elementare. Deoarece nmulirea matricelor nu este comutativ, este important ordinea n care se aplic aceste
transformri. Matricea de transformare cea mai apropiat vectorului linie corespunde primei transformri care
se aplic n timp ce matricea de transformare cea mai deprtat este ultima care se aplic. Matematic aceasta
se exprim prin:
[V] [M] =[V] [M1] [M2] [M3]....[Mn]
unde [ Mi ] poate i orice matrice de transformare elementar: scalare, forfecare, translaie, rotire, oglindire,
proiecie.
55
[ ]
]
]
]
]
]
]

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
xy
O
[ ]
]
]
]
]
]

1 0 0 0
0 1 0 0
0 0
-1
0
0 0 0 1
yz
O
[ ]
]
]
]
]
]
]

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
yz
O
9. 9. Rotaia n jurul unei axe oarecare
Axa oarecare de rotaie (d) se specific printr-un punct A(x
o
,y
o
,z
o
) i un vector direcie C=c
x
i+c
y
j+c
z
k,
unde c
x
, c
y
, c
z
sunt cosinuii directori. Transformarea de rotaie cu un unghi n jurul axei (d) se
compune din:
1. Translaie, altfel nct punctul A s ajung n originea sistemului de coordonate.
2. Alinierea vectorului C cu una din axele sistemului de coordonate.
3. Rotaia cu unghiul n jurul axei la care s-a fcut alinierea.
4. Inversa transformrii de la pasul (2)
5. Translaia invers n punctul 1.
9. 10. Oglindirea fa de un plan oarecare
Considerm planul de oglindire specificat prinr-un punct, P(X
0
,Y
0
,Z
0
) i vectorul normal la plan, N. O
procedura de obinere a transformrii de oglindire fa de planul dat este urmtoarea:
1.Translaie astfel nct punctul P(X
0
,Y
0
,Z
0
) din plan s ajung n originea sistemului de coordonate.
2.Alinierea vectorului normal la plan, N, la axa z pozitiv. Planul de oglindire devine astfel planul z=0.
3.Oglindirea fa de planul z=0.
4.Transformarea invers alinierii de la pasul (2).
5.Translaia invers celei de la pasul (1).
Matricea transformrii de oglindire fa de un plan oarecare se compune din produsul urmtoarelor
matrice:
[M] = [T] [A
N, Z
] [O
z
] [A
N,
z]
-1
[T]
-1

unde
[ T ] - reprezint matricea de translaie;
[ A
N, z
] - reprezint matricea de aliniere a vectorului normal N cu axa z pozitiv;
[ O
z
] - reprezint matricea de oglindire fa de planul z=0;
[ A
N, Z
]

1
- reprezint matricea de aliniere invers;
[T]
-1
- reprezint translaia invers.
10. Vizualizarea scenelor
10.1.Transformarea de vizualizare 2D
Adesea, desenele produse cu ajutorul calculatorului sunt descrise ntr-un sistem de coordonate
diferit de acela la care sunt raportate pe suprafaa de afiare. De exemplu, graficul unei funcii, planul
unei case, desenul unei piese, etc. Vom numi sistemul de coordonate logice ( sau sistemul de
coordonate universale sau sistemul de coordonate utilizator), sistemul n care sunt descrise desenele
i sistemul de coordonate fizice,
(sau sistemul de coordonate dispozitiv) sistemul ataat suprafeei de afiare. Unitile de msur ale
sistemului de coordonate logice difer de acelea ale sistemului de coordonate fizice. Ele pot reprezenta
timpul, temperatura, distana, etc.
56
S considerm graficul funciei sinus. Pentru x cuprins ntre 0 i 6.28 y ia valori ntre -1 i +1.
Aadar, coordonatele (x,y) ale punctelor de pe grafic nu pot fi transmise direct funciilor de afiare ale
sistemului grafic utilizat, care opereaz n spaiul dispozitiv, cum ar fi moveto, lineto i altele din
bibliotecile Turbo C, BorlandC sau Turbo Pascal . Asupra lor trebuie s fie efectuat transormarea de
vizualizare
2D. Multe sisteme grafice permit definirea desenelor ntr-un sistem de coordonate logice, deci asigur
efectuarea transformrii de vizualizare 2D asupra coordonatelor. Astfel, funciile de afiare ale unui
sistem grafic GKS sau PHIGS opereaz n sistemul coordonatelor logice (numit world coordinate
system n terminologia standardelor respective). Deasemenea,
funciile modulului GDI (Graphical Device Interface) al sistemului Windows, permit definirea desenelor
n mai multe tipuri de sisteme de coordonate logice, asigurnd transformarea automat a coordonatelor
n sistemul coordonatelor fizice. Chiar i lucrnd cu astfel de sisteme, este necesar pentru programator s
neleag n ce const transformarea de vizualizare 2D.
Transformarea de vizualizare 2D este deci o aplicaie dintr-un sistem de coordonate n altul, care
trebuie s pun n coresponden fiecrui punct din descrierea unui desen un punct al suprafeei de
afiare. Mulimea punctelor adresabile ale suprafeei de afiare este finit, n timp ce mulimea punctelor
spaiului 2D n care este definit desenul este infinit. Pentru a fi posibil formularea matematic a
transformrii de vizualizare
2D este necesar s se limiteze mulimea punctelor spaiului logic, care se pun n coresponden
punctelor suprafeei de afiare. n acest scop se specific un dreptunghi cu laturile paralele cu axele
sistemului de coordonate logice, numit fereastr. Fiecrui punct din fereastr i se pune n coresponden
prin transformarea de vizualizare 2D un punct al suprafeei de afiare sau al unei zone dreptunghiulare
din suprafaa de afiare, numit poart de afiare sau pe scurt poart. Deaceea, transformarea de
vizualizare 2D se mai numete i transformarea fereastr-poart. Considerm pentru nceput o
aceeai0 orientare a axelor celor dou sisteme de coordonate. Fie F(xf,yf) un punct din fereastr i
P(xp,yp) punctul corespunztor lui n poart. Transformarea fereastr- poart este definit astfel nct
poziia relativ a punctului P n poart s fie aceeai cu poziia relativ a punctului F n fereastr.
Condiia se formuleaz matematic astfel:
xp-xpmin xf-xfmin
----------- = ------------ (2.18.)
xpmax-xpmin xfmax-xfmin
yp-ypmin yf-yfmin
----------- = ------------ (2.19.)
ypmax-ypmin yfmax-yfmin
unde (xfmin,yfmin), (xfmax,yfmax), (xpmin,ypmin) i (xpmax,ypmax) reprezint colurile de xminim-
yminim i xmaxim-ymaxim ale ferestrei, respectiv ale porii (figura 2.11.).
Figura 2.11.
Notm cu:
xpmax-xpmin ypmax-ypmin
sx = ----------- sy = -----------
xfmax-xfmin yfmax-yfmin
57
i tx = xpmin - sx*xfmin ty = ypmin - sy*yfmin
Din (2.18. i 2.19.) rezult:
xp = xf*sx + tx
yp = yf*sy + ty (2.20.)
care reprezint formularea matematic a transformrii fereastr-poart. Numerele sx i sy constituie
factorii de scalare ai transformrii iar tx i ty componentele vectorului de translaie. Aceast formulare a
transformrii fereastr-poart corespunde unei transformri geometrice compuse ce se aplic punctului F
pentru a obine punctul P. Transformarea poate fi formulat i ca o transformare a sistemului de
coordonate logice prin care se obine sistemul de coordonate fizice. Transformarea fereastr-poart
poate fi definit i ca transformarea care aplic dreptunghiul fereastr n dreptunghiul poart. Folosindu-
ne de aceast ultim interpretare s examinm cteva cazuri particulare, din care vom desprinde unele
caracteristici i utilizri ale transformrii de vizualizare 2D.
Fie fereastra din figura 2.12.a., cu xfmim=0, yfmin=0, xfmax=1, yfmax=1 i poarta avnd
xpmin=0, ypmin=0, xpmax=400, ypmax=200. Rezult: sx=400/1=400; sy=200/1=200; tx=0-sx*0=0;
ty=0-sy*0=0. Scalarea pe axa ox fiind de dou ori mai mare dect aceea pe axa oy, orice desen definit n
fereastr va fi deformat (lit). Dac acest efect este nedorit, atunci trebuie ales ca factor de scalare al
transformrii s=sx=sy=min(sx,sy). Procednd n acest fel n exemplul ales, vom constata c desenul din
fereastr este afiat n jumtatea stng a porii (figura 2.12.b). Pentru ca desenul s apar centrat n
poart este necesar s se efectueze o translaie suplimentar, egal cu 100 n cazul de fa (figura
2.12.c.).
----------------------------------------
-----------------------------------------
Figura 2.12.
n general, translaia suplimentar se calculeaz astfel:
tsx = (xpmax-xpmin-sx*(xfmax-xfmin))/2
tsy = (ypmax-ypmin-sy*(yfmax-yfmin))/2
adic, diferena dintre latura porii i latura ferestrei scalat, mprit la doi. Dac xfmin # 0 sau yfim #
0 i xpmin=0, ypmin=0, atunci tx=-sx*xfmin, ty=-sy*yfmin. Invers, dac xfmin=yfmin=0, iar xpmin #
0 sau ypmin # 0 atunci tx=xpmin, ty=ypmin.
Fie funcia fereastra, pe care o putem apela pentru a specifica coordonatele ferestrei i funcia
poarta, pe care o vom apela pentru a specifica coordonatele porii de afiare. Atunci, o secven de
forma:
fereastra(F1);
poarta(P1);
execut_desen;
terge_ecran ;
poarta(P2);
execut_desen;
terge_ecran;
poarta(P3);
execut_desen;
...............
58
va avea ca efect afiarea unui desen din ce n ce mai mare dac
P1 < P2 < P3 , respectiv din ce n ce mai mic dac P1 > P2 > P3.
10.2. Decuparea 2D
Efectul de mrire sau de micorare se poate obine i prin modificarea ferestrei. Dac fereastra
este mai mic dect desenul, atunci elementele desenului care ies din fereastr nu trebuie s apar n
poart. Operaia de ndeprtare a elementelor unui desen, care nu sunt coninute n fereastr se numete
decupare. Ea este efectuat, n general, de sistemele grafice care permit definirea desenelor ntr-un
sistem de coordonate
logice.
S vedem acum, concret, ce transformare trebuie s aplicm punctelor dintr-un desen definit
ntr-un sistem de coordonate logice, nainte de a le transmite funciilor de afiare din biblioteca grafic a
sistemului Borland C++ pentru DOS. Dup cum se tie, ecranul este adresat ntr-un sistem de
coordonate cu originea n colul stnga-sus, sensul cresctor al axei x fiind spre dreapta, iar al axei y n
jos. Aplicnd asupra coordonatelor formulele (2.20.), desenul definit n fereastr va fi afiat
rsturnat. Deaceea, calculul coordonatei y se modific astfel:
yp = ypmin+ypmax-(yf*sy+ty)
Pentru aceia care au utilizat biblioteca grafic a unuia dintre Turbo Pascal, Turbo C sau Borland C++,
este cunoscut funcia setviewport, apelat astfel:
setviewport(xpmin,ypmin,xpmax,ypmax,dec);
unde primii patru parametri sunt unui dreptunghi din spaiul ecran iar ultimul parametru poate avea
valoarea 1 sau zero, indicndu-se c se dorete (1) nu se dorete (0) decuparea elementelor grafice
definite n continuare n program, la marginile dreptunghiului respectiv. Putem s ne folosim de aceast
funcie pentru a aduga la transformarea fereastr-poart operaia de decupare. Aceasta impune ns o
modificare a formulelor transformrii, deoarece dup apelul funciei setviewport originea sistemului de
coordonate al ecranului este considerat a fi punctul (xpmin,ypmin). n consecin, pentru transformarea
fereastr-poart nsoit de decupare la marginile porii se va apela funcia setviewport ca mai sus, apoi
se vor calcula coordonatele n spaiul ecran astfel:
xp = xf*sx + tx - xpmin
yp = ypmax + ypmin- (yf*sy + ty) - ypmin
unde
tx = xpmin - sx*xfmin + tsx
ty = ypmin - sy*yfmin + tsy
sau,
xp = xf*sx + txd
yp = ypmax - (yf*sy +tyd)
unde
txd = -sx*xfmin + tsx
tyd = ypmin - sx*yfmin + tsy
Se pot defini cteva subprograme utilizabile n orice program scris n limbajul C sau n limbajul
Pascal, pentru efectuarea tansformrii fereastr-poart. Pentru evitarea recompilrii lor odat cu
59
programul C n care sunt apelate, subprogramele vor fi grupate ntr-un fiier separat ce se va include n
fisierul proiect(.PRJ) al programului; astfel, ele vor
fi compilate o singur dat. n cazul implementrii n limbajul Pascal, ele vor constitui o unitate (unit);
este suficient apoi s se declare utilizarea unitii (uses nume_unitate) n programul care le apeleaz.
Pachetul ar trebui s conin cel puin urmtoarele subprograme:
-fereastra, prin care se transmit coordonatele ferestrei;
-poarta, prin care se transmit coordonatele porii;
-tiptran, prin care programatorul va specifica dac dorete ca transformarea s nu produc deformarea
desenului definit n fereastr (scalare uniform);
-Xdisp i Ydisp care efectueaz transformarea fereastr-poart asupra punctelor din descrierea
desenului;
-Vect_disp, care primete coordonatele logice ale capetelor unui vector i calculeaz lungimea
vectorului pe suprafaa de afiare;
-decupare, prin care programatorul poate specifica dac dorete ca transformarea s fie nsoit de
decupare.
Prezentm n ontinuare pachetul de subprograme implementat n limbajul C. El conine trei
funcii suplimentare:
-init_mod_grafic, care iniializeaz modul grafic i stabilete ca poart de afiare curent ntregul ecran.
Aceast funcie este necesar pentru definirea valorilor iniiale ale variabilor folosite n fiierul
Vizual.C. De aceea, apelul su n programul care folosete funciile din acest fiier este obligatorie;
-cadru_fer, care traseaz marginea ferestrei;
-cadru_poarta, care traseaz cadrul porii;
Exemplificm utilizarea funciilor din fiierul "Vizual.C" n programul urmtor, care afieaz graficele
mai multor funcii, n patru zone distincte ale ecranului. Pentru fiecare grafic este afiat sub form de
text expresia matematic a funciei (figura 2.13.). Textul este centrat pe axa x ,sub dreptunghiul de
ncadrare al graficului. n acest scop s-a folosit funcia settextjustfy.
--------------------------------------
--------------------------------------
Figura 2.13.
Impunnd scalare uniform, factorii de scalare pe ambele axe vor fi egali cu 1 i deaceea, toate cercurile
fiind incluse n fereastr vor fi incluse i n poart (figura 2.14.b.).
---------------------------------
---------------------------------
Figura 2.14.
10.4. Proiecii
60
Proieciile sunt aplicaii care transforma puncte dintr-un sistem de coordonate n-dimensional
intr-un sistem k-dimensional, unde k<n. Proiecia unui obiect 3D intr-un plan de proiecie 2D este
determinata de mulimea punctelor de intersecie ale planului cu dreptele care pornesc dintr-un punct,
numit centru de proiecie, fiecare trecnd printr-un punct ale obiectului. Aceste drepte se numesc
proiectori.
n funcie de poziia centrului de proiecie, proieciile se clasifica n:
- proiecii perspectiva - centrul de proiecie este la distanta finita de planul de proiecie.
- proiecii paralele - centrul de proiecie este la infinit.
Proiectorii sunt linii paralele care trec prin punctele ce definesc obiectul 3D. Direcia
proiectorilor se numete direcia de proiecie.
Proiecia perspectiva ofer o imagine plana a scenei 3D asemntoare cu imaginea obinut cu
ajutorul unui aparat de fotografiat. Se caracterizeaz prin:
- efectul de micorare a obiectului proiectat, proporional cu distanta de la obiect la centrul de
proiecie. Mrimea proieciei unui obiect este invers proporional cu distanta de la obiect la
centrul de proiecie.
- nu pstreaz proprietatea de paralelism pentru liniile care nu sunt paralele cu planul de
proiecie.
Proiecia unui set de linii paralele care nu sunt paralele cu planul de proiecie este un set de linii
convergente ctre un punct din planul de proiecie, numit punct de convergenta.
Proiecia paralela conserva proprietatea de paralelism. De asemenea, fetele obiectului care sunt
paralele cu planul de proiecie i pstreaz forma i dimensiunea n urma proieciei. Dup direcia
proiectorilor fata de planul de proiecie, proieciile paralele se clasifica n:
- proiecii ortografice - proiectorii sunt perpendiculari pe planul de proiecie;
- proiecii oblice - proiectorii nu sunt perpendiculari pe planul de proiecie.
Proiecii n planul XOY
Fie P un punct din spaiu, de coordonate (x,y,z), care se proiecteaz n punctul P'(x',y') din planul
de proiecie. Coordonatele punctului P' se determina cu urmtoarele relaii:
(a) Pentru proiecie paralela, dup direcia de proiecie Dta b cs
c ) * z y - ( b / y'
c ) * z x - ( a / x'

Pentru o proiecie ortografica n planul XOY, direcia de proiecie este Dt0 0 1s.
(b) Pentru proiecie perspectiva, din centrul de proiecie CP(a,b,c)
( z - c ) c * y ) / ( b * z - y'
( z - c ) c * x ) / ( a * z - x'

Proiecii axonometrice
O proiecie axonometrica este o proiecie ortografica intr-un plan care nu este paralel cu nici
unul dintre planele principale. Imaginea obinuta printr-o proiecie axonometrica este echivalenta cu una
obinuta printr-o proiecie ortografica n planul XOY, efectuata dup ce obiectului proiectat i s-a aplicat
o transformare geometrica:
) (u )*R (u R PA
x x y y

unde R
y
(u
y
) i R
x
(u
x
) sunt matricile de rotaie n jurul axei y, cu un unghi u
y
, respectiv n jurul axei x, cu
un unghi u
x
.
Alegnd corespunztor unghiurile u
y
i u
x
, obinem cele dou cazuri particulare de proiecie
axonometrica:
61
- Proiecia izometric, pentru
grade 45
grade 26 35
/- u
. /- u
y
x
+
+
- Proiecia simetric, pentru
grade 208 22
grade 705 20
. /- u
. /- u
y
x
+
+
11. Determinarea vizibilitii obiectelor la afiarea scenelor 3D
11.1. Clasificarea algoritmilor de determinare a laturilor i a feelor vizibile ale obiectului.
Vizualizarea unei scene 3D presupune determinarea feelor i laturilor vizibile ale obiectelor ce
compun scena. Procesul de determinare a feelor i laturilor vizibile dintr-un centru de proiecie sau
dup o direcie de proie-cie (corespunztor proieciei perspectiv, respectiv paralel) are ca efect
eliminarea total sau parial a laturilor i feelor obturate. n general, implementarea unor astfel de
algoritmi necesit multe prelucrri i deci implicit, mult timp de calcul. Pentru rezolvarea eficient a
problemei eliminrii laturilor i feelor nevizibile au fost dezvoltai diferii algoritmi, precum i
arhitecturi speciale de procesoare.
Algoritmii de determinare a feelor vizibile se mpart n dou categorii:
a) algoritmi n spaiul imagine - care determin obiectul scenei vizibil n fiecare pixel ecran.
b) algoritmi n spaiul obiect - care compar obiectele ntre ele, eliminnd parial sau total acele obiecte
care nu sunt vizibile.
Algoritmii n spaiul imagine determin obiectul cel mai apropiat de observator de-a lungul
proiectorului ce trece prin fiecare pixel. Afiarea unei scene 3D pe baza acestor algoritmi poate fi
descris astfel:
pentru fiecare pixel ecran, P,
execut
* determin obiectul O cel mai apropiat de observator
de-a lungul proiectorului ce trece prin pixelul P;
* afieaza pixelul P n culoarea obiectului O;
Efortul de calcul este proporional cu (n*p), unde n este numarul de obiecte ale scenei, iar p
reprezinta rezoluia ecranului.
Algoritmii n spaiul obiect au urmtoare form:
pentru fiecare obiect O al scenei
execut
* determin prile vizibile ale obiectului O (prile
care nu sunt obturate de alte pri ale sale sau de
alte obiecte);
afieaz prile vizibile ale obiectului O;
62
Efortul de calcul n acest caz este proporional cu (n*n), n fiind numrul de obiecte ale scenei
3D. Algoritmii n spaiul obiect sunt mai leni (cu toate c, de regul, n<p) i mai dificil de implementat,
fiecare pas al algoritmului fiind mai complex.
Algoritmii n spaiul imagine determin vizibilitatea n fiecare pixel ecran. Modificarea rezoluiei
sau a ferestrei ecran implic reluarea calculelor n ntregime. Algoritmii n spaiul obiect determin
vizibilitatea fiecrui obiect al scenei, calculele efectundu-se independent de rezoluia ecranului. De
aceea este necesar o operaie suplimentar de afiare a obiectelor vizibile, la dimensiunea ecran dorit.
n cazul n care se schimb rezoluia ecranului sau dimensiunea ferestrei ecran, este suficient s se
execute doar aceast operaie, deoarece geometria proieciilor obiectelor vizibile nu se modific n baza
de date.
Precizia algoritmilor n spaiul imagine este determinat de rezoluia ecranului. Pentru algoritmii
n spaiul obiect, precizia imaginii este determinat de precizia definirii obiectelor.
Primii algoritmi care s-au dezvoltat au fost algoritmii n spaiul obiect, acetia fiind adecvai
echipamentelor grafice vectoriale. Astfel sunt algoritmii de eliminare a muchiilor ascunse (hidden line
removal), care consider obiectele descrise prin laturi. Pornind de la aceste date de intrare, se elimin
muchiile total obturate, iar cele parial obturate sunt nlocuite cu unul sau mau multe segmente vizibile.
Odat cu rspndirea echipamentelor de tip raster au fost dezvoltai diferii algoritmi n spaiul imagine,
calculele de vizibilitate efectundu-se iniial pentru un numr relativ mic de pixeli. Ulterior s-au
dezvoltat algoritmi care combin cele dou metode, urmrindu-se obinerea unei precizii bune a imaginii
i o vitez sporit de execuie.
Transformarea de proiecie
Determinarea feelor vizibile pentru o scen compus din mai multe obiecte se realizeaz n
spaiul 3D, nainte de proiecia n plan, care distruge informaia de adncime. Pe baza acestei informaii
se face testul de vizibilitate, ideea de baz fiind de a determina dac un punct A(x1,y1,z1) obtureaz sau
nu un punct B(x2,y2,z2). Punctul A poate obtura punctul B numai dac cele dou puncte sunt pe acelai
proiector, indiferent de tipul de
proiecie (paralel sau perspectiv).
B
/ Dac A i B sunt pe acelai
/ proiector, atunci se compar
/ coordonatele z1 i z2 pentru a
A proiector determina punctul din fa (mai
apropiat de observator).
Comparaia n adncime se efectueaz de regul dup transformarea de normalizare, Npar sau
Nper (vezi paragraful 3.2.2.3). Testul de adncime pentru a determina dac punctele A i B sunt pe
acelai proiector, se reduce la comparaiile:
x1 = x2 i y1 = y2 - pentru proiecia paralel,
x1/z1=x2/z2 i y1/z1 = y2/z2 - pentru proiecia perspectiv.
Cele patru operaii de mprire necesare n cazul proieciei perspectiv se efectueaz ori de cte
ori se compar dou puncte care pot fi sau nu pe acelai proiector. Aceste calcule se elimin dac se
63
aplic o transformare de proiecie asupra obiectului astfel nct proiecia paralel a obiectului
transformat s fie acceai cu proiecia perspectiv a obiectului netransformat. Transformarea de
proiecie distorsioneaz obiectul i deplaseaz centrul de proiecie din origine la infinit, de-a lungul axei
z pozitive. Ea are ca efect transformarea volumului de vizualizare canonic corespunztor proieciei
perspective n volumul canonic corespunztor proieciei paralele (figura 8.1).
Figura 8.1
Forma matriceal a transformrii de proiecie este dat de relaia (8.1).
M =
]
]
]
]
]
]

+ +
0 1 0 0
) 1 /( ) 1 /( 1 0 0
0 0 1 0
0 0 0 1
min min min
z z z
(8.1)
unde z
min
reprezint coordonata planului din fa al volumului de vizualizare trunchi de piramid.
Transformarea de proiecie se aplic numai n cazul proieciei perspectiv, tuturor punctelor care
definesc obiectele scenei 3D.
n continuare, testul de comparaie n adncime se efectueaz ca pentru proiecia paralel.
Aceast transformare conserv informaia de adncime relativ. Ea se poate aplica nainte sau dup
operaia de decupare 3D la limitele volumului de vizualizare canonic. Dac se aplic nainte de
decupare, matricea de transformare M poate fi inclus n matricea de transformare de normalizare Nper.
Urmeaz decuparea n coordonate omogene la limitele volumului definit prin:
-W X W-W Y W-W Z 0 pentru W>0
Dup decupare se efectueaz operaia de mprire la W pentru a obine coordonate carteziene
(x=X/W, y=Y/W, z=Z/W) n volumul de vizualizare canonic corespunztor proieciei paralele:
-1 x 1, -1 y 1, -1 z 0
Acest paralelipiped este situat n semispaiul z negativ, iar observatorul este considerat de-a
lungul axei z pozitive. Ordonarea descresctoare a valorilor z negative indic de fapt, creterea distanei
fa de observator. Sistemele grafice transform, n general, sistemul de coordonate 3D utilizator
dreapta n sistem de coordonate de vizualizare stnga. n acest caz, cu ct valorile z pozitive sunt mai
mari, crete distana fa de observator. n prezentarea algoritmilor de vizibilitate considerm
urmtoarea convenie: ordonarea descresctoare a valorilor z pozitive indic o cretere a distanei fa de
observator.
ncadrarea obiectelor
64
O metod de a micora numrul de operaii ntre diferitele obiecte ale scenei sau ntre proieciile
lor, este de a le include n extensii care s le ncadreze. Aceste extensii de ncadrare sunt volume -
pentru obiecte, respectiv dreptunghiuri cu laturile paralele cu axele sistemului de coordonate - pentru
proieciile lor.
Considernd determinate dreptunghiurile extensie a dou obiecte proiectate, testul de intersecie
al obiectelor se face doar dac extensiile lor se suprapun. n acest caz este posibil ca proieciile celor
dou obiecte s se suprapun sau nu (vezi figura 8.2).
Figura 8.2.
Volumele extensie pot fi paralelipipede dreptunghice, sfere sau volume infinite ce ncadreaz o
singur dimensiune a obiectului. n figura 8.3 sunt prezentate volume infinite care ncadreaz obiectele
pe axa z. Se determin astfel, dac obiectele se suprapun sau nu n adncime.
Figura 8.3.
Cele dou obiecte nu se suprapun pe z dac :
z
max
1 < z
min
2 sau z
max
2 < z
min
1
Pentru a efectua testul de suprapunere este necesar s se determine valorile z extreme ale
obiectelor. Trebuie deci iterate toate punctele ce definesc obiectele, ceea ce implic de regul, consum
mare de timp.
Costul total al testului de intersecie pentru un obiect, utiliznd extensiile de ncadrare, poate fi
exprimat astfel :
T = n*T1 + m*T2
unde n = numrul de teste de suprapunere pentru extensia obiectului;
T1 = costul unui test de suprapunere;
m = numrul de teste de intersecie dac extensiile se
suprapun;
T2 = costul unui test de intersecie a obiectului cu alt
obiect.
Se observ c n i T2 sunt constante pentru un obiect, iar m n. Componentele T1 i m sunt
determinate de forma i mrimea extensiei de ncadrare. Pentru un volum de ncadrare ct mai strns de
obiect, valoarea lui m scade dar crete n schimb valoarea lui T1. Forma volumului de ncadrare poate fi
diferit pentru dou obiecte identice, n funcie de orientarea lor.
Partiionarea spaiului
65
Partiionarea spaiului sau subdivizarea spaial reprezint o tehnic ce permite divizarea unei
probleme n probleme mai simple. Ideea de baz este de a atribui obiectele scenei sau proieciile lor,
unor grupuri coerente spaial.
Planul de proiecie poate fi divizat n dreptunghiuri egale, stabilindu-se n faza de preprocesare
n ce dreptunghiuri se afl proiecia fiecrui obiect n parte. Testul de intersecie se face numai pentru
acele obiecte pentru care proieciile lor se afl n acelai dreptunghi.
In spaiul 3D partiionarea se face n cuburi de aceeai dimensiune. Testul de intersecie a unui
proiector cu obiectele din scen se simplific mult deoarece se determin mai nti cuburile ce pot fi
intersectate de proiector; n continuare se testeaz doar obiectele care sunt n aceste cuburi. n general,
obiectele scenei nu sunt distibuite uniform n spaiu. De aceea este mult mai eficient ca partiionarea s
se efectueze adaptiv, partiiile avnd dimensiuni diferite. Subdivizarea spaiului se face n acest caz
recursiv. Criteriul de terminare a recursivitii poate fi, de exemplu, numrul de obiecte dintr-o partiie.
Ierarhizarea obiectelor
Numrul de teste de intersecie necesare ntr-un algoritm de eliminare a feelor nevizibile poate fi
redus construind o ierarhie de obiecte, pe baza proprietilor de structur ale acestora. Un obiect de pe
un anumit nivel poate constitui o extensie pentru obiectele de pe nivelele inferioare (descendenii si),
dac acestea sunt incluse n el. Dac dou obiecte de pe un nivel ierarhic nu se intersecteaz, atunci nici
descendenii lor nu se intersecteaz. Similar, pentru un proiector care intersecteaz un obiect al ierarhiei,
trebuie fcut testul de intersecie cu toate obiectele descendente ale sale.
11.2. Determinarea laturilor vizibile ale unui poliedru
Algoritmii de eliminare a laturilor nevizibile sunt algoritmi n spaiul obiect, care furnizeaz o
list de segmente vizibile ce pot fi apoi afiate. Ei se folosesc atunci cnd obiectele (poliedre convexe
sau concave, cu sau fr treceri) se afieaz prin contur.
Pentru stabilirea laturilor vizibile ale unui poliedru convex sau concav sunt prezentate dou
metode simple, dar care necesit calcule pentru a determina intersecia dintre dou segmente, intersecia
ntre o dreapt i un plan, dac un punct este sau nu interior unui poligon. Cele dou metode furnizeaz
laturile vizibile - pentru poliedrele convexe, respectiv laturile i segmentele vizibile - pentru poliedrele
concave, ce pot fi apoi afiate. Obiectul este asftel reprezentat prin contur i nu pot fi efectuate operaii
de umplere sau umbrire.
a) Metoda prezentat n continuare, consider poliedrul reprezentat printr-o tabel a feelor sale.
Feele sunt poligoane descrise prin vrfuri i nu sunt orientate.
Laturile vizibile ale unui poligon convex se determin pe baza vizibilitii vrfurilor sale astfel:
1. Se proiecteaz feele poliedrului n planul de proiecie (de regul planul (xy)).
2. Se determin ecuaia planului fiecrei fee a poliedrului.
3. Se determin vrfurile vizibile ale poliedrului. Pentru fiecare vrf V se calculeaz punctul de
intersecie I, ntre proiectorul OV i planul fiecrei fee, exceptnd feele crora le aparine V. Dac
punctul de intersecie I aparine segmentului OV i proiecia sa este n interiorul proieciei feei (n
planul de proiecie), atunci V este nevizibil. Altfel V este vizibil. n figura 8.7, vrful A este nevizibil.
66
4. Dac vrful V este nevizibil, atunci toate laturile care pleac din V sun nevizibile. Astfel, laturile AB,
AD, AA din figura 8.7 sunt nevizibile. Laturile nevizibile se elimin din lista muchiilor poliedrului.
Restul laturilor sunt vizibile i se afieaz.
Dac poliedrul este concav, atunci sunt necesare calcule suplimentare pentru a determina
laturile sau segmentele de laturi vizibile. Paii algoritmului sunt :
1. Se determin vrfurile nevizibile ale poliedrului ca pentru poliedre convexe. Laturile care pleac dintr-
un vrf nevizibil sunt potenial nevizibile. Astfel, de exemplu, n figura 8.8 vrfurile 8, 9 i 10 sunt
nevizibile, iar laturile 8-7, 8-9, 8-2, 9-10, 9-3, 10-4, 10-11 sunt potenial nevizibile. Celelalte laturi
sunt vizibile.
2. Se proiecteaz poliedrul i pentru fiecare latur potenial nevizibil se calculeaz punctele de
intersecie cu celelalte laturi. Laturile potenialnevizibile care nu se intersecteaz cu alte laturi sunt
eliminate, fiind nevizibile. Pentru poliedrul din figura 8.8, punctul de intersecie al laturilor potenial
nevizibile cu celelalte laturi sunt A, B, C, D, E, F. Laturile 8-7, 10-11, 10-9 se elimin. Celelalte laturi
potenial nevizibile conin puncte de intersecie cu alte laturi.
3. Se determin segmentele vizibile ale laturilor potenial nevizibile rmase. Se observ c vizibilitatea
unei laturi se poate schimba doar la intersecia cu alt latur. Pentru a determina un segment vizibil
dintr-o latur se poate testa
vizibilitatea mijlocului segmentului, la fel ca pentru vrfurile poliedrului. Pentru exemplul considerat,
latura 3-9 conine punctele de intersecie D i E. Segmentul 3E este vizibil,iar segmentele DE i E9 sunt
nevizibile.
(a) Punct interior unui poligon
Pentru a determina dac un punct este n interiorul unui poligon se pot folosi mai multe metode.
O metod se bazeaz pe testul ca punctul considerat i unul din vrfurile poligonului s fie de
aceeai parte a oricrei laturi a poligonului. Ecuaia dreptei ce trece prin dou puncte date
(x1,y1), (x2,y2) este:
(x - x1)(y2 -y1) - (x2 - x1)(y - y1) = 0 (8.3)
Pentru punctele care nu aparin dreptei, membrul stng al ecuaiei (8.3) este pozitiv sau negativ
dup cum punctul este situat de-o parte sau de alta a dreptei. Punctul P este interior unui poligon dac
pentru fiecare latur l, P este de aceeai parte ca i unul din vrfurile poligonului ce nu aparine acelei
laturi. n pseudocodul urmtor este definit funcia InPoligon ce ntoarce valoarea 1 dac punctul A este
n interiorul poligonului P i 0 altfel. Funcia Calcul apelat ntoarce valoarea membrului stng al
ecuaiei (8.3), pentru un punct dat ca argument.
funcia InPoligon ( Poligon P, Pct A )
l = 0;
repet
fie V un vrf al poligonului P, ce nu aparine laturii l
dac ( Calcul(A) * Calcul(V) < 0 ) atunci
67
return ( 0 );
l = l + 1;
ct timp l < nrLaturi;
return (1)
O alt metod de a determina dac un punct este sau nu interior unui poligon se bazeaz pe
calculul numrului de intersecii al semidreptei ce pleac din acel punct, cu laturile poligonului. Dac
numrul de intersecii este impar, atunci punctul este n interiorul poligonului, altfel este n exterior. n
figura 8.9 s-a considerat semidreapta (d) ca fiind paralel cu semiaxa x pozitiv.
Metoda este eficient deoarece testul de intersecie nu se face pentru toate laturile poligonului.
Se exclud laturile care sunt deasupra sau sub semidreapta (d), precum i cele care sunt la stnga
punctului considerat. Astfel, n figura 8.9 laturile care se exclud sunt AB, EF, FG i GA. Fie P un
poligonul cu n vrfuri, de coordonate (x
i
, y
i
,z
i
), 0 i < n i un punct Q(x,y,z)
care se testeaz.
Paii algoritmului sunt :
1. Se proiecteaz poligonul n planul de coordonate corespunztor coordonatelor celor mai mari. Rezult
vrfurile proiectate (ui,vi), cu 0i<n.
2. Se translateaz poligonul proiectat astfel nct punctul testat Q s fie n origine. Rezult vrfurile (u
i
,
v
i
).
3. Se stabilete valoarea semn n funcie de valoarea v
0
, astfel:

semn(v
0
) = -1 , dac v
0
< 0
1 , dac v
0
* 0
4. Se iniializeaz contorul nrIntersecii la 0.
5. pentru fiecare latur delimitat de (u
a
,v
a
) i (u
b
,v
b
) execut
* determin semn(v
b
);
dac semn(v
0
) <> semn(v
b
) atunci
dac (u
a
> 0) i ( u
b
> 0 ) atunci
// linia trebuie s intersecteze axa u
+
nrIntersecii = nrIntersecii + 1;
altfel dac (u
a
> 0) sau ( u
b
> 0 ) atunci
// linia intersecteaz axa u
+
dac (u
a
- v
a
(u
b
- u
a
)/(v
b
v
a
) > 0) atunci
nrIntersecii = nrIntersecii + 1;
dac (nrIntersecii este impar)atunci Q este interior
altfel Q este exterior.
68
Punctele testate aflate pe o latur sunt arbitrar determinate ca fiind interioare sau exterioare
poligonului.
(b) Intersecia unui proiector cu un plan
Pentru a determina dac un proiector OV intersecteaz planul feei F se pot folosi dou metode.
O metod pornete de la ecuaiile parametrice ale proiectorului OV:
x = x
O
+ t(x
V
- x
O
)
y = y
O
+ t(y
V
- y
O
)
x = z
O
+ t(z
V
- z
O
)
t (0,1) pentru (x,y,z) aparinnd segmentului OV.
Dac proiectorul intersecteaz planul feei, punctul de intersecie (x
i
,y
i
,z
i
) verific ecuaia
planului, deci
Ax
O
+ By
O
+ Cz
O
+ D
t
i
= -------------------------------------- (8.4)
A(x
V
- x
O
) + B(y
V
- y
O
) + C(z
V
- z
O
)
Dac t
i
(0,1), atunci proiectorul OV intersecteaz planul feei n puncul I de coordonate
(x
i
,y
i
,z
i
), unde
x
i
= x
O
+ t
i
(x
V
- x
O
)
y
i
= y
O
+ t
i
(y
V
- y
O
)
x
i
= z
O
+ t
i
(z
V
- z
O
)
O alt metod de a stabili dac un proiector OV intersecteaz planul feei F folosete ecuaia
planului feei:
Ax + By + Cz + D = 0
Fie f(x,y,z)= Ax+By+Cz+D. Punctele O(x
O
,y
O
,z
O
) i V(x
V
,y
V
,z
V
) sunt de acceai parte a planului feei F
dac :
f(x
O
,y
O
,z
O
) x f(x
V
,y
V
,z
V
) > 0
n continuare se poate aplica una din metodele prezentate anterior pentru a stabili dac punctul
de intersecie este sau nu interior poligonului.
11.3. Determinarea feelor vizibile ale obiectului.
69
11.3.1. Algoritmul Galimberti-Montanari
Algoritmul presupune orientarea feelor poliedrului. Fiecare fa este astfel definit nct normala
sa s fie orientat spre exteriorul obiectului. Aceasta implic o parcurgere a vrfurilor feelor n sens
trigonometric, ca n figura 8.10. Fiecare latur aparine la dou fee ale poiedrului , fiind parcurs n
sensuri diferite pentru cele dou fee.
Normala la o fa se calculeaz ca produs vectorial a dou laturi adiacente.
Figura 8.10.
Paii algoritmului sunt:
1. Se proiecteaz poliedrul n planul de proiecie, considernd o proiecie perspectiv. Pentru fiecare fa
proiectat se determin vizibilitatea sa, calculnd componenta z a produsului vectorial a dou laturi
adiacente. Astfel, dac V
0
(x0,y0), V
1
(x1,y1) i V
2
(x2,y2) sunt proieciile a trei vrfuri ce definesc dou
laturi adiacente, atunci produsul vectorial al lor se definete ca fiind:
Figura 8.10 Orientarea feelor unui poliedru
i j k
V
0
V
1
x V
1
V
2
= x1-x0 y1-y0 0
x2-x1 y2-y1 0
iar componenta z a normalei este:
Nz = (x1-x0)(y2-y1) - (x2-x1)(y1-y0) (8.5)
Faa este potenial vizibil dac valoarea calculat Nz este pozitiv i este nevizibil dac Nz
este negativ. Dac Nz este 0, atunci cele dou laturi sunt colineare i se recalculeaz pentru alt pereche
de laturi adiacente ale feei.
Dac poliedrul este convex, atunci se afieaz feele potenial vizibile i algoritmul s-a terminat. Dac
poliedrul este concav sau cu treceri, atunci se elimin din lista laturilor, muchiile nevizibile.
Laturile invizibile sunt laturile care aparin la dou fee invizibile.
Fie de exemplu, poliedrul din figura 8.11 (a). Feele potenial vizibile ale sale sunt reprezentate
n figura 8.11 (b), dup ce s-au eliminat laturile nevizibile.
a) b)
Figura 8.11
2. Se studiaz vizibilitatea fiecrei laturi n raport cu feele potenial vizibile. Poziiile unei laturi AB n
raport cu o faa F sunt reprezentate n figura 8.12 (a). Se disting urmtoarele cazuri:
(a) Ambii proiectori nu intersecteaz planul feei. Latura AB este de aceeai parte a planului feei ca i
observatorul. n acest caz, latura AB este vizibil n raport cu faa F.
(b) Unul din cei doi proiectori intersecteaz planul feei iar cellalt nu.
70
(b1) Dac punctul de intersecie aparine feei (proiectorul intersecteaz faa), atunci un vrf al laturii
este vizibil iar cellalt este obturat de faa F. Segmentul vizibil este cuprins ntre vrful vizibil i punctul
de intersecie al laturii cu faa.
(b2) Dac punctul de intersecie nu aparine feei (proiectorul nu intersecteaz faa), atunci segmentul
sau segmentele vizibile ale laturii n raport cu faa F se determin ca n cazul (c).
(c) Ambii proiectori intersecteaz planul feei. n acest caz se studiaz vizibilitatea laturii folosind
proiecia perspectiv a feei i a laturii n planul de proiecie. Considernd faa poligon convex, se disting
patru cazuri, reprezentate n figura 8.12 (b):
(c1) Ambele vrfuri ale laturii sunt n interiorul feei, deci latura este nevizibil.
Figura 8.12
(c2) Un vrf al laturii este n interiorul feei iar cellalt n exterior. Segmentul vizibil este
determinat de vrful exterior i punctul de intersecie al laturii cu una din laturile feei.
(c3) Ambele vrfuri ale laturii sunt n exteriorul feei i latura intersecteaz faa. Se obin dou
segmente vizibile determinate de vrfurile laturii i punctele de intersecie ale laturii cu laturile feei.
(c4) Ambele vrfuri ale laturii sunt n exteriorul feei i latura nu intersecteaz faa. Latura este
vizibil n raport cu faa.
11.3.2. Algoritmul Z-buffer
Algoritmul Z-buffer este considerat cel mai simplu algoritm de afiare a scenelor 3D numai prin
prile vizibile. Acest algoritm nu necesita comparaii intre obiecte sau calcule de intersecie i de aceea
este simplu de implementat. Necesita insa ca structura de date un buffer (tablou bidimensional), avnd
un numr de elemente egal cu rezoluia ecranului. Fiecare element din buffer memoreaz informaia de
adncime (coordonata z) corespunztoare unui pixel (x,y). De aceea, structura de date folosita i
algoritmul se numesc Z-buffer.
Algoritmul, pe care-l schim n continuare, se executa asupra unei scene 3D, dup ce asupra
scenei s-a efectuat transformarea de proiecie. De asemenea, pentru reducerea
numrului de poligoane tratate n cadrul algoritmului, se recomanda ca mai nti sa se determine fetele
auto-obturate ale fiecrui obiect. Metoda "backface culling" reduce, n medie, la
jumtate numrul fetelor care urmeaz sa fie procesate n continuare de algoritmul folosit pentru
vizualizarea scenei 3D.
Paii algoritmului sunt:
1. Se iniializeaz memoria ecran n culoarea fondului i Z-buffer-ul cu valoarea ce corespunde
planului din spate al volumului de vizualizare canonic (unu). Valoarea minima din Z- buffer (zero)
corespunde coordonatei z a planului din fata al volumului (se considera sistemul de coordonate
carteziene 3D stnga, observatorul fiind situat la infinit ).
2. Se proceseaz poligoanele prin care sunt reprezentate obiectele scenei 3D, intr-o ordine arbitrara.
Pentru fiecare pixel (x,y) ce aparine proieciei unui poligon, se calculeaz coordonata z a punctului
poligonului care se proiecteaz n acel pixel. Fie (x,y,z1) punctul poligonului care se proiecteaz n
pixelul (x,y). Fie z0 valoarea din Z-buffer corespunztoare pixelului (x,y). Daca z1<z0 atunci
punctul (x,y,z1) este mai apropiat de observator dect punctul pentru care exista memorata
71
informaia de adncime n Z-buffer. Fiind mai aproape de observator, este vizibil i deci se nscrie
culoarea sa n memoria ecran iar informaia de adncime n Z-buffer.
Algoritmul presupune calculul coordonatei z pentru puncte aparinnd proieciei unui poligon.
Pentru generarea punct cu punct a poligonului n memoria ecran, este necesara o funcie de haurare
('fill') poligon n spaiul ecran t1s.
Coordonata z a fiecrui punct se poate obine printr-o metoda incrementala. Fie
0 D Cz By Ax + + +
ecuaia planului poligonului care se proceseaz, din care rezulta coordonata z:
C
-Ax -By -D
z
Fie z(x,y
h
) coordonata z a punctului (x,y
h
) ce aparine liniei de haurare y
h
. Conform relaiei (1),
coordonata z a punctului (x+1,yh) este:
C z(x,yh)-A/
C
A

-Ax-Byh-D
C
)-Byh-D -A(x
,yh) z(x
+
+
1
1

Cum A/C este o constanta pentru un poligon, rezulta:
1 1 ct z(x,yh) - ,yh) z(x +
(2)
Deci, coordonata z a unui punct (x,y
h
) aparinnd liniei de haurare y
h
se obine scznd din
coordonata z a punctului anterior o constanta.
O relaie similara se deduce i pentru coordonata z a primului punct de pe fiecare linie de
haurare:
)-B/C z(x,y
C
B

-D -Ax-By
C
-D y -Ax-B
) z(x,y
h
h h
h

+
+
) 1 (
1

2
1 ) - ct z(x,y ) z(x,y
h h
+
(3)
Relaiile (2) i (3) pot fi utilizate pentru poligoane plane, atunci cnd se cunoate ecuaia
planului.
O alta soluie de a calcula coordonata z este interpolarea lineara. Cunoscnd coordonatele z ale
vrfurilor poligonului se calculeaz z(x,y) de-a lungul laturilor poligonului i apoi de-a lungul liniei de
haurare astfel:
2 1
1
2 1 1
-y y
-y y
) -z -(z z z
h
a

4 1
1
4 1 1
-y y
-y y
) -z -(z z z
h
b


a b
c b
a b b c
-x x
-x x
) -z -(z z z
Ca i n cazul anterior, se pot determina relaii incrementale att pentru punctele de pe linia de
haurare ct i pentru linii de haurare consecutive. Astfel, pentru doua puncte consecutive (x,y
h
) i
(x+1,yh) ale liniei y
h
avem:
a b
b
a b b h
-x x
-x x
) -z -(z z y x z ) , (
a b
a b
h
a b
b
a b b h
x x
z z
y x z
-x x
x - x
) -z -(z z y x z

+
+
+ ) , (
) 1 (
) , 1 (
Fie (zb-za)/(xb-xa)=incH - valoare constanta pentru o linie de haurare y
h
. Rezulta:
incH ) z(x,y ) ,y z(x
s s
+ +1
(4)
Analog, pentru doua linii de hasurare consecutive avem:
72
2 1
h 1
2 1 1 h
y - y
y - y
) z - (z - z ) y z(x,
2 1
2 1
2 1
1
2 1 1
) , (
) 1 (
) 1 , (
y y
z z
y x z
-y y
y - y
) -z -(z z y x z
h
s
h

+
+
+
Fie (z1 - z2)/(y1-y2)=incV - valoare constanta de-a lungul unei laturi a poligonului, delimitata de
vrfurile (x1,y1,z1) i (x2,y2,z2). Rezulta:
incV ) z(x,y ) z(x,y
s s
+ +1
(5)
O posibila implementare a algoritmului Z-buffer este redata n urmtorul pseudocod:
pentru fiecare pixel (x,y) execut

ScriePixel( x, y, culoare_fond);
zBuffertx,ys = 1;

pentru fiecare poligon P (fata a unui obiect) executa

* calculeaz constantele ct1=A/C i ct2=B/C, necesare n calculul coordonatelor z prin interpolare;
* construiete lista laturilor poligonului, ordonata cresctor dup y
min
latura;
pentru y
h
de la y
min
-poligon la y
max
-poligon executa
* determina setul laturilor active (laturile intersectate de linia y=y
h
);
* calculeaz incremental punctele de intersecie (x
i
,y
h
,z
i
), dintre linia y=y
h
i laturile active;
* ordoneaz cresctor dup abscisa punctele de intersecie;
pentru fiecare segment delimitat de doua puncte de intersecie consecutive,
(x
ik
, y
h
, z
ik
)-(x
ik+1
, y
h
, z
ik+1
) executa pentru x de la x
ik
la x
ik+1
executa
* calculeaz incremental z(x, y
h
);
daca ( z < Z-Buffertx,y
hs
) atunci
Z-Buffertx,y
hs
= z;
ScriePixel( x, y
h
, culoare_poligon_P);


n cazul n care se specifica un model de iluminare (vezi tema 3) i se cunosc intensitile
luminoase, I, n vrfurile reelei poligonale prin care este reprezentat un obiect, calculul intensitii
fiecrui pixel se face prin interpolare liniara, odat cu calculul valorilor z. Principalul dezavantaj al
algoritmului l constituie calculul intensitii luminoase I, pentru pixeli care sunt apoi obturai de alte
poligoane mai apropiate de observator i care se proceseaz ulterior. De aceea algoritmul se poate
extinde cu o funcie care sa sorteze poligoanele dup extensia pe z, determinnd astfel o ordine de
procesare a lor. Poligoanele vor fi procesate ncepnd cu cel mai apropiat de observator.
Dimensiunea buffer-ului pentru memorarea valorilor z este determinata de dimensiunea porii de
afiare n spaiul ecran. Aceasta dimensiune este insa limitata de memoria disponibila. Din considerente
de eficienta privind memoria utilizata precum i viteza de execuie, valorile z memorate pot fi ntregi
reprezentai pe 8 sau 16 bii, n funcie de complexitatea scenei i de detaliile de reprezentare.
Implementrile hardware ale acestui algoritm folosesc valori z ntregi reprezentate pe 20-32 bii i o
memorie speciala pentru pstrarea valorilor z. Scena 3D se scaleaz astfel incit valorile z sa aparin
acestui domeniu fix. Daca numrul de bii este mai mic, din cauza erorilor de reprezentare poate apare
efectul de "aliasing" de-a lungul muchiilor comune a doua fete sau pentru obiecte deprtate care se
suprapun.
73
Viteza de execuie poate fi mbuntita daca scrierea pixelilor n memoria ecran se face prin
acces direct la aceasta i nu prin apel de funcii BIOS sau din biblioteca grafica (vezi tema 9, adaptorul
VGA).
11.3.3. Algoritmul Appel
Algoritmul Appel determin vizibilitatea laturilor unor poligoane ce descriu o scen format din
poliedre care se pot suprapune dar nu intersecta. Deci, ca restricie, nu sunt admise intersecii ale
laturilor unui poligon cu feele altor poliedre. Poliedrele pot fi convexe, concave sau cu treceri, deci
corespunztor poligoanele sunt convexe, concave sau cu goluri interioare. Algoritmul consider ca date
de intrare feele vizibile (feele din fa) ale poliedrelor, care se pot determina pe baza componentei z
a normalei la faa proiectat. De asemenea este necesar ca aceste fee s fie orientate n acelai sens.
Folosind convenia ca normala la o fa vizibil s fie ndreptat spre observator, atunci sensul de
parcurgere al conturului este sensul trigonometric. Golurile interioare unei fee vor fi parcurse n sens
antitrigonometric.
Se definesc urmtoarele concepte:
- gradul de nevizibilitate al unui punct sau segment indic numrul de poligoane ce obtureaz (acoper)
punctul, respectiv segmentul. Un segment este vizibil doar dac gradul su de nevizibilitate este 0.
Gradul de nevizibilitate al unei laturi ce trece prin spatele unei fee se incrementeaz, respectiv se
decrementeaz atunci cnd latura iese din spatele unei fee vizibile.
- linia contur este o latur comun unei fee vizibile i unei fee nevizibile, sau o latur a unei fee
vizibile care nu aparine unui poliedru nchis. Gradul de nevizibilitate al unei laturi se modific doar
cnd trece prin spatele unei linii contur. n figura 8.13 laturile AB, CD, DF sunt linii contur. Pe latura
AB s-a marcat gradul de nevizibiliate al fiecrui segment.
Figura 8.13
Algoritmul calculeaz gradul de nevizibilitate al fiecrei laturi n raport cu toate liniile contur
care nu aparin poligonului din care face parte acea latur.
O linie contur trece prin faa unei laturi, modificndu-i gradul de nevizibilitate doar dac linia
contur intersecteaz triunghiul format din vrfurile laturii i observator. n figura 8.14 sunt reprezentate
liniile contur care modific gradul de nevizibilitate al laturii AB.
------------------------------------------
Figura 8.14
------------------------------------------
Proiecia unei astfel de linii contur pe latur determin un punct de intersecie n care se modific
gradul de nevizibilitate al laturii cu +1 sau -1. Semnul incrementului (+ sau -) este determinat de sensul
produsului vectorial al laturii cu linia contur. De aceea este necesar ca toate poligoanele s respecte
aceeai convenie de parcurgere a contururilor. n figura 8.14 s-a marcat prin simbolurile (x), (*)
vectorul care intr, respectiv care iese din planul determinat de latur i linia contur. Considernd
poligoanele parcurse n sens trigonometric, atunci gardul de nevizibilitate al unei laturi se modific cu
+1 dac semnul componentei z a produsului vectorial este pozitiv; altfel se modific cu -1. n exemplul
considerat, proieciile liniilor contur pe latura AB dau punctele de intersecie R, T, S, U, V i X. Gradul
74
de nevizibilitate al segmentelor determinate de aceste puncte pe latura AB sunt 0, 1, 2, 1, 0, 1, respectiv
0.
Algoritmul ncepe prin a calcula gradul de nevizibilitate al unui vrf oarecare V
1
, determinnd
numrul de fee vizibile care l obtureaz. Pentru aceasta, se calculeaz intersecia proiectorului OV1 cu
toate poligoanele scenei 3D. Poligoanele care l obtureaz intersecteaz proiectoruln puncte ce aparin
segmentului OV
1
. Fie k gradul de nevizibilitate al vrfului V
1
. innd cont de coerena laturii, algoritmul
propag aceast valoare de-a lungul unei laturi ce pleac din V
1
. Gradul de nevizibilitate al laturii V
1
V
2
se incrementeaz cu +1 sau -1 n punctul n care latura trece prin spatele unei linii contur. Segmentele
vizibile ale laturii sunt segmentele pentru care gradul de nevizibilitate este 0. Gradul de nevizibilitate al
ultimului segment al laturii devine valoare iniial pentru urmtoarea latur. Similar se proceseaz
fiecare latur, determinnd segmentele vizibile n raport cu toate feele vizibile ale scenei.
Gradul de nevizibilitate nu se propag ntotdeauna corect de-a lungul laturilor contur care pleac
dintr-un vrf. De exemplu n figura 8.13, prin vrful G trec laturile GH, GI i GN, care au grade de
nevizibilitate diferite. Dac se proceseaz laturile poligonului NGHP ncepnd cu latura NG, atunci
gradul de nevizibilitate al vrfului G este 0. Aceast valoare nu se propag corect pentru latura GH (care
este o linie contur i are gradul de nevizibilitate 1). Valoarea iniial a gradului de nevizibilitate a unei
linii contur ce pleac din vrful V se calculeaz testnd vizibilitatea ei fa de poligoanele crora
aparine acel vrf.
12. Redarea luminii si a umbrelor n imagini
Imaginile sintetizate cu ajutorul calculatorului trebuie s fie ct mai apropiate de acelea care ar fi
percepute de ochiul uman dac scenele reprezentate n imagini ar exista n realitate. Deaceea, eliminarea
prilor nevizibile este doar primul pas n sinteza imaginilor realiste. Urmtorul pas const n redarea
luminii i a umbrelor, lund n considerare sursele de lumin, caracteristicile suprafeelor obiectelor,
poziia i orientarealor.
n acest capitol vom prezenta modelele de iluminare folosite frecvent n sinteza imaginilor. Ele
permit calculul intensitii luminii reflectate spre ochiul unui observator de diferite puncte ale suprafeei
unui obiect. Sunt dou clase de modele de iluminare: modele locale i modele globale. n modelele
locale, intensitatea luminii se determin innd cont numai de lumina incident care provine de la una
sau mai multe surse de lumin, de orientarea i caracteristicele fizice ale suprafeei. ntr-un model global
se ine cont n plus de lumina reflectat i transmis de celelalte obiecte ale scenei sintetizate. Dintre
modelele globale, cel mai cunoscut este cel folosit n metoda ray-tracing, pe care o prezentm n
paragraful 9.7. n paragrafele 9.2 i 9.3 sunt prezentate modele locale pentru calculul intensitii luminii
ntr-un punct al unei suprafee iar n 9.4, modelele utilizate n practic pentru redarea suprafeelor
iluminate. Unele aspecte legate de modelarea transmisiei luminii sunt referite n paragraful 9.5. Redarea
n imagine a umbrelor produse de obiectele dintr-o scen 3D luminat de una sau mai multe surse
confer un grad inalt de realism imaginii. n paragraful 9.6 sunt prezentate mai multe metode de
generare a umbrelor, corelate cu diferii algoritmi de eliminare a prilor nevizibile n care iluminarea
este determinat prin modele locale.
n primul paragraf al acestui capitol reamintim pe scurt proprietile luminii apoi prezentm
cteva dintre modelele folosite pentru reprezentarea culorilor n sistemele de sintez a imaginilor.
75
12.1. Proprietile luminii.
Lumina este energie electromagnetic. Ea reprezint zona din spectrul electromagnetic cuprins
ntre lungimile de und de 380 i 780 nanometrii. Limita inferioar a zonei corespunde culorii violet iar
cea superioar culorii rou. ntre cele dou limite ochiul poate distinge circa 350000 de culori.
Atunci cnd energia luminoas cade pe suprafaa unui obiect, ea poate fi absorbit, reflectat sau
transmis. Deci, lumina perceput de ochi provine fie direct de la o surs, fie indirect, datorit reflexiei
i a transmisiei sale de ctre obiectele din mediul nconjurtor.
Lumina care conine toate lungimile de und din spectrul vizibil n proporii aproximativ egale
se numete acromatic. Lumina acromatic provenit de la o surs este perceput ca alb. Lumina
acromatic provenit de la un obiect este perceput ca alb, neagr sau ca o nuan de gri n funcie de
proprietile fizice ale suprafeei obiectului. Obiectele care reflect acromatic mai mult de 80% din
lumina incident alb apar ca albe. Cele care reflect acromatic mai puin de 3% din lumina incident
apar ca negre.
Lumina care conine mai multe lungimi de und n proporii inegale se numete cromatic.
Astfel, dac predomin lungimile de und de la limita superioar a spectrului vizibil, lumina perceput
este roie sau rocat. Culoarea unui obiect depinde att de distribuia lungimilor de und n lumina care
cade pe obiect ct i de caracteristicile fizice ale obiectului. Dac obiectul reflect sau transmite numai o
band ngust de lungimi de und, celelalte fiind absorbite, obiectul apare colorat. Lungimile de und
din lumina reflectat sau transmis determin culoarea obiectului. De fapt, energia electromagnetic nu
are culoare. Culoarea este rezultatul unui proces psiho-fiziologic. n particular, este posibil ca o aceeai
culoare s nu fie perceput la fel de doi indivizi.
Definiia psiho-fiziologic a unei culori cuprinde:
-Nuana, care caracterizeaz culoarea (rou, galben, verde, etc); ea este determinat de lungimea de und
dominant a distribuiei spectrale a culorii.
-Saturaia sau puritatea, care este o msur a amestecului de alb ntr-o culoare pur; aceast noiune
permite s se fac distincie ntre rou i roz, ntre albastru i bleu, etc. O culoare pur are saturaia
100%. Lumina acromatic are saturaia 0%.
-Luminozitatea sau strlucirea, care reprezint intensitatea luminii. Luminozitatea este o caracteristic a
unui obiect emitor de lumin n timp ce strlucirea caracterizeaz un obiect neemitor, care reflect
lumina.
n figura 9.1.a este redat distribuia energiei luminii albe iar n figura 9.1.b distribuia energiei
cu o lungime de und dominant, care este perceput de ochi ca o culoare. Cu ct diferena Ed-Ew este
mai mare cu att culoarea este mai pur. Dac Ew =0 , culoarea are puritatea 100% iar lumina cu un
astfel de spectru este numit monocromatic. Prin definiie, lumina monocromatic are un spectru cu o
lrgime de band de un nanometru.
Figura 9.1.
Culorile percepute de ochi sunt n general amestecuri de culori pure. Cea mai cunoscut dintre
teoriile privind formarea culorilor n sistemul ochi-creier este aceea conform creia n retina ochiului
76
uman exist trei tipuri de conuri, fiecare tip fiind sensibil la una dintre culorile rou, verde i albastru. n
figura 9.2 sunt redate rezultatele obinute pe cale experimental
Figura 9.2. Figura 9.3.
De exemplu, la lumina corespunztoare lungimii de und de 550 nanometrii, receptorii de
albastru au o senzitivitate de 0%, cei de verde de circa 55% iar cei de rou de circa 45%. Curbele arat
c receptorii de albastru sunt mult mai puin sensibili dect cei de rou i de verde. Suma celor trei curbe
de rspuns, redat n figura 9.3, este numit curba de luminozitate. Ea ilustreaz rspunsul ochiului la
lumin de luminozitate constant atunci cnd variaz lungimea de und dominant; senzitivitatea
maxim corespunde luminii cu lungimea de und n jur de 550 nm, perceput ca galben-verde. Culorile
rou, verde i albastru se numesc culori primare. Prin amestecul lor n proporii egale se obine alb.
Dou culori care prin amestec produc lumin alb se numesc complementare. Amestecnd dou culori
primare se obine culoarea complementar celei de a treia. De exemplu, albastru+verde=cian,
rou+verde=galben, rou+albastru=magenta. Culorile rou, verde i albastru se numesc i primitive
aditive deoarece ele permit formarea de nuane prin adunarea lor n diferite proporii. Acest mod de
definire a culorilor corespunde echipamentelor emitoare de lumin (dispozitive de vizualizare cu
ecran). Culorile complementare primitivelor aditive sunt cian, magenta i galben. Astfel, alb-rou=cian,
alb-verde=magenta, alb- albastru=galben. Ele permit specificarea de nuane prin extragerea lor n
diferite proporii din alb. Deaceea, se numesc primitive extractive. Sczndu-le n proporii egale din alb
se obin diferite nuane de gri. Primitivele extractive se folosesc pentru a defini culorile reflectate de un
document imprimat.Pigmenii existeni n cernelurile tipografice absorb culorile complementare acelora
ale pigmenilor. De exemplu, pigmentul de culoare magenta absoarbe din lumina incident
componentele corespunztoare luminii verde, iar cel de culoare galben, componentele corespunztoare
luminii albastre. Deaceea, o suprafa care conine pigmeni magenta i galben va reflecta (sau
transmite) lumin roie. Dac lumina roie este incident pe o suprafa de culoare cian suprafaa va fi
vzut neagr, deoarece toate componentele luminii incidente au fost extrase.
12.2. Modele de culoare
Exist mai multe modele folosite pentru reprezentarea culorilor n sistemele de sintez i de
analiz a imaginilor. Unele dintre ele sunt orientate ctre echipamente, adic se bazeaz pe culorile
primare folosite de echipamente pentru redarea culorilor; n aceast categorie sunt: RGB, CMY i YIQ.
Alte modele se bazeaz pe proprietile psiho-fiziologice ale culorilor. Deaceea se spune c sunt
orientate ctre utilizator; astfel sunt modelele HSV i HLS.
Un model de culoare specific un sistem de coordonate 3D i un subspaiu al culorilor n
sistemul de coordonate respectiv. Fiecare culoare se reprezint printr-un punct n subspaiul culorilor.
Modelul RGB (Red, Green, Blue)
A fost propus de NTSC (National Television Standards Commitee) ca model de reprezentare a
culorilor pentru echipamentele de afiare cu tub catodic.
Subspaiul culorilor este cubul unitate, definit n sistemul de coordonate carteziene 3D (figura
9.4). Fiecare ax corespunde unei culori primare: rou, verde i albastru. O culoare se specific prin trei
77
valori reale cuprinse ntre 0 i 1, reprezentnd contribuiile celor trei culori primare la formarea culorii.
Nuanele de gri sunt reprezentate prin punctele diagonalei principale. Ele corespund amestecului n
proporii egale a celor trei culori primare.
Figura 9.4.
Modelul CMY (Cyan, Magenta, Yellow)
Este utilizat pentru specificarea culorilor la dispozitivele de imprimare. Folosete acelai sistem
de coordonate i acelai subspaiu al culorilor ca i modelul RGB cu deosebirea c originea corespunde
culorii alb, vrful (1,1,1) culorii negru iar culorile primare sunt cian, magenta i galben (figura 9.5.). n
acest model o culoare se specific prin trei valori cuprinse ntre 0 i 1, reprezentnd proporiile n care
trebuie s fie amestecai cei trei pigmeni ce extrag componentele luminii albe. Culoarea negru se obine
amestecnd n proporii maxime culorile primare. n general ns, datorit imperfeciunilor cernelurilor,
prin amestecul n proporii maxime al celor trei pigmeni nu se obine negru. De aceea, n loc de CMY
se utilizeaz sistemul CMYK:
K = min(C,M,Y)
C = C - K
M = M - K
Y = Y - K Figura 9.5.
Conversia unei culori din modelul RGB n modelul CMY i invers este foarte simpl. Ea poate
fi exprimat astfel:
[C M Y] = [1 1 1] [R G B]
respectiv
[R G B] = [1 1 1] [C M Y]
Modelul YIQ
Acest model este o recodificare a modelului RGB, stabilit n 1953 de ctre NTSC, prin care s-a
urmrit compatibilizarea transmisiei imaginilor color cu a celor alb-negru.
Subspaiul culorilor n acest model este un poliedru convex raportat la sistemul cartezian 3D,
care se aplic n cubul RGB prin inversa transformrii:
]
]
]
]
]

]
]
]
]
]


]
]
]
]
]

B
G
R
Q
I
Y
312 . 0 523 . 0 211 . 0
322 . 0 274 . 0 596 . 0
114 . 0 587 . 0 229 . 0
Prin specificarea culorilor n modelul YIQ se evit o problem TV important: dou culori
diferite n modelul RGB se pot afia la fel pe un ecran alb-negru. Problema este evitat asigurndu-se c
dou culori ntre care ochiul face distincie vor avea valori distincte ale luminozitii, reprezentat prin
78
componenta Y, i deci pe un ecran alb-negru vor fi afiate cu intensiti diferite. Modelul se bazeaz pe
faptul c sistemul vizual este mai sensibil la schimbri ale luminozitii dect la schimbri ale nuanei
sau ale saturaiei ( care sunt reprezentate n acest model prin componentele I i Q). Deaceea, semnalului
Y i s-a alocat cea mai mare parte a lrgimii de band disponibile. Proporiile culorilor primare n
sistemul NTSC au fost determinate astfel inct s se obin curba standard de luminozitate. Deoarece
informaia de luminozitate este coninut n componenta Y, televizoarele alb-negru folosesc numai acest
semnal.
Modelul HSV (Hue, Saturation, Value)
Specificarea culorilor n modelele RGB i CMY poate fi dificil pentru utilizatorii unui sistem
grafic. Artitii specific culorile prin tente, nuane i tonuri. Pornind de la un pigment pur, un artist
adaug alb pentru a obine o tent, negru pentru a obine o nuan, alb i negru pentru a obine o
tonalitate a culorii. Aceasta corespunde reprezentrii triunghiulare din figura 9.6.
Figura 9.6.
Aeznd triunghiurile corespunztoare culorilor pure n jurul unei axe centrale alb-negru, se
obine reprezentarea tri- dimensional de forma unui hexacon, redat n figura 9.7.
Figura 9.7.
Modelul HSV, creat de Smith [SMIT78], folosete noiunile de nuan (hue), saturaie
(saturation) i luminozitate (value). Baza hexaconului corespunde culorilor de intensitate maxim
(V=1). Nuana este definit prin unghiul de rotaie n jurul axei verticale, unghiul zero corespunznd
culorii rou. Culorile complementare sunt situate la 180 de grade una fa de alta pe baza hexaconului.
Saturaia este definit prin distana de la axa hexaconului la marginile hexaconului, pentru toate valorile
lui V. Ea variaz de la zero, pe ax, la 1, pe feele laterale ale hexaconului. O combinaie de numai dou
culori primare d o culoare cu saturaie maxim, dar un amestec n care toate cele trei culori primare
sunt diferite de zero nu poate produce o culoare cu saturaia maxim. Combinaia (S=0,V=1) corespunde
culorii alb iar prin (S=0, 0<=V<=1) se reprezint nivelele de gri. Pentru S=0 valoarea lui H este
nesemnificativ. Culorile pure sunt reprezentate prin V=1 i S=1. H, S, i V corespund elementelor din
sistemul de culori al unui arist. Astfel, selectarea pigmentului pur cu care se ncepe nseamn alegerea
lui H. Adugarea de alb nseamn micorarea lui S. Adugarea de negru nseamn micorarea lui V. Se
obin diferite tonuri micornd att pe V ct i pe S. Baza hexaconului corespunde suprafeei vzute
atunci cnd se privete cubul RGB dinspre vrful (1,1,1) de-a lungul diagonalei principale (figura 9.8).
Figura 9.8.
Fiecare plan de V constant din spaiul HSV corespunde vederii unui subcub din cubul RGB. Diagonala
principal a cubului RGB devine axa principal n spaiul HSV. Aceast interpretare conduce la
urmtorii doi algoritmi de conversie ntre modelele RGB i HSV:
79
Modelul HLS (Hue, Lightness, Saturation)
Modelul este utilizat de firma Tektronix. Subspaiul culorilor are forma unui dublu hexacon
(figura 9.9.). Componentele H i S sunt definite la fel ca n modelul HSV. n acest model culorile
primare cu saturaie maxim i complementarele lor sunt reprezentate prin S=1, L=0.5. Conversia RGB-
HLS i invers este efectuat pe baza unor algoritmi asemntori acelora de conversie RGB-HSV i
HSV-RGB.
Interpolarea in spaiul culorilor
Exist mai multe metode folosite n iluminarea scenelor 3D care se bazeaz pe interpolarea
culorilor. De exemplu, calculul intensitii n modelul Gouraud, calculul iluminrii ntr-un punct al unei
suprafee transparente i altele. Rezultatul interpolrii a dou culori depinde de modelul de culoare n
care sunt specificate. Astfel, rezultatul interpolrii n oricare dintre modelele RGB, CMY i YIQ va fi
acelai, deoarece conversiile ntre aceste modele sunt transformri afine. n schimb rezultatul interpolrii
n HSV sau n HLS va fi diferit de acela al interpolrii n RGB.
Fie dou culori specificate n modelul RGB, C1=(1,0,0) i C2=(0,1,0). Le interpolm cu ponderi
egale n modelele RGB i HSV:
(a) n modelul RGB:
C=t*C2 + (1-t)*C1 unde t=0.5, se obine
C=(0.5, 0.5, 0), care convertit n HSV ne d (60, 1, 0.5)
(b) in modelul HSV:
C1 se reprezint n HSV prin (0, 1, 1) iar
C2 prin (120, 1, 1)
C= 0.5*(0,1,1)+ 0.5*(120,1,1) = (60, 1, 1)
Deci, culorile obinute n cele dou cazuri sunt diferite.
Alegerea modelului n care se efectueaz interpolarea depinde de rezultatul dorit. De exemplu,
dac se dorete interpolarea a dou culori cu o anumit nuan (sau saturaie), meninndu-se aceei
nuan (saturaie) pentru toate culorile interpolate, se va alege modelul HSV sau HLS.
12.3. Modele de reflexie a luminii
Caracteristicile luminii reflectate de suprafaa unui obiect depind de lungimile de und coninute
n lumina incident, direcia i geometria sursei luminoase, de orientarea suprafeei i de proprietile
materialului din care este construit suprafaa. Lumina reflectat de o suprafa real (care nu este
difuzor perfect sau reflector perfect) este considerat ca avnd o component difuz i una specular.
Expresia care modeleaz intensitatea luminii reflectate intr-un punct al unei suprafee este
definit pentru o suprafaa necolorat i o lumin incident monocromatic, deci caracterizat printr-o
anumit lungime de und . n cazul general, lumina reflectat nu este monocromatic, deaceea pentru
calculul su expresia ar trebui s fie evaluat continuu pe intregul domeniu al spectrului de modelat. n
practic, expresia se evalueaz pentru cele trei componente ale modelului de culoare folosit. Aceast
simplificare, dei nu corespunde realitii, este uor de implementat i conduce la rezultate acceptabile.
80
12.3.1. Reflexia difuz
Lumina reflectat difuz de o suprafa este dispersat regulat n toate direciile. Deci, intensitatea
sa este considerat a fi aceeai, din oricare poziie ar privi observatorul. Legea lui Lambert definete
reflexia luminii provenite de la o surs punctiform, de ctre un difuzor perfect. Conform acestei legi,
intensitatea luminii reflectate de un difuzor perfect, ntr-un punct P, este proporional cu cosinusul
unghiului dintre direcia luminii incidente i normala la suprafa n punctul P (figura 9.10.):
I
d
=I
l
* K
d
* cos(i) 0 i /2 (9.1.)
unde
I
l
este intensitatea luminii incidente iar
K
d
este coeficientul de difuzie a luminii incidente, 0 k
d
1.
Figura 9.10.
Dac i este mai mare ca /2, suprafaa nu primete lumin de la surs (sursa de lumin se afl n
spatele suprafeei). Coeficientul de difuzie depinde de materialul din care este construit suprafaa
obiectului i de lungimea de und a luminii incidente. n modelele elementare de iluminare el este
considerat constant pentru o suprafa dat.
Obiectele dintr-o scen real primesc nu numai lumina emis de sursele de lumin ci i lumina
reflectat sau transmis de celelalte obiecte ale scenei. n modelele de iluminare local, lumina reflectat
sau transmis de celelalte obiecte ale scenei este numit lumin ambiant i se reprezint ca o surs de
lumin distribuit uniform n spaiu. Adugnd termenul de difuzie a luminii ambiante, modelul de
iluminare devine:
I
d
= I
a
* K
a
+ I
l
* K
d
* cos(i) 0 i /2 (9.2.)
unde I
a
este intensitatea luminii ambiante iar K
a
( 0 K
a
1) este coeficientul de difuzie a luminii
ambiante, dependent de material. Atunci cnd sursa de lumin punctiform este suficient de ndeprtat
de obiectele scenei vizualizate, vectorul L este acelai n orice punct. Sursa de lumin este numit n
acest caz direcional. Aplicnd modelul (9.2.) pentru vizualizarea a dou suprafee paralele construite
din acelai material, se va obine o aceeai intensitate (unghiul dintre L i normal este acelai pentru
cele dou suprafee). Dac proieciile suprafeelor se suprapun n imagine, atunci ele nu se vor distinge.
Aceasta deoarece n model nu se ine cont de faptul c intensitatea luminii descrete proporional cu
inversul ptratului distanei de la sursa de lumin la obiect. Deci, obiectele mai ndeprtate de surs sunt
mai slab luminate. O posibil corecie a modelului ar putea fi:
I
d
= I
a
* K
a
+ f
at
* I
l
* K
d
* cos(i) (9.3.)
unde f
at
= 1/d
2
este o funcie de atenuare; d este distana de la surs la punctul de pe suprafa considerat.
Corecia nu satisface cazul n care sursa este foarte ndeprtat; deasemenea, dac sursa este la distan
foarte mic de scen, intensitile obinute pentru dou suprafee cu acelai unghi i, ntre L i N, vor fi
mult diferite. O aproximare mai bun este urmtoarea:
f
at
= min(1/(c1 + c2*d + c3*d
2
), 1) (9.4.)
81
unde c1, c2 i c3 sunt trei constante care se asociaz sursei de lumin. Constanta c1 se alege astfel nct
numitorul s nu devin prea mic atunci cnd sursa este foarte apropiat. Valoarea funciei este limitat la
1 pentru a se asigura atenuarea.
n general, lumina incident nu este monocromatic iar suprafaa pe care cade poate fi colorat.
Deaceea, pentru calculul luminii reflectate ecuaia (9.3.) se scrie separat pentru cele trei componente ale
modelului de culoare folosit. De exemplu, dac se folosete modelul RGB, atunci ecuaia
corespunztoare componentei "Red" a culorii luminii reflectate este:
I
dR
= I
aR
*K
aR
+ f
at
*I
lR
*K
dR
*cos(i)
unde
K
ar
i K
dr
sunt coeficienii de difuzie ai culorii rou, specifici materialului suprafeei.
O alt expresie folosit n acelai scop [FOLE92] este:
I
dR
= I
aR
*K
a
*O
dR
+ f
at
*I
lR
*K
d
*O
dR
*cos(i)
unde O
dR
este o constant specific materialului din care este construit suprafaa.
Pentru a nu restrnge modelul de iluminare la un anumit model de culoare, Foley [FOLE92]
propune o notaie n care se asociaz indicele tuturor termenilor care sunt dependeni de lungimea de
und:
I
d
= I
a
k
a
*
Od
+ f
at
*I
l
K
d
*O
d
cos(i) (9.5.)
12.3.2. Reflexia specular
Un reflector perfect, de exemplu o oglind, reflecta lumina numai ntr-o singura directie, R, care
este simetric cu L fa de normala la suprafa (figura 9.11.). Deci, numai un observator situat exact pe
directia respectiva va percepe raza reflectat. -
Figura 9.11.
Pentru materialele imperfect reflectante cantitatea de lumina care ajunge la observator depinde
de distribuia spaial a luminii reflectate specular. La suprafetele netede distribuia este dreapt i
focalizat; la suprafetele cu rugoziti ea este dispersat. n general, lumina reflectata specular are
caracteristicile luminii incidente. De exemplu, suprafaa unui mr rou iluminat cu o lumin alb
intens produce o lumin intens de culoare alb ntr-o zon foarte restrns, datorit reflexiei speculare.
Restul suprafetei mrului apare ca roie i mult mai slab luminat, datorit reflexiei difuze.
Bui-Tuong Phong [PHON75] a dezvoltat un odel de iluminare empiric pentru calculul reflexiei
speculare a reflectorilor imperfecti. El aproximeaz scderea rapid a intensitatii luminii reflectate atunci
cnd crete (figura 9.11.), prin cos( )
n
, unde n este exponentul de reflexie speculara al materialului.
Astfel, n modelul Phong, intensitatea luminii speculare este definit astfel:
I
s
= I
l
* W(i, ) * cos( )
n
(9.6.)
82
Unde W(i, ) este functia de reflectan, i- unghiul de incidenta iar lungimea de unda a luminii
incidente. Valoarea lui n se alege n functie de tipul materialului. Figura 9.12. red variatia lui cos( )
n
pentru diferite valori ale lui n. Valorile mari ale lui n corespund distributiilor spatiale concentrate,
caracteristice metalelor i altor suprafete stralucitoare, n timp ce valorile mici dau rezultate dispersate,
caracteristice suprafetelor nemetalice, de exemplu hrtia.
Figura 9.12.
Dup cum rezult din (9.6), intensitatea luminii reflectate specular depinde de unghiul de
inciden. Astfel, dac lumina incident cade perpendicular pe o suprafa, lumina reflectat specular
poate reprezenta doar un procent din lumina incident. Restul energiei luminoase este fie absorbit fie
difuzat, proportiile fiind dependente de caracteristicile materialului i de lungimea de und. Pentru
materiale nemetalice reflectanta poate fi de numai 4%, n timp ce la materialele metalice depaete
80%. Dac unghiul de inciden este de 90 de grade, ntreaga lumin incident este reflectat
(reflectanta este de 100%). Deoarece functia de reflectan este complex, n practic ea este nlocuit
cu o constant determinat experimental, numit coeficientul de reflexie specular al materialului.
Culoarea componentei speculare din modelul lui Phong nu depinde de proprietile materialului.
Reflexia specular este afectat de proprietatile suprafetei nsei i de caracteristicile luminii incidente;
n general, culoarea luminii speculare poate fi diferit de aceea a luminii difuze. Pentru a pune n
eviden dependena culorii luminii speculare de lungimea de und a luminii incidente, n modelul de
iluminare se nlocuiete functia W(i, ) cu produsul K
s
*O
s
unde K
s
este coeficientul de reflexie
specular iar O
s
este culoarea speculara a obiectului.
Combinnd rezultatele, obinem urmtorul model de iluminare pentru suprafete reale:
I

=I
a
*K
a
*O
d
+ f
at
*I
l
(K
d
*O
d
cos(i)+K
s
*O
s
cos( )
n
)
tiind c
cos(i)=L N/([L] [N])=L
u
N
u
i
cos( )=R V/([R] [V])=R
u
V
u
rezult:
I

=I
a
*K
a
*O
d
+ f
at
*I
l
[K
d
*O
d
*(L
u
N
u
)+K
s
*O
s
*(R
u
V
u
)
n
] (9.7.)
Atunci cnd sursa de lumin este la infinit, produsul scalar (L
u
N
u
) este constant pentru un
poligon dat, n timp ce (R
u
V
u
) variaz de la un punct la altul. Pentru suprafee curbe, variaz att (N
u
L
u
)
ct i (R
u
V
u
).
Daca scena 3D este luminat de m surse de lumin, intensitatea luminii reflectate de un punct se
obine nsumnd contribuiile celor m surse:
I

= I
a
*K
a
*O
d
+ f
ati
*I
l i
[K
d
*O
d
*(L
ui
N
u
)+K
s
*O
s
*(R
ui
V
u
)
n
] (9.8.)
1 =i =m
Calculul directiei luminii speculare
83
Vectorul R este simetricul vectorului L fata de N. Deci, proiectia lui Lu pe N este egala cu Nu
cos(i) (figura 9.13.).
Figura 9.13.
Atunci:
R = Nu cos(i) + S
S = Nu cos(i) - Lu
Deci:
R = 2Nu cos(i) - Lu = 2Nu (Lu Nu) Lu (9.9)
O alt formulare a modelului Phong se bazeaz pe vectorul median, notat cu H n figura 9.14.
El face unghiuri egale cu L i cu V. Dac suprafata ar fi orientat astfel nct normala sa s aib directia
lui H, atunci observatorul ar percepe lumina specular maxim (deoarece ar fi pe directia razei reflectate
specular).
Figura 9.14.
Termenul care exprim reflexia specular este n acest caz (Nu Hu)
n
, unde Hu=(Lu+Vu)/
[(Lu+Vu)]
Atunci cnd sursa de lumin i observatorul sunt la infinit, utilizarea termenului Nu*Hu este
avantajoas deoarece Hu este constant.
12.4. Redarea suprafeelor iluminate
n paragrafele precedente s-au prezentat modele care permit calculul luminii ntr-un punct al
unei suprafee. Modelele prezentate n continuare se refer la modul de calcul al luminii n toate
punctele unei suprafee.
Suprafaa se presupune a fi compus din faete poligonale. Ea poate fi reprezentarea exact a
unui corp poliedral sau reprezentarea aproximativ a unei suprafee curbe.
12.4.1. Modelul LAMBERT
Pentru fiecare faet se calculeaz o singur intensitate, cu formula:
I
d
= k * (N
u
L
u
) (9.12.)
unde
Nu este vectorul unitate normal la suprafa iar
Lu este versorul direciei sursei de lumin,
k este o constant.
Modelul se bazeaz pe urmtoarele presupuneri:
- sursa de lumin este la infinit (produsul scalar (Nu *Lu) este atunci constant pe ntreaga suprafa a
poligonului);
- - observatorul este la infinit (Nu Vu este constant pe suprafaa
poligonului);
84
- poligonul face parte din suprafaa de vizualizat i nu este o aproximare a unui petic de suprafa
curb.
`Dac primele dou cerine nu sunt satisfcute, se poate adopta o convenie de calcul al vectorilor L i
V pentru un ntreg poligon. De exemplu cei doi vectori pot fi calculai n centrul poligonului.
Dac ultima cerin nu este ndeplinit, intensitile calculate pentru faete vecine cu orientare
diferit vor fi diferite, evideniindu-se aproximarea suprafeei curbe prin reeaua de faete poligonale.
Soluia simpl, de a diviza mai fin suprafaa curb nu rezolv problema, deoarece percepia diferenei de
intensitate dintre faetele adiacente este accentuat de efectul de band Mach (descoperit de Mach n
1865). Efectul Mach este cauzat de inhibiia lateral a receptorilor din ochi. Cu ct un receptor primete
mai mult lumin cu att mai mult receptorul va inhiba rspunsul receptorilor adiaceni lui. Efectul Mach
se produce atunci cnd panta curbei de intensitate a luminii variaz brusc. n acel loc suprafaa pare mai
luminoas sau mai ntunecat. Deci, efectul de band Mach mrete percepia schimbrii de intensitate
pe laturile faetelor adiacente. Pentru afiarea cu efecte de lumin a suprafeelor curbe aproximate prin
reea poligonal se recomand modelele Gouraud i Phong, n care intensitatea de afiare a unei faete se
determin inndu-se cont de orientarea faetelor vecine.
12.4.2. Modelul GOURAUD
n modelul Gouraud [GOUR71] se calculeaz o intensitate n fiecare vrf al suprafeei de
vizualizat pe baza unui model de iluminare local. Intensitile n toate celelalte puncte ale suprafeei sunt
obinute prin interpolarea liniar a intensitilor din vrfuri, pe parcursul generrii interiorului
poligonului linie cu linie.
Astfel, procesul de redare a unei suprafee iluminate dup modelul Gouraud este alctuit din
urmtoarele etape:
1. Se calculeaz o normal n fiecare vrf al reelei poligonale. Normala se poate obine direct din
descrierea analitic a suprafeei (par.7.3.). Pentru cazurile n care reprezentarea reelei nu conine
normalele n vrfuri, Gouraud sugereaz aproximarea normalei ntr-un vrf prin media normalelor la
aetele adiacente n vrful respectiv.
2. Se calculeaz o intensitate n fiecare vrf al reelei, folosind oricare dintre modelele de iluminare
prezentate n paragrafele precedente (considerndu-se ca normal la suprafa, normala vrfului).
3. Se afieaz suprafaa calculnd intensitatea ntr-un punct al unui poligon:
(a) prin interpolarea liniar a intensitilor vrfurilor, pentru punctele de pe laturi;
(b) prin interpolare liniar ntre intensitile de pe laturi, pentru punctele interioare de pe fiecare linie
de haurare (Observaie: punctele suprafeei unui poligon se calculeaz ca n algoritmul Z-Buffer).
n calculul intensitilor se poate folosi o metod incremental, similar cu aceea folosit pentru
obinerea coordonatei z a fiecrui punct dintr-un poligon. Astfel, dac IP este intensitatea punctului de
pe latura 1-2 i linia y=y
S
+1, se poate deduce, nlocuind n expresia lui IP pe y
S
cu y
S
+1, c:
I
P
=I
P
+ (I
1
-I
2
)/(y
1
-y
2
)= I
P
+ c1
unde c1 este un termen constant pentru latura 1-2, reprezentnd schimbarea de intensitate la o modificare
cu 1 a lui y. Analog se poate deduce c intensitatea IM , a punctului de coordonate x=x
M
+1, y=y
S
este:
I
M
=I
M
+ (I
Q
-I
P
)/(x
Q
-x
P
)= I
M
+ c2
85
Modelul Gouraud se poate integra foarte uor n algoritmii de generare a scenelor 3D, de
exemplu, Z-Buffer sau scan-line. Astfel, la reprezentarea fiecrei laturi a unui poligon se adaug
intensitatea de pornire i constanta c1, separat pentru cele trei componente de culoare.
n modelul Gouraud se opereaz numai cu componenta difuz a luminii. Modelul nu permite
calculul luminii reflectate specular n puncte interioare unui poligon. Practic, intensitile punctelor
interioare nu pot fi mai mari dect acelea ale vrfurilor, prin a cror interpolare se obin. Totodat,
modelul nu elimin complet efectul de band Mach. Utilizarea normalelor n vrfuri asigur
continuitatea numeric a valorilor intensitilor la traversarea laturilor poligoanelor adiacente, dar nu i
continuitatea derivatelor. Din aceast cauz efectul de band Mach poate fi observat n vecintatea
siluetei suprafeei i a zonelor de curbur mare.
12.4.3. Modelul PHONG
n acest model [PHON75] se calculeaz prin interpolare normal n fiecare punct al suprafeei de
vizualizat. Pentru afiarea suprafeei se parcurg urmtoarele etape:
(1) Se determin o normal n fiecare vrf al suprafeei, ca i n modelul Gouraud;
(2) Se afieaz suprafaa calculnd n fiecare punct vizibil mai nti normala apoi intensitatea luminoas
folosind unul dintre modelele prezentate n paragraful 9.2. Calculul normalelor prininterpolare este
similar calculului intensitilor n modelul Gouraud. Astfel, normala ntr-un punct de pe o latur se
obine prin interpolarea normalelor din extremitile laturii iar ntr- un punct de pe un segment
(orizontal) interior poligonului prin interpolarea normalelor din extremitile segmentului.
Componentele Nx, Ny, Nz se pot obine printr-un calcul incremental dar, pentru folosirea n calculul
intensitii, normala trebuie s fie normalizat.
Modelul Phong permite nglobarea componentei speculare n calculul intensitii tuturor
punctelor suprafeei. Chiar i dac n calculul luminii se ine cont numai de componenta difuz,
iluminarea cu modelul Phong conduce la rezultate mai bune, deoarece intensitatea este calculat n
fiecare punct folosind oaproximare a normalei. Prin aceasta este redus mult efectul de band Mach, dar
volumul de calcule este mult mai mare dect n modelul Gouraud, tiind c normalele obinute prin
interpolare trebuie s fie normalizate pentru a fi folosite n calculul intensitii.
Modelul Gouraud se folosete n aplicaiile n care viteza de generare a imaginii este important.
De exemplu, n simulatoarele de zbor i n sistemele de proiectare asistat de calculator interactive. El
este programat hardware la multe dintre staiile grafice moderne.
Modelele Gouraud i Phong sunt incluse n standardele GKS3D i PHIGS.
12.5. Transparena
Unele obiecte ale scenei sintetizate pot fi construite din materiale transparente sau translucide.
Transmisia luminii prin obiectele transparente este specular, n timp ce prin cele translucide este difuz.
Atunci cnd lumina trece dintr-un mediu ntr-altul (de exemplu, din aer n ap), direcia sa se
modific datorit refraciei. Relaia dintre unghiul razei incidente, i, i cel al razei refractate,r, (figura
9.17.) este dat de legea lui Snell:
sin(i)/sin(r) = n1/n2 (9.13.)
unde
86
n1 i n2 sunt indicii de refracie ai celor dou medii (materiale) traversate de lumin. Indicele de
refracie al unui material este dependent de lungimea de und a luminii incidente i chiar de
temperatur, dar n modelele de iluminare el este considerat constant.
Figura 9.17.
Unele efecte ale refraciei sunt ilustrate n figura 9.18. Obiectele 3 i 4 sunt opace iar 1 i 2 sunt
transparente, cu acelai indice de refracie, mai mare dect al mediului nconjurtor. Dac nu se ine
cont de refracie, raza luminoas a ntlnete obiectul 3, dup cum indic linia punctat. n realitate,
datorit refraciei, raza a ntlnete obiectul 4 i deci acesta va fi obiectul luminat. Deasemenea, neinnd
cont de refracie, raza b va ntlni obiectul 4 n loc de 3.
Figura 9.18.
Refracia produce deasemenea o distorsionare a obiectelor, asemntoare cu aceea produs de o
proiecie perspectiv. Deci, dac se dorete obinerea de imagini realiste trebuie s se in cont de
refracie.
Multe metode practice de modelare a transparenei ignor refracia, astfel nct obiectele vizibile
printr-o suprafaa transparent sunt cele aflate pe direcia razei incidente. Motivul ignorrii nu este
intotdeauna cel al reducerii volumului de calcule. Sunt multe cazuri n care nu se urmrete obinerea
realismului fotografic n totalitate. De exemplu, neinnd cont de refracie, obiectele vzute prin cele
transparente nu sunt derfomate.
Atunci cnd suprafaa vizibil ntr-un pixel este transparent, culoarea n care va fi afiat pixelul
se poate obine combinnd culoarea suprafaei vizibile cu aceea suprafeei aflat imediat n spatele su,
folosind urmtoarea formul de interpolare:
I = (1-k
t1
)*I
1
+ k
t1
*I
1
(9.14.)
unde
coeficientul de transmisie k
t1
msoar ransparena suprafeei vizibile n pixel, 0 k
t1
1. Atunci cnd
k
t1
este egal cu 0, suprafaa vizibil este opac i deci pixelul va fi afiat n culoarea sa, I
1
cnd k
t1
este
egal cu 1, suprafaa vizibila este perfect transparenta i nu contribuie la culoarea pixelului. Cnd k
t1
=1 i
suprafaa din spatele celei vizibile este la rndul su transparent, metoda de calcul se aplica recursiv,
pna cnd se ntlnete o suprafata opac sau fondul.
Aproximarea liniara din modelul (9.14.) nu d rezultate bune pentru suprafeele curbe. Aceasta
deoarece n apropierea laturilor siluetei unei suprafete curbe (de exemplu, un vas sau o sticl) grosimea
materialului reduce transparena. Pentru a reprezenta acest efect, Kay [KAY79] a propus o aproximare
neliniar simpl pentru calculul coeficientului de transmisie, bazat pe componenta Nz a normalei la
suprafa, dup transformarea perspectiv:
k
t
= k
tmin
+(k
tmax
- k
tmin
)(1-(1-N
z
)m) (9.15.)
unde
k
tmin
i k
tmax
reprezint transparena minimi cea maxim a unui obiect, Nz este componenta z a
normalei normalizate la suprafa n punctul pentru care se calculeaz k
t
iar m este un exponent ce
caracterizeaz transparena;valorile uzuale pentru m sunt 2 i 3.
O alt metod de modelare a transparenei trateaz fiecare suprafaa ca un filtru transparent, care
las s treac n mod selectiv diferite lungimi de und. Culoarea unui pixel este dat de formula:
I

= I
1
+ k
t1
*O
1
I
2
(9.16.)
87
unde
O
t
este culoarea de transparen a suprafeei 1, vizibil n pixelul considerat.
Majoritatea algoritmilor de determinare a vizibilitii la afiarea scenelor 3D pot fi adaptai cu
uurin pentru a ngloba transparena. Astfel, n algoritmii bazai pe list de prioriti, poligoanele sunt
nscrise n memoria imagine n ordinea ndeprtrii lor de observator (primul nscris este cel mai
ndeprtat). I
1
din modelele (9.14.) i (9.16.) corespunde n acest caz poligonului care se genereaz la
un moment dat iar I
2
este valoarea existent n memoria imagine pentru pixelul considerat. Adugarea
efectului de transparen n algoritmul Z-Buffer este mai dificil deoarece poligoanele sunt generate n
ordinea n care sunt ntlnite, neinndu-se cont nici de apropierea lor de observator i nici de
transparen. ncorporarea transparenei n algoritmul Z-Buffer presupune folosirea mai multor memorii
buffer i generarea imaginii n mai multe etape. Imaginea final se obine combinnd imaginea
determinat de poligoanele opace din scen cu imaginea determinat de poligoanele transparente.
12.6. Umbrirea
Atunci cnd un observator privete o scen 3D iluminat de o surs de lumin dintr-o poziie
diferit de aceea a sursei de lumin, va vedea umbrele produse de obiectele scenei. Umbrele au o
contribuie nsemnat la realismul imaginii, mbuntind percepia profunzimii.
O zon de umbr se compune n realitate din dou pri: umbra pur i penumbra. Umbra pur
este dens, neagr i are un contur bine delimitat. Penumbra nconjoar umbra pur. Zona aflat n
penumbr primete o parte din lumin de la surs. Sursele punctiforme considerate n majoritatea
modelelor de iluminare produc numai umbr pur (figura 9.19.). Sursele reale, cu o dimensiune finit,
produc i penumbr.
Figura 9.19.
n general, datorit volumului mare de calcule presupus, se consider numai umbra pur.
Volumul de calcule depinde i depoziia sursei de lumin. Dac sursa este la infinit calculele sunt mai
simple. n cazul unei surse situate la distan finit dar n afara cmpului vizual este necesar o proiecie
perspectiv din poziia sursei. Cazul cel mai dificil este acela n care sursa este situat n cmpul vizual.
Problema determinrii umbrelor este similar aceleia de determinare a vizibilitii obiectelor:
suprafeele care nu sunt vizibile din poziia sursei de lumin sunt n umbr. Deaceea, crearea unei
imagini cu umbre presupune rezolvarea de dou ori a problemei suprafeelor nevizibile: o dat privind
scena din poziia fiecrei surse de lumin, a doua oar privind-o din poziia observatorului.
Sunt dou tipuri de umbre: umbre proprii i umbre purtate. Umbrele proprii sunt generate de
obiectul nsui, care mpiedic lumina s ajung la unele dintre feele sale (figura 9.20.). Feele umbrite
de umbra proprie sunt fee auto-obturate atunci cnd scena este vzut din poziia sursei de lumin.
Figura 9.20.
Umbra purtat este umbra pe care un obiect o produce pe alte pri ale scenei, la care lumina nu
ajunge din cauza obiectului. Umbrele purtate se pot determina proiectnd n scen, din poziia sursei,
toate suprafeele neumbrite de umbra proprie. Rezult un set de poligoane de umbr care se adaug la
reprezentarea scenei. Ele se folosesc ca poligoane-detaliu la redarea scenei 3D. Numrul de poligoane
de umbr este mai mic dac n loc s se proiecteze fiecare fa luminat de surs se proiecteaz silueta
fiecrui obiect (vzut din poziia sursei de lumin). Dup adugarea poligoanelor de umbr la
88
reprezentarea scenei, se genereaz imaginea vzut din poziia observatorului. Pot fi generate mai multe
vederi fr a recalcula umbrele, deoarece umbrele depind numai de poziia sursei (surselor) de lumin.
Un punct al unei suprafee care este vizibil din poziia observatorului dar nu i din poziia unei surse se
afieaz cu intensitatea de umbrire sau cu o intensitate care rezult din iluminarea sa de ctre alte surse
existente n scen. Modelul de calcul al luminii ntr-un punct p al unei suprafee se poate modifica astfel:
I

=I
a
*k
a
*O
d
+ Si
fati
*I
l
[kd*O
d
* (L
ui
N
u
)+k
s
*O
s
*(R
ui
V
u
)
n
(9.17.)
1<=i<=m
unde
Si= 0 daca lumina de la sursa i nu ajunge n punctul p;
= 1 daca lumina de la sursa i ajunge n punctul p.
Calculul umbrelor dintr-o scena poate fi integrat ntr-un algoritm de determinare a prilor
nevizibile sau poate fi efectuat ntr-o etap separat care precede generarea imaginii.
n continuare prezentm civa dintre algoritmii de umbrire folosii n prezent.
12.6.1. Generarea umbrelor ntr-un algoritm scan-line
ntroducerea umbrelor ntr-un algoritm de eliminare a prilor nevizibile a fost propus pentru
prima dat de Appel [APPE68]. Soluia lui Appel privind modificarea unui algoritm scan-line pentru
includerea umbririi a fost mbuntit de Bouknight i Kelley [BOUK70], [KELL70]. Concret,
generarea unei imagini cu umbre printr-un algoritm scan-line se efectueaz n dou etape:
(1) Se determin umbrele proprii i apoi umbrele proiectate de fiecare poligon n scen. Pentru
fiecare poligon se construiete o structur de date suplimentar care indic poligoanele de umbr ce pot
umbri poligonul. Eficiena acestei etape este foarte important, deoarece ntr-o scen cu n poligoane
exista potential n(n-1) umbre purtate. O soluie inteligent este oferita de Bouknight i Kelley
[BOUK70]. Ei proiecteaz toate poligoanele scenei pe o sfer care nconjoar sursa de lumina, folosind
ca centru de proiecie pozitia sursei. Poligoanele care interacioneaz n producerea umbrelor sunt acelea
ale cror proiecii pe suprafaa sferei se suprapun. n continuare se lucreaz numai cu acestea,
calculndu-se proiecia fiecarui poligon din poziia sursei n planul fiecaruia dintre poligoanele cu care el
interacioneaza n producerea umbrelor.
(2) Se execut algoritmul scan-line, modificat astfel:
- Se determin segmentele vizibile pe o linie a imaginii;
- Pentru fiecare segment vizibil se determin daca poligonul PS, din care face parte este umbrit (de
ctre unul sau mai multe poligoane de umbr). Dac poligonul PS nu este umbrit, segmentul este afiat
normal. Altfel, sunt posibile urmatoarele cazuri:
(a) Unul sau mai multe poligoane de umbr acoper parial poligonul PS dar nu i segmentul vizibil;
segmentul este afiat normal.
(b) Segmentul vizibil este acoperit in intregime de unul au mai multe poligoane de umbr; se
calculeaz intensitatea segmentului vizibil in functie de aceea a poligoanelor de umbr.
(c) Segmentul vizibil este acoperit partial de unul sau mai multe poligoane de umbra; se divizeaz
segmentul vizibil intersectndu-l cu fiecare poligon de umbr i se aplic algoritmul recursiv pentru
fiecare segment rezultat din divizare pana cnd este satisfacut una dintre condiiile (a) sau (b).
n mediul real, intensitatea umbrei depinde de intensitatea sursei luminoase i de distana de la planul
care determin umbra la cel umbrit. Aceasta deoarece zona umbrit primete lumina ambiant iar sursa
de lumina are dimensiuni finite. n modelele de iluminare, pentru simplitate, se ine cont fie numai de
89
lumina ambiant (modelul 9.17.), fie i de intensitatea sursei luminoase, caz n care intensitatea umbrei
este proporional cu intensitatea sursei.
12.6.2. Metoda Atherton-Weiler
Metoda a fost dezvoltat de Atherton, Weiler i Greenberg [ATHE78]. Generarea imaginii unei
scene are loc prelucrnd de doua ori descrierea scenei pe baza aceluiai algoritm: mai nti privind scena
din pozitia sursei de lumina i apoi din pozitia observatorului.
n prima etap se determin suprafeele care sunt vizibile din poziia sursei aplicndu-se
algoritmul Weiler-Atherton (par. 8). Pentru aceasta se aplic scenei o transformare de vizualizare cu
centrul vederii n poziia sursei. Rezult lista de poligoane, P, asupra carora se aplic algoritmul Weiler-
Atherton. Rezultatul algoritmului este o lista de poligoane, PL, (complete sau obinute prin decupare),
carora li se asociaz identitatea poligoanelor 3D din care provin. Acestea sunt poligoanele luminate.
Toate obiectele scenei trebuie sa fie incluse n volumul vizual al sursei. Dac aceast conditie nu este
satisfacut (sursa de lumina este n interiorul scenei), se construiesc mai multe volume vizuale cu vrful
n pozitia sursei; metoda este numit "sectorizare".
Att poligoanelor din lista P ct i celor din lista PL li se aplic transformarea invers, obinndu-
se reprezentrile lor n sistemul de coordonate n care este descris scena. Cele dou liste se combin,
rezultatul fiind o lista LV, careia i se aplic transformarea de vizualizare cu centrul vizual n poziia
observatorului. Poligoanele din LV care provin din lista PL sunt marcate ca poligoane-detaliu
(par.9.4.4.). Pentru determinarea suprafeelor vizibile se aplic tot algoritmul Weiler-Atherton
(neglijndu-se poligoanele marcate ca poligoane-detaliu). Rezult o list de poligoane, LI, din care este
compus imaginea. La generarea poligoanelor din aceast list se folosesc poligoanele- detaliu. Astfel,
prile din suprafeele vizibile acoperite de poligoane-detaliu sunt generate ca luminate, restul ca
umbrite. n calculul umbrelor pot fi incluse mai multe surse de lumin. Lista LV se obine prin
combinarea rezultatelor vizualizrii scenei din poziia fiecarei surse de lumin.
12.6.3. Volume de umbr
Metoda la care ne referim n continuare a fost descris de Crow [CROW77]. Sursa de lumin
este considerat punctiform iar obiectele ca avnd faete poligonale. Cu toate c este una dintre cele mai
practice metode de generare a umbrelor, ea prezint dezavantajul de a nu putea fi extins n mod natural
pentru alte clase de obiecte, de exemplu suprafee parametrice.
Un volum de umbr este definit de o surs de lumin i un poligon luminat (vizibil din poziia
sursei de lumin) (figura 9.21), pe care-l vom numi poligonul generator. Fiecare fa lateral a
volumului este numit poligon de umbr. Ea este determinat de o latur a poligonului generator i de
cele dou drepte care pleac din sursa de lumin, fiecare trecnd printr-un vrf al laturii. Normalele la
fetele laterale puncteaza nspre exteriorul volumului. Volumul infinit determinat de o surs i un poligon
generator este delimitat de o fa care reprezint poligonul generator scalat. Aceast fa este situat la o
distan fa de sursa dincolo de care intensitatea luminii sursei este neglijabil, deci orice punct aflat
dincolo de aceast limit este umbrit. Volumul de umbr poate fi decupat la limitele volumului vizual.
Figura 9.21.
Poligoanele de umbr se folosesc pentru determinarea umbririi produse de poligonul generator n
scen. Notm cu PUV poligoanele de umbr care sunt vizibile din poziia observatorului (A i B n
90
figura 9.21.) i cu PUN poligoanele de umbr care nu sunt vizibile din poziia observatorului (de
exemplu, poligonul C). Fie un punct P al unui obiect i VP vectorul din poziia observatorului (V) n
punctul respectiv. Atunci, punctul P este umbrit dac numrul de poligoane de tip PUV intersectate de
vectorul VP este mai mare dect numrul de poligoane de tip PUN intersectate de vector. Acesta este
singurul caz, atunci cnd punctul V nu este n umbr. n general, pentru a determina dac un punct este
n umbr se poate folosi un contor n care iniial se memoreaz numrul de volume de umbr care conin
poziia observatorului. Se asociaz poligoanelor de tip PUV valoarea +1 iar celor de tip PUN valoarea
-1. Atunci cnd vectorul VP traverseaz un poligon de umbr se adun la contor valoarea asociat
poligonului. Punctul P este umbrit dac valoarea contorului este pozitiv n P.
Volumul de calcul presupus de acest algoritm poate fi redus dac n loc s se calculeze volumul
de umbr pentru fiecare poligon vizibil din poziia sursei se calculeaz un singur volum de umbr pentru
o suprafa poligonal. n acest scop, se determin poligoanele de umbr numai pentru laturile care fac
parte din silueta suprafeei, vazut din poziia sursei. Silueta unei suprafete, corespunzatoare unui punct
de observare, este un set conectat de laturi care apartin poligoanelor vizibile din punctul de observare.
O latur de silueta este fie o latur de margine a unei suprafee deschise, fie o latur care separa un
poligon vizibil de unul nevizibil. Pentru determinarea laturilor de siluet este necesar s se foloseasc o
structur de date care reflect adiacenta poligoanelor. Cunoscndu-se poligonul adiacent pe fiecare latur
a fiecarui poligon vizibil din poziia observatorului se pot determina rapid laturile de siluet.
12.6.4. Determinarea umbrelor n algoritmul Z-Buffer
Williams [WILL78] a propus o metod de generare a umbrelor bazat pe execuia de dou ori a
algoritmului Z-Buffer. Astfel, n prima etap se construiete buffer-ul Z al imaginii vzute din poziia
sursei. Vom nota acest buffer cu ZS. n etapa a doua se construiete imaginea vazut din poziia
observatorului, astfel:
Pentru fiecare poligon al scenei
Pentru fiecare punct (x,y,z) al unui poligon
Dac z < Z-Buffer [x] [] atunci
/*punctul este vizibil n pixelul (x,y) */
(a) Z-Buffer [x ]= z
(b) Se calculeaz punctul (x ,y ,z ) corespunztor
punctului (x,y,z) n vederea obinut din poziia
sursei;
Dac ZS[x < z atunci
punctul (x,y,z) este n umbr i pixelul (x,y) se
afieaz n intensitatea corespunztoare umbrei
altfel
pixelul (x,y) se afieaz luminat
n cazul mai multor surse de lumin se utilizeaz cte un buffer ZS pentru fiecare surs.
Plecnd de la observaia c informaia de umbrire este calculat i pentru punctele care nu sunt
vizibile din poziia observatorului, Williams a sugerat o variant n care adugarea umbrelor are loc
printr-o postprocesare a imaginii obinute executnd algoritmului Z-Buffer. Astfel, n prima etap se
execut algoritmul Z-Buffer pentru scena vzut din poziia observatorului, obinndu-se imaginea fr
umbre i buffer-ul Z. Intensitatea fiecrui pixel este calculat folosind un model de iluminare local.
n etapa a doua se execut urmtorul algoritm:
Pentru x de la 0 la xmax
91
Pentru y de la 0 la ymax
Se calculeaz punctul (x ,y ,z ), corespunztor
punctului (x,y,Z[x] [y]) n vederea obinut din poziia
sursei;
Se determin coordonata ZS a punctului vzut din poziia
sursei n pixelul (x ,y );
Dac ZS < z atunci
Se micoreaz intensitatea pixelului (x,y);
Cu toate c este mai eficient, aceast variant conduce la rezultate mai slabe dect varianta
anterioar. Astfel, imaginea determinat n prima etap poate conine zone cu reflexii speculare. Dac
un punct dintr-o astfel de zon este umbrit, intensitatea sa va fi micorat, dar prin aceasta reflexiile
speculare nu dispar din imagine. n realitate, un obiect care nu primete lumin de la o surs nu poate
avea reflexii speculare. Totodat, coordonata z care se obine prin transformarea valorii din buferr-ul Z
este mai puin exact dect n prima variant, datorit preciziei mai sczute a reprezentrii valorilor din
buffer (n comparaie cu precizia reprezentrii coordonatelor din spaiul obiect).
13. Suprafee
13.1. Suprafee de rotaie
Sfera
Sfera este un corp de rotaie care poate fi considerat o suprafaa 3D nchis sau un poliedru
convex. Ca suprafaa 3D poate fi afiata prin doua familii de curbe (meridiane i paralele), iar ca
poliedru, prin fete poligonale plane (peticele). n cel de-al doilea caz, se considera peticelele ca fiind
patrulatere plane (cele patru vrfuri ale patrulaterului se considera situate n acelai plan, cu o precizie
dat).
Afiarea sferei ca poliedru delimitat de fete poligonale plane implica determinarea fetelor
vizibile. Metoda cea mai simpla este 'backface culling', care permite determinarea fetelor auto-obturate
ale unui poliedru, adic a acelor fete obturate de alte fete ale poliedrului. Fetele auto-obturate sunt fetele
care nu sunt orientate spre observator. Aceasta metoda se poate aplica poliedrelor convexe. Vizibilitatea
fiecrei fete se determina pe baza unghiului dintre normala la fa i vectorul orientat de la fa spre
observator (direcie de proiecie, n cazul proieciei paralele). Normala la o fa se calculeaz ca produs
vectorial al doua laturi adiacente intr-un vrf, astfel incit sa fie orientata spre exteriorul poliedrului.
Pentru aceasta, se considera orientarea trigonometrica a conturului fiecrei fee.
Fie N normala la o fa calculata intr-un vrf al sau i V vectorul din acelai vrf spre observator.
Produsul scalar V*N se definete ca fiind:
z z y y x x
*N V *N V *N V () * N * V V*N + + cos
Daca V*N>0 atunci fata este vizibila; altfel nu e vizibila i deci nu se afieaz.
Pentru afiarea unei sfere trebuie sa se calculeze un set de puncte de pe suprafaa sa. n acest
scop se folosesc ecuaiile parametrice. Sfera se poate obine prin rotaia cu 2*PI a unui semicerc n jurul
unei axe care trece prin capetele sale.
Fie semicercul definit de ecuaiile parametrice:
0
2 2 sin
cos
z(t)
/ t / (t) - r* y(t)
(t) r* x(t)

< <

92
Prin rotaia sa n jurul axei OY cu 2* se obine sfera definita de urmtoarea ecuaie
parametrica:
* u
/ t -
(u) -x(t)* (u) y(t) x(t)* S(t,u)
2 0
2 2
sin cos
< <
< <

Forma pe componente este:


* u (u) (t)* -r* z
t - (t) r* y
(u) (t)* r* x
2 0 sin cos
2 2 sin
cos cos
< <
< <

Torul
Torul este un corp care se poate obine prin rotaia unui cerc n jurul unei axe situate n acelai plan cu
cercul, care nu intersecteaz suprafaa cercului. Considerat ca poliedru reprezentat prin fee poligonale
plane nu mai poate fi afiat prin metoda 'backface culling', deoarece este un poliedru concav. Pentru
afiare cu eliminarea prilor auto-obturate se va folosi algoritmul de sortare n adncime (algoritmul
pictorului). Peticelele sunt sortate dup coordonata z
min
, iar afiarea se face n ordinea de la cel mai
ndeprtat de observator la cel mai apropiat.
Pentru afiarea prin peticele a torului se considera proiectia ortografica.
13.2. Suprafee de forma libera
Suprafee Bezier
O suprafaa Bezier poate fi descrisa printr-o funcie biparametric cubica. Un punct al suprafeei
este definit n spaiul parametric (u,v) prin:
( ) ( ) ( ) v B u B P v u P
j i
i j
ij 3 , 3 ,
3
0
3
0
* * ,

Forma matriceala este:


T v v v MBT * *MB * P * u u u p(u,v)
1 2 3 1 2 3

0 <= u, v <= 1
unde P este matricea punctelor de control,
MB este matricea de baza Bezier,

,
`

.
|

0 . . . 0 . . . . . . 0 . . . . 1
0 . . . 0 . . . . . . 3 . 3
0 . . . . 3 . . . . . 6 . 3
1 . . . . 3 . 3 . . 1
M B
p(u,v) este un punct de pe suprafaa, care se reprezint n coordonate carteziene prin:
(u,v) ) y(u,v) z ( x(u,v) p(u,v)
93
Compunerea suprafeelor Bezier
Compunerea (alipirea) a doua suprafee Bezier, Q(u,v) i R(u,v), implica unele constrngeri:
ndeplinirea condiiilor de continuitate de ordin 0 i 1. Astfel, daca suprafaa R se alipete la dreapta lui
Q, constrngerile sunt:
(a)
,v) R( ,v) Q( 0 1
pentru 0 <= v <= 1
sau

,i ,i
R Q
0 3

i = 0, 1, 2, 3
(b)
) - R k ( R - Q Q
,i ,i ,i ,i 0 1 2 3

i = 0, 1, 2, 3
Divizarea suprafeelor Bezier
Metoda de divizare a unei suprafee Bezier este o extensie a metodei de divizare a curbelor
Bezier. Astfel, pentru aproximarea unei curbe Bezier prin segmente de dreapta se poate diviza recursiv
curba, pn cnd este ndeplinit condiia de linearitate a segmentelor de curba obinute. Fie Pi punctele
de control ce definesc curba. Relaiile de subdivizare n doua curbe definite de punctele Qi i Ri, cu i=0-
3, sunt:
2 / ) R (Q Q
2 / 2) / ) P (P (Q Q
2 / ) P (P Q
P Q
1 2 3
2 1 1 2
1 0 1
0 0
+
+ +
+

3 3
3 2 2
2 2 1 1
3 0
P R
2 / ) P (P R
2 / ) R 2 / ) P ((P R
Q R

+
+ +

Linearitatea punctelor de control Pi ce aproximeaz curba poate fi testata msurnd distantele d1


i d2 de la punctele P1 i P2 la dreapta P0-P3. Acest test de linearitate poate fi extins la peticele de
suprafaa astfel: se determina planul n care se afla trei dintre cele 16 puncte de control ale suprafeei i
se calculeaz distantele de la celelalte 13 puncte la acest plan. Distanta maxima trebuie sa fie mai mic
dect o precizie impus. Dac o singur distanta depete precizia impusa, atunci se continua
subdivizarea peticelului. Precizia impusa depinde de rezoluia ecranului i orientarea peticelului fata de
planul de proiecie.
Cele patru peticele obinute n urma unei divizri sunt definite de matricele punctelor de control
Pi, astfel:
T H * P * H P
T H * P * H P
T H * P * H P
T H * P * H P
4 4 4
3 3 3
2 2 2
1 1 1

unde

,
`

.
|

8 1 . . 8 3 . . 8 3 . . 8 1
0 . . . . 4 1 . . 4 2 . . 4 1
0 . . . . 0 . . . . . 2 1 . . 2 1
0 . . . . 0 . . . . . 0 . . . . . 1 . .
1
H
94

,
`

.
|

1 . . . . . 0 . . . . . 0 . . . . . 0 . .
2 1 . . 2 1 . . 0 . . . . . 0 . .
4 1 . . 4 2 . . 4 1 . . 0 . .
8 1 . . 8 3 . . 8 3 . . 8 1
2
H
Afiarea suprafeelor Bezier
O suprafa Bezier poate fi afiat n doua moduri:
- prin doua familii de curbe (curbele de u constant i curbele de v constant);
- ca o suprafa opac, caz n care suprafaa trebuie sa fie divizata n peticele plane dup metoda de mai
sus.
Pentru afiarea suprafeei divizata n peticele plane se pot folosi algoritmii de tip scan-line
propui de Lane-Carpenter i Clark. Algoritmii difer prin testul de planeitate i prin funciile folosite
pentru a obine ecuaii difereniale de subdivizare a peticelelor suprafeei.
Algoritmul Lane-Carpenter efectueaz divizarea unui peticel atunci cnd este intersectat de linia
de imagine curenta. Algoritmul Clark realizeaz subdivizarea tuturor peticelelor suprafeei intr-o etapa
de preprocesare.
Algoritmul Lane-Carpenter este prezentat n urmtorul pseudocod:
* construiete lista de peticele, LP;
iniializeaz lista peticelelor active, LPA;
pentru fiecare linie de imagine executa
* actualizeaza lista LPA;
pentru fiecare peticssel, Pi, din LPA executa

dac (Pi poate fi aproximat printr-un patrulater plan)
atunci
* insereaz patrulaterul n lista de poligoane, LPg
altfel

* divide Pi n 4 peticele mai mici, Pij;
pentru fiecare peticel Pij executa

daca (Pij intersecteaza linia imagine) atunci
* adaug Pij la lista LPA;
altfel
* adaug Pij la lista LP;
* proceseaz lista LPg pentru linia de imagine curenta;
Un peticel este adugat la lista LPA daca valoarea y a liniei de imagine este egala cu valoarea y
minima a punctelor de control ce definesc peticelul. Prin subdivizarea diferita a peticelelor adiacente pot
s apar discontinuiti (rupturi) n aproximarea suprafeei. Pentru a evita acest efect, algoritmul trebuie
95
sa modifice patrulaterele de aproximare adiacente, care provin din peticele diferite. Nu apar
discontinuiti dac fiecare peticel se divide de un numr fix de ori (divizare uniforma), sau daca
divizarea este mai fina (precizia pentru testul de planeitate este mai mica). n ambele cazuri insa, se
efectueaz divizri care nu sunt neaprat necesare.
Peticelele plane obinute n urma subdivizrii pot fi tratate ca poligoane plane care pot fi afiate
folosind un model de iluminare.
14. Aplicarea unei texturi pe o suprafa
n cadrul acestei teme se cere afiarea unui cub pe feele cruia s-a aplicat o "textura". Textura ce
se aplica pe o suprafa neteda se considera definita intr-un sistem de coordonate ortogonal (u,v). Pentru
determinarea intensitii unui pixel ecran se va folosi metoda "transformrii inverse": din spaiul ecran
n spaiul obiect i apoi din spaiul obiect n spaiul texturii.
Textura va fi definita printr-o matrice de 64x64 puncte. Punctele imaginii textura se numesc
texeli.
Cubul se considera definit astfel incit feele sale sa fie paralele cu planele principale ale
sistemului de coordonate carteziene 3D. Se va afia ntr-o proiecie izometrica, echivalent cu
transformarea:
x ica o_ortograf * o) . Rx( * o) Ry(- o_izo Pr 26 35 45 Pr
Dup aceasta transformare, testul de vizibilitate a unei fee se reduce la condiia Nz>0, Nz fiind
componenta z a normalei la fata.
Se va utiliza modelul de iluminare LAMBERT.
Zona din fereastra 2D corespunztoare suprafeei unui pixel se determina aplicnd transformarea
de vizualizare 2D inversa (poarta de afiare -> fereastra reala) celor patru puncte ce definesc suprafaa
pixelului: (px, py), (px+1, py), (px+1, py+1), (px, py+1). Rezulta patru puncte (x
i
, y
i
) n fereastr.
Din puncte 2D aparinnd proieciei unei fee n fereastra se pot obine puncte 3D aparinnd
fetei cubului prin doua metode:
- pornind de la ecuaia planului fetei
C
D By Ax
- z D Cz By Ax
+ +
> + + + 0
- prin calcul incremental, ca n algoritmul Z-buffer.
Prezentam n continuare algoritmul de aplicare a unei texturi pe fetele unui cub:
* se aplica transformarea Pro_izo, vrfurilor cubului;
* se determina parametrii transformrii de vizualizare 2D (transformarea "fereatr-poart"); pentru
fiecare fata, F, a cubului executa

daca ( F este vizibila ) atunci

* determina intensitatea If, folosind modelul LAMBERT;
* aplica transformarea de vizualizare 2D vrfurilor
fetei; se obine un patrulater, Fe, n spaiul ecran;
pentru fiecare pixel (px, py) aparinnd patrulaterului Fe

* determina zona Z din fereastra 2D, ce corespunde
suprafeei pixelului (px,py); se obin 4 puncte
(x
i
,y
i
);
pentru fiecare (x
i
,y
i
) executa

* calculeaz coordonata zi a punctului (x
i
,y
i
) din planul
96
fetei F; se obine punctul (x
i
,y
i
,z
i
);
* aplica transformarea inversa, T
inv
= Pro_izo-1, pentru a
obine punctul de pe cubul iniial; se obine punctul
(x
i
',y
i
',z
i
');
* calculeaza (ui,vi), din spatiul parametric al
texturii, pentru punctul (xi',yi',zi');
* calculeaza indicii (i,ti) n matricea textura,
corespunzatori punctului (ui,vi); indicii (i,ti)
corespunzatori celor patru colturi ale unui pixel
determina o zona ZT n matricea textura

* calculeaza factorul de scalare:
fscal = nr_texeli_aprinsi_din_ZT/nr_total_texeli_din_ZT
* afiseaza pixelul (px, py) cu intensitatea If * fscal;



Punctele 3D apartinind unei fee a cubului se pot reprezenta parametric astfel:
- pentru fee paralele cu planul (xOy)

0 3 0
0 1 0
) - y ) / (y (y - y v
) - x ) / (x (x - x u

- pentru fee paralele cu planul (yOz)


) - y ) / (y (y - y v
) - z ) / (z (z - z u
1 2 1
1 5 1

Analog se definesc ecuaiile parametrice pentru celelalte fee.


Indicii (s,t) n matricea textura se determina simplu:
s = u * 63
t = v * 63
15. Pachetul grafic 3DSTUDIO MAX
Interfaa
97
P
1
P
0
x
y
P
2
P
3
P
1
P
0
z
y
P
2
P
3
n acest compartiment este dat informaia despre destinaia butoanelor, ferestrele vederilor,
principiile transformrii obiectelor, crearea animaiilor, calculul scenelor etc.
Dup ncrcarea programului, pe monitor apare fereastra de lucru, compus din ferestrele
vederilor i panelele pe care se afl butoanele pentru crearea, plasarea, controlul asupra obiectelor i
primirea informaiei despre ele.
1. Bara meniului. Acest meniu standard a programului sub Windows, incluznd n sine
punctele File, Edit (comenzi), Tools (instrumente), Group (gruparea obiectelor), Views (manipularea
cu caracteristicile vederilor), Rendering (calcularea scenelor), Track View: manipularea ferestrelor
Track View, Help (ajutor). Majoritatea comenzilor din meniu se dubleaz printr butoanele pe
panelul de instrumente.
2. Panelul de instrumente (Toolbar) este un complect de butoane, apsarea crora cheam
ndeplinirea diferitor comenzi.
3. Fereastra de lucru este mprit n patru ferestre a vederilor (Viewports): Top vederea de
sus; Front vederea din fa, Left vederea din stnga i Perspective axonometria.
Este posibil alegerea i altor proiecii (de jos, din dreapta etc.). la apsarea butonului drept al
mouseului pe fereastra de vedere, din punctul Views devin accesibile toate proieciile (vezi mai jos).
4. Butoanele de manipulare cu ferestrele vederilor (vezi mai jos).
5. Butoanele de manipulare cu animaie.
Times Slider (contorul timpului (cadrelor)) acest buton, pe care sunt reprezentate 2 cifre. Din
stnga cadrul activ acel, la care suntem n momentul dat, iar din dreapta numrul total de cadre
animate n scen.
Animate butonul ce pornete regimul animaiei. nainte de a ncepe crearea animaiei, apsai
aceast tast (culoarea ei se va schimba n rou).
Go to Start se transleaz contorul timpului la nceputul animaiei.
Go to End se transleaz contorul timpului la sfritul animaiei.
Previous Frame se transleaz contorul timpului cu un cadru napoi.
Next Frame se transleaz contorul timpului cu un cadru nainte.
Play Animation rularea animaiei.
Key mode toggle micarea ntre cadrele cheie ale obiectului selectat.
Frame Number field numrul cadrului.
Time Configuration ajustarea parametrilor animaiei.
6. Panelele de comand
Create panelul crerii obiectelor.Acest panel cuprinde:
3D Geometry crearea obiectelor tridimensionale.
Shapes crearea figurilor plane.
Cameras crearea camerei de vederi.
98
Lights crearea surselor de lumin.
Helpers crearea obiectelor de ajutor.
Space Warps crearea surselor transformrilor spaiale
Systems crearea sistemelor de obiecte conectate

Modify panelul schimbrii (modificaiei) obiectelor.
Hierarchy panelul de comand al legturilor ierarhice i a cinematicii inverse.
Motion panelul de comand al animaiei obiectelor.
Display panelul de comand al informaiei, reprezentat n ferestrele vederilor.
Utilities instrumente i posibiliti adugtoare (suplementare).
Pentru a activa unul din panelele de comand, trebuie de apsat pe iconia lui cu butonul stng
al mouseului.
7. Bara de stare sunt dou bare pe ecran, care conin informaia despre scen i activarea
comenzilor (controleaz seciunea aleas, justifeea alegerii, proprietile ecranului). Bara const din
urmtoarele compartimente (n ordine):
7.1.Current selection arat informaia despre alegerea curent. De exemplu: 1 Objects
Selected (este selectat un obiect).
7.2.Lock Selection Set permite de lucrat numai cu obiectele selectate, obiectele care nu au fost
selectate rmnnd neschimbate.
7.3.Coordinates and offset values la transformarea obiectului n aceste cmpuri apar valoarile,
la care a fost translat obiectul pe axele X,Y, Z n sistemul universal de coordonate.
7.4.Grid scale arat mrimea ptratelor plasei ferestrei active. De exemplu, Grid=10,0.
7.5.Promt indiciul, care descrie ndeplinirea comenzii curente.
7.6.Window/Crossing aceast buton permite manipularea alegerii obiectelor. Dac ea nu este
apsat, atunce se selecteaz numai acele obiecte care nimeresc total n poriunea aleas. Dac este
apsat, atunci se selecteaz i acele obiecte, care nimeresc parial n poriunea aleas.
7.7.Degradation override se poate de ntrerupt pentru a redesena mai rapid ecranul la micarea
obiectelor n regim de schiare. Atunci, dac calculatorul nu dovedete s calculeze parametrii
obiectului, ct ele se mic, el le deseneaz n regim Bounding Box (n modul unei cutii care-l include),
i numai cnd micarea se oprete, din nou deseneaz obiectul iniial.
7.8.Snap Controls introduce pasul transformrii.
Vizualizarea i dirijarea spaiului 3-D
La crearea unei scene, dac n ea se utilizeaz o geometrie complicat, este foarte greu de
descurcat numai cu acele ferestre de vederi date iniial. n program pentru acest caz sunt prevzute multe
posibiliti de dirijare a vederilor (proieciilor), de asemenea vizualizarea scenei din diferite pri.
Fereastra de vedere activ este marcat cu un chenar alb. Pentru necesitate se poate de activat
orice fereastr apsnd butonul drept al mouseului pe denumirea ferestrei.
99
Pentru reglarea ferestrelor se poate de folosit de meniul View (punctul Layout), cu ajutorul lui
de asemenea se poate de salvat i restabilit ferestrele.
Orice fereastr poate fi schimbat cu alta, apsnd butonul drept al mouseului pe denumirea
ferestrei i alegnd proiecia care ne trebuie din submeniul punctului View.
Cu ajutorul tastaturii:
T Top, B Bottom, F Front, K Back, L Left, R Right, C-Camera, $ Spotlight,
U User, G Grid, E Track View, W pe tot ecranul.
De vizualizat ecranul din trei pri se poate numai n fereastra de proiecie Perspective i
Camera, n restul sunt artate proieciile bidimensionale, i anume XY planul: (din dreapta, din
stnga, din fa, din spate) i axa vertical Z.
Butoanele dirijrii ferestrelor de proiecie
Ferestre de proiecie standarde
Cu ajutorul acestor butoane se poate de schimbat imaginea n fereastra de proiecie activ.
Zoom mrete sau micoreaz scara imaginii n fereastra activ.
Zoom All mrete sau micoreaz scara imaginii n toate ferestrele n acelai timp.
Zoom Extens arat toate obiectele. Scara imaginii se modific n aa fel, ca toate obiectele s
se includ n fereastra de proiecie.
Zoom Extens All arat toate obiectele n toate ferestrele de proiecie.
Region Zoom mrirea parial a imaginii n poriunea aleas.
Pan translarea imaginii n fereastra activ a proieciei.
Arc/Rotate schimbarea unghiului de vizualizare.
Min/Max Toggle comutator minimizare/restaurare a ferestrei active.
Butoanele de dirijare a ferestrei camerei:
Dolly Camera translarea camerei pe linia camerei scopul.
Field of Vision (FOV) schimbarea unghiului de vedere.
Truck Camera translarea camerei.
Orbit Camera schimbarea poziia camerei n spaiu.
Modurile de vizualizare a obiectelor n scene
Obiectele, aflate ntr-o scen, n ferestrele de proiecii pot fi vizualizate un grad diferit de
reprezentare.
De metoda de vizualizare depinde viteza reprezentrii obiectului n fereastr.De ales modul de
vizualizare se poate de asemenea cu ajutorul ferestrei de dialog Viewport Configutation, dac alegem
compartimentul Rendering Method.
Modificarea
Trei butoane pe panelul instrumentelor nseamn:
1.Translare
2.Rotire
3.Scalare
Transformarea obiectului poate fi efectuat concomitent pe dou axe, sau numai pe una.
Transformare poate fi efectuat dup selectarea obiectului apsnd butonul drept al mouseului pe
butonul necesar de pe panelul instrumentelor n fereastra care apare se introduc datele numerice
necesare.
100
Unitile de msur n scen
Units determin un nou sistem de msur (milimetri, diuimi, etc.). schimbarea sistemului de
msur se face cu ajutorul ferestrei de dialog Units Setup din meniul Views. Iniial n program se
folosesc fui i diuimi (1 fut este egal cu 30,48 cm).
Lucrul cu fiierele
3DS MAX folosete fiiere de diferite formate. Dumneavoastr putei alege calea, dup care
programul caut fiierul n unele cazuri. De exemplu, la salvarea fiierului programul automat se
adreseaz la mapa Scenes (scene). Pentru a schimba calea pus automat se alege din meniul File punctul
Configure Paths (determinarea drumului).
Compartimentul General conine opiuni principale. De exemplu, imaginile sintezate automat
se salveeaz n mapa C:\MAX2\Images, dup informaie ajuttoare programul se adreseaz n mapa
C\MAX2\Help, etc.
Compartimentul PlugIn determin calea spre PlugIns (completrile programului).
Compartimentul Bitmaps determin calea apelrii la biblioteca materialelor (Bitmaps).
Schimbarea acestor acestor parametri trebuie fcut foarte atent, dar mai bine este de lsat
parametrii instalai automat.
Deschiderea scenei
Alegei din meniul File comanda Open, pe ecran va aprea o fereastr de dialog, din care vei
putea selecta fiierul i tastai butonul Open. Deschiderea fiierului se poate de asemenea cu ajutorul
dublului clic pe numele fiierului n fereastra de dialog.
Trecerea obiectelor dintr-un fiier n altul
Alegei din meniul File comanda Merge. n fereastra de dialog aprut selectai fiierul, din care
trebuie trecut obiectul i tastai butonul Open. Dup aceasta se va deschide fereastra de dialog Merge,
n care vei vedea lista obiectelor care se afl n fiierul din care se dorete trecerea obiectelor. Aici se
poate de selectat att toate obiectele (All), ct i careva dintre ele: tasta Shift permite selectarea
obiectelor unul dup altul, tasta Ctrl permite selectarea obiectului cte unul.
Salvarea scenei
Pentru salvarea scenei create, alegei din meniul File comanda Save. n fereastra de dialog
aprut n cmpul File Name introducei numele fiierului, alegei mapa pentru salvare i tastai butonul
Save.
Este posibil vareantele urmtoare a unei i aceiai scene amplasat meniu Files pe fereastra de
dialog Preferense Settings,care se chiam cu ajutorul meniului File/Preferense.
Backup File (copie de rezerv) la salvarea scenei, copia ei precedent se salveaz n fiierul
maxback.bak, ntr-o map special. Dac este necesar fiierului maxback.bak i se poate schimba
numele n fiier cu extensia max i de-l ncrcat.
101
Increment on Save (mrirea numrului la salvare) la fiecare salvare a scenei, la numele
fiierului se adaug un numr, care se mrete la fiecare salvare urmtoare. De exemplu, dac
deschidem fiierul myfile.max, atunci el se va salva sub numele myfile01.max, myfile02.max,
myfile03.max, etc.
Dac fiierul n procesul de lucru a fost deja salvat, dar dorii s-l salvai sub alt nume, alegei
comanda Save As din meniul File, i n cmpul File Name introducei numele nou al fiierului, dup
aceea tastai butonul Save.
Se poate de salvat n scen numai obiectele selectate. Pentru aceasta alegei din meniul File
comanda Save Selected i introducei numele fiierului.
3DS MAX poate automat s salveze copiile de rezerv dup o anumit perioad de timp
(autosalvare).
Enable iniial comutatorul este deconectat. Dac-l conectm, ncepe lucrul sistema de
autosalvare.
Number of Autoback files numrul maximal de copii de rezerv a fiierului se cuprinde n
intervalul de la 1 la 9.
Backup Interval timpul n minute (de la 0.01 pn la 480) ntre salvri.
Comenzile Hold i Fetch
Este posibil salvarea ultimei variante a scenei, alegnd comanda Hold din meniul Edit, satfel
fiierul va fi salvat n bufer sub numele maxhold.mx. Dac este nevoie tot timpul se poate de deschis
aceast variant a fiierului, dac chemm comanda Fetch din meniul Edit.
Este folositor de a salva din cnd n cnd fiierul n bufer, pentru a avea posibilitatea de a ne
ntoarce napoi dup careva micri greite, sau din cauza blocrii neateptate a calculatorului, pentru a
nu pierde informaia, nesalvnd ultima variant a fiierului pe disc.
tergerea scenei
Tot timpul se poate de ters scena curent i de purces la crearea unei noi scene. Alegei din
meniul File comanda New, va aprea fereastra de dialog, care propune urmtoarele variante:
Keep Objects and Hierarchy terge toat animaia din scen, lsnd obiectele, schimbrile lor
i legturile ierarhice.
Keep Objects terge toat animaia i legturile ierarhice n scen, lsnd obiectele.
New All terge tot cu excepia obiectelor i schimbrile lor.
Dac alegem comanda Reset (curare) din meniul File, atunci vor fi eliminate toate obiectele
fr excepii, deasemenea toate schimbrile ferestrelor de proiecii.
Importarea i exportarea fiierelor
Fiierele create n 3DS MAX pot fi exportate, adic pot fi salvate sub alt format. Prin meniul
File/Export aceste formate sunt accesibile. De asemenea se poate de importat fiiere din alte programe
grafice, prin File/Import.
Arhivarea scenei
Se poate de arhivat (comprimat) fiierul prin punctul meniului File/Archive. Nu uitai n
fereastra dispoziiilor (Preferences) n despritura Archive System s artai numele programului-
arhivator.
Proprietile obiectului
Informaia total despre obiect se poate obine, apsnd butonul drept al mouseului pe obiect, i
din meniul aprut se alege comanda Properties (proprieti).
102
Object Information informaie despre obiect.
Dimensions msura paralelipipedului care cuprinde acest obiect.
Vertices numrul vrfurilor n obiect.
Faces numrul feelor n obiect.
Polygons numrul poligoanelor.
Parent numele printelui, de care este ataat obiectul.
Material Name numele materialului, dat obiectului.
Num. Childern numrul obiectelor-copii, ataate obiectului precutat.
In Group numele grupei, din care face parte obiectul dat.
Rendering Control controlul asupra sintezei obiectului.
Renderable determin, dac va fi vizibil obiectul la calculul scenei.
Cast Shadows determin, dac obiectul eman umbr.
Receive Shadows determin, dac eman umbr alte obiecte asupra obiectului dat.
Inherit Visibility vizibilitatea/invizibilitatea obiectului se transmite de la printe.
Motion Blur splarea n micare.
None nimic.
Object rotunjirea cu straturi-repetate.
Image rotunjirea prin splarea pixelilor imaginii.
Display Properties parametrii reprezentrii obiectului n scen.
Show as Boxes reprezentarea obiectului n forma paralelipipedului care-l include.
Backface Cull nereprezentarea muchiilor, vizibile din partea opus n regim liniar
(Wireframe).
Edges Only reprezentarea n regimul Wireframe numai muchiile ncadrate.
Vertex Ticks reprezentarea nodurilor vrfurilor(vertex).
Trajectory reprezentarea traectoriei micrii.
Vertex Colors de artat culorile vrfurilor.
Shaded tonarea ca obiect obinuit.
G-Buffer numrul canalului obiectului pentru aplicarea efectelor din Video Post.
Alegerea obiectelor
nainte de a interprinde o oarecare aciune asupra obiectului, este necesar de-l selectat.
Selectarea obiectelor poate fi efectuat prin mai multe metode: cu ajutorul butoanelor de pe panelul cu
instrumente Select object (selectarea obiectului). Obiectul ales se selecteaz cu culoarea alb (plas alb
n regimul Wireframe).
Cu ajutorul meniului Edit (redactare) comenzile Select All (selecteaz tot), Select None,
Select Invert (inversarea seleciei). Cu ajutorul ferestrei de dialog Edit Named Selection din meniul
Edit. Cu ajutorul ferestrei de dialog Track View (permite de ales obiectul animat).
Cu ajutorul butonului Select by Name (selectarea pe nume). Dac este necesar selectarea mai
multor obiecte, atunci se poate de folosit de tasta Ctrl innd apsat tasta Ctrl, clic cu mousul pe
obiectele care dorim s le selectm.
Se poate de selectat obiectele dac le mprejura cu ajutorul butonului stng apsat al mouseului.
Dac lucrm numai cu vrfuri sau laturi, se poate de folosit nu numai de selectare n form de ptrat, dar
i n form de cerc sau a unui poligon.
Dac n scen sunt multe obiecte atunci este greu de-l selectat pe cel necesar. n acest caz se
poate de folosit de fereastra de dialog Select By Name, care cheam sau din panelul de instrumente, sau
din meniul Edit, punctul Select By /Name. Cu ajutorul acestei ferestre se poate de sortat obiectul (dup
tip, culoare, mrime), selectarea obiectului dup tip, de artat arborele ierarhic.
103
Dac n procesul de lucru este necesar des de selectat mai multe obiecte concomitent (obiectele
nu formeaz o grup), atunci se poate de selectat aceste obiecte i de introdus numele corespunztor pe
panelul de instrumente n regiunea Named Selection Sets iar apoi si le alegem din list. Numele
introduse dup necesitate pot fi redactate cu ajutorul ferestrei de dialog Edit Named Selection din
meniul Edit.
Pentru selectarea numai a geometriei, numai figurile plane, numai sursele de lumin, etc. dup
tipul obiectului, se poate de folosit de regiunea Selection Filter de pe panelul de instrumente (tipul
necesar se alege din list).
La crearea animaiilor se poate de selectat obiecte din fereastra de dialog Track View, trebuie de
apsat pe + n stnga de Objects, i, n lista deschis de apsat pe cubicul de culoare galben sau
lng numele obiectului.
n scen tot timpul este probabil deformarea neprevzut a obiectelor. Pentru a nltura aceasta,
se poate de folosit de compartimentul Display, care permite nghearea (Freeze) a obiectelor.
Dezghearea lor este posibil cu ajutorul butonului Unfreeze.
Vizibilitatea i invizibilitatea obiectelor
Temporar de ascuns obiectele (de fcut invizibile) se poate cu ajutorul compartimentului
Display, sau cu ajutorul meniului Tools/Display Floater.
Opiunea Hide permite de ascuns obiectele dup tip, nume, categorie, etc.
Lucrul cu Sub-obiectele
La schimbarea obiectului apare necesitatea de a lucra cu o parte oarecare a obiectului cu
vrfurile, muchiile, feelor: la subnivel intern.
Pentru aceasta deschidem panelul de comand Modify, numim modificatorul i alegem butonul
Sub-Object, la stnga de acest buton deschidem lista i alegem din el subnivelul necesar.
Grupe
Pentru confort obiectele pot fi grupate cu ajutorul punctului Group din meniul Group. Obiectele
grupate vor avea centru de coordonate comun, relativ de care aceast grup poate fi transformat i
modificat. Dac este necesar lucrul numai cu un obiect din grup, atunci trebuie s ne folosim de
comanda Open din meniul Group.
Not trebuie de luat n vedere, c animaia, dat unei grupe ntregi, dup degrupare dispare.
Sistemul de coordonate al obiectului
Alegerea unui sau altui sistem de coordonate se determin de relaia de transformare a obiectului
n fereastra de proiecii, n care se efectueaz aceast transformare.
View n ferestrele cu proiecii ortogonale se folosete sistemul de coordonate a ecranului, iar n
fereastra cu perspectiv sistemul de coordonate univers.
Screen sistemul de coordonate ecran. Care fereastr de proiecie nu vom folosi axele vor fi
identice: X axa orizontal; Y axa vertical; Z adncimea n direcia pozitiv.
World sistema de coordonate universal comun pentru toat scena.
Parent sistemul de coordonate printe. Dac obiectul nu este legat de nimic, atunci se folosete
sistemul de coordonate universal.
Local s sistemul de coordonate propriu fiecrui obiect.
Grid se folosete sistema de coordonate plasei de aliniere activ (Grid).
Pick se folosete sistemul de coordonate a altui obiect n scen.
104
Alegerea i transformarea centrului sistemului de coordonate
La selectarea grupei obiectelor, se poate de determinat poziia centrului de coordonate pentru ele:
comun pentru toate, sau local pentru fiecare. Fiecare obiect selectat din grup are centrul su; obiectele
au un centru comun la mijloc; centrul coincide cu centrul sistemului de coordonate universal.
Instalarea parametrilor i controlul culorii la alegerea butonului
Luai seama la butoanele, la care n colul dreapta de jos este o sgeat mic de culoare neagr.
Aceast sgeat vorbete despre aceea, c dac de apsat acest buton i inndu-l puin apsat, atunci
apar butoane adugtoare, subbutoane a aceluiai instrument, care permit efectuarea aciunilor similare
(de exemplu, butonul alinierii cu ajutorul acestui buton se poate efectua alinierea la centru, alinierea
dup normale etc.).
La crearea obiectelor i la schimbarea lor este necesar de regulat parametrii. Luai seama la
butonul lung cu inscripia Parametrs. La stnga de aceast inscripie st semnul + aceasta
nseamn, c fereastra cu parametri e minimizat. Dac vom tasta pe acest buton, fereastra se va
maximiza i va aprea panelul de dialog care permite de instalat sau de schimbat parametrii obiectului
(n acest caz semnul + se va transforma n -). Dac nc o dat vom tasta pe acest buton, atunci
panelul cu parametri se va minimiza.
Dac pe ecran nu ncap toi parametrii, atunci n partea dreapt a ecranului apare o bar neagr
ngust este bara derulrii. ranslnd-o cu mouseul n sus i n jos se poate de ridicat sau cobort panelul
parametrilor.
Spineri i cmpurile de introducere
La darea sau modificarea parametrilor obiectului (razei, nlimii, lungimii etc.) se poate de
folosit spinerile (dou butonae la dreapta de cmpul de introducere cu sgei n sus i n jos). Sgeata n
sus permite de mrit parametrul, iar sgeata n jos micorarea. Schimbarea se petrece cu un pas
determinat (o unitate). Schimbarea parametrilor este posibil i cu ajutorul tastaturii (sgeile n dreapta
i n stnga). Pentru a ne transla la rapid la nceputul rndului, tastm tasta Home, la sfritul rndului
End. tergerea simbolului de dup cursor se efectueaz tastnd tasta Delete, simbolul din faa
cursorului tasta Backspace. Selectarea unui bloc de text se poate cu ajutorul tastelor de micare a
cursorului, concomitent este necesar ca tasta Shift s fie apsat. Deasemenea se poate de selectat un
bloc de text cu ajutorul mouseului: poziionai cursorul mouseului n dreptul nceputului blocului,
apsai butonul stng a mouseului i tragei cursorul la sfritul blocului. Textul selectat i va schimba
culoarea aa c va fi uor de deosebit.
Textul selectat poate fi copiat (Ctrl+C) i tiat (Ctrl+X) n buferul de schimb. Punerea textului
din buferul de schimb n cmpul de introducere se poate tastnd Ctrl+V. Schimbarea rapid a textului n
cmpul de introducere se poate, insernd textul vechi i imediat introducnd textul nou, n acest caz
textul vechi dispare. Pentru ca schimbrile s aib loc, tastai tasta Enter.
n cmpul de introducere se poate de introdus att variabile absolute, ct i variabile relative. De
exemplu, dac s-a introdus mrimea raza egal cu 50, iar introducnd textul r20 se schimb mrimea
n 70, iar textul r-20 n 30.
Controlul culorilor
Cu culoarea roie se coloreaz butonul conectrii regimului de animaie la apsarea lui. Cu
culoarea verde se coloreaz butoanele, destinate pentru transformarea i alegerea obiectelor de pe
panelul de instrumente la apsarea lor (activizarea). Cu culoarea albastr se coloreaz butonul
cinematicii inverse la selectarea ei. Cu culoarea galben se coloreaz butoanele aciunilor speciale (Sub-
Object) la nivel de sub-obiecte.
Alinierea obiectelor
105
n 3DS MAX exist o funcie convenabil pentru alinierea obiectelor unul fa de altul. Alinierea
se poate efectua cu ajutorul butoanelor de pe panelul de instrumente Align (aliniere), sau din meniul
Tools/Align sau Align Normals. La apsarea butonului Align apare fereastra de dialog Align Selection.
Alinierea se efectueaz la alegerea opiunii din aceast fereastr.
Butonul Align Normals alinierea dup normale. Normal se numete vectorul, perpendicular
pe muchia obiectului. Pentru alinierea la nceput se noteaz normala (segmentul cu direcia necesar
normalei) obiectului ce se aliniaz, iar apoi se arat normala obiectului, dup care se face alinierea.
Butonul Place Highlight alinierea direciei sursei de lumin dup normala obiectului.
Butonul Align Camera alinierea direciei camerei dup normala obiectului.
Butonul Align to View aliniaz axele locale ale obiectului selectat sau a sub-obiectului cu axele
ferestrei de proiecii curente.
Obiectele adugtoare
Grids deosebesc plasa de baz (Home Grid) i plasa obiectelor (Grid Object) care ajut
urmrirea poziiei obiectului n spaiu. Reglarea plasei de baza se poate de schimbat cu ajutorul ferestrei
de dialog Grid and Snap Settings. Plasa obiectelor se folosete ca un obiect ajuttor pentru alinierea i
poziionarea n spaiu relativ de plasa de baz.
Crearea Grid Object-ului se poate cu ajutorul compartimentului Helpers, i, ca orice alt obiect,
el poate fi schimbat, ters sau i se poate schimba numele. Activarea Grid Object este posibil n orice
moment, apsnd butonul drept al mouseului pe el i de ales din meniul aprut punctul Activate Grid
Object (acelai lucru poate fi efectuat din meniul View/Grid).
Object Snaps permite schimbarea obiectului cu un pas determinat (el poate fi dat n procente,
diuimi, etc.). de exemplu, la rotirea obiectului n bara de stare vor aprea cifrele unghiului de rotire 10,
20, 30 etc. (adic cifrele se vor schimba cu un pas determinat). Reglarea pasului se poate din fereastra de
dialog Grid and Snap Settings, iar mrimea pasului se alege cu ajutorul butoanelor de reglare a pasului.
Copierea obiectelor
Copii te de tipul Copy.
Obiectele copii reprezint dublicatul originalului. Acestea sunt obiecte de sine stttoare, total
independente de el. Lor li se poate ataa diferii modificatori, materiale, transformri toate acestea nu
vor aciona cu nimic asupra originalului, la fel, ca i modificarea originalului tot nu va aciona asupra
copiei. Copiile de obicei se utilizeaz la crearea scenelor (vezi masive i copii).
Copia de tipul Instance.
Dup crearea copiei de tipul Instance, ntre copii se menine legtura: modificarea copiei
respectiv a originalului se transmite originalului respectiv copiei.
Copii de tipul Reference.
Copiile de acest tip posed o legtur bidirecional ntre modificrile originalului i copiei.
Toate modificrile, aplicate originalului, se transmit copiei. La copii este puin mai complicat: la copia
de tip Reference n plasa modificrilor apar trsturi adugtoare asupra modificatorilor comuni cu
originalul.
Dac dorim s utilizm modificatorul, care acioneaz concomitent asupra copiei i originalului,
n plasa modificrilor trebuie de artat la obiectul, care se gsete mai jos de trstur, apoi i se ataeaz
modificatorul.
106
Dac ns dorim s utilizm modificatorul numai pentru copie, trebuie de artat la modificator,
mai sus de trstura care le desparte, sau pe linie.
Obiecte standarde
Obiecte standarde
Primitive standarde
Primitive desfurate
Culoarea obiectelor
Metoda de creare a obiectelor de la tastatur
Coordonate i parametri
Crearea sferelor, cilindrilor, torurilor, capsulelor
Obiecte standard
n program exist complecte de obiecte-prime (Standard Primitives, Extended Primitives,
Doors, Widows), care se folosesc ca baze la crearea obiectelor n scen. Se poate dup dorin de
schimbat parametrii de instalare sau de acionat cu ajutorul modificatorilor.
La crearea obiectelor se folosete panelul Create, care conine urmtoarele categorii de obiecte:
Geometry (geometria).
Shapes (figuri liniare plane).
Light (surse de lumin).
Cameras (camere).
Helpers (obiecte adugtoare).
Space Warps (deformaii spaiale, ca valurile, vntul)
Systems (sistemele obiectelor ajuttoare).
Nectnd la toate categoria dat poate s includ n sine subcategorii, de exemplu Geometry
este compus din Standard Primitives, Extended Primitives, compound Object, Loft Object,
Particle Systems, Patch Grid, NURBS Surfaces, Doors, Windows.
Dup crearea obiectului apare fereastra cu parametri:
Object Type aici putem alege tipul obiectului.
Name and Color n aceast regiune se d numele obiectului i se alege culoarea obiectului.
Creation Method n acest regiune se alege metoda de creare a obiectului, de exemplu, de la
centru sau de la muchie.
Parameters aici se dau parametrii obiectului (nlimea, lungimea, cantitatea de segmente etc.).
Keyboard Entry la alegerea acestei regiuni parametrii obiectului se dau de la tastatur.
Generate Mapping Coord n aceast regiune se ataeaz legtura coordonatelor pentru
ataarea unui obiect mai complicat. (vezi Materiale)
Primitive standarde (Standard Primitives)
La primitivele standarde se refer paralelipipedul, sfera, geosfera, cilindrul, inelul, cianicul,
prisma i piramida, tubul, conul.
Primitive extinse (Extended Primitives)
107
Primitivele extinse sunt primitive complexe tridimensionale (Capsule, OilTank, Spindle,
Hedra etc.).
n afar de primitivele geometrice pot fi create i urmtoarele obiecte:
Obiecte Compound - acestea sunt obiecte combinate (Morphs, Boolean etc.).
Obiecte Loft - obiecte complexe, alctuite din figuri plane, care sunt seciuni i ci, dup care
aceste seciuni au fost presate.
Patch Grinds - acestea sunt suprafee adugtoare, care permit alinierea obiectelor relativ unul
fa de altul.
Particle Szstems - sisteme unitare. Permit imitarea proceselor atmosferice, ca ploaia, ninsoarea
etc.
NURBS Surfaces este o suprafa analitic, care permite modelarea reliefelor tridimensionale
complicate.
Doors permite modelarea uilor, reglnd parametrii lor.
Windows permite modelarea ferestrelor.
Culoarea obiectelor
n program se folosesc trei modele de culori:
Hue/Blackness/Whiteness (HBW).
Red/Green/Blue (RGB).
Hue/Saturation/Value (HSV).
HBW model de culoare. Acesta este un model mai mult real, care permite uor de gsit
culoarea potrivit. Caracteristica lui de baz palitra-patrat, pe care este artat tot spectrul de culori, cu
trecerea de alb, sus, i terminnd cu negru total, jos, culoarea poate fi aleas, apsnd cu butonul stng al
mouseului n locul care ne trebuie.
Hue (culoare, nuan) ea poate fi schimbat, translnd pointerul (sgeata din stnga) n sus i n
jos. Dac translm pointerul tocmai jos, primim culoarea neagr. Whiteness (cantitatea de lumin alb)
un dreptunghi vertical n dreapta de ptrat. Translnd pointerul (sgeata din dreapta) se poate de
schimbat saturaia culorii. Dac vom transla pointerul tocmai jos, vom primi culoarea alb.
RGB model de culoare.
Red, Green, Blue: rou, verde, albastru. Acest model de culoare se folosete n grafica
calculatorului, deoarece culorile pe ecranul displiului se dau anume ca amestecul componentelor de
rou, verde i albastru.
Cantitatea fiecrei componente se d printr-un numr ntreg de la 0 la 255 (n partea dreapt a
ferestrei de reglare a culorilor trei fii de sus se refer la sistemul RGB). Dac plasm cursorul n
stnga pn la capt, atunci nu se folosete nici o nuan a componentei alese, iar n cmpul de
ntroducere din stnga fiii de rulare vom avea 0. Dac plasm cursorul la valoarea, egal cu 255,
atunci se primete componenta maxim.
HSV model de culoare. Prezint modelul de culoare tradiional. Instalarea valorilor, ca i n
modelul RGB are loc cu micarea cursorului de la 0 la 255, dar are alt sens.
Hue (culoare) nuan. Plasarea cursorului n dreapta ne va da un rou pur. Dac vom transla
cursorul n dreapta spectrului de culori (rou, galben, verde, albastru, albastru deschis, roz), ne vom
ntoarce tot la culoarea roie.
Saturation (saturaia) instaleaz puterea culorii. Saturaia 0 minim, saturaia 255 maxim.
108
Value (luminzitate) instaleaz luminozitatea culorii. Valoarea egal cu 147, va da culoarea
determinat numai de nuan i saturaie.
Coordonate i parametri
Poziia obiectului o determin coordonatele X, Y, Z. La valorile (0, 0, 0) obiectul se va gsi
direct n centrul sistemului universal de coordonate al scenei. La crearea obiectului este necesar de
urmrit, n care fereastr de proiecie este mai convenabil de creat obiectul, de aceasta va depinde
poziia lui (obiectul este poziionat vertical sau orizontal).
Not: dac se consider c obiectul va fi modificat, atunci este necesar de mrit numrul de
segmente.
Crearea sferelor, cilindrelor, torurilor, capsulelor etc.
Exist dou moduri de creare a acestor obiecte:
De la centru
De la muchie
Parametrii de baz a acestor obiecte sunt:
Radius raza (raza interioar sau exterioar)
Sides numrul de pri (ct mai multe pri, cu att mai neted va fi obiectul).
Smooth (netezire) aceast opiune poate fi conectat i deconectat (de instalarea acestei
opiuni va depinde de calitatea desenrii obiectului).
Cap Segment, Height Segment cantitatea de segmente dup baz i nlime corespunztor.
Momentele de baz, care este necesar de inut minte la crearea primitivelor sunt: Determinai-
v , cum trebuie s fie poziionat obiectul n scen orizontal sau vertical, i n dependen de aceasta
ncepei s creai obiectul n fereastra de proiecie determinat.
Dac se consider, c obiectul va fi modificat, atunci mrii cantitatea de segmente.Atribuii
legtura coordonat la atribuirea obiectului a unui material complex (vezi Materiale).
Modificatori
Standari
Additional
Edit
Surface
Spline Edits
Utilite
Exerciii, Utilite
Modificatori
Obiectele poziionate n scen au parametrii si parametrii, dai la creare (vezi parametrii de
creare). Se poate dup necesitate de schimbat aceti parametrii sau de atribuit obiectelor selectate diferii
modificatori de pe panelul modificrilor Modify.
Modificatori sunt instrumente de baz pentru modelarea obiectelor, schimbarea formei iniiale.
Nectnd la aceasta modificatorii nu acioneaz asupra parametrilor iniiali.
Unuia i aceluiai obiect i se pot atribui mai muli modificatori. Modificatorul rmne activ pn
nu se atribuie altul, care se suprapune de asupra precedentului. innd cont de succesiunea atribuirilor
109
este posibil n plasa modificrilor. Lista modificrilor permite din modificatorii atribuii de-l ales pe cel
trebuincios i de-i schimbat parametrii.
Lista modificrilor este organizat n felul urmtor:
Pin Stack: nchide obiectul n starea curent, c el poate fi modificat, chiar dac se selecteaz alt
obiect n scen.
Active/Inactive modifier toggle (modificator activ/inactiv ): deconecteaz i conecteaz
modificatorul ales fr tergerea lui. Conectarea acestui buton permite de vzut obiectul fr
interaciunea modificatorului.
Active/Inactive in Viewport (modificatorul din fereastra de proiecie activ/inactiv): ntrerupe
influena modificatorului numai n ferestrele de proiecie.
Show end result on/off toggle (artarea rezultatului final conectat/deconectat): arat obiectul
selectat cu rezultatul aplicrii tuturor modificatorilor, indiferent de poziia curent n plasa
modificaiilor. Cnd acest buton este deconectat, atunci obiectul apare tot aa, cum arta pn la
alegerea altui obiect, la care de acum s-a aplicat un modificator, poziionat n stiv.
Make Unique (a face unic). n caz, cnd asupra mai multor obiecte se aplic un modificator, el
devine comun pentru toate, i la schimbarea parametrilor unui obiect, se petrece i asupra celorlalte
obiecte. Butonul Make Unique este destinat pentru, a rupe aceast legtur. Legtura se rupe numai cu
un obiect concret.
Remove Modifier from the stack (eliminarea modificatorului): elimin modificatorul curent.
Edit Stack (redactarea grilei): deschide fereastra de dialog Edit Modifier Stack, care conine
diferite mijloace de dirijare, pentru schimbarea numelor modificatorilor, copierea lor, inserarea lor, etc.
Butonul Collapse All/To (distrugere): distruge tot sau numai modificatorii selectai, atribuii
obiectului. Rezultatul aciunii lor rmn, ns s ne ntoarcem i s schimbm parametrii acestor
modificatori nu vom mai putea. n aa mod, obiectul se transform n Editable Mesh.
Aceasta se face pentru:
Simplificarea geometriei scenei.
Pentru micorarea mrimii fiierului.
Butonul SubObject (sub-obiect) trecerea la nivel intern al obiectului, pentru acionarea asupra
componentelor sub-obiectelor: muchii, vrfuri, segmente etc., n dependen de obiect i modificaii.
De exemplu, dac se aplic modificatorul Edit Mesh asupra primitivei geometrice, atunci lista sub-
obiectelor va fi alctuit din vrfuri Vertex, pri a suprafeelor Face, i muchii Edge.
Pentru a ne nchipui, cum acioneaz modificatorul, trebuie de-l atribuit i de-i schimbat
parametrii. Rezultatele vor fi vzute n ferestrele de proiecii.
Pentru alegerea modificatorului, care lipsete printre cei propui iniial n regiunea Modifiers,
apsai butonul More, care cheam fereastra de dialog cu lista diferitor modificatori.
Butonul Configure Button Sets este destinat pentru reglarea regiunii Modifiers, n acel caz,
dac, de exemplu, este necesar, ca printre modificatorii propui iniial s fie nc ali modificatori care-i
folosii.
Bend
Acest modificator permite ndoirea obiectului.
n regiunea reglrii ndoirii obiectului Bend se poate de schimbat unghiul de nclinare Angle i
direciile lor Direction. n regiunea Bend Axis se alege axa nclinrii. n regiunea reglrii limitrii
nclinrii Limits poate fi dat limita Limits Effect i de schimbat valoarea de sus Upper Limit sau de
jos Lower Limit.
Twist
Acest modificator permite sucirea obiectului.
n regiunea reglrii Twis t se poate de schimbat unghiul de sucire Angle, i deviaia lui Bias.
110
n regiune Twist Axis se alege axa de sucire.
n regiunea reglrii limitei de sucire Limits poate fi dat limita Limits Effect i de schimbat
valoarea ei de sus Upper Limit sau cea de jos Lower Limit.
Taper
Acest modificator permite compresarea / decompresarea obiectelor.
n regiunea de compresare Taper pot fi date unitile de aciune Amount, de reglat curba de
compresare Curve. n regiunea Taper Axis se regleaz aciunea modificatorului dup axe: Primary
aciune primar, Effect efectul de aciune, Summitry aciune simetric. n regiunea limitei de
compresare Limits se d limita Limits Effect, i valoarea ei de sus Upper Limit i de jos Lower Limit.
Noise
Acest modificator se utilizeaz, cnd trebuie de deformat suprafaa obiectului, de exemplu, la
creare munilor. El este asemntor modificatorului Wave, dar la utilizarea lui, este posibil deformarea
aleatoare a obiectului.
n regiunea de reglare Noise se d faza iniial Seed, scara de aciune Scale, functia aleatoare
a parametrilor Fractal, functia brutal/imediat Roughness/Iteratioms. n regiunea Strength se d
puterea de aciune pe axe. n regiunea Animation se regleaz animarea modificatorului.
Opiunea Animate Noise red animarea modificatorului dup parametrii dai, Frequency
frecvena: cu ct e mai mare aceast valoare, cu att mai repede se schimb stadiul Noise, Phase faza.
Extrude
Acest modificator ne d nlimea n form plan nchis.
Amount grosimea, Segment cantitatea de segmente n nlime. n regiunea Capping se dau
torele obiectului, Cap Start planele de sus, Cap End planele de jos, opiunea Morph este activ,
dac se consider, c obiectul va participa n morfing (vezi Morph), Grid grila.
Generate Mapping Coord destinaia legturii coordonate a obiectului pentru ataarea unui
material complex.
Generate Material Ids legtura de ID (numrul) materialului, prii de sus i de jos (Cap
Start, Cap End) a obiectului i se atribuie ID1 i ID2, iar prii laterale ID3.
Lathe
Acest modificator permite crearea obiectelor pe cale rotirii formelor plane.
Degrees unghiul de rotire, Weld Core grupare, Flip Normals oglindirea normale
obiectului, Segments cantitatea de segmente.
n regiunea Capping se regleaz torele obiectului, Cap Start planul de sus, Cap End planul
de jos, Morph activai-l, dac obiectul va lua parte n morfing (vezi Morph), Grid grila. n regiunea
Align se determin alinierea formei: dup minim Min, dup centru Center, dup maxim Max.
Affect Region
Acest modificator acioneaz pe o poriune a obiectului, permind crearea bulelor. n regiunea
Parameters se regleaz scara de aciune Falloff, opiunea Back Ignore Facing ntrerupe aciunea pe
partea verso, n regiunea reglrii curbei Curve se gsete regiunea de aciune a modificatorului: Pinch
mrirea, Bubble mrirea regiunii de aciune.
Cap Holes
111
Modificatorul este destinat pentru prelucrarea gurilor, care apar la suprafaa obiectului la
eliminarea segmentelor. Concomitent se creeaz segmente noi, care unesc capetele.
Smooth New Faces netezirea cu noi muchii, Smooth With Old Faces netezirea cu muchiile
precedente, All New Edges Visible arat toate laturile noi.
Delete Mesh.
Acest modificator este destinat pentru eliminarea nlimilor, segmentelor, muchiilor a ntregii
geometrii a obiectului. Acesta se deosebete de simpla eliminare, c eliminarea mai trziu poate fi
schimbat, eliminnd modificatorul Delete Mesh.
Displace (presarea)
n regiunea Displacement se regleaz gradul de aciune.
Strength, slbirea aciunii Decay, opiunea Luminance Center instaleaz aciunea
modificatorului relativ de centru Center. n regiunea reglarea imaginii i hrii Image Bitmap se alege
desenul. Dac trebuie de eliminat desenul precedent Remove Bitmap.
Map harta din Redactorul de materiale: Blur permite cu ajutorul splrii de rotunjit
rezultatul.
n regiunea Map trebuie de ales i reglat tipul hrii dup acelai principiu ca i n modificatorul
UVW Map.
FFD 2x2x2, 3x3x3, 4x4x4 (gratie)
La utilizarea acestui modificator obiectul se nchide ntr-o gratie, cu ajutorul creia, translnd
punctele de control (Control Point), poate fi schimbat forma geometric.
n regiunea Selection Level se alege nivelul sub-obiectului Sub-Object.
Sub-Object Control Point nivelul puntelor de control.
Sub-Object Lattice nivelul gratiei.
n regiunea Display poate fi refuzat artarea gratiei pe ecran Lattice.
n regiunea Source Volume (volumul iniial) reprezint aciunea iniial a modificatorului fr
schimbarea gratiei.
n regiunea Deform se poate de modificat suprafaa, Only in Volume numai n volum, All
Vertices toate vrfurile.
FFD (cyl) 4x6x4 (gratie cilindric)
La utilizarea acestui modificator se folosesc aceleai opiuni cu scopul de introducere a
schimbrilor (vezi mai sus).
n regiunea Dimensions se introduc mrimile i cantitatea de puncte Set Number of Points.
n regiunea Display se poate de refuzat de gratia Lattice n ferestrele proieciilor i de
reprezentat aciunile iniiale asupra volumului iniial fr modificri Source Volume.
n regiunea Deform se poate de modificat suprafaa obiectului numai prin schimbarea ei Only
in Volume, sau de modificat toate vrfurile All Vertices. Tension descrcare, schimbarea aciunii
gratiei asupra obiectului, Continuity continuu, limiteaz aciunea Tension.
n regiunea Selection se determin regiunea reglrii alegerii punctelor pe axe All X, All Y, All
Z (toate punctele pe X, Y i Z).
112
FFD (box) 4x4x4 (gratie paralelepipedului)
Face Extrude
Preseaz o parte a suprafeei obiectului de-a lungul normalei, care este unit cu restul suprafeei
i formeaz un obiect unic. Pentru funcionarea acestui modificator este necesar la nceput de acionat
asupra obiectului cu modificatorul Edit Mesh, iar apoi la nivel Sub-Object de ales Face. Selectnd o
poriune de suprafa de ales modificatorul Face Extrude.
Amount schimbarea grosimii, Scale schimbarea scrii, opiunea Extrude From Center
permite efectuarea presrii de la centru.
Lattice (gratie)
Modificatorul este destinat pentru crearea gratiilor mai complexe, trecnd obiectul n regimul
Wire. Opiunea Animate Noise red animarea modificatorului dup parametrii redai, Frequency
frecvena; cu ct este mai mare valoarea acesteia, cu att mai repede se schimb stadia Noise, Phase
faza.
Extrude
Acest modificator red nlimea formelor plane nchise.
Amount grosimea, Segment numrul de segmente pe nlime.
n cmpul Capping se predau planele pe torele obiectului, Cap Start planul superior, Cap
End planul inferior, opiunea Morph este activ, dac se presupune c obiectul va participa la
forfing (vezi Morph), Grid plasa.
Generate Mapping Coord generarea legturii de coordonate a obiectului pentru atribuirea
unui material complicat.
Generate Material Ids legtura la ID (numrul) a materialului, concomitent se atribuie prii
de jos i celei de sus (Cap End, Cap Start) a obiectului ID 1 i ID 2, i la cele laterale ID 3.
Lathe
Acest modificator ne permite s crem obiecte prin metoda rotirii formelor plane.
Degrees unghiul de rotaie, Weld Core unire, Flip Normals oglindirea normalei
obiectului, Segments numrul de segmenete.
n regiunea Capping se regleaz planele pe torele obiectului, Cap Start planul superior, Cap
End planul inferior, Morph l activm dac obiectul va participa la morfing (vezi Morph), Grid
plasa.
n regiunea Align se determin alinierea formei dup minim Min, la centru Center, i dup
maxim Max.
Affect Region
Acest modificator acioneaz asupra unei regiuni a obiectului, permind crearea bulelor. n
regiunea Parameters se regleaz scara de interaciune asupra feei opuse, n regiunea reglrii curbei
Curve se regleaz regiunea acionrii modificato-rului: Pinch ridicare, Bubble mrirea regiunii de
afeciune.
Cap Holes
Modificatorul este destinat prelucrrii gurilor, care apar pe suprafaa obiectului la tergerea
segmentelor, crendu-se noi segmente, care unesc marginile.
Smooth New Faces netezirea cu muchii noi, Smooth With Old Faces netezirea cu fee
vechi, All New Edeges Visible afiarea tuturor muchiilor noi.
113
Delete Mesh
Acest modificator este menit pentru tergerea vrfurilor, segmentelor, feelor sau a ntregii
geometrii a obiectului n ntregime. Se deosebete acesta de cel obinuit prin faptul c tergerea poate fi
mai apoi eliminat, tergnd modificatorul Delete Mesh.
Displace (forare)
n cmpul Displaecment se regleaz gradul de aciune
Strength, slbirea aciunii Decay, opiunea Luminance Center activeaz aciunea
modificatorului relativ de centru Center. n regiunea reglrii imaginii texturii Image Bitmap se alege
desenul. Dac trebuie putem terge desenul curent Remove Bitmap.
Map textura din editorul de Materiale: Blur -- permite splarea rezultatului pentru netezire.
n regiunea Map se poate alege i regla tipul texturii dup acelai principiu, ca i la
modificatorul UVW Map.
FDD 2x2x2, 3x3x3, 4x4x4 (rama)
La utilizarea acestui modificator obiectul se include ntr-o colivie, cu ajutorul creia micnd
punctele de control (Control Point), se poate de schimbat forma.
n regiunea Selection Level se alege nivelul sub-obiectului (Sub-Object).
Sub-Object Control Point nivelul punctelor de control.
Sub-Object Lattice nivelul coliviei.
n regiunea Display se poate de refuzat afiarea ramei pe ecran Lattice.
Opiunea Source Volume (volumul iniial) red aciunea iniial a modificatorului fr
schimbarea ramei.
n regiunea Deform se pot modifica suprafee, Only n Volume numai n volum, All Verticles
toate vrfurile.
FDD (cyl) 4x6x4 (ram cilindric)
La aplicarea acestui modificator se folosesc aceleai opiuni cu scopul introducerii schimbrilor
(vezi mai sus)
n regiunea Dimensions se introduc mrimile i numrul de puncte Set Number of Points.
n regiunea Display se poate de refuzat la vizualizarea ramei Lattice pe ecranele cu vederi i
redarea interaciunii iniiale la volumul corpului fr schimbri asupra ei Source Volume.
n regiunea Deform se poate schimba suprafaa numai la modificarea ei Only in Volume, sau
modificarea tuturor vrfurilor All Vertices.
Tension elasticitatea, schimbarea aciunii ramei asupra obiectului.
Continuity continuitatea, limiteaz interaciunea Tension.
n regiunea Selection se determin regiunea de reglare a selectrii punctelor dup axe All X,
All Y, All Z (toate punctele dup X, Y sau Z).
FFD(box) 4x4x4 (ram bloc)
Face Extrude
114
Foreaz o poriune a feei obiectului dea lungul normalei, care este unit cu suprafaa rmas i
compune un obiect unic. pentru aciunile acestui modificator este necesar ca de la nceput s acionm
asupra obiectului cu modificatorul Edit Mesh, apoi la nivel de Sub-Object de ales Face. Selectnd o
parte din suprafa aplicm modificatorul Face Extrude.
Amount schimbarea grosimii, Scale scalarea , opiunea Extrude From Center ne permite
de a fora de la cenrtu.
Lattice (rama)
Modificatorul este menit pentru crearea armelor mai complicate, care le putem crea trasnd
obiectul n regim Wire. Feele vor deveni muchii iar vrfurile legturi ale reelei (coliviei).
n regiunea Geomerty se pot regla parametrii geometrici ai reelei.
Strus Only (numai muchii), Juctions Only (numai nodurle), Both (i vrfuri i muchii).
n regiunea reglrii muchiilor Struts se pot schimba Radius Raza, mulimea segmenetlor
Segments, numrul feelor Sides, Material ID numrul materialului din componena Multi/Sub-
Object, Visible Edges arat feele vizibile, All Edges arat toate feele, Smooth regleaz
netezirea.
n regiunea reglrii nodurilor Junctions se poate de le redat diferite forme : Tetra
tetraedru, Octa octaedru, Icosa icosaedru.
Se poate schimba raza Radius, mulimea segmentelor Segments, de a alege numrul
materialului din componena Multi/Sub-Object Material ID i activarea netezirii Smooth.
n regiunea reglrii coordonatei de legtur Mapping Coordinates se poate de refuzat de la ea
prin None nimic, folosind-o pe cea existent Reuse Existing, de a crea una nou New.
Mesh Smooth
Permite netezirea carcasei (muchiile obiectului).
n regiunea Mesh Smooth se regleaz aciunea asupra carcasei Strength, gradul de netezire la
centru Relax Value, netezirea comun Sharpness.
Operate On regleaz modificarea marginilor poligoanelor.
Iterations 1,2,3,4 regleaz variantele aciunii.
n regiunea reglrii suprafeei Surface Parameters se pot regla netezirile rezultatului general
Smooth Result, asu n parte Separate By: pentru materialul Material, pentru grupa Smoothing
Groups.
n regiunea renovrii Update Options se poate efectua nnoirea permanent a rezultatului
Always, pentru calculul When Rendering, manual Manual.
Mirror
Reflectarea obiectului, sau a regiunii lui selectate. n regiunea Mirror Axis
se poate alege axa, dup care se vor oglindi obiectele. n regiunea reglrii modificatorului
Options, se transmit deplasarea Offset, i tot aici se pot crea copiile Copy a obiectului curent selectat.
Nsurf Sel, Ncurve Sel
Modificatorul este menit pentru selectarea regiunilor din sub-nivelul Sub-Object la NURBS
suprafee.
n regiunea Selection Level se alege Sub-Object. Surface -- alegerea suprafeei, Surface CV
alegerea unui vrf de control de pe dreapta orizontal, vertical din zona Selection.
Optimize
115
Simplific obiectul prin micorarea numrului de vrfuri i muchii. De exemplu, dup
interaciunea modificatorilor Displace i Tessellate.
n regiunea Level of Detail se regleaz nivelul de detaliere pentru calculul scenei Render i pe
ecranele de vederi Viewports.
n regiunea reglrii simplificrii formei Optimize se regleaz calitatea suprafeelor Face
Tresh, a muchiilor Edge Tresh, nclinaia Bias. Maxim prin pri Max Edge Len, Auto Edge
automat la muchii.
n regiunea renovare Update rezultatul renovrii manuale Manual Update.
n regiunea Last Optimized Status este reflectat starea obiectului curent.
n regiunea de salvare a opiunilor Preserve se determin graniele materialului obiectului
Material Boundaries i rotunjirea grnielor Smooth Boundaries.
Preserve
Acest modificator ne permite salvarea lungimii muchiei, valoarea unghiurilor, suprafeele i
volumul deformrilor obiectului, bazndu-ne pe copia ne schimbabil a obiectului.
n regiunea Original se poate specifica originalul Pick Original.
De artat numrul de iteraii Iterations .
n regiunile pentru pstrarea volumului Presevation Weights se pot alege lungimea muchiei
Edge Lengths, ughiul de nclinaie a suprafeei Face Angles, puterea Volume.
n regiunea de alegere Selection se alege obiectul aplicrii Apply to While Mesh atribuirea
la Mesh, numai la vrfuri anume Selected Verts. Only dac ns putem alege toate obiectele, care nu
nimeresc n regiunea de selectare Invert selection.
Relax Rotungete colurile prin slbirea lor.
Relax Value valoarea de rotungire.
Ripple (valuri concentrice);
Crearea valurilor circulare pe suprafaa obiectului.
n regiunea Ripple se descriu amplitudinile valurilor Amplitude1, Amplitude2, lungimea de
und a valurilor Wave Length, faza Phase i slbirea ei la eliminarea centrului Decay.
Wave (unde liniare) permite crearea undelor(valuri) liniare la suprafaa obiectelor.
Skew (nclinaia), n cmpul pentru valoarea nclinaiei se introduce mrimea dorit, i anume n
cmpul Amount (nclinaia), direcia n care ele se realizeaz Direction i axa dup care se
ndeplinete aciunea Skew Axis. n regiunea reglrii limitelor valorilor maximale Upper Limit i
minimale Lower Limit.
Tessellaete acest modificator permite mrirea numrului de segmente a obiectului. n
domeniul Operate On se alege tipul de modificare asupra obiectului dea lungul muchiilor sau dup
poligon, Edge muchii, Face Center centrele feelor, Tension concentraia, Iterations
iteraiile.
Mesh select
Selectarea regiunilor obiectului la nivel de Sub-Object pentru modificarea local a altor
modificatori. Selectarea se efectueaz dup acelai principiu, ca i n Edit Mesh. Selectnd o regiune,
utilizatorul, lsnd regimul Sub-Object, atribuie urmtorul modificator, menit pentru afectarea acestei
regiuni.
Bevel (nclinare)
Acest modificator se folosete la obiecte plane spline (vezi Splines), redndu-le volum,
analogic Extrude, i n acelai timp permind aplicarea nclinaiilor la muchiile obiectului obinut.
116
n regiunea Capping se poate refuza la afiarea bazei obiectului din fa (Start), sau de la spate
(End).
n regiunea Cap Type se poate alege unul din tipurile de creare a suprafeei obiectului modificat:
Morph: creeaz suprafee, necesare morfrii (vezi Morf).
Greed (plas): creeaz suprafaa n form de gratii (plas).
n regiunea Surface se regleaz parametrii pentru dirijarea deformrii feelor, rotungirii i setrii
punctului de legtur.
n domeniul Intersections se poate de prevzut ca s nu apar unghiuri ascuite la intersecia
muchiilor vecine.
La seciunea Bevel Values se aleg nuvelele (Level 1, Level 2, Level 3) pentru determinarea
nlimii sloiului ales Height i grosimea conturului sloiului Outline.
Bevel Profile
Acest modificator este sintezat din modificatorul Bevel. El permite sintezarea din dou forme un
obiect unic, astfel nct una din forme se consider profilul sau conturul (se alege cu ajutorul butonului
Pick Profile), cealalt originalul.
Delete Spline
Acest modificator elimin geometria, aleas n momentul dat de timp, n lanul de modificri n
calitate de Sub-Object se poate de-asemenea cu ajutorul tastei Delete de la tastatur.
FFD Select
Acest modificator permite selectarea punctelor de control (Control Point) a deformrii spaiale
FFD (vezi Space Warp).
La punctele selectate pentru deformaia FFD se pot aplica astfel de modificatori ca Bend, Taper
etc., modificnd astfel, pri ale obiectului, la care e aplicat deformaia.
n domeniul Selection se pot specifica All X/All Y/All Z, dup care trebuie s se selecteze
punctele de control.
Spline Select
Acest modificator, ca i Mech Select, permite transmiterea alegerii sub-obiectului (Sub-Object)
urmtorilor modificatori.
n calitate de sub-obiecte pot fi vrfurile, segmentele, splinele.
Volume Select
Acest modificator realizeaz alegerea vrfului, pri ale planelor. Dup aceasta se pot reda unu
sau mai muli modificatori seleciei i apoi animaia parametrilor.
Se selecteaz acea parte, care nimerete n Gizmo, ducnd cont c Gizmo l mai putem i
deplasa, roti i scala cu ajutorul butoanelor de pe panoul cu instrumente. Este posibil de a transla centrul
Gizmo, dac n calitate de Sub-Object se alege Center.
Linked Xform
Acest modificator permite de a angaja obiectului geometric un obiect care-l va subordona.
Translarea obiectului subordonator va afecta parametrii modificatorului aplicat obiectului geometric
dup Linked Xform.
Xform
Acest modificator ne permite de a crea i modifica poziia obiectului Gizmo. Obiectul Gizmo
rspunde de aciunile modificatorilor pe acest obiect. l putem transforma cu ajutorul butoanelor Select
and Move, Select and Rotate, Select and Uniform Scale.
117
UVW Xform
Acest modificator ne permite de a controla aplicarea hrii la folosirea modificatorului Xform.
Grupa parametrilor Mapping U tile, W tile U offset, V offset, W offset determin coordonatele
texturii pe obiect. Chanel ne permite s alegem canalul materialului.
Edit Spline
Menit pentru redactarea splinelor.
Edit Mesh
Acest modificator ne permite de a redacta suprafaa obiectului, variind poziia vrfurilor i a
segmentelor, sau n genere tergerea acestora, alipirea la obiect a altor formaiuni de acest tip. Cu
ajutorul acestui modificator se pot atribui prilor obiectului diferite materiale din componena
Multi/Sub-Object.
Vartex vrfuri;
Face pri ale suprafeei;
Edge muchii;
Edit Pach
Modificatorul acesta ne permite de a redacta suprafeele i diferite pri ale suprafeelor la nivel
de Sub-Object de structur interioar, adic muchii, vrfuri etc. Cu ajutorul acestui modificator se poate
modela lin suprafeele ndoite.
La aplicarea modificatorului programul transform suprafaa obiectului n curbe Bezier. Fiecare
cale de modificare se compune din plas (Lattice) i suprafa (Surface).
Plasa structura punctelor de control i a tangentelor intersectate, care nconjoar suprafaa.
Primul pas al modelrii este deformarea.
Suprafaa suprafaa obiectului, forma cruia se conduce de plas.
Pentru obiectele de tip Box plasa i suprafaa obiectului vizual practic c nici nu sunt repartizate
pe planurile vederilor.
Pentru obiecte de tip Sphere plasa difer pe vederi de suprafa.
Redactarea Obiectului (despritura Edit Object)
Domeniul Display aici se poate de fcut plasa vizibil sau invizibil;
Domeniul Topology ne permite mrirea sau micorarea numrului de unitilor de plas, care
compun suprafaa obiectului.
Butonul Attach ne permite s atam regiunea aleas de suprafa la selectarea curent.
Opiunea Reorient reorienteaz patch-obiectul n aa mod, ca sistemul de coordonate propriu
acestuia s se alinieze la sistemul de coordonate a altui pach-obiect.
Redactarea cilor
La redactarea cilor este necesar ca n lista Sub-Object s fie ales Patch.
n domeniul Topology se pot detaa (Detach) una sau mai multe ci (drumuri) de la obiectul
selectat. Pe ele le putem pur i simplu desface, dar se poate i copia cu ajutorul opiunii Copy, pentru al
transforma ntr-un drum independent.
118
Opiunea Reorient. Drumul inserat permite de a copia poziia i orientarea obiectului, astfel
nct noul obiect se va mica astfel c sistemul de coordonate local al obiectului se va uni la plasa curent
activ.
Butonul Delete permite tergerea drumului ales sau cteva drumuri alese. Butonul Subdevide
(nmulire)- permite majorarea numrului drumurilor n regiunea selectat sau pe toat suprafaa
obiectului, n cazul dac este activ opiunea Portable.
Pe panoul Disply se poate de ales, arta sau a ascunde plasele i suprafeele.
Redactarea prilor
La redactarea feelor este necesar ca, n lista Sub-Object s fie selectat Edge (parte).
Analogic, ca i la redactarea drumului, cu ajutorul butonului Subdevide se poate de majorat
numrul de pri segmente ale suprafeei. Astfel opiunea Propagate la inactivarea ei creeaz crpturi
n muchiile dintre feele selectate.
Redactarea vrfurilor
La redactarea vrfurilor este necesar ca n lista Sub-Object s fie prezent Vartex (vrfuri).
Opiunea Lock Handles (a ntri) unete vectorii vrfurilor astfel nct, cnd se mic una din
ele, atunci n urma ei se vor mica toate celelalte vrfuri alese.
Butonul Weld ne permite de a uni vrfurile selectate ntre dou drumuri alese n intervalul
anumit (Weld Threshold), alegnd vrfurile care trebuie unite ntre dou drumuri diferite, apoi s se
determine intervalele de mpreunare i de tastat butonul Weld.
Butonul Delete ne permite de a elimina vrfurile. Aici trebuie de acionat atent, deoarece
tergerea oricrui vrf duce la eliminarea drumurilor, care mpart acest punct de control. De exemplu,
dac tergem un vrf la sfer, va rmne o semi-sfer.
n cazul dac e activat opiunea Vertices n regiunea Filter, atunci se pot alege i transla
vrfuri. Dac este activ opiunea Vectors, atunci se pot alege i transla vectori. n cazul, cnd nu e
activat nici o opiune, atunci nu se pot redacta nici vrfuri i nici vectori.
Exist dou tipuri de vrfuri, care se pot schimba cu ajutorul unui click al butonului drept al
mouseului. n meniul contextual aprut alegem tipul de vrfuri necesar.
Tipul Coplanar. La alegerea acestui tip vrful capt nite mnere, cu ajutorul crora se pot
obine treceri rotungite ntre drumuri. Mnerul translat a vectorului ca i cum i impune pe ceilali s se
acomodeze la noua suprafa.
Tipul Corner. La alegerea acestui tip, vectorii devin unghiulari i permit crerii vrfurilor
ascuite pe suprafaa obiectelor.
Camera Map, *Camera Map (WSM)
Acest modificator ne permite ntindem harta pe obiect, ca i cnd ea ar fi proiectat cu o camer.
Carta se atribuie n Redactorul de materiale nu o textur, dar ca suprapunere de ecran (Screen).
Modificatorul Camera Map difer de modificatorul *Camera Map (WSM), prin aceea c n primul
caz carta se orienteaz o dat, cnd artai la o camer. Dac obiectul se mic relativ de camer,
orientarea hartei la camer rmne aceeai (aa cum pe acel cadru, cnd ai artat la camer). Dar
modificatorul spaial *Camera Map (WSM) rennoiete orientarea camerei la fiecare translare a
obiectului.
Map Scaler
Acest modificator susine scara obiectului independent de scara a nsi obiectului. Scale scara;
Warp Texture suprapunere echidistanat a hrii, Up Direction regiunea de alegere a direciei,
World Z Axis relativ de sistemul de coordonate mondial (axa Z), Local Z Axis relativ de axa local
a obiectului (vezi Sist koord)
119
UVW Map
Cu ajutorul acestui modificator se poate de reglat mai precis legtura de coordonate a obiectului.
n regiunea Mapping se alege metoda de proiectare a hrii:
Planar plan; Cylindrical cilindric; Spherical sferic; Shrink Warp proiectarea relativ
de suprafa, Box paralelipiped, Face fa.
Length lungimea hrii, Width limea, Height nlimea.
U Tile, V Tile, W Tile numrul de repetri ale desenelor pe axe.
n regiunea Channel se aleg canalurile 1,2.
Alignment alinierea dup axele X, Y, Z.
Fit s se lungeasc Gizmo (formula de aplicare a materialului) pe obiect.
Center alinierea pe centrul obiectului.
Bitmap Fit s se ia raportul dintre laturile Gizmo a oricrei hri salvate pe disc.
Normal Align alinierea pe normal. Trebuie s artm segmentul, direcia normalei (feei)
care se va lua pentru aliniere.
View Align harta se aliniaz paralel direciei privirii la ea de pe ecranul activ.
Region Fit pentru a determina mrimea Gizmo se nconjoar cu cursorul mouseului regiunea
de dimensiunile necesare.
Reset anularea alinierii.
Aquire luarea unei Gizmo de la alt obiect. (vezi Materiale)
Material
Permite de alegerea materialului dup numerele atribuite n redactorul de materiale (Material
Editor) Material ID de a impune un material din componena Multi/Sub-Object la tot obiectul.
Normal (normala obiectelor)
Acest modificator ne permite de a schimba direcia normalei la obiect;
Unify Normals unirea normalelor, Flip Normals oglindirea normalei.
Smooth (netezirea)
Permite de a netezii suprafaa obiectului. Opiunea Auto Smooth netezete suprafaa automat.
Operaia Prevent Indirect nu permite netezirea indirect. Valoarea Threshold determin
intervalul de netezire.
Unwarp UVW
Posibiliti n plus la redactarea coordonatei de legtur UVW (redactarea formei suprapunerii).
Butonul Edit deschide fereastra de dialog redactat cu coordonata legrii Edit UVWs, butonul Reset
UVWs anuleaz parametrii reglrii.
STL Check
nainte de a exporta fiierul n format *.stl, care se folosete n stereolitografie, este necesar de a-
l testa la greeli. Modificatorul STL-Check controleaz dace se ndeplinesc cerinele, care ar trebui s le
aib un fiier de acest format. Cerina de baz suprafeele, folosite n scen trebuie s fie nchise.
Pentru startul testrii trebuie de activat opiunea Check. Dup testare maina alege elementele care nu
corespund cerinelor. n regiunea Status se afieaz mulimea greelilor. Pentru comoditate se poate de
sortat greelile pe tipuri, reglnd regiunile Errors i Selections.
Splainuri
120
Teorie
Exerciii
Instrumente NURBS
Exerciii pe NURBS plane
Formele bidimensionale n programe se folosesc pentru crearea obiectelor plane, obiecte-loft,
obiecte de rotaie, n calitate de cale la utilizarea controlerelor animaionale. Exist dou tipuri de Spline
i NURBS Curves.
Tipurile de figuri Slines
Line (Linia). Pentru a crea o linie, apsm pe butonul Line, facem un click pe oricare vedere,
apoi ducem cursorul dup cum avem nevoie, apsnd butonul stng de fiecare dat cnd avem nevoie de
un unghi (puncte de reper) la fiecare ndoire. Terminnd linia, apsm butonul drept.
Parametrii formei:
General (generale): se redau parametrii formei;
Rendering: se redau parametrii de calcul;
Renderable (calculabile): dac ntreruptorul este activ, atunci figura va fi vizibil la calculare.
Thickness (grosimea): reglarea grosimii liniei reprezentate. Generate Mapping Coords: redarea
ntregului obiect coordonata de legtur pentru aderarea materialelor.
Creation Method (metoda creerii): alegerea metodei de creare a obiectului.
Initial Type (tipul iniial): Corner (drept), Smooth (neted);
Drag Type se aleg tipurile de legtur a vrfurilor liniilor la desenare. Corner (drept),
Smooth (neted), Bezier (neted reglabil).
Keybord Entry (introducerea de la tastatur): date numerice pentru crearea formei curente.
Parametrii formei : Modify;
Edit Object (redactarea obiectului)
Attach: legarea splinelor, Attach Multiple (legarea ctorva) Create Line (crearea liniei) pe
spline se creeaz o linie aduftoare.
Redactarea liniilor:
Sub-Object/Varex
Named Selections (denumirile vrfurilor selectate): copierea (Copy) i inserarea (Paste) a
denumirilor, date ctorva vrfuri. Dac avem mai multe vrfuri, dar lucrm cu cteva, poate s apar
necesitatea de a insera rapid vrfurile necesare. Selectndu-le o dat, putem s le denumim cu ajutorul
butonului Named Selections Sets i apoi repede de a apela de data aceasta dup nume.
Apoi urmeaz aciunile, care se pot aplica vrfurilor. Connect legarea, Break deconectarea,
Refine adugarea, Insert inserarea, Make First transformarea unghiului n primul rnd, Weld a
grupa, Weld Treshhold valoarea de prag a mpreunrii, Delete tergerea.
Sub-Object/Segment
Named Selections (segmentele alese denumite): copierea (Copy), Paste, Break deconectarea,
Refine adugarea, Detach decuparea segmentului selectat din Spline, Same Shape tot aa fel de
segment, Copy copia lui, Divide divizarea: segmentul ales se divizeaz n sub-segmente, cantitatea
crora se precizeaz la Divizions. Insert inserarea, Delete tergerea.
Sub-Object/Spline
Close a nchide. Outline se red conturul slinei pentru grosimea artat n Outline Width.
Mirror reflecia. Copy se creeaz copii ale splinelor la oglindirea Detach a detaa, Copy copie,
Reverse inversat, Insert a insera, Delete a terge.
Donut inel. Apsnd butonul stng al mouse-ului, i innd-o apsat, redm prima raz. Tot
aa se red i a doua raz.
Parametrii formei:
121
General (vezi Line);
Creation Method metoda de creare a obiectelor;
Edge (de la punctul de margin), Center (de la centru);
Keyboard Entry (vezi Line);
Parameters (parametrii): parametrii formei;
Radius 1(raza primei circumferine);
Radius 2(raza circumferinei a doua);
Circle (circumferin): apsnd butonul stng al mouse-ului i inndu-l apsat redm raza
cercului.
Parametrii formei:
General (vezi Line);
Creation Method;
Keybord Entry (vezi Line);
Radius raza circumferinei;
Arc curb. Apsm butonul stng i analogic i redm curbura.
Parametrii formei:
General (vezi Line);
Ceration Mode modul crerii;
End-End-Middle de la punctele de la mrginae la centru, Central-End-End de la centru la
punctele de margin.
Keyboard Entery (vezi Line);
Parameters parametri formei;
Radius raza, From, To coordonatele capetelor, Pie Slice se unesc punctele din margin la
centru curbei, nchiznd astfel figura. Reverse (ntoarcerea): schimb direcia curbei cu cea opus.
Helix spiral. De la nceput apsnd butonul stng al mouse-ului redm raza spiraleis i apoi
reglm nlimea i o fixm, iari fornd butonul stng al mouse-ului. Apoi redm raza a doua
subierea sau ngroarea spiralei i analogic nlimii o fixm.
Parametrii formei
General (vezi Line);
Ceration Mode metoda crerii;
Edge (de la punctul de margin), Center (de la centru);
Keyboard Entry (vezi Line);
Parameters parametrii;
Radius 1 prima raz, Radius 2 raza a doua, Height nlimea, Turns mulimea de
nfurri a spiralei, Bias deplasarea nfurrilor la unul sau alt capt a spiralei.
Ngon poligon. Se creeaz cu o apsare a butonului stng a mouse-ului n timpul redrii razei.
Parametrii formei:
General (vezi Line);
Keyboard Entry (vezi Line), Corner Radius: raza rotunjirii unghiurilor;
Parameters:
Radius raza formei, Iscribed form nscris, Circumscribed forma circumscris, Slides
numrul de laturi, Corner Radius raza rotunjirii unghiurilor, Circular rotunjete laturile
poligonului pn la circumferin.
122
Rectangle dreptunghi. Se reproduce apsnd pe butonul stng al mouse-ului n oricare dintre
colurile dreptunghiului, dup aceasta deplasm cursorul la poziia colului opus.
Parametrii formei :
General (vezi Line);
Creation Mode metoda de creare;
Edge dintr-o parte , Center de la centru;
Keyboard Entry (vezi Line);
Parameters:
Length lungimea, Width limea, Corner Radius raza de rotunjire a unghiurilor.
Ellipse elips. Forai butonul stng al mouse-ului i tragem pn la coordonatele alese. Cnd
vom elibera butonul se av crea o elips, o ptrime a crei numai bine ncape n dreptunghiul creat de
cursor.
Parametrii formei:
General (vezi Line)
Creation Mode metoda de creare a obiectelor ;
Edge de la punctul de margin; Center de la centru;
Keyboard Entry (vezi Line);
Parametrii:
Length lungimea i Width limea;
Star stea. Se creaz de la centru fornd butonul stng al mouse-ului deplasnd pn cnd se va
obine prima raz dorit. Apoi redm a doua raz, i o fixm cu un click.
Parametrii formei:
General (vezi Line);
Keyboard Entry (vezi Line);
Parametrii:
Radius 1 raza nti, Radius 2 raza a doua, Points numrul de puncte vrfuri ale stelei,
Distortion deformarea formei pe contul rotirii unei raze relativ de cealalt. Fillet Radius 1 i Fillet
Raduis 2 rotunjirea vrfurilor primei a a doua raz.
Text textul se introduce n fereastra Text, poziia lui se red cu un click al butonului stng al
mouse-ului n orice punct al ecranului vedere.
Parametrii formei:
General (vezi Line);
Parameters: se aleg stilul, nclinaia, reprezentarea i alinierea textului.
Size mrimea textului curent, Kerning distana dintre literele textului.
Section seciune. Pentru a cerea o seciune, apsm butonul stng ntr-un col al figurei, i
innd-o apsat deplasm cursorul mouse-ului n colul opus al figurii.
Parametrii formei:
General (vezi Line);
Section Parameters:
Create Shape forarea butonului creaz o form de secionare la intersecia seciunii cu figura
tri-dimensional.
Update a renova;
When Selection Moves la translarea seciunii;
When Section Seleceted la alegerea seciunii;
Manually manual;
Update Section renovarea seciunii;
Section Extents mrimea seciunii;
123
Infinite infinite, Section Boundary micorarea mrimii seciunii, Off deconecat, Section
Size mrimea seciuii.
Length lungimea i Width limea.
Panoul de instrumente NURBS
Butoanele panoului de instrumente NURBS se utilizeaz pentru crearea suprafeelor curbilinii.
Create point pentru a crea un punct;
Create point point crearea unui punct pe plasa planului;
Create curve point crearea unui punct pe o curb;
Create curve curve point crearea punctului de intersecie a dou curbe;
Create surf point crearea unui punct pe suprafa;
Create CV curve crearea curbei CV;
Create point curve crearea unei curbe de puncte.
Create fit curve crearea unei curbe pe o suprafa;
Create transform curve crearea unei copii proporionale a unei curbe;
Create blend curve crearea curbelor cu ajutorul prelungirilor;
Create offset curve generarea unei copii a curbei;
Create mirror curve generarea copiei oglindite a unei curbe.
Create fillet curve crearea unei curbe netezite;
Create chamfer curve crearea unui segment;
Create U iso curve crearea unui segment pe axa U pe o suprafa;
Create V iso curve crearea unui segment pe axa V pe o suprafa;
Create CV surface crearea unei suprafee CV;
Create point surface crearea unei suprafee de puncte.
Create transform surface crearea unei copii proporionale a unei suprafee;
Create blend surface crearea unei suprafee de legtur;
Create offset surface crearea unei copii a suprafeei;
Create mirror surface crearea unei copii oglindite a unei suprafee;
Create extrude surface crearea unei suprafee prin presare;
Create lathe surface crearea suprafeelor de rotaie;
Create ruled surface crearea suprafeelor din curbe;
Create Uloft surface crearea unei suprafee loft;
Create cap surface crearea unei suprafee dintr-o curb circular.
Obiecte loft
Obiecte loft
Exerciii
Deformarea obiectelor loft
Crearea:
nchipuii-v c ai creat o figur plan i a-i ntins-o dup o linie oarecare (astfel cum lucreaz
modificatorul Extrude, Lathe): rezultatul i va fi un loft-obiect. La crearea unui loft, putei deplasa
cteva spline (figuri plane) dea lungul unei ci, schimbnd dimensiunile ntre seciuni, la necesitatea de
124
a multiplica seciunile. Crearea lofturilor necesit spline-uri (Shape). Unul dintre aceste spline
reprezint calea, dup care se mic splinul seciunea.
Lofturile se utilizeaz la crearea obiectelor cu un numr mare de diferite seciuni, la necesitatea
de a anima seciunile, precum i pentru modifing (vezi Modifing) al obiectelor.
La lofturi pentru modifing trebuie respectate urmtoarele condiii: toate splinele trebuie s aib
un numr constant de vrfuri, obiectele componente trebuie s conin un numr constant de spline
introduse.
Pentru a este posibil de a animaiona calea loftului (Path), a seciunilor (Shape) i deformarea la
aciunea asupra loftului.
Nite reguli pentru crearea corect a unui loft:
Path Calea.
Path trebuie s fie un spline simplu (vezi Shape) sau s se compun din cteva spline simple sau
module NURBS. Pentru ca s fie mai pe neles: Donut sau Text din cteve simboluri (Shape) nu poate
reprezenta un drum.
Shape seciune.
Aadar, minimum dou figuri plane. Una din ele calea, anume cu ea se determin adncimea
obiectului. A doua figur plan, numit Shape (seciune), determin forma obiectului. Cantitatea
intersectrii pe cale nu sunt limitate.
Calea poate fi o linie nchis sau deschis, coninnd mai mult de un splin.
Deformarea lofturilor
La crearea obiectelor complicate se utilizeaz deformarea lofturilor. Pentru aciunea
deformatoare pe loft nu trebuie atribuit modificatorul de modificare. Orice mod de deformare poate fi
animat.
Exist 5 tipuri de deformare a lofturilor:
1.Scale Deformation scaleaz seciunile loft-obiectelor pe proiecia axelor X, Y. nimerind n
fereastra de dialog a deformaiei, putei modifica conturul pe fiecare proiecie. Dac avem nevoie de
aciune simetric, legndu-le ntre ele cu ajutorul butonului Make Symmetrical.
Pentru modificarea proieciei unei curbe se adaog noi noduri, cu ajutorul instrumentului Insert
Corner (Bezier) Point. Nodurile pot fi micate i mai putem s le modificm proprietile. Se face acest
lucru ca i la lucru cu splinele: pe nodul selectat facem un click drept i selectm n fereastra de
parametri noul su tip : Corner nod de col, Bezier-Smooth nod netezit, Bezir Corner nod
unghiular netezit.
Observaii: n fereastra Skin Parameters pe panoul Modify este plasat butonul Skin, care arat
reprezentarea geometric a suprafeei obiectului-loft. n fereastra Skin Parameters pe panoul Modify
este butonul Optimize Shapes, simplific geometria loftului pe perimetrul acestuia. Gradul de
dificultate a loftului depinde de dificultatea cii, care se determin prin numrul de puncte de control n
fereastra Scale-deformaie i setrile n fereastra Skin Parameters.
2.Twist deformeaz seciunile prin rotirea mprejurul direciei drumului. Fereastra de dialog
seamn cu cea a Scale Deformation. Deosebirea dintre acestea const n faptul c primele 5 butoane n
Twist sunt neactive, deoarece acesta acioneaz doar ntr-o direcie. Linia roie determin gradul de
nclinaie.
3.Teeter rotete (stoarce) seciunile n jurul axelor X Y. n fereastra de dialog ca parametru
iniial este apsat butonul pentru stoarcerea simetric asupra axei.dac avem nevoie de a aciona numai
asupra unei axe, atunci dezactivm butonul pentru stoarcerea simetric.
4.Bevel aceast deformaie seamn cu Scale. Ea schimb mrimea seciunilor (scaleaz). n
deosebire de Scale n aceast deformaie se poate de determinat gradul de interaciune (n uniti,
125
repartizate pe axe). Lucrul cu fereastra Bevel-deformaii este analogic cu cel efectuat cu celelalte
metode.
5.Fit dumneavoastr creai spline, care reprezint seciuni ale lofturilor, aplicate pe plane. n
fereastra de dialog Fit Deformation redactarea splinelor se efectueaz la fel ca i n ferestrele de
deformare precedente. Pentru ca s folosim spline-ul creat n calitate de proiecie activm butonul Get
Shape, dup aceasta selectm splinul. Proieciile se redacteaz cu folosirea acelorai taste ca i n
cazurile precedente.
Camera
Camera n scen
Camera n Max este predestinat pentru alegerea punctului optim al profilului cu corecia
unghiului de vedere, distanele focale i punctele de animaie i parametrii. Alegerea punctului de vedere
se poate efectua i n vederea Perspective, dar aici nu avem posibilitatea reglrii corecte i ndeplinirea
mai convinabil a astfel de aciuni. Se creeaz o camer pe panoul Create/Camera. Camerele pot fi de
dou tipuri : Free (liber) i Target (cu o direcie). Deosebirea ntre ele const n faptul, c la camera cu
direcie se regleaz aparte Target (punctul la care este legat camera, acest punct i determin tot odat
i direcia). Camera Free se regleaz ca un obiect integru.
Camerele n 3DS Max, ca i obiectele obinuite pot fi deplasate i rotite, n dependen de
cerine, i utiliznd instrumentele necesare. Pentru a vedea cum arat lucrurile din scen din partea
camerei, trebuie s facem un click pe denumirea unei vederi i din meniul aprut s alegem
Views/Camera. Exist i posibilitatea de a regla anume fereastra Camera, pe panoul de comand cu
ferestrele de vizualizare.
Modificarea parametrilor camerei n scene:
Modificarea sau schimbarea parametrilor camerei se produce din panelul de comand Modify, n
Parameters (parametri). Aici se redau valorile pentru Lens (lentila) i pentru FOV (ungiu de
cuprindere), Orthographic Projection (proiecia ortografic).
Panoul Stock Lenses ne permite alegerea unei distane focale standarde n milimetri
15mm..200mm.
ntreruptorul Show Cone coprinde acele obiecte care au nimerit n zona de vedere a camerei,
independent este ea selectat sau nu.
ntreruptorul Show Horizon activeaz i dezactiveaz observarea liniei orizontului.
Evirment Ranges
(regiunea de reglare a intervalelor mediului nconjurtor)parametrul Ranges se folosete
n acele cazuri, cnd n scen sunt prezente efectele atmosferice (Fog, Volume Fog) pentru
determinarea apropiatului (Near Range) i a ndeprtatului (Far Range), se utilizeaz n acele cazuri
cnd se iniializeaz intervalele de intensitate a ceii relativ de camer.
Acest parametru este legat de reglarea efectelor atmosferice n fereastra Rendering/Envirment
(nconjurtorul). n aceast fereastr n regiunea Standard se reguleaz procentul de densitate, adic
intransparena ceii i a intervalelor minim i maxim. ntre graniele acestora se situeaz un tunel.
Cliping Planes
(excluderea obiectelor din zona de vedere a camerei la deprtare)
opiunea Clip Manually (decuparea manual) determin pentru plane valoarea Near Clip
(apropiat) i Far Clip (ndeprtat), situndu-se mai departe, obiectele se desprind adic nu sunt
percepute. n scene vor fi vizibile numai acele obiecte (pri de obiecte),care s-au situat ntre planele
Near Clip i Far Clip.
126
Lumini
Surse de lumin
Sursele de lumin n 3Dmax modific surse reale de lumin ele ilumineaz scena. Cum i
oriice alt obiect n program, sursele de lumin pot fi alese dup diferite criterii i de le modificat n
dependen de problem. La crearea scenei obiectul se ilumineaz iniial automat. Cum numai se
creeaz prima surs de lumin, iluminarea automat se anuleaz. La eliminarea tuturor surselor de lumin
create, iluminarea automat se conecteaz.
Sursele de lumin pot fi de cteva tipuri:
Surse de lumin de tip omni (punctiforme)
Astfel de surse degaj raz uniform n toate direciile.
Pentru a crea o surs de lumin de tip Omni, se selecteaz mai nti panelul Create/Lights i
efectum un click pe butonul cu denumirea Omni. Apoi se alege vederea necesar i locul unde trebuie
creat sursa de lumin, i efectum un click stnga.
Parametrii sursei de lumin Omni
Parametrii sursei de lumin se pot schimba imediat dup crearea acesteia, n regiunea
parametrilor. Dac dup crearea sursei, n scen au fost urmrite unele transformri, atunci parametrii
acesteia pot fi modificate pe panoul Modify.
1.General Parameters(parametrii generali).
n regiunea Color (vezi Obiecte de Baz) aceste dou panele ne permit de a schimba culoarea
sursei n una din cele dou palitre de culori pentru determinarea culorii. Sistemul RGB ne permite de a
da valori pentru Rou, Verde i Albastru, dar sistemul de culori HSV nuana de culoare (situarea n
spectru de culori), densitatea i intensitatea culorii sursei. Valorile le putei introduce desinestttor sau
de la tastatur, sau cu ajutorul spinerelor.
Culoarea, pe care o reglai, se reprezint n fereastra culorii. Dac facem un click pe el cu
mouseul, se deschide fereastra de dialog Color Selector: Light Color pentru reglarea culorii.
n Multiplier se red intensitatea culorii. Se pot atribui i valori negative, n acest caz lumina
devine negativ (vezi Exerciiul).
Cteodat trebuie de luminat numai un obiect dat, sau de fcut astfel ca, numai un obiect s lase
umbr. Butonul Exclude ne permite excluderea obiectelor selectate din luminare (eliminare/includere),
care conine lista obiectelor. Anume n n aceast list se pot include sau exclude obiectele din
iluminare.
Opiunile Conrast i Soften Diff Edge determin claritatea de trecere de la regiunea iluminat
de surs la sectoarele neiluminate: Contrast face aceast trecere mai rapid, dar Soften Diff Edge
dimpotriv mai lin.
Obiunea affect Diffuze (efectul de colorare) activeaz i dezactiveaz efectul de interaciune a
sursei cu obiectul adic cu iluminarea lui.
Opiunea Affect Specular (efect de strlucire) activeaz i dezactiveaz efectul de strlucire a
suprafeei de la sursa de lumin. Cnd opiunea este dezactivat se obine efectul de suprafa mat.
Regiunea Attenuation (slbire)
Aici putei s impunei mrimile intervalelor de intensitate. n legtur cu acest fapt opiunea
Use activeaz/dezactiveaz folosirea granielor n ecranele de vederi i obiunea Show activeaz
vizibilitatea granielor ferestrelor de vederi, independent de faptul dac este selectat ori nu o surs de
lumin.
Slbirea ne permite de a schimba aciunile intensitii luminii pe dou intervale Near (la
aproapele) i Far (la ndeprtat), care la rndul lor se mpart n dou: Start (iniial) i End (final).
127
n regiunea Decay (stingere) se red gradul de interaciune a sursei de lumin pe obiect.
Interaciunea se poate de interzis (none), ea poate fi slbit i aproape stins (Inverse viceversa), sau
de a aciona proporional slbirii (Inverse Square).
2.Projector Parameters (parametrii proiectorului).
n aceast regiune sursa de lumin Omni se schimb n Projector. Celui de pe urm i se poarte
atribui o hart din biblioteca Map. Mai detailat despre proiectori se poate de aflat din exerciii.
3.Shadow Parameters (parametrii umbrei)
Pe acest panou se pot regla parametrii umbrelor, incidente de pe obiectele luminate, sau n
genere de a te dezice de la ele, dezactivnd opiunea Cast Shadows.
Cast Shadows: reglri individuale a generrii umbrei.
Use Global Settings: dac reglm parametrii Map Bias, Size, Smp Range i artm opiunea
Use Global Settings, atunci la urmtoarea schimbare a parametrilor sursei va fi suficient de a activa
aceast opiune ca s se restabileasc parametrii iniiali.
Use Shadow Maps/Use Ray-Traced Shadows: se determin dac se va folosi calculul umbrei
doar conturul obiectului (shadow maps) sau se va duce cont i de material, i opiunile de transparen
(Ray-Traced shadows).
Surse de lumin de tip Target i Free Directional
Aceast surs genereaz fluxuri de lumin orientate, care se propag paralel. Target Direct are
legtur el, Free Direct e ndreptat liber (tot aa ca i cu Free Camera, Target Camera).
Parametrii luminii Directional
Parametrii din regiunea General Parameters i Shadow Parameters pentru sursa de lumin
Directional sunt identici parametrilor Omni.
Directional Parameters
n cmpul pentru introducerea Falloff se nscrie mrimea intervalelor externe de stingere a
luminii spre margini.
Opiunea Show Cone include n sine vizibilitatea unui con.
Circle, Rectangle schimb forma (seciune) conul de lumin. La setarea formei rectangulare
(Rectangle) apare posibilitatea de a schimba corelaia dintre laturile dreptunghiului luminiscent
Aspect (aspect ratio).
Sursele de lumin de tip Target Spot i Free Spot
Lumina n sursele Spot iese dintr-un punct i se propag, lrgindu-se, ntr-o direcie oarecare,
sau, cu alte cuvinte, se propag conic. Proprietile sursei Target Spot (lumin orientat) sunt identice
proprietilor Free Spot (lumin liber).
Parametrii Spot deasemenea sunt la fel ca cei ai sursei Direcional.
Oriice surs de lumin poate fi translat, rotit i scalat pe ecranele de vederi la fel ca i toate
celelalte obiecte standarde n 3DMAX.
Materialele
128
Material Editor
Materiale
Suprapunerea hrilor (Bitmaps)
Tipuri de hri (Map Types)
Descrierea tipurilor de hri
Materiale Matte/Shadow
Materiale Raytrace
Material Editor
Redactor de materiale. Date despre iconie.
Sample Type determin tipul de vizualizare preventiv, folosit n slot sfer, cub sau
cilindru.
Backlight(iluminare) adaog iluminare la slot. Efectele acestuia sunt vizibile la vizualizarea
preventiv n form de sfer. Iluminarea este ndeosebi folositoare n cazul, cnd se elaboreaz materiale
noi.
Background fonul din spate n slot. E folositor, cnd apare necesitatea de a vedea rezultatul
interaciunii ntre transparen i netransparen.
Sample UV Tiling reguleaz numrul de repetri ale copiilor exemplului de textur bitmap pe
suprafaa slotului la crearea unui material complicat.
Setul de exemplare Tiling acioneaz numai asupra slotului i nu are nici o atribuie la geometria
n scen.
Video Color Check (stingerea culorilor video) activeaz materialul obiectului pentru culori,
care nu se includ n NTSC sau n pragul PAL. Aceste tipuri de culori au tendina de a se schimba cnd
imaginea se transmite la vizualizare. Pixelii, care conin aceste culori slbesc pe obiect.
Make Preview (vizualizare prelabil), Play Preview (derularea nscrierii), Save Prevew
(salvarea nscrierii) aceste butoane ne permit crearea, derularea i salvarea (n AVI fiiere) animaia
materialului n slot n coordonate reale ale timpului.
Options (opiunile editorului de materiale) reglrile dirijrii cu sloturile.
Select By Matrial (alegerea dup material) alegerea obiectului din scen pe baza celui ales n
Editorul de Materiale. Obiectele ascunse nu se selecteaz chir dac metrialul este atribuit lor.
Get Material (obinerea materialului) cheam fereastra de dialog Material/Map Bowser,
care permite de a alege i a numi materiale i texturi.
Put Material to Scene renoveaz materialul n scen dup ce a fost redactat. S admitem c
dorii s copiai materialul i s experimentai cu copia lui, lsnd n pace exemplarul iniial (sau n
genere creai un nou material i l denumii cu acelai nume). Dac s-a obinut rezultat pozitiv i ai
hotrt s-l nlocuii pe cel vechi din scen, atunci pur i simplu forai acest buton pentru a v atinge
scopul.
Assign Material to Selection asigneaz materialul coninut n slot obiectului selectat din
scen.
Reset Map/Mtl Default curarea slotului. Dup acesta slotul devine sur i apar reglrile
definite ca iniiali.
Make Material Copy (crearea unei copii a materialului) nghe slotul activ, copiind
materialul pe dnsa. Materialul n acest caz -i pstreaz numele.
Put to Library (plasarea n bibliotec) adaog materialul ales la materialele existente.
Material Effects Channel (canalul efectelor ale materialului) adiioneaz unul din canalele
pentru utilizarea efectelor n Video Post.
ID = 0 nseamn, c canalul efectelor nu este n folosin.
129
Show Map In Viewport (reprezentarea texturii n ecranul vederii) arat textura
materialului complicat pe suprafaa obiectului n regimul de vizualizare Smooth+Highlights pe ecranele
vederilor.
Show End Result (vizualizarea rezultatului final)
1.Pentru materialele cu o structur complicat (componente) se reprezint rezultatul final cu
toate materialele care intr n structura lor.
2.Arat pe slot numai acel nivel al materialului, pe care v aflai n momentul dat, mpreun cu
cele de mai jos:
Go To Parent (trecerea la printe) deplasarea cu un nivel mai sus, de la materialul
subordonat printelui.
Go Forward To Subling (trecerea la materialul cel mai apropiat frate) deplasarea
printre materiale, care se afl pe acelai nivel de subordonare materialului printe.
Material/Map Navigator (navigatorul texturilor i a materialelor) fereastra de dialog Map
Navigator, care aprovizioneaz vizualizarea rapid prin intermediul ierarhiei texturilor n material.
Pick Material From Object preluarea unui material de pe un obiect. Activai iconia, facei
click pe obiectul ales, i materialul apare pe slotulselectat.
Material/Map Browser.
View List (vizualizarea listei) vizualizarea listei materialelor posedate.
View List + Icons permite vizualizarea listei materialelor posedate ct i exemplarele lor n
form de sloturi.
View Small Icons vizualizarea materialelor n form de butoane mici.
View Large Icons vizualizarea n form de butoane mari.
Update Scene Materials from Library nnoirea din biblioteci a materialelor n scen.
Delete From Library tergerea materialului din bibliotec.
Clear Material Library tergerea coninutului dintr-o bibliotec de materiale.
Broeswse From vizualizarea din
Mtl Library vizualizarea din bibliotecile redactorului de materiale.
Mtl Editor vizualizarea materialelor active n momentul dat pe sloturile n redactorul de
materiale.
Active Slot materialul pe slotul activ.
Selected materialul obiectului selectat din scen.
Scene materialele n scen.
New materialele noi.
Show reflectarea; Materials numele i tipul materialului; Maps texturi.
Root Only la vizualizarea materialelor scenei: afiarea obiectului la care este ataat materialul.
La crearea noului material:
Putem repartiza hrile nenecesare dup proprieti:
2D maps hri bidimensionale.
3D maps hri tridimensionale.
Compositors combinate.
Color Mods care prelucreaz culorile.
Other hrile oglindite.
All afiare total.
Tipurile de umbrire (Shading)
Constant nuanm uniform fiecare segment al obiectului, netezind trecerile ntre ele, crend
muchii, ca ochiul n form de plas al insectelor.
130
Phong tonarea se determin pentru fiecare pixel, se utilizeaz rezultatul mediat netezit al
laturilor.
Blinn difer de Phong prin calculul mai lin al umbrelor luminoase. Pentru el trebuie, ca i
pentru Phong, generarea de treceri line de ctre Soften, n care se pierde o parte din informaie a lucirii.
Metal imiteaz materialul metalului.
2-Sided iniial se reprezint doar suprafeele faciale a muchiilor. La necesitate se pot calcula i
prile interioare a feelor obiectului, pentru aceasta este destul de a activa opiunea 2-Sided. Dar
ndeosebi dac i se atribuie proprietatea de oglindire la calculul scenei muchia va fi calculat dublu:
din partea de fa i din interiorul obiectului, plus oglindirea ei.
Aceast operaie se utilizeaz, dac este necesar, de exemplu de a reprezenta toate gratiile unei
colivii.
Wire regim de plas.
Face Map suprapunerea texturii pline pe fiecare segment al obiectului.
SuperSample cel mai neted calcul al materialului (cu ajutorul Antialiasing).
Suprapunerea texturilor cu parametri diferii:
Masive i Copii
Masive i copii
Exerciiul Insul
Masive i copii
n procesul lucrului deseori apare necesitatea de a crea una, dou, sau chiar mai multe copii ale
obiectului (dublicate).
nchipuii-v cerul nstelat cu un numr mare de stele, firioare de nisip pe fundul malului etc. n
toate aceste cazuri apare necesitatea n crearea copiilor.
Ce pot aceste copii-dublicate?
Noile obiecte-dublicate le putem transforma, adic transla, roti, i scala.
Se pot schimba coordonatele sistemului i transformarea centrului.
Se pot crea copii de cteva tipuri Copy, Instance i Reference.
Copy absolut independent de obiectul iniial. La diferite transformri, transformrile
originalului nu vor influena nicidecum asupra obiectului copie a acestuia.
Instance acest tip de copie, este copia la modificarea creia se modific i originalul i
viceversa.
De exemplu, dac dorim s desenm un stol de peti, atunci pe ei se poate de-i creat iniial ca
Instance copii, i apoi de-l animat, aplicnd modificatorul Ripple la unul din petiori. Ca rezultat tot
stolul va pluti, efectund fiecare n parte aceleai micri.
Reference copii. La astfel de copii orice modificator, aplicat originalului, va afecta asupra
Reference copiei, dar n nici un caz invers.
n program exist cteva metode de creare a dublicatelor:
Crearea copiilor innd apsat tasta Shift, selectm obiectul, care trebuie copiat; apoi selectm
butonul de micare, rotaie sau scalare, i meninnd apsat tasata shift i butonul stng al mouse-ului,
crem un obiect dublicat nou. n aa mod putem crea circumferine (utiliznd butonul rotirii de pe
panoul de instrumente) i linii (utiliznd butonul de translare de pe panoul de instrumente) ct i crearea
mulimilor de obiecte.
131
Crearea masivelor
Folosirea tastei de mulime ne permite crearea unui, sau a dou masive tridimensionale. Astfel ca
n timpul crerii, s le putem scala, roti, ntoarce i translarea la o distan anumit.

n fereastra de dialog Array n regiunea Incremental se poate de selectat parametrii pentru
translare, rotire, scalare a copiilor.
Move determin distana dintre fiecare obiect din viitoarea mulime pe axele X, Y, Z n
uniti.
Rotate determin gradul de rotire relativ de oricare din cele trei axe pentru fiecare obiect din
masiv (n grade).
Scale determin procentajul din scar (micorare sau mrire) dup orice ax pentru fiecare
obiect al masivului (n procente).
Totals (mulimi comune)
Move determin distana total pe fiecare din cele trei axe ntre punctele de centru a dou
obiecte mrginae a mulimii. De exemplu dac ordonm zece obiecte pe axa X cu valoarea de 100,
atunci 10 obiecte vor fi aliniate ntr-un rnd de lungimea de 100 uniti ntre dou obiecte mrginae.
Rotate determin gradele ntregi de rotire dup oricare dintre cele trei axe.
Opiunea Re-Orient permite de a roti obiectele relativ de axele lor locale la rotirea lor n jurul
sistemului mondial de coordonate (vezi sistemele de coordonate).
Scale determin scara plin a obiectelor pe fiecare din cele trei axe.
Opiunea Uniform deconecteaz spinii Y, Z i aplic modificarea X dup toate axele,
terminnd cu scara.
n regiunea Type of Object se permite crearea masivelor de tip Copy, Instance i Reference.
n regiunea Array Dimensions se poate se ales numrul necesar de copii (Count), ct i setarea
densitii mulimii.
1D unidimensional, 2D bidimensional, 3D tridimensional.
Reflecia obiectelor
Reflecia se utilizeaz n cazurile cnd avem nevoie de a obine copia obiectului, care ar fi
oglindirea originalului.
Dup tipul oglindirii obiectele pot fi Copy, Instance i Reference.
n fereastra de dialog, care apare dup selectarea butonului Mirror pe panoul de instrumente,
permite reflectarea obiectelor pe axele X, Y, Z, XY, YZ, ZX.
Comanda Mirror deasemenea poate fi selectat din meniul Edit, lucru care duce la apariia
ferestrei de dialog Mirror, n care deasemenea pot fi ndeplinite reglrile necesare.
Utilizarea butonului de reflectare permite crearea copiilor oglindite a obiectelor dup toate trei
axe, sau pur i simplu reflexia a nsi originalului.
Teorie. Lumina i culoarea
Sistemul vizual al omului percepe radierile electromagnetice cu lungimea de und de la 400 pn
la 700 nm.(nanometri, 1nm egal cu 10
9
m) ca lumina vizibil. Lumina se primete direct de la surs, sau
indirect, prin reflectarea ei de la obiect sau refracia prin el.
Sursa sau obiectul se numete acromatic, dac lumina conine toate lungimile de und vizibile n
proporii aproximativ egale. Sursa acromatic pare a fi alb, iar lumina acromatic reflectat sau
132
refractat alb, sur sau neagr. Albe arat obiectele, care reflect mai mult de 80% lumina sursei albe,
iar negre mai puin de 3%. Valorile intermediare dau obiectelor nuane sure.
Diferena dintre luminozitate i strlucire const ntr-aceea, c luminozitatea este o proprietate a
obiectelor reflectoare care nu lumineaz i se msoar de la negru pn la alb, iar strlucirea este
proprietatea obiectelor care lumineaz i se msoar de la mic la mare.
Dac lumina conine lungimi de und n proporii diferite, atunci ea se numete cromatic (cu
alte cuvinte, colorat). La lungimea de und, care se gsete la 400 nm lumina pare violet, iar la 700
nm roie. La mijloc se gsete albastru deschis, albastru, verde, galben i oranj.
Din sine radierea electromagnetic nu are nici o culoare acest sim apare, ca o reacie a
sistemului nervos a omului la undele electromagnetice.
Obiectul pare colorat, dac el eman lumina ntr-un diapazon ngust de lungimi de und i le
absoarbe pe celelalte. Prin interaciunea culorilor care cad pe obiect i culorile care se reflect pot s
apar efecte interesante. De exemplu, la reflectarea culorii verzi de la un obiect alb i lumina, i obiectul
par verzi, iar dac cu o lumin verde se lumineaz un obiect rou, atunci el va fi negru, deoarece de le el
lumina aproape c nu se reflect.
Reprezentarea psihofiziologic a luminii se determin prin nuana culorii, saturaia i
luminozitatea. Nuana culorii permite deosebirea culorilor, iar saturaia determin gradul de slbire
(amestecare) a culorii date cu alb. La culoarea pur ea este egal cu 100 % i se micoreaz pe msur
ce se adaug alb. La culoarea acromatic saturaia este egal cu 0%, iar luminozitatea este egal cu
luminozitatea acestei culori.
Deoarece ochiul reacioneaz numai la culorile roie, verde i albastr, ele se numesc culori de
baz.
n grafica pe calculator se folosesc dou sisteme de amestecare a culorilor: RGB roie, verde,
albastr (red, green, blue) i CMY albastru deschis, magent, galben (cyan, magenta, yellow).
Albastru deschis, magenta i galbenul sunt culori adugtoare a celor trei culori de baz: rou,
verde, albastru. Noiunea de adugtoare nseamn n cazul dat aceea c aceste culori se combin una pe
alta pn la alb: albastru deschis i rou sunt egale cu culoarea alb etc. este interesant c culoarea
magent, nu exist n spectrul luminii solare (el trebuie s se gseasc ntre violet i rou), el subiectiv se
creeaz de sistemul vizual a omului.
Modelul RGB este comod de-l folosit pentru artarea culorii obiectelor luminoase, de exemplu,
pixelilor monitorului sau becurilor colorate. Dac becul lumineaz n spectrul rou i verde, atunci ea
pare galben (rou plus verde egal cu galben). Amestecarea tuturor culorilor din acest model formeaz
culoarea alb.
Modelul CMY se folosete pentru obiectele care reflect i refract lumina, de exemplu, n
filtrele de lumin i poligrafie. Dac culoarea se reflect de la o foaie de hrtie, pe care este imprimat
culoarea galben i magenta, atunci culoarea galben va absorbi culoarea albastr care se conine n
lumina care cade pe aceast foaie, iar magenta culoarea verde; rmne culoarea roie. n aa caz,
galben plus magenta egal cu rou, amestecarea tuturor acestor culori a acestui model formeaz culoarea
neagr.
Aadar, pe lng modelul de culoare HSV (hue, saturation, value: nuana, saturaia,
luminozitatea) pot fi folosite i modelele RGB i CMY, bazate pe proprietile vederii psihofiziologice.
n aceste modele culoare este format, din amestecul celor trei culori de baz care formeaz modelul dat.
Ultimul model, despre care vom vorbi, se folosete de pictori, cnd ei aleg culoare. La nceput se
alege nuana convenabil (culoarea pur), apoi la ea se adaug negru (nuane), iar apoi alb. n aa mod,
fiecare culoare poate fi dat prin nuan, cantitatea de culoare neagr i culoare alb, aa model de
culoare poart denumirea de HBW (hue, blackness, whiteness: nuan, cantitate de culoare neagr,
cantitatea de culoare alb).
133
Sistemul vizual al omului poate percepe aproximativ 350 000 de culori. Clar percepute
aproximativ 128 de nuane, 16 nivele de saturaie a culorii galbene i 23 de nivele de saturaie a culorii
ruu-violet.
Teorie. Sistemul de coordonate
n grafica pe calculator universal foarte important este nelegerea sistemului de coordonate.
Sistemele de coordonate n geometrie nu s-au folosit pn la Decart, care a elaborat i a introdus
sistemul de coordonate cartezian.
Pentru ce ele se folosesc? ntr-adevr, sistemele de coordonate sunt foarte confortabile, deoarece
ele ajut reprezentarea obiectelor geometrice n form de numere i egaliti; aceasta nseamn c multe
probleme geometrice pot fi rezolvate cu ajutorul algebrei. Exist o cantitate enorm de probleme, care
nu se pot rezolva cu ajutorul geometriei tradiionale, dar care se rezolv n geometria analitic (cu
aplicarea metodelor algebrice).
Sistemul de coordonate, este practic, regula care permite prezentarea obiectelor n form
numeric.
Sistemul de coordonate care se folosete n 3D Studio MAX, se numete sistemul de coordonate
dreptunghiular i se construiete n felul urmtor: Alegem n spaiu un punct. O vom numi originea
sistemului de coordonate i l vom nota cu punctul O.
Trasm prin acest punct trei linii perpendiculare una fa de alta, pentru fiecare din aceste linii
alegem direcia pozitiv (se nseamn cu o sgeat). Vom numi aceste linii axele de coordonate i le
vom numerota prin x, y, z.
n sfrit, alegem pentru fiecare ax segmentul unitar, adic segmentul, lungimea cruia o vom
socoti unitate (segmentele unitare pe desen sunt artate prin gradaii).
Coordonatele oricrui punct di spaiu n sistemul de coordonate dreptunghic se gsesc n felul
urmtor: Din punctul dat pe axa Ox coborm o perpendicular.
Lungimea segmentului, care unete originea sistemului de coordonate i punctul de intersecie a
perpendicularei cu axa i este coordonata punctului. Dac ea se afl n jumtatea pozitiv a axei, o lum
cu semnul plus, dac-i n cea negativ cu semnul minus.
Repetm acelai lucru pentru celelalte dou axe; n rezultat primim trei numere coordonatele
punctului. n acest sistem de coordonate noi putem descrie oricare punct al spaiului prin trei numere
reale (de exemplu, punctul O are coordonatele (0, 0, 0)). Pentru obiecte diferite se folosesc diferite
metode de descriere, de exemplu, sfera se d coordonatele centrului ei i razei.
Toate obiectele n spaiu au trei msuri (i anume, lungime, limea i nlimea), de aceea
spaiul se numete tridimensional.
n 3DSMAX se folosete numai sistemul de coordonate dreptunghiular, ns n limitele unei
scene noi putem folosi sisteme de coordonate diferite. La diferite sisteme de coordonate, dup cum
nelegei, pot fi origini diferite, direciile axelor diferite i diferite segmente unitare. Detailat despre
sistemele de coordonate, utilizate n 3DS MAX, este dat n documentaia de baz.
Teorie. Modelul de iluminare
n grafica tridimensional a calculatorului, de asemenea n 3D Studio MAX n particular,
pentru sintetizarea imaginilor reale se folosesc cteva modele matematice, despre care vom vorbi n
continuare.
Unele din aceste modele sunt bazate pe teorii, unele pe observri neuristice, altele pe
speculaii . S ncepem cu cel mai simplu model de iluminare.
Modelul de iluminare simplu
134
Orice obiect, care se afl n scen poate fi vzut numai n unul din trei cazuri:
Obiectul eman lumin (este surs de lumin).
Obiectul reflect lumin.
Obiectul transparent permite trecerea luminii.
Dac obiectul absoarbe toat lumina ce cade pe el, atunci el arat absolut negru (i se numete
corp absolut negru). Dac obiectul practic nu absoarbe lumina ce cade pe el, el art alb, dac el absoarbe
parial spectrul color colorat (vezi Lumina i Culoarea).
Lumina reflectat de la obiect poate fi difuz i oglindit, adic putem vorbi despre reflectarea
difuz i oglindit:
Proprietile reflectrii difuze
Proprietile reflectrii oglindite.
Reflectarea difuz este caracteristic pentru suprafeele mate, anume culoarea difuz determin
culoarea obiectului.
Reflectarea oglindit este caracteristic pentru obiectele strlucitoare (metale, sticl), anume
cantitatea de lumin oglindit determin puterea de strlucire a obiectului.
Lumina difuz are aceeai culoare ca i obiectul.
Lumina oglindit are aceeai culoare, ca i lumina incident (dac o bil de metal este luminat
de o surs de lumin roie, atunci i strlucirea va fi roie).
Lumina difuz se reflect n toate prile proporional.
Lumina oglindit se reflect dup legea de reflectare oglindit, unghiul incident este egal cu
unghiul de reflectare.
Intensitatea luminii difuze reflectate este proporional cu cosinusul unghiului, sub care lumina
sursei cade pe suprafa.
Intensitatea luminii oglindite reflectate depinde de unghiul, sub care lumina cade pe suprafa.
n realitate, majoritatea obiectelor reflect att lumin difuz, ct i lumin oglindit, dar n
proporii diferite. n 3DS MAX caracteristicile luminii reflectate difuze i oglindite sunt date n
redactorul de materiale.
Pe lng aceti factori, asupra intensitii luminii difuze acioneaz distana dintre surs pn la
suprafa (intensitatea este invers proporional cu distana de la surs). n realitate obiectele sunt
iluminate nu numai de lumina direct, dar i de lumina mprtiat. n 3DS MAX lumina mprtiat
poate fi modelat de sursa de lumin real Ambient (uite Lumina).
Legea reflectrii oglindite e strict valabil pentru oglinzile ideale, pentru alte materiale unghiul
de reflectare poate s difere de unghiul incident.
Deoarece lumina oglindit este focalizat de-a lungul vectorului de reflecie, strlucirea nu este
vizibil din orice punct al scenei. La micarea observatorului iepuraii tot se mic.
Oglindirea luminii reflectate pentru diferite obiecte este dat de coeficientul N, care se
folosete n ecuaia, de determinare a intensitii luminii reflectate. Intensitatea este proporional cu
mrimea cos
N

, unde

unghiul dintre raza reflectat i vectorul, ndreptat din punctul de reflectare


n ochiul observatorului. Luai n vedere c lumina oglindit i reflectarea sunt dou procese diferite.
Lumina oglindit permite de redat corect strlucirile la suprafaa obiectului, ns el nu ajut de
realizat efectul de reflectare n oglind. Reflectarea se consider n modelul global ca luminarea cu
trasarea razei.
Transparena
La precutarea transparenei noi ne ciocnim cu apariia refraciei. La trecerea dintr-un mediu n
altul, de exemplu din aer n ap raza luminoas se refract, adic i schimb direcia micrii.
135
Refracia se calculeaz dup legea lui Snellius:
1

sin

=
2

sin

, aici

1 i

2
coeficienii de refracie a mediilor,

unghiul incident,

unghiul de refracie. n realitate nici un


material nu permite trecerea la toat lumina incident, o parte tot timpul se reflect.
Trecerea luminii, la fel ca i reflectarea, pot fi oglindite i difuze. Trecerea oglindit este
caracteristic obiectelor transparente (sticl), iar difuz semitransparente i mate (ceaa, sticla mat).
Dac s ne uitm la obiect prin suprafaa semitransparent, atunci el pare neclar i splcit.
Efectul transparenei poate fi efectuat total numai n modelul total al iluminrii cu trasarea razei.
Umbra
Umbra este compus din 2 pri penumbre i umbre pure. Umbra pur este umbra central,
dens, are un contur bine delimitat, iar penumbra nconjoar de obicei umbra pur i primete o parte
de lumin de la sursa respectiv.
Penumbra apare, dac scena este iluminat de mai multe surse punctiforme sau de o surs real.
n grafica calculatorului se deosebesc umbre proprii i umbre purtate.
Umbrele proprii se formeaz de obiectul respectiv.
Umbrele purtate se formeaz de alte obiecte.
Texturi
n grafica calculatorului textur (factur) este numit detalizarea construirii suprafeelor.
Aplicarea texturilor asupra obiectelor permit redarea acestor obiecte forma real. Detalizarea de obicei
se folosete de dou tipuri. n primul caz pe o suprafa neted se pune uzorul pregtit din timp
(desenul), de exemplu, dac scanm fotografia unei suprafee de lemn i o redm unei bile, atunci noi
primi o bil din lemn.
Nectnd la ceea, c cu ajutorul acestei metode se poate de redat suprafeei o form neregulate,
ea tot rmne neted. A doua metod conine interaciunea local n ecuaia suprafeei, i n acest caz ea
devine ntr-adevr neregulat. Unele greuti cu texturile primei metode apar, dac le plasm pe
suprafee neplane. De obicei n aceste cazuri n imagine se introduc deformri, aa c la plasarea lor s
arate ca reale. Aa arat harta globului pmntesc dup introducerea deformrilor.
Alt problem legat de texturi este efectul scalar. La o mrire mare a imaginii se observ
structura ei granular (ca i n jocul Doom, cnd v apropiai foarte aproape de perei). Pentru a
prentmpina aceste apariii ale efectului scalar, se folosesc texturi de mrimi mari.
O posibilitate interesant pentru sintetizarea imaginilor reale sunt fracturile. Fracturile sunt
figurile uni-, bi- i tridimensionale, mici fragmente care sunt copii ale fragmentelor mari. Pentru
suprafeele i obiectele fractale este caracteristic, c noi putem s mrim gradul de detalizare la
apropierea de astfel de suprafa, pe ea apar noi i noi detalii mici.
Mai detailat despre reglarea texturilor n 3D Studio MAX, putei afla din compartimentul
Redactorul materialelor.
Modelul global de iluminare cu trasarea razei
Modelul universal de iluminare trebuie s duc cont de urmtoarele efecte: reflectarea,
transparena, umbra i textura; toate acestea sunt posibile cu ajutorul algoritmului de trasare a razei. Pe
lng efectele sus menionate, n desenul primit pot fi introduse i adugri i deformri adugtoare
(vezi Filtre). De exemplu noi putem introduce deformarea, care de obicei apare la imaginile video i
foto.
136
Pentru sintetizarea imaginilor reale este necesar de luat seama, c lumina slbete, trecnd prin
obiectele transparente, i chiar poate s-i schimbe nuana. Algoritmul de trasare a razei (Ray Tracing),
despre care s-a vorbit mai sus, este unul din metodele de nlturare din scen a suprafeelor invizibile. n
acest algoritm se traseaz razele, care ies din camer, i care trec prin fiecare pixel al desenului
sintetizat. Un caz simplu, dac raz trece de exemplu printr-un cub rou, atunci pixelul prin care ea trece
se coloreaz n ro. n realitate, este clar, c razele nu ies din camer, dar nimeresc n ea, ns direcia
razei n acest algoritm nu conteaz. Dac socotim, c razele ies din camer, atunci algoritmului i trebuie
mai puine resurse a calculatorului.
ntr-un caz mai complicat la colorarea pixelului se ia n consideraie nivelul reflectrii difuze i
oglindite, de asemenea i umbrele. Dac punctul este astupat de alte obiecte de sursa de lumin, atunci,
punctul se afl n umbr total i strlucirea ei este egal cu strlucirea luminii mprtiate n scen.
Algoritmul, folosit n 3DS MAX, traseaz raze printr-un mod mult mai complicat. Fiecare raz,
care cade pe obiect, se desface n dou raze reflectat i refractat (dac obiectul este transparent), iar
apoi se traseaz aceste raze. Trasarea se ntrerupe, cnd raza prsete scena, sau cnd intensitatea ei
cade mai jos de domeniul dat. Dup ce toate razele trasate au fost urmrite, se capt culoarea sumar a
pixelului.
Efectul scalar (aliasing) i eliminarea lui (anti-aliasing)
Efectul scalar apare din structura granular a imaginilor i dispozitivelor raster (printere, ecranul
monitorului). Deoarece imaginea la aceste dispozitive const din puncte foarte mici, atunci n unele
cazuri valorile lor discrete pot fi foarte bine observate. Cu alte cuvinte efectul scalar apare atunci, cnd
imaginea este constituit din puncte.
Efectul scalar este foarte bine vizibil la dreptele, apropiate de verticale i orizontale, ca i la
hotarele a dou regiuni.
n grafica calculatorului pentru a elimina efectul scalar n diferite cazuri se folosete numai o
singur metod. De obicei se consider c pixelii nu au mrime, nectnd la aceea, c n realitate,
fiecare din el ocup o oarecare suprafa foarte mic.
Dac considerm c pixelii au suprafa, atunci o parte a pixelului poate fi albastr iar alt parte
alb iar n rezultat pixelul va fi colorat ntr-o culoare de amestec al albastrului cu albul, astfel crend o
trecere lent.
Iat cum poate fi rezolvat problema desenrii unei drepte, apropiat de vertical sau orizontal
cu ajutorul algoritmului de eliminare a efectului scalar. Noi vedem c strlucirea pixelului este direct
proporional cu suprafaa, ocupat de dreapt n pixelul dat. A doua linie de la o distan mai mare pare
mai neted ca prima.
Realizarea acestui model de eliminare a efectului scalar n algoritmul trasrii razelor este bazat
pe acelai principiu. La prima etap razele se trimit n scen, dar nu prin centrul pixelilor, dar prin
vrfurile lor. Dac culorile prin vrfurile pixelilor aproximativ coincid (pixelul nu se gsete la hotarul a
dou regiuni), atunci el va fi reflectat cu o lumin intermediar.
Dac culorile se deosebesc foarte tare, atunci pixelul se mparte n patru subpixeli i procesul
continu. mprirea pixelilor se petrece pn cnd ei nu devin foarte mici, iar culoarea lor intermediar
se combin i se primete pixelul de baz. Parametrii algoritmului de baz se regleaz pentru materiale
Ray-Traced n redactorul de materiale.
Tonarea (umplerea)
Multe suprafee curbilinii n 3DS MAX n realitate sunt aproximate cu ajutorul unor poligoane
mici, la fel, ca i linia curb pe plan poate fi aproximat cu mici segmente.
137
Aceast aproximare permite semnificativ reducerea resurselor de calcul, care trebuiesc la
vizualizarea obiectului, ns ea introduce i efecte secundare: ct de mici nu vor fi poligoanele, pe desen
se observ structura frnt a suprafeei.
Pentru a elimina acest efect, se folosesc algoritmi speciali de umplere a suprafeelor curbilinii,
purtnd numele fondatorilor si, metoda Fong (Phong) i metoda Blinn (Blinn) (de asemenea este
cunoscut metoda Guro (Gouraund), ns n 3D Studio el nu se folosete).
Desigur exist umplerea monoton simpl (Constant), care nu netezete suprafaa poligonal.
Pe lng aceste metode de tonare, n 3D Studio MAX se folosete i umplerea metalic, bazat
pe proprietile suprafeelor metalice. Mai detailat vedei n redactorul de materiale.
138

You might also like