Sunteți pe pagina 1din 196

Veaceslav Perju

GRAFICA PE CALCULATOR

Curs de prelegeri
pentru studen ii specialit ilor "Automatica i
Informatica", "Calculatoare", "Microelectronic ",
"Tehnologii informa ionale", FAF

Chi inau 2005

1
Cuprins
1. Sisteme grafice

2
1.1. Sinteza, prelucrarea i analiza imaginilor
1.2. Aplica ii grafice
1.3. Arhitecturi ale sistemelor grafice
1.4. Dispozitive de intrare ale sistemelor grafice
1.5. Echipamentele de ie ire 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. Ini ializarea modului grafic.
2.4. Schimbarea si interogarea modului grafic.
2.5. Ie irea din modul grafic.

3. Primitive grafice
3.1. Opera ii cu pixeli.
3.2. Construirea liniilor.
3.3. Poligoane.
3.4. Curbe conice.
3.5. Suprafe e.

4. Atributele de afi are ale primitivelor grafice


4.1. Specificarea culorilor.
4.2. Atributele de afi are ale liniilor.
4.3. Atributele de afi are ale suprafe elor.

5. Textul în mod grafic


5.1. Afi area textului in mod grafic.
5.2. Atributele de afi are ale textelor.
5.3. Seturi de caractere.

6. Opera ii cu imagini
6.1. Poarta de vizualizare.
6.2. Opera ii cu imagini in memorie.
6.3. Salvarea si restaurarea imaginilor.
6.4. Fi iere cu mai multe imagini
6.5. Operarea cu mai multe pagini video.
6.6. Corec ia formelor imaginilor sintezate.

7. Formatele fi ierelor de grafic


7.1. Modele de reprezentare bitmap (harti de biti)
7.2. Formatul BMP
7.3. Modul vectorial

3
7. Interpolarea i netezirea imaginilor
7.1. Opera iuni de interpolare i netezire a imaginilor
7.2. Interpolarea prin func ii Bezier
7.3. Interpolarea prin func ii B-spline.
7.4. Construirea curbelor i a suprafe elor de netezire

8. Transform ri geometrice 2D
8.1. Transform ri geometrice elementare
8.1.1. Transla ia
8.1.2. Scalare
Scalare fa de origine
Scalare fa de un punct oarecare din plan
8.1.3. Rota ia
Rota ia fa de origine
Rota ia fa de un punct oarecare din plan
8.2.Compunerea transform rilor
8.3.Trasnsform ri în coordonate omogene
8.4. Transform ri geometrice inverse
8.5. Transform ri geometrice fa de un punct oarecare din plan
8.6. Transformare de oglindire
8.7. Transformare de forfecare a imaginilor
8.8. Transform ri ale sistemului de coordonate

8. Transform ri geometrice 3D
8.1. Matrici de transformare 3D.
8.2. Transla ia 3D.
8.3. Scalarea 3D.
8.4. Rota ia 3D.
8.5. Forfecarea 3D.
8.6. Transform ri 3D inverse.
8.7. Compunerea transform rilor 3D.
8.8. Oglindirea fata de un plan al sistemului de coordonate.
8.9. Rota ia in jurul unei axe oarecare in spa iul 3D.
8.10. Oglindirea fa de un plan oarecare.

9. Transform ri grafice tridimensionale


9. 1. Matrici de transformare
9. 2. Transla ia
9. 3. Scalare
9. 4. Rota ia în jurul unei axe a sistemului de coordonate
9. 5. Transform ri inverse
9. 6. Forfecarea
9. 7. Oglindirea fa de un pian al sistemului de coordonate
9. 8. Compunerea transform rilor tridimensionale
9. 9. Rota ia î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.

4
10.3. Modelul procesului de vizualizare 3D.
10.4. Proiec ii. Proiec ia perspectiv .
10.5. Vizualizarea imaginilor 3D.

11. Determinarea vizibilit ii obiectelor la afi area scenelor 3D


11.1.Clasificarea algoritmilor de determinare a laturilor i a fe elor vizibile ale obiectului.
11.2.Determinarea laturilor vizibile ale unui poliedru.
11.3.Determinarea fe elor vizibile ale obiectului.
11.3.1. Algoritmul GalimbertiMontanari.
11.3.2. Algoritmul Zbufer.

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 suprafe elor iluminate.
12.4.1. Modelul Lambert.
12.4.2. Modelul Gouraud.
12.5.Transparen a.
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.

5
14.12. Crearea materialelor.
14.13. Crearea obiectelor de rota ie.
14.14. Anima ia.

6
1.SISTEME GRAFICE

1.1. Sinteza, prelucrarea i analiza imaginilor

Prin sistem grafic se în elege un ansamblu din echipamente i programe, specializate


în sintez , prelucrarea i analiz a informa iei grafice, prezentate în forma de imagini.
Echipamentele pot fi calculatoare, sta ii grafice, imprimante, plotter-e .a.
Un sistem grafic care permite interac iunea cu utilizatorul prin echipamente specializate
(mouse, tableta grafic , joy-stick .a.) se nume te sistem grafic interactiv.
Sistemele grafice pot fi clasificate dup scopul prelucr rilor pe care le efectueaz .
Din acest punct de vedere se face distinc ie între:
-sisteme de sintez a imaginilor, sisteme de prelucrare a imaginilor i sisteme de analiz a imaginilor.
Secven a de prelucr ri 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),
înso ite de atribute cum ar fi: culoarea, tipul i l imea liniei, etc. Într-
un sistem grafic 3D primitive pot fi i diferite tipuri de suprafe e i obiecte. Algoritmii
de sintez codific fiecare primitiv grafic într-o form special . Modelul imaginii poate rezulta
din calcule specifice aplica iei (de exemplu, reprezentarea grafic a unei func ii) sau poate fi editat
de utilizator prin intermediul programului de aplica ie (de exemplu, schi a unei piese, a unei
case, etc.). Utilizatorul poate solicita diferite transform ri asupra obiectelor redate În
imagine sau asupra imaginii în ansamblu.
Programele de aplica ie sunt specializate pe diferite domenii, de exemplu,
proiectarea asistat de calculator în electronic , în mecanic , în arhitectur , cartografie,
birotic , gestiune economic , tipografie electronic , produc ia 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 c tre om (figura 1.2.) prin: modificarea culorilor, Îmbun t irea contrastului, redarea selectiv a
diferitelor p r i 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 aplica ii de
recunoa tere a formelor, de exemplu pentru identificarea obiectelor, pentru analiza reliefului i
a resurselor naturale etc.

1.2. Aplica ii grafice

Din categoria aplica iilor grafice fac parte:


- Programele de desenare (paint programs): permit crearea desenelor sub form de h r i de bi i;
- Programe pentru desen tehnic i artistic (draw programs): furnizeaz func ii 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 aplica iilor în
domeniul financiar-contabil. Cu ajutorul lor se editeaz tabele de profituri, analize de tabele
etc. Datele sunt introduse în celule (o celul reprezint intersec ia dintre o linie i o coloan
într-un tabel). Unele celule pot fi definite ca rela ii î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 prezent ri i rapoarte, pun la dispozi ia
utilizatorului colec ii de diverse scenarii de reclam . Diagramele pot fi rezultatul prelucr rii i
reprezent rii datelor din aplica ii pentru foi de calcul;
7
- Programe pentru anima ie: permit înl n uirea i secven ierea seriilor de imagini pentru a
simula mi carea. Fiecare imagine este considerat un cadru într-un film. Propun facilit i din
domeniul filmului (mixaje, selec ie de secven e, modific ri de obiecte pentru ob inerea efectelor de
anima ie);
- Programe CAD: aplica ii dedicate proiect rii, destinate arhitec ilor i inginerilor. Printre func
iile cele mai cunoscute, permit: trasare în 2D i 3D, numeroase sisteme de coordonate i tipuri
de proiec ii; selectarea dintre numeroase sisteme de m sur a dimensiunilor paginii de
desen, localizarea obiectului prin referin a la alte obiecte, m rirea sau mic orarea desenelor (zoom),
edit ri de simboluri; tipuri de linii de trasare i culori, scal ri i rota ii de obiecte selectate,
compatibilitatea formatelor fi ierelor, ce pot fi importate sau exportate i de alte aplica ii,
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, cot ri automate a obiectelor selectate, atribute de vizibilitate,
prioritate, culoare, stil, ata ate obiectelor i posibilitatea edit rii facile a acestor atribute,
introducerea posibilit ii desen rii de mân cu dispozitivul de intrare: mouse, tablet grafic , tras
ri de curbe, suprafe e, polilinii, facilit i 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, ilumin ri, umbriri, crearea unor
macroinstrunc iuni cu AUTOLISP sau C;
- Editoare grafice (desktop publishing): sunt colec ii de func ii de procesare a textului, care
permit
controlul pozi ion rii textului i imaginilor, astfel încât pot fi create reviste, ziare, reclame, c r i. Pun
la dispozi ia utilizatorului module pentru: scrierea documentului cu procesorul de texte,
editarea/revizuirea textului pân la ajungerea în forma final în modul WYSIWYG (What You See Is
What You Get), inserarea textului în pagin , inând cont de dimensiunea literelor, tipul de
text, num rul de coloane pe pagin , lungimea coloanelor, ilustrarea prin crearea diagramelor,
graficelor, diverselor desene sau preluarea fotografiilor (histograme, imagini scanate), revizuirea
aspectului paginii, machetarea, tip rirea în tirajul dorit;
- Aplica ii dedicate exploat rii suportului de informa ie multimedia (hârtie, film, band
magnetic ),
respectiv dispozitivelor multimedia (microfon, magnetoscop, sintetizator). Sunt aplica ii care ofer
utilitare de conversie, de comprimare, func ii de arhivarea imaginilor, filmelor, retu area
imaginilor video, recunoa terea caracterelor documentelor imprimate, recunoa terea, procesarea i
arhivarea datelor sonore.

1.3. Arhitecturi ale sistemelor grafice

In calculatoarele personale grafica este sus inut de c tre procesorul unic al


sistemului. Calculatoarele con in un modul denumit plac grafic care con ine 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 informa ia din memoria
video.
O sta ie 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 sta ii 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 prelucr rilor grafice. Astfel de procesoare pot fi dedicate func iilor de
generare de segmente sau curbe, opera iilor de decupare, opera iilor de eliminare a
suprafe elor ascunse, procesoare de formare a ilumin rii i altele.

8
1.4. Dispozitive de intrare ale sistemelor grafice

Dispozitivele de intrare au func ia de realizare a interac iunii dintre utilizator la sistemul


grafic.

9
Tastatura: este cel mai comun dispozitiv de intrare. Prin intermediul acesteia pot fi
implementate toate func iile de intrare într-un sistem, prin alocarea corespunz toare, prin program,
a fiec rei taste sau grupuri de taste.
Mouse: este actualmente cel mai utilizat dispozitiv pentru implementarea func iei de intrare
de tip locator-punctator la nivelul ecranului. Mouse-ul posed dou sau trei butoane a c
ror ap sare determin transferul la calculator a unui cod special. Ac iunea pe care
programul o efectueaz ca urmare a ap s rii unui buton este specific programului
care utilizeaz acest dispozitiv.
Tracking-ball: principiul constructiv i func ional al acestui dispozitiv este cel al
mouse-
ului, cu deosebirea c dispozitivul st fix, iar mi carea de rota ie a sferei este produs de c tre
palma operatorului.
Joy-stick: este un dispozitiv utilizat ca locator-punctator. Este alc tuit dintr-o manet
care are dou grade de libertate de rota ie pe dou axe perpendiculare. Fiecare mi care de
rota ie se transfer într un num r de impulsuri care se transmit la calculator.
Light pen: este un dispozitiv punctator direct pe ecran, al c rui principiu se bazeaz
pe
elementul fotosensibil din vîrful creionului optic impresionat de lumina emis de c tre
punctul
de pe ecran atins de creion.
Digitizorul i tableta grafic . Construc ia este de forma unei pl ci plane dreptunghiulare, cu
dimensiune de la formatul A3 pîn la o mas cu laturi de doi metri. Sub aceast plac se g
sesc re ele de fire paralele amplasate la distan e foarte mici (sutimi de milimetru). Exist dou re
ele, cîte una pentru fiecare ax . Pe masa de desen se poate amplasa desenul care trebuie
digitizat. Opera ia de introducere a punctelor se poate face cu un dispozitiv special La selec ia
unui punct de pe desen se apas un buton, sistemul depisteaz linia i coloana deasupra c ruia
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 hîrtie, 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 ie ire grafic

Echipamentele de ie ire grafic sunt acele echipamente care prezint imaginea sintetizat
de
c tre sistemul de calcul, pe un suport cu caracter permanent (hîrtie, 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 fotoînregistratoare pe pelicul (photo-plotter).
Se vor defini no iunile care caracterizeaz calitatea imaginii ob inute pe suportul de ie ire.
Dimensiunea punctului reprezint diametrul unui punct singular generat de echipamentul de
ie ire. Forma punctului este în general circular , de i anumite echipamente pot fi
astfel construite încît forma punctului este dreptunghiular .
Adresabilitatea reprezint num rul de puncte individuale pe care le poate crea
echipamentul pe unitatea de lungime. Adresabilitatea axei X este inversa distan ei dintre
centrele a dou puncte vecine (adiacente) aflate pe aceea i linie orizontal . In mod
similar se define te adresabilitatea axei Y. Nu întotdeauna adresabilitatea are aceea i valoare pe
ambele axe.

Rezolu ia este o no iune corelat cu dimensiunea punctului, iar valoarea ei maxim este egal
10
cu valoarea adresabilit ii. Rezolu ia se define te ca spa ierea minim între iruri de linii
negre alternate cu linii albe, care pot fi decelate de observator. De exemplu dac pe un
centimetru

11
pot fi decelate 20 de perechi intercalate de linii albe i negre, spunem c rezolu ia 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).

12
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 împ r it in 25 linii de 80 coloane fiecare; in fiecare zona
fiind afi ate 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 afi are, pentru ca imaginea sa fie afi ata, 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 calit ii si vitezei de afi are 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 m sura ce cresc cerin ele de procesare a imaginilor si elementelor de grafica.

Figura 1-3. Arhitectura acceleratorului grafic.

Acceleratorul grafic preia, practic, realizarea urm toarelor opera ii:

13
- transformari (rotatii si scalari), ap rute in reprezentarea obiectelor in mi care 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 informa ii transmise de la calculator pe hârtie


(sau alte suporturi: folii transparente, plicuri etc.). Sunt orientate pentru imprimare text/grafic. Con in
componente electronice (RAM, controler, microprocesoare, plac de re ea). 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 înc rcat î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 hârtie 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 func ie de calitatea cerut a imprim rii.

Un dezavantaj major al acestui tip de imprimante este zgomotul, care cre te odat cu num rul de ace
i cu calitatea imprim rii.

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 obi nuite, o
singur diod laser special realizeaz raza laser i o dirijeaz spre oglind . Aceasta se rote te cu cca
7600 rota ii/min. Oglinda dirijeaz raza pe o in de reflexie care face ca raza laser s ajung pe
cilindrul fotosensibil înc rcat negativ. Raza neutralizeaz cilindrul înc rcat electric în punctele de
inciden .

Tehnologia bazat pe laser i deviere se înlocuie te pentru categoria imprimantelor LED cu un rând
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 rezolu ie de pân
la 600 dpi, rezultând mai pu ine 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 tip rit în puncte pe cilindru (în punctele în care
raza de lumin întâlne te cilindrul, înc rcarea electric este neutralizat ); tonerul inc rcat negativ
r mâne ag at numai în zonele neutralizate ale cilindrului; cilindrul transfer tonerul pe hârtie sub

14
presiune (10g/cm) i temperatur (1500C); deoarece, dup transfer, pe cilindru r mân resturi de
toner, o lam le r zuie, resturile fiind plasate într-un recipient de evacuare (Wastebox).

Imprimantele laser/LED sunt caracterizate de calitatea imprim rii, exprimat în dpi (dots per inch).
Rezolu iile imprimantelor actuale variaz în intervalul 300 dpi - 1200 dpi, valorile uzuale fiind 300
dpi i 600 dpi (prin compara ie, imprimarea offset are valori ale rezolu iei între 1200 dpi i 2400
dpi). Unele imprimante din aceast categorie pot s permit o rezolu ie m rit prin folosirea unor
tehnici speciale (resolution enhancement) care se bazeaz pe dispozitive de recunoa tere a imaginilor
(spre exemplu a liniilor curbe) ce folosesc algoritmi inteligen i i pe modificarea dimensiunii
punctului de imprimare (dot). Acesta este motivul pentru care produc torii de imprimante grafice
laser/LED propun în documenta ia tehnic dou valori caracteristice ale rezolu iei: rezolu ia
dispozitivului de imprimare (engine resolution) i rezolu ia efectiv (effective resolution).

Imprimantele laser/LED pot fi monocrome (imprimare negru/nuan e de gri) sau color. În ultimul caz
folosesc patru tonere pentru a imprima full color, ceea ce m re te propor ional pre ul pe pagina
tip rit . Pentru a m ri 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 rezolu ie acceptabil a unei imagini de dimensiune
A4 sau A3. Spre exemplu, pentru imprimarea unei pagini A4 la rezolu ie 300 dpi este necesar minim
1 MB de memorie printerRAM. Evident, pentru o rezolu ie 600 dpi, necesarul de memorie printer
RAM este de cel pu in 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 câteva tehnologii de transfer a informa iei c tre suportul de
hârtie. Imprimantele termice cu cerneal (tehnologia BubbleJet/InkJet) se bazeaz pe prezen a în
capul de imprimare a unui element de înc lzire (figura 1-14b). Din momentul aliment rii cu energie
0
electric , acesta se înc lze te în 4-7  s la 400 C, determinând apari ia unei bule de gaz care se
destinde, produce o suprapresiune i preseaz o pic tur 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 r ce te elementul de înc lzire. Aceste faze se
repet pentru fiecare punct de tip rit. Aceast tehnologie prezint ca dezavantaj faptul c , dup o
utilizare îndelungat , pe elementul de înc lzire se formeaz un strat sub ire de resturi de cerneal
care împiedic lucrul la parametri normali. Bulele de gaz devin mai mici i pic turile de cerneal mai
slabe. Pentru evitarea acestui comportament trebuie înlocuit nu numai cartu ul ci i capul de
imprimare (aceasta se întâmpl în medie dup 10 reumpleri cu cerneal ).

Imprimarea piezoelectric cu cerneal (Epson) înlocuie te bula de gaz cu un element format din
cristale piezoelectrice (figura 1-14a). Când elementul se încarc electric, cristalele se lungesc în
5  s. Dup 5  s de la întreruperea aliment rii electrice, circuitele revin la forma ini ial .
Piezoelementul nu este în contact cu cerneala, ci se g se te în fa a unei membrane. Prin ap sarea
membranei se produce tensiune în duz , rezultând o pic tur minuscul de cerneal . Pic tura este
foarte fin (datorit frecven ei de max 10  s de generare) i f r pic turi satelit (ca în cazul
elementelor termice). Prin

15
compara ie, aceast tehnologie are avantajul absen ei fenomenelor de uzur termic (deoarece capul
de imprimare nu are elemente supuse înc lzirii).

Imprimantele cu cerneal sunt caracterizate de o rezolu ie de minim 300 dpi i sunt mai ieftine dar i
mai lente decât imprimantele laser. Sunt des utilizate deoarece ofer un cost mult mai redus
decât imprimantele color laser pentru imprimarea unei pagini color, ca i datorit
dimensiunilor reduse, ceea ce le caracterizeaz ca portabile.

Plotter–ele sunt dispozitive de ie ire care creaz imagini bidimensionale (spre exemplu grafice) pe
hârtie. Se împart în dou categorii (din punct de vedere constructiv):
- drum plotter: mecanismul de trasare const într-un mecanism de înaintare a hârtiei, similar celui de
la imprimant , i un stilou (cap de scriere) ce se deplaseaz pe o dreapt de-a latul hârtiei conform
comenzilor primite de la interfa ;
- flatbed plotter: mecanismul de trasare folose te un bra mecanic ce manipuleaz un stilou (cap de
scriere) peste o hârtie întins (pe baza unui mecanism de control pe axele XY).

1.6. Softul sistemelor grafice

Programele din componen a 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 aplica ie, numit biblioteca grafic .
Exist cîte un program driver pentru fiecare tip de echipament în configura ia
sistemului grafic. Pentru ca programele de aplica ie 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 cît mai variat de echipamente.

Func iile bibliotecilor grafice pot apar ine urm toarelor categorii:
- rutine de configurare (selectarea modului grafic dorit, stabilirea zonelor de memorie pentru scrierea
fi ierelor 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 afi area 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 func ii de nivel
coborît; astfel sunt bibliotecile grafice din mediile Turbo Pascal, Borland C, Borland C++ pentru
DOS. Altele ofer func ii de nivel înalt, inclusiv posibilit i de redare a obiectelor tri-dimensionale
i de interac iune folosind o varietate mare de echipamente.

16
1.7. Standarde in grafic

Obiectivele urm rite prin standardizare au fost:

1. Portabilitatea programelor, cu dou aspecte:


- independen a fa de sistemul de calcul i de sistemul grafic folosit;
- independen a fa de echipamente.

2. Portabilitatea informa iei grafice, adic posibilitatea transferului descrierilor de imagini Între
sisteme grafice diferite.

3. Posibilitatea stoc rii pe termen lung a informa iei grafice.

4. Uniformitatea instruirii în domeniul proiect rii i utiliz rii sistemelor grafice, asigurarea unui
vocabular unic de termeni i concepte.

Primul standard interna ional în domeniul sistemelor de sintez a imaginilor,


adoptat în
1985 de c tre ISO (International Standards Organisation) i de c tre ANSI
(American National Standards Institute) a fost G.K.S. (Graphical Kernel System). El define te un set
complet de func ii de afi are 2D independente de echipamente, func ii de segmentare (grupare
a primitivelor grafice), de transformare, de control al sta iilor de lucru, i de interac iune.
Standardul are dou p r i:
I - Specifica ia func iilor sistemului grafic, într-o manier independent de limbaj;
II - Interfe e pentru diferite limbaje de nivel Înalt (Fortran, Pascal, C, Ada), adic
denumirile subprogramelor prin care sunt implementate func iile sistemului, parametrii fiec rui
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 func iile definite În standardele GKS /
PHIGS formeaz nucleul independent de dispozitive al sistemului grafic. Prelucr rile
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 informa iilor grafice între sisteme a fost elaborat standardul
CGM (Computer Graphics Metafile, ISO-DIS 8632).
Exist deasemenea standarde pentru transmisia la distan a documentelor con inÎnd 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 afi are a sistemului grafic are doua componente de baza: adaptorul video;
monitorul video.
Adaptoarele video permit afi area textelor i imaginilor grafice. Informa ia care se afi eaz pe
ecran se extrage din memoria adaptorului video. Adaptoarele grafice mai sunt numite de
diversi

17
producatori: video cards, video boards, video display boards, video controllers, graphics cards
sau
graphics adapters.

Fiec rui punct (pixel) de pe ecran îi corespund unul sau mai mul i bi i în aceasta
memorie. Accesul în memoria video se poate face ca la orice alta loca ie de memorie a
calculatorului. Capacitatea memoriei video i organizarea ei depind de tipul adaptorului.
Ecranul este considerat ca fiind împ r it printr-o grila de 25x80 celule. Fiecare celula
poate con ine un caracter. Ecranul este adresat la nivel de caracter, intr-un sistem de coordonate
cartezian, cu originea (1, 1) în coltul din stânga sus.
În modul grafic ecranul este considerat ca fiind divizat printr-o grila rectangulara în
celule numite pixeli. Num rul de pixeli ai ecranului (rezolu ia) depinde de tipul adaptorului
video i de modul în care acesta lucreaz . Imaginile grafice sunt alc tuite din puncte, fiecare punct
corespunzând unui pixel. Num rul de bi i aloca i în memoria video fiec rui pixel determina
num rul de culori afi abile simultan pe ecran.
În mod grafic ecranul este adresat intr-un sistem de coordonate carteziene având
originea
(0,0) situata în coltul stânga 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 func ie de rezolu ie i de num rul de culori ce se pot afi a simultan pe ecran, în memoria
video se pot p stra una sau mai multe imagini ecran. Num rul 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, rezolu ia 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 rezolu ia 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). Rezolu ia este de la 640x400 puncte i 16 culori pîn
la 1280x1024 puncte i 16 mii culori.
AGA (Advanced Graphics Adapter)  1024 x 768 pixeli rezolu ie. Pentru aplica ii
grafice complexe s-au realizat adaptoare grafice dedicate cu o rezolu ie excep ional (cele mai bune
rezolu ii întâlnite dep ind nivelul de 4096 x 4096 pixeli).

Adaptoarele EGA folosesc monitoare digitale iar VGA i SVGA folosesc monitoare
analogice.
Un monitor digital folose te un num r fix de semnale. Astfel, monitorul pentru
adaptorul EGA folose te 6 semnale: trei pentru culorile de baza R, G, B (ro u, verde, albastru)
i trei pentru intensit i r, g, b. Fiind 6 semnale digitale ar putea fi afi ate 64 culori distincte simultan
pe ecran, dar num rul este limitat la 16 deoarece culoarea unui pixel se retine pe 4 bi i în memoria
video.
La un monitor analogic, semnalele R, G, B pot varia continuu. Aceasta permite o varia
ie
continua a nuan elor de culori. Îns , num rul de culori disponibile este limitat de reprezentarea
digitala în memoria video.

În momentul alegerii pl cii grafice i a monitorului, utilizatorul trebuie s î i pun problema


18
performan ei i ergonomiei. Corela ia dintre frecven a de reîmprosp tare a imaginii i m rimea
memoriei video (ca termeni de alegere a pl cii grafice) este prezentat în tabelele 1-1 i 1-2.

19
Conform acestor clasific ri, grupa 1 de dispozitive cuprinde pl ci ce ofer 1-2 MB DRAM. Pl cile se
bazeaz pe acceleratoare ieftine. Pl cile grafice mai lente aduc rezolu ii suplimentare mai înalte
numai pâlpâind. Grupa a doua este caracterizat de pre uri medii, pl ci cu 2MB
DRAM/VRAM. În aceast clas pot apare acceleratoare video. Grupa 3-4 este cea a dispozitivelor
profesioniste (VRAM rapid, tehnic de vârf) i, evident, extrem de scumpe.

2.2. Drivere

Opera iile cu adaptoarele video sunt realizate de module driver-e. Modulele driver con
in
rutine prin care sunt accesate memoria video i alte dispozitive ale adaptorului.
Module driver sunt definite ca fi iere cu extensia .BGI (Borland Graphics Interface) i fi iere
cu extensia .CHR.
Exista aplica ii în care viteza de generare a imaginilor este foarte importanta. Astfel de
aplica ii sunt cele care trebuie sa actualizeze imaginea în timp real i cele de anima ie. Î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 folo irea calculatorului în unul sau mai multe moduri
grafice, numite i moduri video. Ele se deosebesc prin rezolu ia ecranului, num rul de culori ce se
pot afi a simultan pe ecran i num rul de pagini video disponibile. În tabelul 1 sunt prezentate
modurile video specifice fiec rui tip de adaptor, moduri accesibile prin bibliotecile grafice
existente în mediile de programare C i Pascal.

Prin opera ia de autodetec ie se determina tipul de adaptor video, se încarc în


memorie
fi ierul .BGI corespunz tor i se selecteaz modul video cu rezolu ia maxima.

Tabelul 1. Moduri grafice

Constanta Constanta Rezolutie Paleta Pagini


Driver mod video (col*lin) culori video
Grafic mod
VGA VGALO 640x200 16 cul. 4
VGAMED 640x350 16 cul. 2
VGAHI 640x480 16 cul. 1

2.4. Ini ializarea modului grafic

InitGraph(GraphDriver, GraphMode) - func ia stabile te valorile implicite ale parametrilor de


operare în mod grafic i încarc de pe disc în memorie modulul driver corespunz tor primului
parametru. Modul de lucru al driver-ului înc rcat este specificat prin al doilea parametru iar
20
denumirea completa a caii unde se va caut fi ierul .BGI corespunz tor este prezentata prin al treilea
parametru.

Valoarea zero a parametrului GraphDriver determina apelul func iei pentru autodetec ia
tipului adaptorului video instalat. În acest caz, efectul execu iei func iei initgraph este urm torul:
se detecteaz tipul adaptorului video instalat, se încarc în memorie fi ierul .BGI corespunz tor
i se selecteaz modul grafic cu rezolu ia maxima pentru adaptorul respectiv. Func ia initgraph va
întoarce num rul driver-ului înc rcat în parametrul GraphDriver i num rul modului grafic
selectat în parametrul GraphMode.

Func ia initgraph memoreaz intr-o variabila interna un cod care indica opera ie reu ita
sau terminata prin eroare. Codul poate fi ob inut cu func ia Graphresult. Daca opera ia de ini
ializare a modului grafic s-a desf urat cu succes, codul este egal cu 0, altfel este o valoare negativa.
În caz de insucces func ia întoarce codul de eroare. În tabelul 2 sunt prezentate codurile de eroare
întoarse de func iile initgraph detectgraph i graphresult.

Tabelul 2. Coduri de eroare intoarse la Ini ializarea modului grafic detectgraph

Cod eroare Semnificatie


-2 Nu se poate detecta tipul adaptorului video
-3 Nu se poate localiza fi ierul .BGI
-4 Format incorect al fi ierului .BGI
-5 Memorie insuficienta pentru a înc rca driver-ul grafic

Detectgraph(Graphdriver, Graphmode) - func ia detecteaz tipul adaptorului video instalat.


Este de regula apelata de func ia Initgraph. Poate fi apelata i independent, dac se dore te doar
stabilirea configura iei hardware i nu selectarea automata a modului grafic de rezolu ie maxim .

Spre deosebire de initgraph func ia nu încarc în memorie fi ierul .BGI corespunz tor.
De aceea, dup apelul func iei date trebuie apelata func ia Initgraph. Ulterior, daca se dore
te schimbarea modului grafic selectat, se va folosi func ia Setgraphmode.

Pentru a cunoa te daca execu ia unei func ii din biblioteca grafica a decurs normal sau nu, se
pot folosi func iile Graphresult i Grapherrormsg.

Graphresult - func ia întoarce codul de eroare referitor la execu ia ultimei func ii grafice. Codul de
eroare este o valoare întreaga cuprinsa intre -14 i 0. Semnifica ia fiec rui cod eroare este
prezentata în tabelul 3.

Grapherrormsg - func ia întoarce un ir de caractere reprezentând mesajul corespunz tor codului de


eroare furnizat de func ia graphresult.

Tabelul 3. Coduri i mesaje de eroare întoarse de func iile graphresult i grapherrormsg


Cod eroare Nume Simbolic Mesajul afi at (de func ia 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

21
-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 rezolu ii i palete
de culori. În biblioteca grafica exista func ii care permit schimbarea modului video stabilit
sau interogarea modului video. Aceste func ii sunt:

Getgraphmode - func ia întoarce o valoare întreag ce reprezint modul video curent.

Setgraphmode - func ia stabile te un nou mod video. La apelul acestei func ii se terge ecranul i se
ini ializeaz to i parametrii de operare în mod grafic la valorile implicite.

Func ia se poate utiliza la revenirea din mod text în mod grafic. Func iile getgraphmode
i
setgraphmode se pot folosi numai dup ini ializarea modului grafic.

Getmoderange - func ia prime te ca parametru num rul unui driver grafic i întoarce doua
valori
reprezentând num rul minim i maxim al modului video permis pentru driver-ul grafic specificat.

Getmaxmode - func ia întoarce num rul maxim de moduri video pentru driver-ul grafic curent
(înc rcat în memorie de func ia initgraph).
Spre deosebire de func ia getmoderange, func ia getmaxmode se poate utiliza pentru
orice
driver, inclusiv pentru cele definite de utilizator.

Getmodename - func ia prime te ca parametru num rul modului grafic activ, specificat fie printr-o
variabila întreag . Func ia întoarce un ir de caractere ce reprezinta denumirea modului video.

Graphdefault - func ia ini ializeaz to i parametrii de operare în mod grafic la valorile implicite.

Restorecrtmode - func ia reini ializeaz sistemul de afi are în modul text, dup utilizarea
modului grafic. Se poate folosi alternativ cu setgraphmode pentru a comuta din mod text în
mod grafic, în func ie de aplica ie. La trecerea dintr-un mod în altul, ecranul se terge i se afi eaz
informatia din memoria video corespunz tor noului mod.

2.6. Ie irea din modul grafic

Closegraph - func ia efectueaz revenirea în modul text, modul implicit de lucru al sistemului
de afi are. Ea apeleaz func ia graphfreemem pentru a elibera memoria ocupata de driver-ul grafic,
setul sau seturile de caractere utilizate de program precum i zonele de memorie interne.

22
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
înc rcat în memorie.
Programatorii pot rescrie un driver grafic pentru un adaptor existent sau pot scrie unul
nou.
Func ia Installuserdriver permite utilizarea unui nou driver, incluzând fi ierul .BGI specificat
ca parametru, intr-o tabela interna men inut de pachetul de func ii grafice. Un al doilea
parametru, op ional, este adresa rutinei de detectare i are valoarea NULL daca nu exista o astfel de
rutina.
Func ia î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

Execu ia unui program care nu con ine driver-ul grafic în forma .EXE presupune
existenta
driver-ului grafic în directorul specificat la apelul func iei Initgraph.
Acest lucru poate sa duc la unele probleme în cazul utiliz rii 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 converte te fi ierul .BGI în fi ier .OBJ cu utilitarul BGIOBJ:
2. Se leag fi ierul .OBJ rezultat, la programul executabil.

3. În codul sursa al programului se apeleaz func ia Registerbgidriver sau Registerbgifont,


pentru înregistrarea driverului.

3. Primitive grafice

Primitive grafice reprezint elementele de imagine care pot fi afi ate cu ajutorul func
iilor 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 afi
are
(culoarea, tipul de linie, tipul de interior, grosimea liniei .a.). Fiecare atribut de afi are are o valoare
implicita, stabilita la ini ializarea modului grafic sau prin apelul func iei Graphdefault.

3.1. Opera ii cu pixeli

Putpixel(x,y,c) - func ia afi eaz un pixel, ale c rui coordonate i culoarea sunt specificate ca
parametri.

Getpixel(x,y) - func ia întoarce culoarea unui pixel ale c rui coordonate x i y sunt specificate
ca
parametri.

23
Pozi ia curenta de desenare poate fi stabilita cu ajutorul func iilor grafice Moveto i Moverel.
Implicit, pozi ia curenta de desenare este în coltul din stânga sus al por ii de vizualizare curente.

Moveto(x,y) - func ia stabile te ca pozi ie curenta de desenare punctul de coordonate (x,y)


specificate ca parametri. În mod text, func ia echivalenta este Gotoxy.

24
Moverel(xr,yr) - func ia deplaseaz pozi ia curenta de desenare relativ la vechea pozi ie de desenare,
cu distantele xr i yr pe axele x i y respectiv. Noua pozi ie de desenare nu este limitata la
dimensiunea por ii de vizualizare curente.

Getx i Gety - func iile întorc coordonata pozi iei 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) - func ia afiseaza o linie intre punctele de coordonate (x1,y1) i (x2, y2),
specificate ca parametri. Linia este afi ata folosindu-se valorile curente ale atributelor de afi are ale
liniilor: culoare de desenare, grosime i tip linie, mod de scriere în memoria ecran. Valorile
trebuie sa fie stabilite înainte de apelul func iei line.

Valori implicite au urm toarele atributele de afi are


culoare : alb
tip de linie : continua
grosime linie : un pixel
mod de scriere în memoria ecran: COPY_PUT

Lineto(xf,yf) - func ia afiseaza o linie din pozi ia curenta de desenare pân în punctul de coordonate
(xf,yf) specificate ca parametri. Pentru afi area liniei se folosesc valorile curente ale atributelor
men ionate la func ia line. Dup afi are, pozi ia curenta de desenare va deveni punctul de coordonate
(xf, yf).

Linerel(xr,yr) - func ia afiseaza o linie din pozi ia curenta de desenare pâna intr-un punct specificat
prin deplasamentul relativ fata de pozi ia curenta de desenare (xr, yr).

3.3. Poligoane

Rectangle(x1,y1,x2,y2) - func ia afiseaza un dreptunghi specificat prin doua vârfuri diametral opuse:
stinga sus i dreapta jos. Coordonatele acestor doua vârfuri constituie parametrii func iei.

Bar(x1,y1,x2,y2) - func ia afiseaza o suprafa dreptunghiulara specificata prin doua vârfuri


diametral opuse. La afi area suprafe ei se folosesc valorile curente ale atributelor de afi are ale
suprafe elor: tip de interior i culoare de interior.

Aributele de afi are ale suprafe elor au urm toarele valori implicite:
culoare de interior : alb
tip de interior : uniform (to i pixelii de aceea i culoare)

Bar3d(x1,y1,x2,y2,dz,ind) - func ia afiseaz un paralelipiped dreptunghic, cu fetele paralele cu


planele principale ale sistemului de coordonate 3D. La afi are 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.

25
Primii patru parametri ai func iei reprezint coordonatele a doua vârfuri diametral opuse
ale fetei paralelipipedului situata mai aproape de observator. Parametrul dz reprezint
dimensiunea paralelipipedului pe axa z i se exprima în num r de puncte. Ultimul parametru
permite desenarea op ionala a fetei de sus a paralelipipedului. Aceasta nu se deseneaz daca
parametrul are valoarea 0. Op iunea este utila în aplica ii în care se dore te suprapunerea mai multor
astfel de figuri.

Parametrii func iei sunt: num rul de vârfuri ale liniei poligonale i vectorul cu
coordonatele (x, y) ale acestora. Pentru a desena o linie poligonala închisa cu n vârfuri, primul
parametru al func iei va fi n+1, iar coordonatele ultimului vârf vor fi egale cu coordonatele
primului vârf în vectorul cu coordonate.

3.4. Curbe conice


În biblioteca grafica exista func ii pentru desenarea urm toarelor curbe conice: cerc, arc
de
cerc, elipsa i arc de elipsa.

La afi area curbelor conice se folosesc valorile curente ale atributelor: culoare de desenare i
grosime linie. Ele sunt afi ate cu linie continu , indiferent de valoarea curenta a atributului tip
de linie.

Circle(x,y,r) - func ia afiseaza un cerc având centrul de coordonate (x,y) i raza r, specificate
ca
parametri. Raza se exprima printr-un num r întreg.

Arc(x,y,ui,uf,r) - func ia afiseaza un arc de cerc, intre unghiul ini ial ui i unghiul final uf
specificate ca parametri. Raza cercului i coordonatele centrului x i y sunt de asemenea parametri ai
func iei. Unghiurile ini ial i final se exprima în grade, cuprinse intre 0 i 360 grade.

Ellipse(x,y,ui,uf,a,b) - func ia afiseaza o elipsa sau un arc de elipsa. Coordonatele centrului x i y,


semiaxele a i b precum i unghiurile ini ial ui i final uf sunt specificate ca parametri ai func iei.

3.5. Suprafe e

Suprafa a poligonala

Fillpoly - func ia afiseaza o suprafa a poligonala utilizând valorile curente ale atributelor de afi
are ale liniilor pentru contur, i valorile curente ale atributelor de afi are ale suprafe elor pentru
restul punctelor suprafe ei. Poligonul se specifica prin num rul de vârfuri i vectorul
coordonatelor (x, y) ale vârfurilor. În cazul în care coordonatele ultimului vârf difer de
coordonatele primului vârf poligonul este închis automat.

Suprafa a circulara i eliptica, sector de cerc i de elipsa

Fillellipse(x,y,a,b) - func ia afiseaza o suprafa a eliptica cu interiorul determinat de valorile curente


ale atributelor culoare de interior i tip de interior.

Pieslice(x,y,ui,uf,r) - func ia afiseaza un sector de cerc sau un cerc cu interiorul determinat


26
de
valorile curente ale atributelor tip de interior i culoare de interior. La afi area razelor care

27
delimiteaz sectorul se folosesc valorile curente ale atributelor de afi are a liniilor.
Coordonatele centrului cercului, raza, unghiurile ini ial i final sunt specificate ca parametri ai
func iei. Pentru ob inerea unei suprafe e circulare cele doua unghiuri trebuie sa fie 0 i 360 de grade.

Sector(x,y,ui,uf,a,b) - func ia afiseaza un sector de elipsa. Coordonatele centrului elipsei, unghiurile


ini ial i final ale arcului care delimiteaz sectorul i semiaxele elipsei sunt specificate ca parametri ai
func iei. Sectorul este afi at folosindu-se valorile curente ale atributelor tip de interior i culoare
de interior. Pentru afi area razelor care delimiteaz sectorul se folosesc valorile curente ale
atributelor de afi are a liniilor.

Suprafa a m rginit de un contur oarecare


Floodfill(x,y,c) - func ia 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 pân la limitele por ii de vizualizare curente.

4. Atributele de afi are ale primitivelor grafice

Atribute de afi are ale primitivelor grafice sînt urm toarele:


- 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 func ii ale bibliotecii grafice.

4.1. Specificarea culorilor

Culorile care pot fi folosite depind de adaptorul grafic i modul grafic curent.

Culori VGA

În func ie de modul grafic utilizat, sistemul VGA permite afi area a 16 sau a 256
culori
simultan dintr-o gama de 256K nuan e posibile.

Cele 16 culori ce pot fi afi ate simultan de adaptorul VGA în modul 16 culori formeaz
o
paleta, prezentata mai jos:

28
Tabelul 5.1. Paleta implicita VGA

Culoare Valoare Valoare Componente Nume culoare


(num rul implicita binara culoare
intrarii) (hexa)
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 rgb—B 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 con ine oricare din cele 64 de nuan e posibile. Modificarea unei
culori
sau a întregii palete se realizeaz cu func iile Setpalette respectiv Setallpalette.

Func ii pentru stabilirea paletei i a culorii de desenare

Getmaxcolor - func ia întoarce num rul maxim de culori ce pot fi folosite în modul grafic curent.

Setcolor(c) - func ia poate fi apelata pentru stabilirea culorii de desenare curente.

Getcolor - func ia întoarce culoarea de desenare curenta.

Setbkcolor(c) - func ia poate fi apelata pentru specificarea culorii fondului. Ea modifica prima
intrare a paletei de culori la valoarea specificata ca parametru.

Utilizarea acestei func ii are ca efect schimbarea a pixelilor afi a i în culoarea de


fond. Astfel, o parte din imaginea afi ata poate deveni "invizibila", atunci când culoarea
fondului este aceea i cu cea a unor elemente de imagine. Imaginea insa nu este modificata i
nu se pierde, astfel incit la o noua modificare corespunz toare a culorii fondului imaginea
poate redeveni "vizibila" în întregime.

Getbkcolor - func ia întoarce valoarea curenta a culorii de fond.

Culorile (de desenare, de interior, culoarea fondului) pot fi specificate prin valorile numerice
corespunz toare sau prin numele simbolice, definite în fi ierul GRAPHICS.H. dupa cum
urmeaz : BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGREY,
DARKGREY,

29
LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW,
WHITE

Setpalette(indpal, c) - func ia modifica o intrare a paletei. Ea prime te prin lista de parametri


num rul intr rii 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
re inut ca schimbarea modului grafic are ca efect tergerea ecranului.

Intr rile noii palete pot fi definite explicit sau noua paleta poate fi una ob inut anterior
cu
apelul getpalette.
Aceasta func ie 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 - func ia întoarce paleta de culori curenta.

Setrgbpalette - func ia poate fi folosita pentru modificarea paletei (fizice) de 256 de culori. Fiecare
culoare din paleta se define te prin 3 valori corespunz toare componentelor de baza ro u,
verde i albastru (RGB). Aceste valori se reprezint pe câte 6 bi i. Func ia are ca parametri: num
rul intr rii din paleta care se redefine te ( î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
intr ri ale paletei fizice.

Din cei 16 bi i pe care se reprezint fiecare din parametrii Rval, Gval, Bval sunt folosi i doar
cei mai semnificativi 6 bi i ai octetului mai pu in semnificativ. Aceasta corespunde la valori multiplu
de 4, în intervalul 0..252.

4.2. Atributele de afi are 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) - func ia stabile te valorile curente ale atributelor tip de linie i grosime linie.
În fi ierul GRAPHICS.H sunt definite urm toarele constante simbolice pentru tipul i
grosimea liniei: OLIDLINE, DOTTEDLINE, CENTERLINE, DASHEDLINE, USERBITLINE
NORMWIDTH, THICKWIDTH.

Valorile implicite ale acestor atribute de afi are sunt SOLIDLINE i NORMWIDTH.

Cel de-al doilea parametru al func iei Setlinestyle (Sablonlinie) are semnifica ie numai
când 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 bi i. Un bit corespunde unui pixel al liniei, cu semnifica ia 1 - pixel aprins (desenat
cu culoarea de desenare curenta), 0 - pixel stins.

30
Getlinesettings - func ia întoarce informa ii referitoare la valorile curente ale atributelor tip de linie,
ablon de linie, i grosime linie.

Modul de înscriere a informa iei grafice în memoria ecran

În bibliotecile grafice, exista o func ie ce permite stabilirea modului de înscriere a


informa iei grafice în memoria ecran. Astfel, valorile numerice prin care se reprezint pixelii în
memoria ecran pot fi înscrisee în mod necondi ionat, printr-o opera ie la nivel de pixel, intre valoarea
care trebuie sa fie înscrisa i valoarea existenta.

Setwritemode(oplog) - func ia stabile te modul de înscriere în memoria ecran a informa iei.

În fi ierul GRAPHICS.H sunt definite doua constante: COPYPUT i XORPUT,


corespunz tor celor doua modalit i de scriere posibile. COPYPUT specifica afi area necondi ionata
(suprascriere) peste imaginea existenta. XORPUT specifica afi area condi ionata combinând linia cu
imaginea deja existenta. Aceasta combina ie corespunde opera iei logice XOR. Astfel, daca o
linie este trasat a doua oara prin aceia i pixeli, utilizând acest mod de afi are, efectul este de
tergere a liniei i restaurare a imaginii ini iale.

4.3. Atributele de afi are ale suprafe elor

Atributele date sunt folosite de func iile: 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 afi area conturului figurilor de tip suprafa a.

Setfillstyle(ti,ci) - func ia poate fi apelata pentru specificarea valorilor curente ale atributelor tip
de
interior i culoare de interior, specificate ca parametri.

Setfillpattern(sb,ci) - func ia prime te prin lista de parametri un ablon i culoarea de interior.


Un
ablon se reprezint printr-un vector de caractere.

Getfillpattern  func ia întoarce ablonul utilizat curent, specificat la apelul func iei Setfillpattern.

Getfillsettings  func ia întoarce valorile curente ale atributelor tip i culoare de interior.

5. Textul în mod grafic

În aplica iile grafice, imaginile care se afiseaza pot con ine i texte, formate din iruri
de caractere. Afi area 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 afi rii de texte pe ecran.

În mod grafic afi area textului difer de afi area în mod text. Astfel, un caracter poate
fi amplasat în orice pozi ie pe ecran (specificata prin coordonate de pixel) fata de modul text în care un
31
caracter poate fi amplasat numai în una din cele 25x80 celule în care ecranul este considerat
a fi divizat.

32
De asemenea pentru modul grafic exista definite mai multe seturi de caractere, iar
dimensiunea caracterelor poate fi modificata. Direc ia de scriere a textului poate fi orizontala
sau verticala.

5.1. Afi area textului în mod grafic

În biblioteca grafica sunt definite doua func ii ce permit scrierea textului în mod grafic:
Outtext(„Text”) - func ia afiseaza un ir de caractere. Pozi ia de amplasare a textului este
pozi ia curenta de desenare.

Pentru afi area textului, func ia folose te valorile curente ale atributelor set de caractere,
culoare de desenare, dimensiune caractere, direc ie de scriere (orientare text) i aliniament.
Valorile acestor atribute se stabilesc cu ajutorul unor func ii speciale.

Outtextxy(x,y,”Text”) - func ia afiseaza un ir de caractere, în pozi ia de amplasare x i y,


specificata prin parametri. Func ia Outtextxy nu modifica pozi ia curenta de desenare. Pentru
afi area textului, func ia folose te valorile curente ale atributelor men ionate la func ia outtext.

5.2. Atributele de afi are ale textelor

Aceste atribute sunt: culoarea de scriere, setul de caractere, dimensiunea (m rimea)


caracterelor, direc ia de scriere, aliniamentul textului.

Culoarea de scriere este culoarea curenta de desenare stabilita cu ajutorul func iei
Setcolor. Aliniamentul se refera la pozi ia de afi are a textului fata de pozi ia de amplasare
text transmisa func iilor 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.

Func iile bibliotecii grafice care pot fi folosite pentru stabilirea valorilor curente
ale
atributelor de afi are ale textelor sînt urm toarele.

Settextstyle(car, dir, dim) - func ia poate fi apelata pentru a specifica setul curent de
caractere, direc ia de scriere i dimensiunea caracterelor. Cel de-al treilea parametru al func iei
settextstyle reprezinta factorul de scalare pe x i y ce se aplica dimensiunii ini iale a
caracterelor. Acest parametru ia valori intre 0 i 10. Orice valoare în afara acestui interval
genereaz o eroare - func ia Graphresult întoarce valoarea -11 iar valorile curente ale
atributelor set caractere, direc ie i dimensiune nu se modifica.
Valoarea 0 ca dimensiune a caracterelor are semnifica ie diferita în func ie 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 implici i
sx=sy=4 sau cu factorii de scalare defini i de utilizator, folosind setusercharsize. Valorile
implicite ale atributelor set caractere, direc ie scriere i dimensiune caracter sunt:
DEFAULT_FONT, HORIZ_DIR, respectiv 1.

Numele simbolice ale seturilor de caractere, definite în fi ierul GRAPHICS.H, sunt


prezentate în tabelul 5.1.

33
Tabelul 5.1. Seturi de caractere

Nume simbolic Valoare Fi ier .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

Direc ia 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) - func ia permite definirea factorilor de scalare care se vor
aplica
dimensiunii caracterelor din setul curent de caractere, exceptând setul implicit (DEFAULT_FONT).

Factori de scalare se calcul în mod urm tor sxxmxd, syymyd. Factorii sx i sy


pot fi numere întregi sau frac ionare. Daca au valori diferite se produce o deformare a caracterelor
afi ate, fata de aspectul lor ini ial (form de defini ie).

Settextjustify(aliniament) - func ia permite specificarea aliniamentului orizontal i a celui


vertical pentru text. Aliniamentul specifica pozi ia textului fata de pozi ia de amplasare text
folosita de func iile de scriere outtext i outtextxy.

Valorile numerice i numele simbolice definite pentru aliniament în fi ierul


GRAPHICS.H
sunt prezentate în tabelul urm tor:

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.

34
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.

Afi area caracterelor raster este mai simpla. În schimb, scalarea caracterelor (m rirea
sau mic orarea fata de dimensiunea de defini ie) este mult mai rapida i mai exacta pentru un
set vectorial decât 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 fi iere cu extensia .CHR.

Fi ierele .CHR corespunz toare seturilor de caractere folosite intr-un program pot
fi
transformate în fi iere .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 func ia Installuserfont

Installuserfont(cale, nume fi ier.CHR) - func ia încarc în sistemul grafic un nou set


vectorial dintr-un fi ier .CHR al carui nume este specificat ca parametru i întoarce un întreg,
identificator al setului. Acest identificator poate fi folosit de func ia settextstyle pentru a selecta
setul curent de caractere.

În sistemul grafic exista o tabela ce poate con ine pân la 20 de seturi de caractere, instalate
cu aceasta func ie. Daca tabela este plina, func ia întoarce valoarea -11.

Spa iul ocupat de un text pe ecran depinde de num rul de caractere din text dar i de setul de
caractere i factorii de scalare utiliza i. Pentru a determina dimensiunea în pixeli a dreptunghiului în
care se încadreaz un text, pot fi folosite doua func ii existente în biblioteca grafica: textwidth
i textheight. Se poate astfel calcula spa iul intre diferite texte sau linii de text care se scriu pe ecran.

Textheight - func ia întoarce în l imea unui text, exprimata în pixeli, inând cont de setul curent de
caractere, factorii de scalare i direc ia de scriere.

Txtwidth - func ia întoarce la imea unui text, exprimata în pixeli, inând cont de setul de
caractere
curent, factorii de scalare i direc ia de scriere. Caracterele din seturile vectoriale au l imi diferite.

6. Opera ii cu imagini

6.1. Sistemul de coordonate dispozitiv

În mod grafic, ecranul este considerat ca fiind o matrice de puncte (pixeli), fiecare
având culoarea sa. În func ie 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
35
utilizate.

36
Sistemul de coordonate ata at ecranului, numit "sistem de coordonate dispozitiv" este un
sistem de coordonate carteziane, cu originea în coltul din stânga 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 func ie 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 func ii din biblioteca
grafica. Aceste func ii sunt utile în programele de aplica ie pentru asigurarea independentei lor
de adaptorul grafic folosit. Cele doua func ii sunt:

Getmaxx, Getmaxy - func iile î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 aplica iei. Poarta implicita este întregul
ecran. Coordonatele transmise func iilor de afi are apelate în programele de aplica ie sunt
considerate relative la originea por ii de vizualizare curente. Aceasta permite afi area unui desen
oriunde pe ecran, prin simpla redefinire a por ii de vizualizare.

În biblioteca grafica exista func ii specifice pentru definirea i pentru tergerea suprafe ei
por ii de vizualizare curente

Setviewport(x1, y1, x2, y2, clip) - func ia stabile te poarta de vizualizare curenta, specificata
prin
coordonatele a doua vârfuri diametral opuse (stinga-sus, dreapta-jos).
În cazul în care coordonatele transmise func iei setviewport sunt incorecte, func ia
Graphresult întoarce valoarea -11, f r a se modifica poarta vizuala curenta.
Ultimul parametru al func iei (clip) este indicatorul de decupare. Prin el programatorul poate
specifica daca dore te sa se efectueze opera ia de decupare (clipping) a imaginii afi ate la
frontiera por ii vizuale curente. Astfel, daca parametrul clip are valoarea 0, decuparea va avea loc la
marginile ecranului i nu la cele ale por ii de vizualizare curente. Coordonatele specificate pentru
desenare sunt relative la originea por ii vizuale curente, dar imaginea afi ata se poate extinde
peste limitele acesteia. Daca parametrul clip are o valoare diferita de 0 se va realiza automat opera
ia de decupare la marginile por ii vizuale curente. Aceasta înseamn ca numai acele elemente
grafice care con in puncte apar inând por ii vor fi afi ate.

Func iile Initgraph i Setgraphmode stabilesc ca poarta vizuala curenta întregul ecran.

Clearviewport - func ia sterge imaginea afi ata în poarta vizuala curenta (folosind culoarea de fond)
i stabile te pozi ia curenta de desenare în coltul stânga sus al por ii. Este echivalenta ca efect
cu
func ia clrscr dedicata modului text.

Getviewsettings - func ia întoarce coordonatele ce definesc poarta de vizualizare curenta i valoarea


indicatorului de decupare (clip).

37
Pentru tergerea întregului ecran în mod grafic se poate folosi func ia Cleardevice:
Cleardevice - terge întreg ecranul i muta pozi ia curenta de desenare în originea sistemului
de coordonate dispozitiv.

Spre deosebire de func ia Clrscr din mod text (care terge fereastra activa) func ia
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 fi iere

Biblioteca grafica con ine func ii ce permit diferite opera ii cu imagini sau p r i de imagini
ecran: copierea, tergerea, restaurarea, multiplicarea. Aceste Opera ii sunt esen iale în aplica ii
de anima ie pe calculator; de asemenea, în unele aplica ii este util sa se salveze imagini ecran în fi
iere pe disc.

Func iile care realizeaz opera ii 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 vârfuri diametral opuse. Determinarea spa iului de memorie
necesar pentru salvarea unei imagini ecran este realizata de func ia Imagesize(x1, y1, x2, y2),
care întoarce num rul de octe i necesari pentru a memora o imagine ecran specificata prin
coordonatele a doua vârfuri diametral opuse.

Func ia Getimage(x1, y1, x2, y2, adr) salveaz o imagine ecran intr-o zona de
memorie alocata anterior. Parametrii func iei sunt cele 4 coordonate prin care se specifica
imaginea ecran i adresa zonei din memoria interna. Zona trebuie sa fie mai mica de 64K.

Func ia Putimage(x1, y1, oper) restaureaz o imagine salvata anterior, afi ând-o intr-o pozi ie
specificata prin lista de parametri. Pozi ia este reprezentata prin coordonatele coltului stânga
sus al zonei dreptunghiulare în care va apare imaginea pe ecran.
Func iile Getimage i Putimage permit transferul imaginilor intre memoria ecran i memoria
interna. Pentru aplica ii 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 fi iere. Astfel, o imagine ecran se salveaz intr-un fi ier care poate fi apoi folosit de mai
multe ori în diferite aplica ii. Se poate crea i stoca intr-un fi ier o succesiune de imagini, pentru ca
apoi imaginile sa fie redate rapid prin citire din fi ier.

Func ii, care realizeaz opera iuni de salvare a unei imagini ecran intr-un fi ier,
respectiv
restaurarea ei din fi ier, sînt Getimg i Putimg.

Func ia Getimg(x1,y1,x2,y2,nf) are ca parametri coordonatele a doua vârfuri diametral opuse


ale zonei ecran ce con ine imaginea de salvat i numele fi ierului. Pentru lucrul cu fi ierul se folosesc
func iile Fopen, Fwrite, Fflush i Fclose.

Func ia Putimg(x1y1,nf,ms) are ca parametri coordonatele coltului stinga-sus ale zonei


în care se va afi a imaginea, numele fi ierului i modul de scriere. Dimensiunea imaginii ecran
se determina din primii 4 octe i citi i din fi ier. Ace ti 4 octe i reprezint dimensiunile pe x i
pe y. Citirea celor 4 octe i din fi ier se realizeaz cu func ia Fgetc. Se determina apoi num rul
de octe i necesari pentru memorarea imaginii i se aloca spa iul necesar.

38
Se apeleaz func ia Rewind pentru repozi ionare la începutul fi ierului, apoi se cite te
imaginea din fi ier folosind func ia Fread. Pentru restaurarea imaginii pe ecran se apeleaz
func ia Putimage. În final se elibereaz spa iul alocat i se închide fi ierul.

6.4. Opera ii cu imagini în memorie

Ultimul parametru al func iei Putimage specifica modul de scriere al fiec rui pixel
imagine. Sunt definite 5 moduri de scriere care permit combinarea unui pixel al imaginii de afi
at cu pixelul corespunz tor din imaginea existenta în zona de afi are. Modurile de scriere sunt
reprezentate prin 5 operatori prezenta i în tabelul 12.1 i enumera i în fi ierul GRAPHICS.H.

Tabelul 12.1. Moduri de scriere a pixelilor imaginei

Nume Valoare Descriere opera ie


operator
COPY_PUT 0 imaginea e copiata înlocuind imaginea existenta
XOR_PUT 1 Se realizeaz opera ia logica XOR la nivel de
pixel intre imaginea salvata i cea existenta
OR_PUT 2 Se realizeaz opera ia logica OR
AND_PUT 3 Se realizeaz opera ia logica AND
NOT_PUT 4 Se realizeaz opera ia logica NOT la nivel de
pixel în imaginea salvata i se înlocuie te
apoi
imaginea existenta pe ecran
Opera ia de copiere (COPY_PUT) este utila atunci când se dore te înlocuirea unei
imagini
sau por iuni de imagine.
Operatorul XOR_PUT se poate folosi atunci când se dore te afi area temporara a unei
imagini intr-o zona a ecranului. Astfel, daca se afiseaza o imagine de doua ori în aceea i pozi
ie folosind operatorul XOR_PUT, dup a doua afi are apare imaginea existenta în zona înaintea
primei afi ri. Metoda se folose te pentru realizarea anima iei.
Func ia Putimage nu afi eaz 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. Fi iere cu mai multe imagini

Crearea i utilizarea unui fi ier cu mai multe imagini este utila în aplica ii care
necesita salvarea/restaurarea unei imagini care ocupa întregul ecran, la fel i în aplica ii care
opereaz cu mai multe imagini ecran.

În primul caz, salvarea unui ecran se realizeaz prin divizarea imaginii în fâ ii orizontale, de
exemplu în 4 fragmente care se salveaz pe rând, în acela i fi ier. Fragmentele de imagine au aceea i
dimensiune, ceea ce permite o c utare simpla în fi ier pentru a determina unde începe o noua
imagine.

În al doilea caz, imaginile pot avea dimensiuni diferite, de aceea apare problema localiz
rii imaginilor intr-un fi ier. O solu ie ar constitui-o salvarea în fi ier a unor imagini de aceea
i dimensiune i anume dimensiunea celei mai mari imagini. Solu ia este convenabila doar în cazul
în care imaginile care se salveaz în fi ier au dimensiuni aproximativ egale. Daca imaginile
sunt de
39
m rimi mult diferite, restaurarea imaginilor este mai complicata; trebuie determinata
dimensiunea fiec rei imagini în parte i implicit a datelor care se citesc din fi ier. Dimensiunea
se determina din primii 4 octe i ai unei imagini dar, pentru aceasta trebuie cunoscuta pozi ia imaginii
în fi ier. Pentru salvarea mai multor imagini intr-un fi ier se poate folosi op iunea append la opera ia
de deschidere a fi ierului.

Func ia Savimg salveaz o imagine ecran intr-un fi ier pe disc. Fi ierul poate con ine
mai multe imagini ecran. Func ia întoarce pozi ia în fi ier a imaginii salvate. Indiferent de
dimensiunea imaginii ecran salvate func ia împarte aceasta imagine în 4 fragmente de aceea i m
rime. Divizarea se face în fâ ii orizontale iar fragmentele sunt salvate apoi în fi ier în ordinea de sus
în jos.

Restaurarea imaginii salvate anterior intr-un fi ier folosind func ia Savimg este realizata
de func ia Restimg. Spre deosebire de func ia Putimg func ia dat are în plus un parametru
ce reprezint pozi ia în fi ier a imaginii ce se restaureaz . Imaginea este formata din 4
fragmente de aceea i dimensiune.

6.6. Operarea cu mai multe pagini video

Imaginea afi ata 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 atât mai mare, cu cit rezolu ia este mai mare i se lucreaz
intr-un mod video cu mai multe culori afi abile simultan pe ecran.

În unele moduri video, capacitatea memoriei video este suficient de mare pentru a
permite p strarea mai multor imagini ecran. Zona de memorie video necesara pentru a p stra un
întreg ecran se nume te pagina video. În tabelul urm tor 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 Constanta Valoare Rezolu ie Paleta Pagini


Driver gr mod video mod (col*lin) culori 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 nume te pagina vizibila. Pagina în care
se scrie la un moment dat se nume te pagina activa.

Ini ial pagina 0 este atât pagina vizibila cit i pagina activa. Adaptorul poate comuta
foarte rapid de la o pagina la alta. Corespunz tor, în biblioteca grafica exista func ii ce permit
comutarea i stabilirea paginii active i a paginii vizibile. Modul de lucru cu mai multe pagini
video ofer avantajul unei actualiz ri rapide a întregului ecran. Astfel, în timp ce pe ecran este afi
ata o pagina, se poate construi o alta imagine intr-o alta pagina. Prin simpla schimbare a
paginii vizibile se va schimba întreag imagine afi ata pe ecran.

40
Aplica iile în care se utilizeaz mai multe pagini video sunt de exemplu, programele de
anima ie pe calculator, programele care construiesc imagini foarte complexe. În primul tip de
aplica ii pentru a simula mi carea, se afiseaza o pagina video, în timp ce se construie te (se
deseneaz ) urm toarele imagini ale filmului de anima ie în celelalte pagini video. Se afiseaza
apoi succesiv aceste pagini video comutând de la una la alta pentru a simula mi carea. În cel de-al
doilea tip de aplica ie 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 decât cea activa. În final se comuta pagina activa astfel incit sa
devin pagina vizibila i astfel utilizatorul poate observa imaginea gata construita.

Func iile din biblioteca grafica ce permit lucrul cu pagini video sunt urm toarele.

Setactivepage - func ia permite selectarea paginii în care se va desena (pagina activa). I se transmite
ca parametru num rul de pagina care devine pagina activa. Daca noua pagina activa nu coincide
cu pagina vizibila, func iile de desenare apelate în continuare în program nu vor afecta imaginea afi
ata pe ecran.

Setvisualpage - func ia permite selectarea paginii video care va fi afi ata (pagina vizibila).
Poate fi folosita pentru comutarea afi rii intre diferite pagini video. Comutarea este mult mai
rapida decât poate urm ri ochiul uman; necesita doar un ciclu de reîmprosp tare a imaginii
ecran (circa 1/50 secunde) pentru afi area unei imagini deja construite, oricât de complexa.

6.7. Corec ia formelor imaginilor sintezate

Fiec rui driver grafic i mod grafic le corespunde o anumita dimensiune a pixelului pe ecran.
Aceasta este reprezentat prin raportul dintre dimensiunea pe orizontala (l imea) i dimensiunea pe
verticala ( în l imea) ale unui pixel.

De regula acest raport este subunitar, ce duce la afi area figurilor generate deformate
(lungite pe verticala). Pentru a calcula i corecta distorsiunile, introduse de forma dreptunghiular a
unui pixel, se folosesc dou func ii din biblioteca  Getaspectratio i Setaspectratio.

Getaspectratio(xp,yp) - func ia întoarce doua valori întregi, reprezentând dimensiunile pe x i y a


unui pixel.

Func iile de afi are din biblioteca grafica efectueaz corec ia de pixel. Daca figurile
apar deformate pe ecran, cauza o constituie reglarea electronica necorespunz toare a monitorului.
Aceasta poate fi modificata manual. Func ia Circle poate fi folosita ca o metoda de verificare a
corectitudinii reglajului electronic al monitorului. Corec ia de pixel nu este efectuata pentru linii,
poligoane, elipse sau arce de elipsa.

Setaspectratio(xp,yp) - func ia stabile te raportul dintre dimensiunea pe x i pe y a unui


pixel. Raportul este folosit automat ca factor de scalare de func iile de afi are cerc, arc de cerc i
sector. Se recomand utilizarea acestei func ii atunci când cercul generat de func ia Circle din
biblioteca este deformat (pe verticala sau pe orizontala).
Corec ia de pixel se poate realiza prin program - utilizând func ia Setaspectratio - sau
prin
reglarea manuala a monitorului.

41
7. Formatele fi ierelor 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
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.

42
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.

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
43
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.

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.
44
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

45
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, c rora le sunt alocate atribute (culoare, grosime .a.).

Aplica iile grafice vectoriale creaz obiecte sau forme definite prin formule matematice,
conducând la obiecte prezentate prin curbe mai netede decât în abordarea bitmap, în cazul în
care se folosesc efecte de scal . Spre deosebire de modul bitmap, un desen vectorial nu este
legat de rezolu ie, adaptându-se rezolu iei perifericului de ie ire. În plus, stocheaz imagini în
fi iere mai pu in
46
voluminoase i le manevreaz mai u or decât modul bitmap datorit descrierii matematice a
imaginilor. Modul vectorial este folosit în aplica ii de design, arhitectur , reclam .

Spre deosebire de aplica iile de desenare (paint programs), programele care utilizeaz imagini
în format vectorial se numesc aplica ii de trasare (draw programs). Informa iile comune fi
ierelor grafice mod vectorial i bitmap sunt: rezolu ia original , dimensiunea imaginii, indica ii
despre paleta de culori, parametrii algoritmului de comprimare (care reprezint în acela i timp
obstacole în efortul de standardizare a formatelor grafice).

Majoritatea sistemelor grafice sofisticate (inclusiv sisteme CAD i aplica ii de anima ie)
folosesc grafica vectorial . În plus, multe tipuri de imprimante (spre exemplu imprimantele
PostScript) folosesc grafica vectorial în timpul proces rii. Caracterele (fonts) sunt reprezentate
vectorial pentru a putea fi reprezentate unitar f r s depind de dimensiune. Datorit solu iei de
reprezentare, se mai numesc i vector fonts, caractere scalabile, sau orientate obiect.
Principalele formate de fi iere 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) define te formatul rezultat din combinarea codului PostScript ca
o resurs (Pict pentru Mac, Tiff pentru PC) corespunz toare 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 afi eaz pe ecran, permi ând vizualizarea i pozi ionarea precis
pe monitor. În momentul imprim rii se folose te fi ierul PostScript. Unele programe creaz fi iere
EPS f r preview. În acest caz, cadrul destinat pentru recep ia imaginii r mâne vid la import,
dar rezultatul imprim rii este corect.
DCS (DeskTop Color Separation) este o extensie a fi ierului EPS pentru schimbul unei
imagini
pentru care s-a realizat deja separarea culorii (produc tor: Quark). Se compune din cinci fi iere: unul
pe baz de rezolu ie Pict pentru plasarea în Xpress, i patru fi iere de rezolu ie ridicat reprezentând
patru culori de imprimat ce sunt trimise automat la imprimant în momentul imprim rii.

DXF (Drawing eXchange Format) este formatul de schimb creat de Autodesk în cadrul software-ului
AutoCad. A devenit standard prin generalizarea utiliz rii.

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 fi ier standard recunoscut de trei
organisme de normalizare/standardizare (ISO, ANSI, AFNOR) ce permite schimb de desene
vectoriale între aplica ii 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
interfe ele Macintosh i Microsoft Windows, GEM furnizeaz un mediu bazat pe ferestre pentru
aplica iile în lucru. În cadrul sistemului grafic dezvoltat, GEM este i formatul fi ierului grafic
vectorial de reprezentare a informa iei în mediul grafic GEM.

47
WMF (Windows MetaFile) este formatul compatibil CGM propriu aplica iilor executate sub
MS Windows.

FORMAT . CDR . CGM . DXF EPS . GEM . WMF


DOMENIUL DE ilustra ii schimburi schimburi de PAO ilustra ii schimburi
APLICA IE de fi iere fi iere desen de fi iere
EXEMPLU 58 KB 31 KB 382 KB 907KB 36 KB 42 KB
COMPARATIV AL
M RIMII
FI IERELOR
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
COT RI - NU DA NU NU NU
Tabelul 1-10. Principalele formate de fi iere vectoriale.

6.8. Formate standard de imagini

Imaginile grafice pot fi p strate în fi iere cu format standard: PCX, BMP, TIFF, GIF, IMG i
altele. Fi ierele ce con in imagini grafice au un antet (headerul) i zona de date grafice.

Salvarea unei imagini grafice intr-un fi ier implica de regula utilizarea unei tehnici de
compresie a datelor citite din memoria ecran. Se reduce astfel dimensiunea fi ierului rezultat.

Restaurarea unei imagini grafice dintr-un fi ier presupune opera ia de decompresie a


datelor
i interpretarea lor în func ie 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; con ine informa ii despre paleta, permi
ând
selec ia a 16 din 64 culori disponibile;
- versiunea 3.0 - pentru imagini VGA modul 256 culori; con ine informa ii de culoare, permi
ând
definirea celor 256 culori;
Pentru crearea unui fi ier .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 fi ierului PCX are 128 octe i a c ror semnifica ie este prezentata în tabelul
urm tor:

48
Octet Semnifica ie
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 bi i 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 octe i) ce
definesc colturile diametral opuse: xmin, ymin, xmax,
ymax;
12 – 13 Rezolu ia pe orizontala a dispozitivului de afi are:
720 – Hercules
640 - EGA, VGA 16 culori
320 - VGA 256, CGA
14 – 15 Rezolu ia pe verticala a dispozitivului de afi are:
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 Num r plane memorie ecran:
4 - pentru EGA/VGA mod 16 culori
1 - în rest
66 – 67 Num r de octe i intr-un plan pentru o linie ecran.
Depinde de dimensiunea ferestrei, fiind întotdeauna un
num r par.
68 – 69 Informa ii despre paleta (de regula se ignora):
1 - color sau B&W
2 – nuan e de gri
70 – 127 Completare header pina la 128 octe i cu 0x20.

La salvarea imaginii sunt necesari 2 bi i 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 con inutul celor
256 registre de culoare. Aceste informa ii se scriu la sfâr itul fi ierului - în ultimii 256 x 3
octe i -
separa i 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 cite te câte o linie a imaginii din fiecare plan de memorie. Num rul de octe i citi i
din
fiecare plan pentru o linie de imagine depinde de dimensiunea ferestrei.

7. Curbe de aproximare

49
Curbele de aproximare sunt curbe de forma libera, definite prin puncte. Polilinia având
ca vârfuri punctele ce definesc o curba aproximeaz forma curbei. De aceea, construirea unei curbe
de aproximare poate fi efectuata intr-o maniera iterativa, ac ionând asupra punctelor, numite i
puncte de control. Curbele de aproximare sunt modelate prin ecua ii parametrice.
Astfel, un segment de curba parametrica cubica, în spa iul 2D, este definit prin sistemul de ecua ii:

50
x(u)  a3 ,xu 3  a 2 ,xu 2  a1 ,x u  a0 ,x
y(u)  a3 ,yu 3  a 2 ,y u 2  a1 ,y u  a0 ,y
0 u 1
Pentru reprezentarea unei curbe cubice în spa iul 3D se adaug ecua ia:
z(u)  a3 ,z u 3  a 2 ,z u 2  a1 ,z u  a 0 ,z
Cei 12 coeficien i se numesc coeficien ii algebrici ai curbei. Ei determina m rimea i
forma curbei precum i pozi ia sa în spa iu. Astfel, doua curbe cu aceea i forma au coeficien i
algebrici diferi i daca ocupa pozi ii diferite în spa iu. Pentru simplificarea scrierii, se prefera nota ia
vectoriala:
p(u)  a3u 3  a 2 u 2  a1u  a0 0u 1
unde, a3, a2, a1, a0 sunt vectori de trei componente iar p(u) este vectorul de pozi ie 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 dore te în proiectarea asistata de calculator. De aceea, în multe aplica ii se
folose te forma geometrica, în care apar explicit condi iile geometrice impuse curbei. În cazul
curbelor Bezier i B-spline, la care ne referim în aceasta tema, condi iile 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 urm rit ob inerea unei formul ri matematice pentru curbe determinate prin mai multe puncte, u or
de folosit în proiectarea asistata de calculator. Astfel, un segment de curba Bezier este definit
prin ecua ia parametrica:
n
p u    Pi * Bi , nu 0  u  1
i 0
unde Pi sunt punctele de control iar
n!
B ,i n i * u * 1  u  n  i
i!n  i !
i

cu 0!=1.
Pentru n=3 (patru puncte de control) ob inem ecua ia segmentului de curba Bezier cubica:
p(u)  (1-u)3P0  3u( 1-  3u 2( 1-  u 3 P3
sau u)2P1 u)P2
p(u)  B0 ,3(u)*P0  B1,3(u)*P1  B2 ,3(u)*P2  B3,3(u)*P3
unde B0,3, B1,3, B2,3, B3,3 sunt func iile de amestec pentru curbele Bezier cubice.

Propriet i ale curbelor Bezier

Curba î i are extremit ile î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 nume te poligon de control polilinia care une te punctele de control).

51
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 num rul 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 ecua ii parametrice se calculeaz
diferite puncte de pe curba folosind ecua iile parametrice x(u), y(u), z(u), specifice fiec rui tip
de curba, pentru umin<= u <=umax. Func ia curba prezentata în continuare poate fi folosita
pentru trasarea mai multor tipuri de curbe plane. Astfel, pentru calculul punctului de pe curba
corespunz tor unei valori particulare a variabilei u, în func ia curba se apeleaz o func ie
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 func ia Bezier. Ea calculeaz punctul de pe curba
corespunz tor unei valori u a variabilei parametrice, folosind ecua iile parametrice x(u), y(u),
care pentru o curba Bezier definita prin 4 puncte de control (n=3) sunt:
x(u)  B0 ,3(u)*x  B1,3(u)*x 1  B2 ,3(u)*x  B3,3(u)*x 3
0
 B1,3(u)*y 1 2
 B3,3(u)*y 3
y(u)  B0 ,3(u)*y  B2 ,3(u)*y
 B1,3(u)*z1  B3,3(u)*z 3
0 2

z(u)  B0 ,3(u)*z  B2 ,3(u)*z


0 2

Pentru reducerea timpului de calcul al punctelor de pe curba, mai ales atunci când n
este
mare, se poate folosi rela ia de recurenta:
n i  1 u
B,n  , n u  * *
Bi i i 1
i 1u
Func ia Bezier prezentata mai jos poate fi folosita pentru calculul punctelor de pe o
curba Bezier, oricare ar fi num rul de puncte de control (n>=3). Punctele de control sunt
memorate în vectorul P (deci, datorita declara iei 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 spa iul 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 func ii polinomiale definite pe por iuni, ceea ce
le confer proprietatea de control local. Segmentele de curba B-spline sunt descrise prin polinoame
de grad doi sau trei, gradul fiind independent de num rul punctelor de control.
O curba B-spline uniforma periodica de grad 2, data prin n+1 puncte de control este descrisa
de
urm toarea ecua ie matriciala:
1......  2......1  P  
 
pi u   0.5tu2 u1s  1i
1  i  n  1

2....2........0 P
 i 
1........1.......0 
  Pi  1 
Forma similara pentru curbele B-spline uniforme periodice de grad 3 este:
  1....3...   Pi  1 
3...1  
 P
p u   tu u u1s 3...  6......3...0 1 i n 2,0 u 1
1
  i      
i
6 3 2
 3...0......3...0 P 1
  i 
P 2
1......4.......1...0  i 

Propriet i 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 for a trecerea unei curbe B-spline printr-un
punct de control introducând punctul respectiv în vectorul punctelor de control pe mai
multe pozi ii 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 par ial pe dreapta respectiva. Astfel, daca
punctele Pi-1, Pi, Pi+1 sunt coliniare, segmentul pi de curba B-spline de grad 2 se
confunda par ial cu segmentul Pi-1-Pi.
6. Curbe închise. Pentru a ob ine 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 apelând func ia curba pentru fiecare segment de curba. În acest scop
trebuie sa definim o func ie care întoarce punctul de pe curba corespunz tor num rului
segmentului de curba (reprezentat în programul de mai jos prin variabila globala i) i valorii variabilei
u.

8. TRANSFORM RI GEOMETRICE 2D

Introducere

Opera iuni de transform ri geometrice sînt frecvent utilizate în sinteza imaginilor pentru
reprezentarea lor în forma necesar (scar , pozi ie .a.). Transformarea geometric a imaginii
(TGI) const în transformarea coordonatelor ale fiec rui pixel al imaginii ini iale. În mod
general, TGI se descrie ca

P(x,y)  P(x’,y’),

unde x’F1(x,y), y’F2(x,y).


8.1. Transform ri geometrice elementare

8.1.1. Transla ia

Transla ia este transformarea prin care un obiect este deplasat din pozi ia sa, cu o distan
dat ,
dup o direc ie dat . Matematic, transla ia este descris în modul urm tor

x=x+tx
y=y+ty

unde tx, ty  parametrii de transla ie.

8.1.2. Scalare

Scalare este transformarea prin care un obiect este m rit sau mic orat. 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 m rire, iar unul subunitar o mic orare.

Vor fi examinate dou tipuri de opera iuni 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 urm tor

x=x*sx
y=y*sy

unde sx, sy sunt factori de scalare.

Dac sx=sy scalare este uniform ; ea nu produce deformarea obiectului transformat. În caz
contrar
scalare este numit neuniform .

Scalare fa de un punct oarecare din plan

Fie F(xf,yf) este un punct din plan fa de care este scalat imaginea P(x,y). Punctul F este numit
punctul fix al transform rii deoarece nu se modific prin aplicarea transform rii. Scalarea func iei
Px,y fa de F(xf,yf) cu factorii sx, sy se descrie ca

x = (x- xf)sx + xf
y = (y  yf)sy + yf

În caz dac xf=0 i yf=0 se ob ine formula scal rii fa de origine.


8.1.3. Rota ia

Rota ia fa de origine

Aceast transformare este specificat printr-un unghi; dac unghiul este pozitiv, atunci rota ia este
efectuat în sensul trigonometric, altfel în sensul mi c rii acelor de ceas. Fie P(x,y) un punct i
u  unghiul de rota ie. Calculul punctului P(x,y), ob inut prin rota ia punctului Px,y se
efectueaz în mod urm tor

x=x*cos(u)-y*sin(u)
y=x*sin(u)+y*cos(u)

Rota ia fa de un punct oarecare din plan

Fie P(x,y) este un punct din plan care se rote te în jurul unui punct F(xf,yf).
Coordonatele punctului P(x,y), rezultat din rota ia punctului P(x,y) în jurul punctului F(x f,yf)
cu un unghi u vor fi urm toarele

x = (x-xf)cos(u)-(yyf)sin(u)+xf
y = (x-xf)sin(u)-(yyf)cos(u)+yf

8.2. Compunerea transform rilor

În cele mai multe cazuri, transformarea care trebuie s fie aplicat unui obiect la un moment dat este
compus din mai multe transform ri elementare. Se poate ob ine formula oric rei transform
ri compuse pe baza expresiilor matriciale ale transform rilor elementare. Astfel, rota ia 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:

sx 0 
x y = x y 0 sy

O scalare fa de origine urmat de o rota ie fa de origine se exprim astfel:

sx 0   cos(u) sin(u)


x y = x y 0 sy sin(u) cos(u)

Din înmul irea celor dou matrici rezult :

 sx*cos(u) sx*sin(u)
SR=sy*sin(u) sy*cos(u)
Deci, formula transform rii compuse este:

x=x*sx*cos(u)-y*sy*sin(u)
y=x*sx*sin(u)+y*sy*cos(u)

8.3. Trasnsform ri în coordonate omogene

Transform rile 2D analizate se exprim matricial, în coordonate carteziene, prin matrici


de dou linii i dou coloane. Nu exist o asemenea matrice pentru transla ie. Din acest
motiv, transform rile grafice se exprim în coordonate omogene. Un punct din plan, (x y), se
reprezint în coordonate omogene printr-un vector xa ya a, unde xa=x*a i ya=y*a, iar a
este un num r real oarecare.

Cele trei transform ri elementare examinate mai înainte se exprim în coordonate omogene astfel:

Transla ia

1 0 0 
x y 1 = x y 1 0 1 0 
tx ty 1 

Scalarea fa de origine

sx 0 0 
x y 1 = x y 1 0 sy 0 
0 0 1 

Rota ia fa de origine

 cos(u) sin(u) 0 
x y 1 = x y 1 -sin(u) cos(u) 0 
 0 0 1

8.4. Transform ri geometrice inverse

Fiecare dintre transform rile geometrice elementare are o invers , adic o transformare care
exprim opera ia opus aceleia corespunz toare transform rii.

Fie: T(tx,ty)  matricea transla iei, R(u)  matricea rota iei fa de origine cu unghiul u i S(sx,sy)
 matricea scalarii fa de origine cu factorii de scalare sx, sy.

Transform ri geometrice inverse sînt


1
T(tx,ty) = T(-tx,-ty)
1
S(sx,sy) = S(1/sx,1/sy)
1
R(u) = R(-u).
8.5. Transform ri geometrice fa de un punct oarecare din plan

Expresiile matematice ale scal rii i rota iei fa de un punct oarecare din plan se pot ob ine prin
compunerea urm toarelor transform ri:

1) Transla ia prin care punctul fix al transform rii ajunge în origine;


2) Scalarea/rota ia fa de origine;
3) Transla ia invers celei de la punctul 1.

Fie F(xf,yf) este un punct fix al transform rii, u unghiul de rota ie i sx, sy  factorii de scalare.
Compunerea celor trei transform ri conform etapiz rii de mai sus se exprim astfel:

Scalarea fa de punctul F
1
x y 1 = x y 1 [T ][ S][ T ] 

 1 0 0sx 0 01 0 0
= x y 1  0 1 00 sy 00 1 0
-xf -yf 10 0 1xf yf 1

Rota ia fa de punctul F
1
x y 1 = x y 1 [T ][R][T ] 

 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
-xf -yf 1 0 0 1xf yf 1

8.6. Transformare de oglindire

Transformarea dat fa de axa x se descrie în mod urm tor:

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 urm toarele transform ri elementare:

1) O transla ie, astfel încît dreapta s treac prin origine;


2) O rota ie fa de origine astfel încît dreapta s se suprapun peste una dintre axele principale;
3) Oglindirea fa de axa principal peste care a fost suprapus dreapta;
4) Rota ia invers celei de la punctul 2;
5) Transla ia invers celei de la punctul 1.

În nota ie matricial , secven a de mai sus se exprim astfel:


1 1
M = TROR T

unde T este matricea de transla ie;


R este matricea de rota ie 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 p trat se transform întrun paralelogram. Transformarea se
specific prin dou numere Fx, Fy reale, numite factorii de forfecare pe axa x, respectiv factorul de
forfecare pe axa y.

Forfecarea pe axa x:

x = x + Fx*y
y = y

sau

1 0 0
x y 1 = x y 1Fx 1 0
0 0 1

Forfecarea pe axa y

x = x
y = y + Fy*x

sau

1 Fy 0
x y 1 = x y 10 1 0
0 0 1

Cazul general:

x = x + Fx*y
y = y + Fy*x

sau

1 Fy 0
x y 1 = x y 1Fx 1 0
0 0 1

8.8. Transform ri ale sistemului de coordonate

Consider m dou sisteme de coordonate în plan. Unul cu originea în O i axele x,y, cel lalt cu originea
în O i axele x,y. Fiec rui punct din plan, P, îi corespund dou reprezent ri: (x,y) - în sistemul
xOy i (x,y) - în sistemul xOy. Sistemul xOy se poate ob ine prin transformarea
sistemului xOy; transformarea se poate defini prin rela ia dintre cele dou reprezent ri ale
aceluia i punct P, (x,y) i (x,y).
Transla ia

Dac sistemul xOy s-a ob inut prin transla ia sistemului xOy, atunci rela ia dintre coordonatele lui P în
cele dou sisteme de coordonate este :

x = x - tx
y = y - ty

Rota ia fa de origine

Fie sistemul de coordonate xOy, ob inut prin rota ia 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 form m un nou sistem de coordonate cu aceea i origine i orientare a axelor, dar
caracterizat printr-o alt unitate de m sur de-a lungul axelor x si y. Dac noile unit i de m sur se ob in
prin scalarea vechilor unit i cu factorii sx, respectiv sy, atunci rela ia dintre coordonatele (x,y) i (x’,y’) ale
aceluia i punct în cele dou sisteme este:

x=x/sx
y=y/sy

Oglindire fa de o ax

Dac sistemul xOy s-a ob inut prin oglindirea sistemului xOy fa de axa Ox sau axa Oy,
atunci
rela ia dintre coordonatele aceluia i punct în cele dou sisteme de coordonate este:

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. Transform ri grafice tridimensionale
Introducere

Transformarea geometric 3D a imaginii se descrie ca

P(x,y,z)  P(x’,y’,z’),

unde x’F1(x,y,z), y’F2(x,y,z), z’ F3(x,y,z)

Transform rile geometrice tridimensionale cuprind transla ia, scalare, rota ia, oglindirea forfecarea
i proiec ia obiectelor 3D.

În coordonate omogene, un punct din spa iu (x, y, z) se reprezint prin vectorul [ x w yw zw w ],


unde w este parametru real, iar x = xw/w, y = yw/w, z = zw/w, wą0.

9. 1. Matrici de transformare

Matricea de transformare generalizat 4x4 pentru coordonate omogene 3D are urm toarea form :
 abcp 
M   d e f q 
 lmns

Aceast matrice poate fi împ r it în patru, astfel:

  3 
 3x3  x 
  1 

 1x3  1x1 

unde:
- matricea 3x3 include transform ri de scalare local , forfecare, oglindire i rota ie;
- matricea 1x3 reprezint transformarea de transla ie;
- 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 urm tor
[x’y’z’1]  [x y z 1][ M]

9. 2. Transla ia

Dac (x, y, z) sunt coordonatele unui punct P din spa iu, prin transla ie el este dus în punctul de coordonate (x', y',
z'), unde:

x' = x + tx
y’  y + ty
z' = z + tz

sau, în form matriceal :

[x’y’ z’ 1]  [x y z 1] [T]

Matricea de transla ie 3D

este:

1 0 0 0
T   0 1 0 0
 0 0 1 0
 tx ty tz 1

9. 3. Scalare
Dac (x, y, z) sunt coordonatele unui punct P din spa iu, prin scalare fa de origine, el este
transformat

în punctul de coordonate (x , y', z'), unde:

x'  s x * x
y’ sy * y
z’  sz * z

sau, în form matriceal :


[ x y z 1] = [x y z 1][S]

Matricea de scalare local este dat de rela ia:

 sx 0 0 0
S   0 sy 0 0
 0 0 sz 0
 0 0 0 1

Scalare global se ob ine folosind urm toarea matrice:

1 0 0 0
Sg   0 1 0 0
 0 0 1 0
 0 0 0 s 
9. 4. Rota ia în jurul unei axe a sistemului de coordonate

În cazul rota iei în jurul axei x cu unghiul a matricea de transformare se descrie în mod urm tor:

1 0 0 0
0 
cos  sin  0
 R x  0
 sin  cos  0
 
0 0 0 1

Într-o manier asem n toare matricea de rota ie în jurul axei y cu unghiul b este:

cos  0  sin  0

0 1 0 0
R 
y  
 sin  0 cos  0

 
 0 0 0 1

Matricea de rota ie în jurul axei z cu unghiul  este:

 cos  sin  0 0
  sin 
cos 0 0
   
Rz
 0 0 1 0
 
 0 0 0 1

9. 5. Transform ri inverse

Toate matricele de transformare au inverse


-1
[T(tx, ty, tz ) ] = [T(-tx, -ty, -tz )]
-1
[S(sx, sy, sz ) ] = [S( 1/sx, 1/sy, 1/sz )]
-1
[Rx() ] = [Rx(-) ]
-1
[Ry() ] = [Ry(-)]
-1
[Rz() ] = [Rz(-) ]

6. Forfecarea

Dac (x, y, z) sunt coordonatele unui punct P din spa iu, prin forfecare el este transformat în punctul
de coordonate (x', y', z'), unde:

x’ = x + y*d + z*g
y= x* + y +z*i
z=x*c+y*f+z

sau, în form matriceal :


54

[ x’ y' z 1'] = [ x y z 1] [F]

Matricea de forfecare este:

54
54

1 c 0

b f 
0
d 1 
F    1 0

g
i 0 1

0 0

9. 7. Oglindirea fa de un pian al sistemului de coordonate

În cazul oglindirii fa a de pianul xy, se inverseaz doar coordonata z, coordonatele x i y


r mânând neschim ate. Astfel, matricea transform rii de oglindire fa de planul xy este:
1 0 0 0
 
0 1 0 0
O 
xy 
0 0  1 0

 
0 0 0 1

Matricea oglindirii fa de planul yz este:

 1 0 0 0
 
0 1 0 0
O 
yz 
0 0 1 0

 
0 0 0 1

Matricea oglindirii fa de planul xz este:


 1 0 0 0
 0 -1 0 0
 
Oy 
0 0 1 0

 
 0 0 0 1

9. 8. Compunerea transform rilor tridimensionale

Matricea corespunz toare transform rii compuse se o ine prin înmul irea matricelor transform rilor
elementare. Deoarece înmul irea matricelor nu este comutativ , este important ordinea în care se aplic
aceste transform ri. Matricea de transformare cea mai apropiat vectorului linie corespunde primei
transform ri care se aplic în timp ce matricea de transformare cea mai dep rtat este ultima care se aplic .
Matematic aceasta se exprim prin:

[V] [M] =[V] [M1] [M2] [M3]....[Mn]

55
55

unde [ Mi ] poate îi orice matrice de transformare elementar : scalare, forfecare, transla ie, rotire,
oglindire,
proiec ie.

9. 9. Rota ia în jurul unei axe


oarecare

Axa oarecare de rota ie (d) se specific printr-un punct A(xo,yo,zo) i un vector direc ie
C=cxi+cyj+czk, unde cx, cy, cz sunt cosinu ii directori. Transformarea de rota ie cu un unghi  în
jurul axei (d) se compune din:
1. Transla ie, altfel încât punctul A s ajung în originea sistemului de coordonate.
2. Alinierea vectorului C cu una din axele sistemului de coordonate.
3. Rota ia cu unghiul  în jurul axei la care s-a f cut alinierea.
4. Inversa transform rii de la pasul (2)
5. Transla ia invers în punctul 1.

9. 10. Oglindirea fa de un plan oarecare

Consider m planul de oglindire specificat prinîr-un punct, P(X0,Y0,Z0) i vectorul normal la plan, N. O
procedura de o inere a transform rii de oglindire fa de planul dat este urm toarea:

1.Transla ie astfel încât punctul P(X0 ,Y0,Z0) 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.Transla ia invers celei de la pasul (1).

Matricea transform rii de oglindire fa de un plan oarecare se compune din produsul urm
toarelor
matrice:
55

[M] = [T] [A N,Z] [Oz ] [AN,z] -1 -1


[T ]

unde
[ T ] - reprezint matricea de transla ie;
[ AN, z] - reprezint matricea de aliniere a vectorului normal N cu axa z pozitiv ;
[ Oz ] - reprezint matricea de oglindire fa de planul z=0;
[ AN, Z ]1- reprezint matricea de aliniere invers ;
-1
[T] - reprezint transla ia 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 suprafa a de afi are. De exemplu, graficul
unei func ii, 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,
56

(sau sistemul de coordonate dispozitiv) sistemul ata at suprafe ei de afi are. Unit ile de m sur
ale sistemului de coordonate logice difer de acelea ale sistemului de coordonate fizice. Ele pot
reprezenta timpul, temperatura, distan a, etc.
S consider m graficul func iei sinus. Pentru x cuprins între 0 i 6.28 y ia valori între -1 i +1.
A adar, coordonatele (x,y) ale punctelor de pe grafic nu pot fi transmise direct func iilor de afi are
ale sistemului grafic utilizat, care opereaz în spa iul dispozitiv, cum ar fi moveto, lineto i
altele din
i liotecile Tur o C, BorlandC sau Tur o Pascal . Asupra lor tre uie s fie efectuat transormarea de
vizualizare
2D. Multe sisteme grafice permit definirea desenelor într-un sistem de coordonate logice, deci
asigur efectuarea transform rii de vizualizare 2D asupra coordonatelor. Astfel, func iile de afi are
ale unui sistem grafic GKS sau PHIGS opereaz în sistemul coordonatelor logice (numit world
coordinate system în terminologia standardelor respective). Deasemenea,
func iile modulului GDI (Graphical Device Interface) al sistemului Windows, permit definirea desenelor
în mai multe tipuri de sisteme de coordonate logice, asigurînd transformarea automat a
coordonatelor în sistemul coordonatelor fizice. Chiar i lucrînd cu astfel de sisteme, este necesar pentru
programator s în eleag în ce const transformarea de vizualizare 2D.
Transformarea de vizualizare 2D este deci o aplica ie dintr-un sistem de coordonate în altul, care
tre uie s pun n coresponden fiec rui punct din descrierea unui desen un punct al suprafe ei
de afi are. Mul imea punctelor adresa ile ale suprafe ei de afi are este finit , în timp ce mul imea
punctelor spa iului 2D în care este definit desenul este infinit . Pentru a fi posi il formularea
matematic a transform rii de vizualizare
2D este necesar s se limiteze mul imea punctelor spa iului logic, care se pun în coresponden
punctelor suprafe ei de afi are. în acest scop se specific un dreptunghi cu laturile paralele cu
axele sistemului de coordonate logice, numit fereastr . Fiec rui punct din fereastr i se pune
în coresponden prin transformarea de vizualizare 2D un punct al suprafe ei de afi are sau al
unei zone dreptunghiulare din suprafa a de afi are, numit poart de afi are sau pe scurt poart .
Deaceea, transformarea de vizualizare 2D se mai nume te i transformarea fereastr -poart .
Consider m pentru început o aceea i0 orientare a axelor celor dou sisteme de coordonate. Fie F(xf,yf)
un punct din fereastr i P(xp,yp) punctul corespunz tor lui în poart . Transformarea fereastr -
poart este definit astfel încÎt pozi ia relativ a punctului P în poart s fie aceea i cu pozi ia
relativ a punctului F în fereastr . Condi ia 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 col urile de


xminim- yminim i xmaxim-ymaxim ale ferestrei, respectiv ale por ii (figura 2.11.).

Figura 2.11.

Not m cu:
xpmax-xpmin ypmax-ypmin
57

sx = ----------- sy = -----------
xfmax-xfmin yfmax-yfmin

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 transform rii fereastr -poart . Numerele sx i sy


constituie factorii de scalare ai transform rii iar tx i ty componentele vectorului de transla ie. Aceast
formulare a transform rii fereastr -poart corespunde unei transform ri geometrice compuse ce se aplic
punctului F pentru a o ine punctul P. Transformarea poate fi formulat i ca o transformare a
sistemului de coordonate logice prin care se o ine 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 examin m cîteva cazuri particulare, din
care vom desprinde unele caracteristici i utiliz ri ale transform rii de vizualizare 2D.
Fie fereastra din figura 2.12.a., cu xfmim=0, yfmin=0, xfmax=1, yfmax=1 i poarta avînd
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 decît aceea pe axa oy, orice desen
definit în fereastr va fi deformat (l it). Dac acest efect este nedorit, atunci tre uie ales ca
factor de scalare al transform rii s=sx=sy=min(sx,sy). Procedînd în acest fel în exemplul ales, vom
constata c desenul din fereastr este afi at în jum tatea stîng a por ii (figura 2.12. ). Pentru ca
desenul s apar centrat în poart este necesar s se efectueze o transla ie suplimentar , egal cu
100 în cazul de fa (figura
2.12.c.).

----------------------------------------
-----------------------------------------
Figura 2.12.

În general, transla ia suplimentar se calculeaz astfel:

tsx = (xpmax-xpmin-sx*(xfmax-xfmin))/2
tsy = (ypmax-ypmin-sy*(yfmax-yfmin))/2

adic , diferen a dintre latura por ii i latura ferestrei scalat , împ r it 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 func ia fereastra, pe care o putem apela pentru a specifica coordonatele ferestrei i
func ia poarta, pe care o vom apela pentru a specifica coordonatele por ii de afi are. Atunci, o
secven de forma:

fereastra(F1);
poarta(P1);
execut _desen;
terge_ecran ;
poarta(P2);
execut _desen;
terge_ecran;
58

poarta(P3);
execut _desen;
...............
va avea ca efect afi area 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 m rire sau de mic orare se poate o ine i prin modificarea ferestrei. Dac
fereastra este mai mic decît desenul, atunci elementele desenului care ies din fereastr nu tre uie
s apar în poart . Opera ia de îndep rtare a elementelor unui desen, care nu sunt con inute în fereastr
se nume te 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 tre uie s aplic m punctelor dintr-un desen
definit într-un sistem de coordonate logice, înainte de a le transmite func iilor de afi are din i lioteca
grafic a sistemului Borland C++ pentru DOS. Dup cum se tie, ecranul este adresat într-un
sistem de coordonate cu originea în col ul stînga-sus, sensul cresc tor al axei x fiind spre dreapta, iar
al axei y în jos. AplicÎnd asupra coordonatelor formulele (2.20.), desenul definit în fereastr va fi afi at
r sturnat. Deaceea, calculul coordonatei y se modific astfel:

yp = ypmin+ypmax-(yf*sy+ty)

Pentru aceia care au utilizat i lioteca grafic a unuia dintre Tur o Pascal, Tur o C sau Borland
C++,
este cunoscut func ia setviewport, apelat astfel:

setviewport(xpmin,ypmin,xpmax,ypmax,dec);

unde primii patru parametri sunt unui dreptunghi din spa iul ecran iar ultimul parametru poate
avea valoarea 1 sau zero, indicîndu-se c se dore te (1) nu se dore te (0) decuparea elementelor
grafice definite în continuare în program, la marginile dreptunghiului respectiv. Putem s ne folosim de
aceast func ie pentru a ad uga la transformarea fereastr -poart opera ia de decupare. Aceasta
impune îns o modificare a formulelor transform rii, deoarece dup apelul func iei setviewport
originea sistemului de coordonate al ecranului este considerat a fi punctul (xpmin,ypmin). în consecin ,
pentru transformarea fereastr -poart înso it de decupare la marginile por ii se va apela func ia
setviewport ca mai sus, apoi se vor calcula coordonatele în spa iul 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
59

Se pot defini cîteva su programe utiliza ile în orice program scris în lim ajul C sau în lim ajul
Pascal, pentru efectuarea tansform rii fereastr -poart . Pentru evitarea recompil rii lor odat cu
programul C în care sunt apelate, su programele vor fi grupate într-un fi ier separat ce se va include în
fisierul proiect(.PRJ) al programului; astfel, ele vor
fi compilate o singur dat . În cazul implement rii în lim ajul Pascal, ele vor constitui o unitate (unit);
este suficient apoi s se declare utilizarea unit ii (uses nume_unitate) în programul care le
apeleaz . Pachetul ar tre ui s con in cel pu in urm toarele su programe:

-fereastra, prin care se transmit coordonatele ferestrei;


-poarta, prin care se transmit coordonatele por ii;
-tiptran, prin care programatorul va specifica dac dore te 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 prime te coordonatele logice ale capetelor unui vector i calculeaz lungimea
vectorului pe suprafa a de afi are;
-decupare, prin care programatorul poate specifica dac dore te ca transformarea s fie înso it
de
decupare.

Prezent m în ontinuare pachetul de su programe implementat în lim ajul C. El con ine trei
func ii suplimentare:

-init_mod_grafic, care ini ializeaz modul grafic i sta ile te ca poart de afi are curent întregul ecran.
Aceast func ie este necesar pentru definirea valorilor ini iale ale varia ilor folosite în fi ierul
Vizual.C. De aceea, apelul s u în programul care folose te func iile din acest fi ier este o ligatorie;

-cadru_fer, care traseaz marginea ferestrei;


-cadru_poarta, care traseaz cadrul por ii;

Exemplific m utilizarea func iilor din fi ierul "Vizual.C" în programul urm tor, care afi eaz
graficele mai multor func ii, în patru zone distincte ale ecranului. Pentru fiecare grafic este afi at
su form de text expresia matematic a func iei (figura 2.13.). Textul este centrat pe axa x ,su
dreptunghiul de încadrare al graficului. În acest scop s-a folosit func ia settextjustfy.

--------------------------------------
--------------------------------------
Figura 2.13.

ImpunÎnd scalare uniform , factorii de scalare pe am ele axe vor fi egali cu 1 i deaceea, toate cercurile
fiind incluse în fereastr vor fi incluse i în poart (figura 2.14. .).

---------------------------------
---------------------------------
Figura 2.14.
60

10.4. Proiec ii

Proiec iile sunt aplica ii care transforma puncte dintr-un sistem de coordonate n-dimensional
intr-un sistem k-dimensional, unde k<n. Proiec ia unui o iect 3D intr-un plan de proiec ie 2D
este determinata de mul imea punctelor de intersec ie ale planului cu dreptele care pornesc dintr-
un punct, numit centru de proiec ie, fiecare trecând printr-un punct ale o iectului. Aceste drepte
se numesc proiectori.
În func ie de pozi ia centrului de proiec ie, proiec iile se clasifica în:
- proiec ii perspectiva - centrul de proiec ie este la distanta finita de planul de proiec ie.
- proiec ii paralele - centrul de proiec ie este la infinit.
Proiectorii sunt linii paralele care trec prin punctele ce definesc o iectul 3D. Direc
ia
proiectorilor se nume te direc ia de proiec ie.
Proiec ia perspectiva ofer o imagine plana a scenei 3D asem n toare cu imaginea o inut
cu
ajutorul unui aparat de fotografiat. Se caracterizeaz prin:
- efectul de mic orare a o iectului proiectat, propor ional cu distanta de la o iect la centrul de
proiec ie. M rimea proiec iei unui o iect este invers propor ional cu distanta de la o iect la
centrul de proiec ie.
- nu p streaz proprietatea de paralelism pentru liniile care nu sunt paralele cu planul de
proiec ie.
Proiec ia unui set de linii paralele care nu sunt paralele cu planul de proiec ie este un set de linii
convergente c tre un punct din planul de proiec ie, numit punct de convergenta.
Proiec ia paralela conserva proprietatea de paralelism. De asemenea, fetele o iectului care
sunt paralele cu planul de proiec ie î i p streaz forma i dimensiunea în urma proiec iei. Dup
direc ia proiectorilor fata de planul de proiec ie, proiec iile paralele se clasifica în:
- proiec ii ortografice - proiectorii sunt perpendiculari pe planul de proiec ie;
- proiec ii o lice - proiectorii nu sunt perpendiculari pe planul de proiec ie.

Proiec ii în planul XOY

Fie P un punct din spa iu, de coordonate (x,y,z), care se proiecteaz în punctul P'(x',y') din planul
de proiec ie. Coordonatele punctului P' se determina cu urm toarele rela ii:
(a) Pentru proiec ie paralela, dup direc ia de proiec ie Dta cs
60

x'  x - ( a / c ) * z
y'  y - ( b / c ) * z
Pentru o proiec ie ortografica în planul XOY, direc ia de proiec ie este Dt0 0 1s.
( ) Pentru proiec ie perspectiva, din centrul de proiec ie CP(a, ,c)
x'  ( a * z - c * x ) / ( z - c )
y'  ( b * z - c * y ) / ( z - c )

Proiec ii axonometrice

O proiec ie axonometrica este o proiec ie ortografica intr-un plan care nu este paralel cu
nici unul dintre planele principale. Imaginea o inuta printr-o proiec ie axonometrica este echivalenta cu
una o inuta printr-o proiec ie ortografica în planul XOY, efectuata dup ce o iectului proiectat i s-a
aplicat o transformare geometrica:
PA  R y (u y )*R x (u x )
61

unde Ry(uy) i Rx(ux) sunt matricile de rota ie în jurul axei y, cu un unghi uy, respectiv în jurul axei x, cu
un unghi ux.
Alegând corespunz tor unghiurile uy i ux, o inem cele dou cazuri particulare de proiec ie
axonometrica:
61

u x   /-35.26 grade
- Proiec ia izometric , pentru
u y   /-45 grade
u x   /-20.705 grade
- Proiec ia simetric , pentru
u y   /-22.208 grade

11. Determinarea vizibilit ii obiectelor la afi area scenelor 3D


11.1. Clasificarea algoritmilor de determinare a laturilor i a fe elor vizibile ale obiectului.

Vizualizarea unei scene 3D presupune determinarea fe elor i laturilor vizi ile ale o iectelor

ce
compun scena. Procesul de determinare a fe elor i laturilor vizi ile dintr-un centru de proiec ie
sau
dup o direc ie de proie-c ie (corespunz tor proiec iei perspectiv , respectiv paralel ) are ca efect
eliminarea total sau par ial a laturilor i fe elor o turate. În general, implementarea unor astfel
de algoritmi necesit multe prelucr ri i deci implicit, mult timp de calcul. Pentru rezolvarea
eficient a pro lemei elimin rii laturilor i fe elor nevizi ile au fost dezvolta i diferi i algoritmi,
precum i arhitecturi speciale de procesoare.

Algoritmii de determinare a fe elor vizibile se împart în dou categorii:

a) algoritmi în spa iul imagine - care determin o iectul scenei vizi il în fiecare pixel ecran.

) algoritmi în spa iul obiect - care compar o iectele între ele, eliminÎnd par ial sau total acele o iecte
care nu sunt vizi ile.

Algoritmii în spa iul imagine determin o iectul cel mai apropiat de o servator de-a
lungul proiectorului ce trece prin fiecare pixel. Afi area unei scene 3D pe aza 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;
* afi eaza pixelul P în culoarea obiectului O;

Efortul de calcul este propor ional cu (n*p), unde n este numarul de o iecte ale scenei, iar p
reprezinta rezolu ia ecranului.

Algoritmii în spa iul o iect au urm toare form :

pentru fiecare obiect O al scenei


execut
* determin p r ile vizibile ale obiectului O (p r ile
care nu sunt obturate de alte p r i ale sale sau de
alte obiecte);
62

 afi eaz p r ile vizibile ale obiectului O;

Efortul de calcul în acest caz este propor ional cu (n*n), n fiind num rul de o iecte ale
scenei
3D. Algoritmii în spa iul o iect sunt mai len i (cu toate c , de regul , n<p) i mai dificil de implementat,
fiecare pas al algoritmului fiind mai complex.

Algoritmii în spa iul imagine determin vizi ilitatea în fiecare pixel ecran. Modificarea
rezolu iei sau a ferestrei ecran implic reluarea calculelor în întregime. Algoritmii în spa iul o iect
determin vizi ilitatea fiec rui o iect al scenei, calculele efectuîndu-se independent de rezolu ia
ecranului. De aceea este necesar o opera ie suplimentar de afi are a o iectelor vizi ile, la dimensiunea
ecran dorit . În cazul în care se schim rezolu ia ecranului sau dimensiunea ferestrei ecran, este
suficient s se execute doar aceast opera ie, deoarece geometria proiec iilor o iectelor vizi ile nu
se modific în aza de date.

Precizia algoritmilor în spa iul imagine este determinat de rezolu ia ecranului. Pentru algoritmii
în spa iul o iect, precizia imaginii este determinat de precizia definirii o iectelor.

Primii algoritmi care s-au dezvoltat au fost algoritmii în spa iul o iect, ace tia fiind
adecva i echipamentelor grafice vectoriale. Astfel sunt algoritmii de eliminare a muchiilor ascunse
(“hidden line removal”), care consider o iectele descrise prin laturi. Pornind de la aceste date de
intrare, se elimin muchiile total o turate, iar cele par ial o turate sunt înlocuite cu unul sau mau multe
segmente vizi ile. Odat cu r spîndirea echipamentelor de tip raster au fost dezvolta i diferi i algoritmi
în spa iul imagine, calculele de vizi ilitate efectuîndu-se ini ial pentru un num r relativ mic de
pixeli. Ulterior s-au dezvoltat algoritmi care com in cele dou metode, urm rindu-se o inerea
unei precizii une a imaginii i o vitez sporit de execu ie.

Transformarea de proiec ie

Determinarea fe elor vizi ile pentru o scen compus din mai multe o iecte se realizeaz
în spa iul 3D, înainte de proiec ia în plan, care distruge informa ia de adîncime. Pe aza acestei informa
ii se face testul de vizi ilitate, ideea de az fiind de a determina dac un punct A(x1,y1,z1) o tureaz
sau nu un punct B(x2,y2,z2). Punctul A poate o tura punctul B numai dac cele dou puncte sunt pe
acela i proiector, indiferent de tipul de
proiec ie (paralel sau perspectiv ).

B
/ Dac A i B sunt pe acela i
/ proiector, atunci se compar
/ coordonatele z1 i z2 pentru a
A proiector determina punctul din fa (mai
apropiat de observator).

Compara ia în adîncime se efectueaz de regul dup transformarea de normalizare, Npar


sau Nper (vezi paragraful 3.2.2.3). Testul de adÎncime pentru a determina dac punctele A i B
sunt pe acela i proiector, se reduce la compara iile:

x1 = x2 i y1 = y2 - pentru proiec ia paralel ,

x1/z1=x2/z2 i y1/z1 = y2/z2 - pentru proiec ia perspectiv .


63

Cele patru opera ii de împ r ire necesare în cazul proiec iei perspectiv se efectueaz ori de cÎte
ori se compar dou puncte care pot fi sau nu pe acela i proiector. Aceste calcule se elimin
dac se aplic o transformare de proiec ie asupra obiectului astfel încît proiec ia paralel a
obiectului transformat s fie accea i cu proiec ia perspectiv a obiectului netransformat.
Transformarea de proiec ie distorsioneaz obiectul i deplaseaz centrul de proiec ie din origine la
infinit, de-a lungul axei z pozitive. Ea are ca efect transformarea volumului de vizualizare canonic
corespunz tor proiec iei perspective în volumul canonic corespunz tor proiec iei paralele (figura 8.1).

Figura 8.1

Forma matriceal a transform rii de proiec ie este dat de rela ia (8.1).


63

1 0 0 0 
0 1 
0 0
M =  (8.1)
0 0 1 /(1  z  z min /(1  z min )
min
 
)

0 0 1 0 

unde zmin reprezint coordonata planului din fa al volumului de vizualizare trunchi de piramid .

Transformarea de proiec ie se aplic numai în cazul proiec iei perspectiv , tuturor punctelor care
definesc obiectele scenei 3D.
În continuare, testul de compara ie n adÎncime se efectueaz ca pentru proiec ia paralel .
Aceast transformare conserv informa ia de adÎncime relativ . Ea se poate aplica înainte sau dup
opera ia 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 opera ia de împ r ire la W pentru a ob ine coordonate


carteziene (x=X/W, y=Y/W, z=Z/W) în volumul de vizualizare canonic corespunz tor proiec iei
paralele:

-1  x  1, -1  y  1, -1  z  0

Acest paralelipiped este situat în semispa iul z negativ, iar observatorul este considerat de-
a lungul axei z pozitive. Ordonarea descresc toare a valorilor z negative indic de fapt, cre terea distan
ei fa de observator. Sistemele grafice transform , în general, sistemul de coordonate 3D
utilizator “dreapta” în sistem de coordonate de vizualizare “stînga”. În acest caz, cu cît valorile z pozitive
sunt mai mari, cre te distan a fa de observator. În prezentarea algoritmilor de vizibilitate
consider m urm toarea conven ie: ordonarea descresc toare a valorilor z pozitive indic o cre tere a
distan ei fa de observator.
64

Încadrarea obiectelor

O metod de a mic ora num rul de opera ii între diferitele obiecte ale scenei sau între proiec iile
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 proiec iile lor.
Considerînd determinate dreptunghiurile extensie a dou obiecte proiectate, testul de intersec
ie
al obiectelor se face doar dac extensiile lor se suprapun. În acest caz este posibil ca proiec iile
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 adîncime.

Figura 8.3.

Cele dou obiecte nu se suprapun pe z dac :

zmax1 < zmin2 sau zmax2 < zmin1

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 intersec ie pentru un obiect, utilizînd extensiile de încadrare,
poate fi
exprimat astfel :

T = n*T1 + m*T2

unde n = num rul de teste de suprapunere pentru extensia obiectului;


T1 = costul unui test de suprapunere;
m = num rul de teste de intersec ie dac extensiile se
suprapun;
T2 = costul unui test de intersec ie 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 m rimea extensiei de încadrare. Pentru un volum de încadrare cît mai strîns
de obiect, valoarea lui m scade dar cre te în schimb valoarea lui T1. Forma volumului de încadrare poate
fi diferit pentru dou obiecte identice, în func ie de orientarea lor.
65

Parti ionarea spa iului

Parti ionarea spa iului sau subdivizarea spa ial reprezint o tehnic ce permite divizarea unei
probleme în probleme mai simple. Ideea de baz este de a atribui obiectele scenei sau proiec iile lor,
unor grupuri coerente spa ial.
Planul de proiec ie poate fi divizat în dreptunghiuri egale, stabilindu-se în faza de
preprocesare în ce dreptunghiuri se afl proiec ia fiec rui obiect în parte. Testul de intersec ie se
face numai pentru acele obiecte pentru care proiec iile lor se afl în acela i dreptunghi.
In spa iul 3D parti ionarea se face în cuburi de aceea i dimensiune. Testul de intersec ie a
unui proiector cu obiectele din scen se simplific mult deoarece se determin mai întîi 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 spa iu. De aceea este mult mai eficient
ca parti ionarea s se efectueze adaptiv, parti iile avînd dimensiuni diferite. Subdivizarea spa iului
se face în acest caz recursiv. Criteriul de terminare a recursivit ii poate fi, de exemplu, num rul de
obiecte dintr-o parti ie.

Ierarhizarea obiectelor

Num rul de teste de intersec ie necesare într-un algoritm de eliminare a fe elor nevizibile
poate fi redus construind o ierarhie de obiecte, pe baza propriet ilor de structur ale acestora. Un obiect
de pe un anumit nivel poate constitui o extensie pentru obiectele de pe nivelele inferioare
(descenden ii s i), dac acestea sunt incluse în el. Dac dou obiecte de pe un nivel ierarhic nu se
intersecteaz , atunci nici descenden ii lor nu se intersecteaz . Similar, pentru un proiector care
intersecteaz un obiect al ierarhiei, trebuie f cut testul de intersec ie cu toate obiectele descendente ale
sale.

11.2. Determinarea laturilor vizibile ale unui poliedru

Algoritmii de eliminare a laturilor nevizibile sunt algoritmi în spa iul obiect, care furnizeaz
o list de segmente vizibile ce pot fi apoi afi ate. Ei se folosesc atunci cînd obiectele (poliedre
convexe sau concave, cu sau f r treceri) se afi eaz prin contur.

Pentru stabilirea laturilor vizibile ale unui poliedru convex sau concav sunt prezentate dou
metode simple, dar care necesit calcule pentru a determina intersec ia dintre dou segmente, intersec ia
î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 afi ate. Obiectul este asftel reprezentat prin contur i nu pot fi
efectuate opera ii de umplere sau umbrire.

a) Metoda prezentat în continuare, consider poliedrul reprezentat printr-o tabel a fe elor


sale. Fe ele sunt poligoane descrise prin vîrfuri i nu sunt orientate.
Laturile vizibile ale unui poligon convex se determin pe baza vizibilit ii vîrfurilor sale astfel:

1. Se proiecteaz fe ele poliedrului în planul de proiec ie (de regul planul (xy)).

2. Se determin ecua ia planului fiec rei fe e a poliedrului.

3. Se determin vîrfurile vizibile ale poliedrului. Pentru fiecare vîrf V se calculeaz punctul de
intersec ie I, între proiectorul OV i planul fiec rei fe e, exceptînd fe ele c rora le apar ine V.
Dac
66

punctul de intersec ie I apar ine segmentului OV i proiec ia sa este în interiorul proiec iei fe ei
(În
planul de proiec ie), atunci V este nevizibil. Altfel V este vizibil. În figura 8.7, vîrful A este nevizibil.

4. Dac vîrful 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 afi eaz .

Dac poliedrul este concav, atunci sunt necesare calcule suplimentare pentru a determina
laturile sau segmentele de laturi vizibile. Pa ii algoritmului sunt :

1. Se determin vîrfurile nevizibile ale poliedrului ca pentru poliedre convexe. Laturile care pleac
dintr-un vîrf nevizibil sunt poten ial nevizibile. Astfel, de exemplu, în figura 8.8 vîrfurile 8, 9 i 10 sunt
nevizibile, iar laturile 8-7, 8-9, 8-2, 9-10, 9-3, 10-4, 10-11 sunt poten ial nevizibile. Celelalte
laturi sunt vizibile.

2. Se proiecteaz poliedrul i pentru fiecare latur poten ial nevizibil se calculeaz punctele de
intersec ie cu celelalte laturi. Laturile poten ialnevizibile care nu se intersecteaz cu alte laturi
sunt eliminate, fiind nevizibile. Pentru poliedrul din figura 8.8, punctul de intersec ie al laturilor
poten ial nevizibile cu celelalte laturi sunt A, B, C, D, E, F. Laturile 8-7, 10-11, 10-9 se elimin .
Celelalte laturi poten ial nevizibile con in puncte de intersec ie cu alte laturi.

3. Se determin segmentele vizibile ale laturilor poten ial nevizibile r mase. Se observ c vizibilitatea
unei laturi se poate schimba doar la intersec ia cu alt latur . Pentru a determina un segment vizibil
dintr-o latur se poate testa
vizibilitatea mijlocului segmentului, la fel ca pentru vîrfurile poliedrului. Pentru exemplul
considerat, latura 3-9 con ine punctele de intersec ie 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 vîrfurile poligonului s fie
de
aceea i parte a oric rei laturi a poligonului. Ecua ia 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 apar in dreptei, membrul stîng al ecua iei (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 aceea i parte ca i unul din vîrfurile poligonului ce nu apar
ine acelei laturi. În pseudocodul urm tor este definit func ia InPoligon ce întoarce valoarea 1 dac
punctul A este în interiorul poligonului P i 0 altfel. Func ia Calcul apelat întoarce valoarea
membrului stîng al ecua iei (8.3), pentru un punct dat ca argument.

func ia InPoligon ( Poligon P, Pct A )


l = 0;
re p e t
67

fie V un vîrf al poligonului P, ce nu apar ine laturii l


dac ( Calcul(A) * Calcul(V) < 0 ) atunci
return ( 0 );
l = l + 1;
cît timp l < nrLaturi;
return (1)

O alt metod de a determina dac un punct este sau nu interior unui poligon se bazeaz
pe calculul num rului de intersec ii al semidreptei ce pleac din acel punct, cu laturile
poligonului. Dac num rul de intersec ii 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 intersec ie nu se face pentru toate laturile
poligonului. Se exclud laturile care sunt deasupra sau sub semidreapta (d), precum i cele care
sunt la stînga punctului considerat. Astfel, în figura 8.9 laturile care se exclud sunt AB, EF, FG
i GA. Fie P un poligonul cu n vîrfuri, de coordonate (xi, yi,zi ), 0i < n i un punct Q(x,y,z)
care se testeaz .

Pa ii algoritmului sunt :

1. Se proiecteaz poligonul în planul de coordonate corespunz tor coordonatelor celor mai mari. Rezult
vîrfurile proiectate (ui,vi), cu 0ói<n.

2. Se translateaz poligonul proiectat astfel încît punctul testat Q s fie în origine. Rezult vîrfurile (ui,
vi).

3. Se stabile te valoarea semn în func ie de valoarea v0, astfel:

semn(v0) = -1 , dac v0 < 0


1 , dac v0 * 0

4. Se ini ializeaz contorul nrIntersec ii la 0.

5. pentrufiecare latur delimitat de (ua,va) i (ub,vb) execut

* determin semn(vb);
dac semn(v0) <> semn(vb) atunci
dac (ua > 0) i ( ub > 0 ) atunci
// linia trebuie s intersecteze axa u+
nrIntersec ii = nrIntersec ii + 1;
altfel dac (ua > 0) sau ( ub > 0 ) atunci
// linia intersecteaz axa u+
dac (ua - va(ub - ua)/(vb – va) > 0) atunci
nrIntersec ii = nrIntersec ii + 1;

dac (nrIntersec ii este impar)atunci Q este interior


68

altfel Q este exterior.

Punctele testate aflate pe o latur sunt arbitrar determinate ca fiind interioare sau exterioare
poligonului.

(b) Intersec ia unui proiector cu un plan

Pentru a determina dac un proiector OV intersecteaz planul fe ei F se pot folosi dou metode.
O metod porne te de la ecua iile parametrice ale proiectorului OV:

x = xO + t(xV - xO)
y = yO + t(yV - yO)
x = zO + t(zV - zO)

t (0,1) pentru (x,y,z) apar inînd segmentului OV.

Dac proiectorul intersecteaz planul fe ei, punctul de intersec ie (xi,yi,zi) verific ecua ia
planului, deci

AxO + ByO + CzO + D


ti = -------------------------------------- (8.4)
A(xV - xO) + B(yV - yO) + C(zV - zO)

Dac ti (0,1), atunci proiectorul OV intersecteaz planul fe ei în puncul I de coordonate


(xi,yi,zi), unde

xi = xO + ti(xV - xO)
yi = yO + ti(yV - yO)
xi = zO + ti(zV - zO)

O alt metod de a stabili dac un proiector OV intersecteaz planul fe ei F folose te ecua ia


planului fe ei:

Ax + By + Cz + D = 0

Fie f(x,y,z)= Ax+By+Cz+D. Punctele O(xO,yO,zO) i V(xV,yV,zV) sunt de accea i parte a planului fe ei F
dac :

f(xO,yO,zO) x f(xV,yV,zV) > 0

În continuare se poate aplica una din metodele prezentate anterior pentru a stabili dac
punctul
de intersec ie este sau nu interior poligonului.
69

11.3.Determinarea fe elor vizibile ale obiectului.

11.3.1. Algoritmul Galimberti-Montanari

Algoritmul presupune orientarea fe elor poliedrului. Fiecare fa este astfel definit încît normala
sa s fie orientat spre exteriorul obiectului. Aceasta implic o parcurgere a vîrfurilor fe elor în
sens trigonometric, ca în figura 8.10. Fiecare latur apar ine la dou fe e ale poiedrului , fiind
parcurs în sensuri diferite pentru cele dou fe e.
Normala la o fa se calculeaz ca produs vectorial a dou laturi adiacente.

Figura 8.10.

Pa ii algoritmului sunt:

1. Se proiecteaz poliedrul în planul de proiec ie, considerînd o proiec ie perspectiv . Pentru fiecare fa
proiectat se determin vizibilitatea sa, calculînd componenta z a produsului vectorial a dou
laturi adiacente. Astfel, dac V0(x0,y0), V1(x1,y1) i V2(x2,y2) sunt proiec iile a trei vîrfuri ce definesc
dou laturi adiacente, atunci produsul vectorial al lor se define te ca fiind:
Figura 8.10 Orientarea fe elor unui poliedru

i j k
V0V1 x V1V2 = 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)

Fa a este poten ial 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 fe ei.
Dac poliedrul este convex, atunci se afi eaz fe ele poten ial 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 apar in la dou fe e invizibile.
Fie de exemplu, poliedrul din figura 8.11 (a). Fe ele poten ial 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 fiec rei laturi în raport cu fe ele poten ial vizibile. Pozi iile unei laturi AB în
raport cu o fa a F sunt reprezentate în figura 8.12 (a). Se disting urm toarele cazuri:

(a) Ambii proiectori nu intersecteaz planul fe ei. Latura AB este de aceea i parte a planului fe ei ca i
observatorul. În acest caz, latura AB este vizibil în raport cu fa a F.

(b) Unul din cei doi proiectori intersecteaz planul fe ei iar cel lalt nu.
70

(b1) Dac punctul de intersec ie apar ine fe ei (proiectorul intersecteaz fa a), atunci un vîrf al
laturii este vizibil iar cel lalt este obturat de fa a F. Segmentul vizibil este cuprins între vîrful vizibil i
punctul de intersec ie al laturii cu fa a.
(b2) Dac punctul de intersec ie nu apar ine fe ei (proiectorul nu intersecteaz fa a), atunci
segmentul
sau segmentele vizibile ale laturii în raport cu fa a F se determin ca în cazul (c).

(c) Ambii proiectori intersecteaz planul fe ei. În acest caz se studiaz vizibilitatea laturii
folosind proiec ia perspectiv a fe ei i a laturii în planul de proiec ie. ConsiderÎnd fa a poligon
convex, se disting patru cazuri, reprezentate în figura 8.12 (b):
(c1) Ambele vîrfuri ale laturii sunt în interiorul fe ei, deci latura este nevizibil .

Figura 8.12

(c2) Un vîrf al laturii este în interiorul fe ei iar cel lalt în exterior. Segmentul vizibil este
determinat de vîrful exterior i punctul de intersec ie al laturii cu una din laturile fe ei.

(c3) Ambele vîrfuri ale laturii sunt în exteriorul fe ei i latura intersecteaz fa a. Se ob in


dou
segmente vizibile determinate de vîrfurile laturii i punctele de intersec ie ale laturii cu laturile fe ei.

(c4) Ambele vîrfuri ale laturii sunt în exteriorul fe ei i latura nu intersecteaz fa a. Latura este
vizibil în raport cu fa a.

11.3.2. Algoritmul Z-buffer

Algoritmul Z-buffer este considerat cel mai simplu algoritm de afi are a scenelor 3D numai prin
p r ile vizibile. Acest algoritm nu necesita compara ii intre obiecte sau calcule de intersec ie i de aceea
este simplu de implementat. Necesita insa ca structura de date un buffer (tablou bidimensional),
având un num r de elemente egal cu rezolu ia ecranului. Fiecare element din buffer memoreaz informa ia
de adâncime (coordonata z) corespunz toare unui pixel (x,y). De aceea, structura de date folosita
i algoritmul se numesc Z-buffer.
Algoritmul, pe care-l schi m în continuare, se executa asupra unei scene 3D, dup ce
asupra
scenei s-a efectuat transformarea de proiec ie. De asemenea, pentru reducerea
num rului de poligoane tratate în cadrul algoritmului, se recomanda ca mai întâi sa se determine fetele
auto-obturate ale fiec rui obiect. Metoda "backface culling" reduce, în medie, la
jum tate num rul fetelor care urmeaz sa fie procesate în continuare de algoritmul folosit pentru
vizualizarea scenei 3D.

Pa ii algoritmului sunt:
1. Se ini ializeaz 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 stânga, 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 apar ine proiec iei 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 corespunz toare pixelului (x,y). Daca
70
z1<z0 atunci punctul (x,y,z1) este mai apropiat de observator decât punctul pentru care
exista memorata
71

informa ia de adâncime în Z-buffer. Fiind mai aproape de observator, este vizibil i deci se
înscrie
culoarea sa în memoria ecran iar informa ia de adâncime în Z-buffer.
Algoritmul presupune calculul coordonatei z pentru puncte apar inând proiec iei unui poligon.
Pentru generarea punct cu punct a poligonului în memoria ecran, este necesara o func ie de ha
urare ('fill') poligon în spa iul ecran t1s.
Coordonata z a fiec rui punct se poate ob ine printr-o metoda incrementala. Fie
Ax  By  Cz  D  0
ecua ia planului poligonului care se proceseaz , din care rezulta coordonata z:
-Ax -By
z  -D C
Fie z(x,yh) coordonata z a punctului (x,yh) ce apar ine liniei de ha urare yh. Conform rela iei (1),
coordonata z a punctului (x+1,yh) este:
-A(x 1 )-Byh-D -Ax-Byh-D A
z(x  1,yh)     z(x,yh)-A/C
C C
Cum A/C este o constanta pentru un poligon, rezulta:
z(x  1,yh)  z(x,yh) - ct1 (2)
Deci, coordonata z a unui punct (x,yh) apar inând liniei de ha urare yh se ob ine sc zând
din
coordonata z a punctului anterior o constanta.
O rela ie similara se deduce i pentru coordonata z a primului punct de pe fiecare linie de
ha urare:
71

-Ax-B ( y h 1) -D -Ax-By h -D B


z(x,y  1 )     )-B/C
h z(x,y h
C C
z(x,y h  1 )  z(x,y h ) - ct 2 (3)
Rela iile (2) i (3) pot fi utilizate pentru poligoane plane, atunci când se cunoa te ecua ia
planului.
O alta solu ie de a calcula coordonata z este interpolarea lineara. Cunoscând coordonatele z
ale vârfurilor poligonului se calculeaz z(x,y) de-a lungul laturilor poligonului i apoi de-a lungul liniei
de ha urare astfel:
y -y
z a  z1-(z1 -z 2 ) 1 h
y1-y 2
y1 -yh
z b  z1-(z1 -z 4 )
y1-y 4
xb -xc
z c  z b -(z b -z a )
xb -x a

Ca i în cazul anterior, se pot determina rela ii incrementale atât pentru punctele de pe


linia de ha urare cât i pentru linii de ha urare consecutive. Astfel, pentru doua puncte consecutive
(x,y h) i (x+1,yh) ale liniei yh avem:
x -x
z( x, yh )  z b -(z b -z a ) b
x b -x a
x -( x  1) z b z a
z( x  1, y  z -(z -z ) b  z( x, ) 
)
h b b a y h
xb -x a xb  x a
Fie (zb-za)/(xb-xa)=incH - valoare constanta pentru o linie de ha urare yh. Rezulta:

z(x  1,y s )  z(x,y s )  incH (4)


Analog, pentru doua linii de hasurare consecutive avem:
72
72

y1 - y h
z(x, y h )  z 1 - (z1 - z 2 )
y1 - y 2
y -( y s  z z 2
z( x, y h   z1-(z1-z 2 ) 1  z( x, y h )  1
1) y1  y 2
1)
y1 -y 2
Fie (z1 - z2)/(y1-y2)=incV - valoare constanta de-a lungul unei laturi a poligonului, delimitata de
vârfurile (x1,y1,z1) i (x2,y2,z2). Rezulta:
z(x,y s  1 )  z(x,y s )  incV (5)

O posibila implementare a algoritmului Z-buffer este redata în urm torul 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;


* construie te lista laturilor poligonului, ordonata cresc tor dup ymin latura;
pentru yh de la ymin-poligon la ymax-poligon executa
* determina setul laturilor active (laturile intersectate de linia y=yh);
* calculeaz incremental punctele de intersec ie (xi,yh,zi), dintre linia y=yh i laturile active;
* ordoneaz cresc tor dup abscisa punctele de intersec ie;
pentru fiecare segment delimitat de doua puncte de intersec ie consecutive,
(xik, yh, zik)-(xik+1, yh, zik+1) executa pentru x de la xik la xik+1 executa
* calculeaz incremental z(x, yh);
daca ( z < Z-Buffertx,yhs ) atunci
Z-Buffertx,yhs = z;
ScriePixel( x, yh, culoare_poligon_P);

În cazul în care se specifica un model de iluminare (vezi tema 3) i se cunosc intensit


ile luminoase, I, în vârfurile re elei poligonale prin care este reprezentat un obiect, calculul intensit
ii fiec rui pixel se face prin interpolare liniara, odat cu calculul valorilor z. Principalul
dezavantaj al algoritmului îl constituie calculul intensit ii luminoase I, pentru pixeli care sunt apoi
obtura i de alte poligoane mai apropiate de observator i care se proceseaz ulterior. De aceea
algoritmul se poate extinde cu o func ie care sa sorteze poligoanele dup extensia pe z,
determinând astfel o ordine de procesare a lor. Poligoanele vor fi procesate începând cu cel mai
apropiat de observator.
Dimensiunea buffer-ului pentru memorarea valorilor z este determinata de dimensiunea por ii de
afi are în spa iul ecran. Aceasta dimensiune este insa limitata de memoria disponibila. Din considerente
de eficienta privind memoria utilizata precum i viteza de execu ie, valorile z memorate pot fi
întregi reprezenta i pe 8 sau 16 bi i, în func ie de complexitatea scenei i de detaliile de
reprezentare. Implement rile hardware ale acestui algoritm folosesc valori z întregi reprezentate pe
20-32 bi i i o memorie speciala pentru p strarea valorilor z. Scena 3D se scaleaz astfel incit
valorile z sa apar in acestui domeniu fix. Daca num rul de bi i este mai mic, din cauza erorilor de
reprezentare poate apare efectul de "aliasing" de-a lungul muchiilor comune a doua fete sau pentru
obiecte dep rtate care se suprapun.
73

Viteza de execu ie poate fi îmbun t ita daca scrierea pixelilor în memoria ecran se face
prin acces direct la aceasta i nu prin apel de func ii 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 restric ie, nu sunt admise intersec ii
ale laturilor unui poligon cu fe ele altor poliedre. Poliedrele pot fi convexe, concave sau cu
treceri, deci corespunz tor poligoanele sunt convexe, concave sau cu goluri interioare. Algoritmul
consider ca date de intrare fe ele vizibile (fe ele “din fa ”) ale poliedrelor, care se pot determina pe
baza componentei z a normalei la fa a proiectat . De asemenea este necesar ca aceste fe e s fie
orientate în acela i sens. Folosind conven ia ca normala la o fa vizibil s fie îndreptat spre
observator, atunci sensul de parcurgere al conturului este sensul trigonometric. Golurile interioare
unei fe e vor fi parcurse în sens antitrigonometric.
Se definesc urm toarele concepte:

- gradul de nevizibilitate al unui punct sau segment indic num rul de poligoane ce obtureaz (acoper )
punctul, respectiv segmentul. Un segment este vizibil doar dac gradul s u de nevizibilitate este
0. Gradul de nevizibilitate al unei laturi ce trece prin spatele unei fe e se incrementeaz , respectiv
se decrementeaz atunci cînd latura iese din spatele unei fe e vizibile.

- linia contur este o latur comun unei fe e vizibile i unei fe e nevizibile, sau o latur a unei
fe e vizibile care nu apar ine unui poliedru închis. Gradul de nevizibilitate al unei laturi se
modific doar cînd 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 fiec rui segment.

Figura 8.13

Algoritmul calculeaz gradul de nevizibilitate al fiec rei laturi în raport cu toate liniile
contur
care nu apar in poligonului din care face parte acea latur .
O linie contur trece prin fa a unei laturi, modificîndu-i gradul de nevizibilitate doar dac
linia contur intersecteaz triunghiul format din vîrfurile laturii i observator. În figura 8.14 sunt
reprezentate liniile contur care modific gradul de nevizibilitate al laturii AB.

------------------------------------------
Figura 8.14
------------------------------------------

Proiec ia unei astfel de linii contur pe latur determin un punct de intersec ie î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 aceea i conven ie 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, proiec iile liniilor contur pe latura AB dau punctele de intersec ie 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 vîrf oarecare V1,
determinÎnd num rul de fe e vizibile care îl obtureaz . Pentru aceasta, se calculeaz intersec ia
proiectorului OV1 cu toate poligoanele scenei 3D. Poligoanele care îl obtureaz intersecteaz
proiectorulîÎn puncte ce apar in segmentului OV1. Fie k gradul de nevizibilitate al vîrfului V1. inînd
cont de coeren a laturii, algoritmul propag aceast valoare de-a lungul unei laturi ce pleac din V 1.
Gradul de nevizibilitate al laturii V1V2 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 ini ial
pentru urm toarea latur . Similar se proceseaz fiecare latur , determinînd segmentele vizibile în
raport cu toate fe ele vizibile ale scenei.
Gradul de nevizibilitate nu se propag întotdeauna corect de-a lungul laturilor contur care pleac
dintr-un vîrf. De exemplu în figura 8.13, prin vîrful G trec laturile GH, GI i GN, care au grade
de nevizibilitate diferite. Dac se proceseaz laturile poligonului NGHP începînd cu latura NG,
atunci gradul de nevizibilitate al vîrfului G este 0. Aceast valoare nu se propag corect pentru latura GH
(care este o linie contur i are gradul de nevizibilitate 1). Valoarea ini ial a gradului de
nevizibilitate a unei linii contur ce pleac din vîrful V se calculeaz testînd vizibilitatea ei fa
de poligoanele c rora apar ine acel vîrf.

12. Redarea luminii si a umbrelor în imagini


Imaginile sintetizate cu ajutorul calculatorului trebuie s fie cît mai apropiate de acelea care ar fi
percepute de ochiul uman dac scenele reprezentate în imagini ar exista în realitate. Deaceea, eliminarea
p r ilor nevizibile este doar primul pas în sinteza imaginilor realiste. Urm torul pas const în
redarea luminii i a umbrelor, luînd în considerare sursele de lumin , caracteristicile suprafe elor
obiectelor, pozi ia i orientarealor.

În acest capitol vom prezenta modelele de iluminare folosite frecvent în sinteza imaginilor.
Ele permit calculul intensit ii luminii reflectate spre ochiul unui observator de diferite puncte ale
suprafe ei unui obiect. Sunt dou clase de modele de iluminare: modele locale i modele globale.
În modelele locale, intensitatea luminii se determin inînd cont numai de lumina incident care
provine de la una sau mai multe surse de lumin , de orientarea i caracteristicele fizice ale suprafe ei.
Î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 prezent m în paragraful 9.7. În paragrafele 9.2 i 9.3 sunt prezentate modele locale pentru
calculul intensit ii luminii într-un punct al unei suprafe e iar în 9.4, modelele utilizate în practic
pentru redarea suprafe elor 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 diferi i algoritmi de
eliminare a p r ilor nevizibile în care iluminarea este determinat prin modele locale.

În primul paragraf al acestui capitol reamintim pe scurt propriet ile luminii apoi prezent m
cîteva dintre modelele folosite pentru reprezentarea culorilor în sistemele de sintez a imaginilor.
75

12.1. Propriet ile 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 ro u. Între cele dou limite ochiul poate distinge circa 350000 de culori.

Atunci cînd energia luminoas cade pe suprafa a 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 c tre obiectele din mediul înconjur tor.

Lumina care con ine toate lungimile de und din spectrul vizibil în propor ii aproximativ
egale se nume te 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
func ie de propriet ile fizice ale suprafe ei obiectului. Obiectele care reflect acromatic mai mult
de 80% din lumina incident alb apar ca albe. Cele care reflect acromatic mai pu in de 3% din
lumina incident apar ca negre.

Lumina care con ine mai multe lungimi de und în propor ii inegale se nume te cromatic
. Astfel, dac predomin lungimile de und de la limita superioar a spectrului vizibil, lumina
perceput este ro ie sau ro cat . Culoarea unui obiect depinde atît de distribu ia lungimilor de und în
lumina care cade pe obiect cît 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 aceea i culoare s nu fie perceput la fel de doi indivizi.

Defini ia psiho-fiziologic a unei culori cuprinde:

-Nuan a, care caracterizeaz culoarea (ro u, galben, verde, etc); ea este determinat de lungimea de und
dominant a distribu iei spectrale a culorii.

-Satura ia sau puritatea, care este o m sur a amestecului de alb într-o culoare pur ; aceast no
iune
permite s se fac distinc ie între ro u i roz, între albastru i bleu, etc. O culoare pur are
satura ia
100%. Lumina acromatic are satura ia 0%.

-Luminozitatea sau str lucirea, care reprezint intensitatea luminii. Luminozitatea este o caracteristic a
unui obiect emi tor de lumin în timp ce str lucirea caracterizeaz un obiect neemi tor, care
reflect lumina.

În figura 9.1.a este redat distribu ia energiei luminii albe iar în figura 9.1.b distribu ia
energiei cu o lungime de und dominant , care este perceput de ochi ca o culoare. Cu cît diferen a Ed-
Ew este mai mare cu atît culoarea este mai pur . Dac Ew =0 , culoarea are puritatea 100% iar
lumina cu un astfel de spectru este numit monocromatic . Prin defini ie, lumina monocromatic are un
spectru cu o l rgime 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 c reia în retina ochiului
76

uman exist trei tipuri de conuri, fiecare tip fiind sensibil la una dintre culorile ro u, verde i albastru. În
figura 9.2 sunt redate rezultatele ob inute pe cale experimental

Figura 9.2. Figura 9.3.

De exemplu, la lumina corespunz toare lungimii de und de 550 nanometrii, receptorii de


albastru au o senzitivitate de 0%, cei de verde de circa 55% iar cei de ro u de circa 45%. Curbele arat
c receptorii de albastru sunt mult mai pu in sensibili decît cei de ro u i de verde. Suma celor trei curbe
de r spuns, redat în figura 9.3, este numit curba de luminozitate. Ea ilustreaz r spunsul
ochiului la lumin de luminozitate constant atunci cînd variaz lungimea de und dominant ;
senzitivitatea maxim corespunde luminii cu lungimea de und în jur de 550 nm, perceput ca galben-
verde. Culorile ro u, verde i albastru se numesc culori primare. Prin amestecul lor în propor ii
egale se ob ine alb. Dou culori care prin amestec produc lumin alb se numesc complementare.
Amestecînd dou culori primare se ob ine culoarea complementar celei de a treia. De
exemplu, albastru+verde=cian, ro u+verde=galben, ro u+albastru=magenta. Culorile ro u, verde i
albastru se numesc i primitive aditive deoarece ele permit formarea de nuan e prin adunarea lor
în diferite propor ii. Acest mod de definire a culorilor corespunde echipamentelor emi toare de
lumin (dispozitive de vizualizare cu ecran). Culorile complementare primitivelor aditive sunt cian,
magenta i galben. Astfel, alb-ro u=cian, alb-verde=magenta, alb- albastru=galben. Ele permit
specificarea de nuan e prin extragerea lor în diferite propor ii din alb. Deaceea, se numesc primitive
extractive. Sc zîndu-le în propor ii egale din alb se ob in diferite nuan e de gri. Primitivele extractive se
folosesc pentru a defini culorile reflectate de un document imprimat.Pigmen ii existen i în cernelurile
tipografice absorb culorile complementare acelora ale pigmen ilor. De exemplu, pigmentul de
culoare magenta absoarbe din lumina incident componentele corespunz toare luminii verde, iar
cel de culoare galben, componentele corespunz toare luminii albastre. Deaceea, o suprafa care
con ine pigmen i magenta i galben va reflecta (sau transmite) lumin ro ie. Dac lumina ro ie este
incident pe o suprafa de culoare cian suprafa a va fi v zut 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 c tre 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 propriet ile psiho-fiziologice ale culorilor. Deaceea se spune c
sunt orientate c tre utilizator; astfel sunt modelele HSV i HLS.

Un model de culoare specific un sistem de coordonate 3D i un subspa iu al culorilor în


sistemul de coordonate respectiv. Fiecare culoare se reprezint printr-un punct în subspa iul culorilor.

Modelul RGB (Red, Green, Blue)

A fost propus de NTSC (National Television Standards Commitee) ca model de reprezentare a


culorilor pentru echipamentele de afi are cu tub catodic.

Subspa iul culorilor este cubul unitate, definit în sistemul de coordonate carteziene 3D
(figura
9.4). Fiecare ax corespunde unei culori primare: ro u, verde i albastru. O culoare se specific prin trei
77

valori reale cuprinse între 0 i 1, reprezentînd contribu iile celor trei culori primare la formarea culorii.
Nuan ele de gri sunt reprezentate prin punctele diagonalei principale. Ele corespund amestecului în
propor ii egale a celor trei culori primare.

Figura 9.4.

Modelul CMY (Cyan, Magenta, Yellow)

Este utilizat pentru specificarea culorilor la dispozitivele de imprimare. Folose te acela i sistem
de coordonate i acela i subspa iu al culorilor ca i modelul RGB cu deosebirea c originea corespunde
culorii alb, vîrful (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, reprezentînd propor iile
în care trebuie s fie amesteca i cei trei pigmen i ce extrag componentele luminii albe. Culoarea negru se
ob ine amestecînd în propor ii maxime culorile primare. În general îns , datorit imperfec iunilor
cernelurilor, prin amestecul în propor ii maxime al celor trei pigmen i nu se ob ine 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 c tre NTSC, prin care s-a
urm rit compatibilizarea transmisiei imaginilor color cu a celor alb-negru.

Subspa iul culorilor în acest model este un poliedru convex raportat la sistemul cartezian
3D,
care se aplic în cubul RGB prin inversa transform rii:
77

Y  0.229 0.587 0.114   R 


    
 I    0.596  0.274  0.322 G
  0.21  0.523 0.312  B 

Q  1 

Prin specificarea culorilor în modelul YIQ se evit o problem TV important : dou culori
diferite în modelul RGB se pot afi a la fel pe un ecran alb-negru. Problema este evitat asigurîndu-se c
dou culori între care ochiul face distinc ie vor avea valori distincte ale luminozit ii, reprezentat
prin
78

componenta Y, i deci pe un ecran alb-negru vor fi afi ate cu intensit i diferite. Modelul se bazeaz pe
faptul c sistemul vizual este mai sensibil la schimb ri ale luminozit ii decît la schimb ri ale
nuan ei sau ale satura iei ( care sunt reprezentate în acest model prin componentele I i Q). Deaceea,
semnalului Y i s-a alocat cea mai mare parte a l rgimii de band disponibile. Propor iile culorilor
primare în sistemul NTSC au fost determinate astfel incît s se ob in curba standard de
luminozitate. Deoarece informa ia de luminozitate este con inut î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. Arti tii specific culorile prin tente, nuan e i tonuri. Pornind de la un pigment pur,
un artist adaug alb pentru a ob ine o tent , negru pentru a ob ine o nuan , alb i negru pentru
a ob ine o tonalitate a culorii. Aceasta corespunde reprezent rii triunghiulare din figura 9.6.

Figura 9.6.

A ezînd triunghiurile corespunz toare culorilor pure în jurul unei axe centrale alb-negru, se
ob ine reprezentarea tri- dimensional de forma unui hexacon, redat în figura 9.7.

Figura 9.7.

Modelul HSV, creat de Smith [SMIT78], folose te no iunile de nuan (hue), satura ie
(saturation) i luminozitate (value). Baza hexaconului corespunde culorilor de intensitate maxim
(V=1). Nuan a este definit prin unghiul de rota ie în jurul axei verticale, unghiul zero
corespunzînd culorii ro u. Culorile complementare sunt situate la 180 de grade una fa de alta pe baza
hexaconului. Satura ia este definit prin distan a de la axa hexaconului la marginile hexaconului, pentru
toate valorile lui V. Ea variaz de la zero, pe ax , la 1, pe fe ele laterale ale hexaconului. O combina ie de
numai dou culori primare d o culoare cu satura ie maxim , dar un amestec în care toate cele
trei culori primare sunt diferite de zero nu poate produce o culoare cu satura ia maxim . Combina ia
(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. Ad ugarea de alb înseamn mic orarea lui S. Ad ugarea de negru
înseamn mic orarea lui V. Se ob in diferite tonuri mic orÎnd atÎt pe V cÎt i pe S. Baza
hexaconului corespunde suprafe ei v zute atunci cÎnd se prive te cubul RGB dinspre vÎrful (1,1,1) de-a
lungul diagonalei principale (figura 9.8).

Figura 9.8.

Fiecare plan de V constant din spa iul HSV corespunde vederii unui subcub din cubul RGB. Diagonala
principal a cubului RGB devine axa principal în spa iul HSV. Aceast interpretare conduce la
urm torii doi algoritmi de conversie între modelele RGB i HSV:
79

Modelul HLS (Hue, Lightness, Saturation)

Modelul este utilizat de firma Tektronix. Subspa iul 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 satura ie maxim i complementarele lor sunt reprezentate prin S=1, L=0.5.
Conversia RGB- HLS i invers este efectuat pe baza unor algoritmi asem n tori acelora de
conversie RGB-HSV i HSV-RGB.

Interpolarea in spa iul culorilor

Exist mai multe metode folosite în iluminarea scenelor 3D care se bazeaz pe


interpolarea culorilor. De exemplu, calculul intensit ii în modelul Gouraud, calculul ilumin rii într-un
punct al unei suprafe e transparente i altele. Rezultatul interpol rii a dou culori depinde de
modelul de culoare în care sunt specificate. Astfel, rezultatul interpol rii în oricare dintre modelele
RGB, CMY i YIQ va fi acela i, deoarece conversiile între aceste modele sunt transform ri
afine. În schimb rezultatul interpol rii în HSV sau în HLS va fi diferit de acela al interpol rii în RGB.
Fie dou culori specificate în modelul RGB, C1=(1,0,0) i C2=(0,1,0). Le interpol m cu ponderi
egale în modelele RGB i HSV:

(a) în modelul RGB:


C=t*C2 + (1-t)*C1 unde t=0.5, se ob ine
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 ob inute în cele dou cazuri sunt diferite.

Alegerea modelului în care se efectueaz interpolarea depinde de rezultatul dorit. De


exemplu, dac se dore te interpolarea a dou culori cu o anumit nuan (sau satura ie), men
inîndu-se acee i nuan (satura ie) pentru toate culorile interpolate, se va alege modelul HSV sau HLS.

12.3. Modele de reflexie a luminii

Caracteristicile luminii reflectate de suprafa a unui obiect depind de lungimile de und con inute
în lumina incident , direc ia i geometria sursei luminoase, de orientarea suprafe ei i de propriet
ile materialului din care este construit suprafa a. Lumina reflectat de o suprafa real (care nu
este difuzor perfect sau reflector perfect) este considerat ca avînd o component difuz i una specular .

Expresia care modeleaz intensitatea luminii reflectate intr-un punct al unei suprafe e este
definit pentru o suprafa a 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 s u 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, de i nu corespunde realit ii, este u or de implementat i conduce la
rezultate acceptabile.
80

12.3.1. Reflexia difuz

Lumina reflectat difuz de o suprafa este dispersat regulat în toate direc iile. Deci, intensitatea
sa este considerat a fi aceea i, din oricare pozi ie ar privi observatorul. Legea lui Lambert
define te reflexia luminii provenite de la o surs punctiform , de c tre un difuzor perfect.
Conform acestei legi, intensitatea luminii reflectate de un difuzor perfect, într-un punct P, este
propor ional cu cosinusul unghiului dintre direc ia luminii incidente i normala la suprafa în punctul
P (figura 9.10.):

Id=Il * Kd * cos(i) 0 i  /2 (9.1.)


80

unde
Il este intensitatea luminii incidente iar
Kd este coeficientul de difuzie a luminii incidente, 0  kd 1.

Figura 9.10.

Dac i este mai mare ca /2, suprafa a nu prime te lumin de la surs (sursa de lumin se afl în
spatele suprafe ei). Coeficientul de difuzie depinde de materialul din care este construit suprafa a
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 spa iu. Ad ugînd termenul de difuzie a luminii ambiante,
modelul de iluminare devine:

Id = Ia * Ka + Il * Kd * cos(i) 0  i  /2 (9.2.)

unde Ia este intensitatea luminii ambiante iar Ka ( 0 Ka 1) este coeficientul de difuzie a
luminii ambiante, dependent de material. Atunci cînd sursa de lumin punctiform este suficient de
îndep rtat de obiectele scenei vizualizate, vectorul L este acela i în orice punct. Sursa de lumin
este numit în acest caz direc ional . AplicÎnd modelul (9.2.) pentru vizualizarea a dou suprafe e
paralele construite din acela i material, se va ob ine o aceea i intensitate (unghiul dintre L i
normal este acela i pentru cele dou suprafe e). Dac proiec iile suprafe elor se suprapun în imagine,
atunci ele nu se vor distinge. Aceasta deoarece în model nu se ine cont de faptul c intensitatea
luminii descre te propor ional cu inversul p tratului distan ei de la sursa de lumin la obiect. Deci,
obiectele mai îndep rtate de surs sunt mai slab luminate. O posibil corec ie a modelului ar putea fi:

Id = Ia * Ka + fat* Il * Kd * cos(i) (9.3.)


2
unde fat = 1/d este o func ie de atenuare; d este distan a de la surs la punctul de pe suprafa considerat.
Corec ia nu satisface cazul în care sursa este foarte îndep rtat ; deasemenea, dac sursa este la distan
foarte mic de scen , intensit ile ob inute pentru dou suprafe e cu acela i unghi i, între L i N, vor
fi mult diferite. O aproximare mai bun este urm toarea:
2
fat = min(1/(c1 + c2*d + c3*d ), 1) (9.4.)
81

unde c1, c2 i c3 sunt trei constante care se asociaz sursei de lumin . Constanta c1 se alege astfel încît
numitorul s nu devin prea mic atunci cînd sursa este foarte apropiat . Valoarea func iei este limitat la
1 pentru a se asigura atenuarea.

În general, lumina incident nu este monocromatic iar suprafa a pe care cade poate fi colorat .
Deaceea, pentru calculul luminii reflectate ecua ia (9.3.) se scrie separat pentru cele trei componente ale
modelului de culoare folosit. De exemplu, dac se folose te modelul RGB, atunci ecua ia
corespunz toare componentei "Red" a culorii luminii reflectate este:
81

IdR = IaR*KaR + fat*IlR*KdR*cos(i)


unde
Kar i Kdr sunt coeficien ii de difuzie ai culorii ro u, specifici materialului suprafe ei.

O alt expresie folosit în acela i scop [FOLE92] este:

IdR = IaR*Ka*OdR + fat*IlR*Kd*OdR*cos(i)

unde OdR este o constant specific materialului din care este construit suprafa a.

Pentru a nu restrînge modelul de iluminare la un anumit model de culoare, Foley


[FOLE92] propune o nota ie în care se asociaz indicele tuturor termenilor care sunt dependen i
de lungimea de und :

Id = Ia ka*Od + fat*Il Kd*Od 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 distribu ia spa ial a luminii reflectate specular. La suprafetele netede distribu ia este
dreapt i focalizat ; la suprafetele cu rugozit i ea este dispersat . În general, lumina reflectata
specular are caracteristicile luminii incidente. De exemplu, suprafa a unui m r ro u iluminat cu o
lumin alb intens produce o lumin intens de culoare alb într-o zon foarte restrîns , datorit
reflexiei speculare. Restul suprafetei m rului apare ca ro ie 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
n
reflectate atunci cînd  cre te (figura 9.11.), prin cos() , unde n este exponentul de reflexie
speculara al materialului. Astfel, în modelul Phong, intensitatea luminii speculare este definit astfel:
n
Is = Il * W(i, ) * cos() (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
n
cos() 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 hîrtia.

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 depa e te
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 propriet ile materialului.
Reflexia specular este afectat de proprietatile suprafetei înse i i de caracteristicile luminii incidente;
în general, culoarea luminii speculare poate fi diferit de aceea a luminii difuze. Pentru a pune
în eviden dependen a culorii luminii speculare de lungimea de und a luminii incidente, în
modelul de iluminare se înlocuie te functia W(i, ) cu produsul Ks*Os unde Ks este coeficientul
de reflexie specular iar Os este culoarea speculara a obiectului.

Combinînd rezultatele, ob inem urm torul model de iluminare pentru suprafete reale:

n
I =Ia*Ka*Od + fat*Il (Kd*Od cos(i)+Ks*Os cos() )

tiind c
cos(i)=L N/([L] [N])=Lu Nu
82

¨i
cos()=R V/([R] [V])=Ru Vu
rezult :

n
I =Ia*Ka*Od + fat*Il [Kd*Od *(Lu Nu)+Ks*Os *(Ru Vu) ] (9.7.)

Atunci cînd sursa de lumin este la infinit, produsul scalar (Lu Nu) este constant pentru un
poligon dat, în timp ce (Ru Vu) variaz de la un punct la altul. Pentru suprafe e curbe, variaz atît (Nu Lu)
cît i (Ru Vu).
Daca scena 3D este luminat de m surse de lumin , intensitatea luminii reflectate de un punct se
ob ine însumînd contribu iile celor m surse:
n
I= Ia*Ka *Od+  fati*Ili [Kd*Od*(Lui Nu)+Ks*Os*(Rui Vu) ] (9.8.)
1=i=m

Calculul directiei luminii speculare

Vectorul R este simetricul vectorului L fata de N. Deci, proiectia lui Lu pe N este egala cu Nu
cos(i) (figura 9.13.).
83

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 încît 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.
n
Termenul care exprim reflexia specular este în acest caz (Nu Hu) , unde
Hu=(Lu+Vu)/[(Lu+Vu)]
Atunci cînd sursa de lumin i observatorul sunt la infinit, utilizarea termenului Nu*Hu
este
avantajoas deoarece Hu este constant.

12.4. Redarea suprafe elor iluminate

În paragrafele precedente s-au prezentat modele care permit calculul luminii într-un punct
al unei suprafe e. Modelele prezentate în continuare se refer la modul de calcul al luminii în
toate punctele unei suprafe e.
Suprafa a se presupune a fi compus din fa ete poligonale. Ea poate fi reprezentarea exact
a
unui corp poliedral sau reprezentarea aproximativ a unei suprafe e curbe.

12.4.1. Modelul LAMBERT

Pentru fiecare fa et se calculeaz o singur intensitate, cu formula:

Id = k * (Nu Lu) (9.12.)


unde
Nu este vectorul unitate normal la suprafa iar
Lu este versorul direc iei sursei de lumin ,
k este o constant .

Modelul se bazeaz pe urm toarele 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 suprafa a
poligonului);
- poligonul face parte din suprafa a de vizualizat i nu este o aproximare a unui petic de
suprafa
83
curb .
84

`Dac primele dou cerin e nu sunt satisf cute, se poate adopta o conven ie de calcul al vectorilor L i
V pentru un întreg poligon. De exemplu cei doi vectori pot fi calcula i în centrul poligonului.
Dac ultima cerin nu este îndeplinit , intensit ile calculate pentru fa ete vecine cu
orientare diferit vor fi diferite, eviden iindu-se aproximarea suprafe ei curbe prin re eaua de fa ete
poligonale. Solu ia simpl , de a diviza mai fin suprafa a curb nu rezolv problema, deoarece percep ia
diferen ei de intensitate dintre fa etele adiacente este accentuat de efectul de band Mach
(descoperit de Mach în
1865). Efectul Mach este cauzat de inhibi ia lateral a receptorilor din ochi. Cu cît un receptor prime te
mai mult lumin cu atît mai mult receptorul va inhiba r spunsul receptorilor adiacen i lui.
Efectul Mach se produce atunci cînd panta curbei de intensitate a luminii variaz brusc. În acel
loc suprafa a pare mai luminoas sau mai întunecat . Deci, efectul de band Mach m re te percep
ia schimb rii de intensitate pe laturile fa etelor adiacente. Pentru afi area cu efecte de lumin a
suprafe elor curbe aproximate prin re ea poligonal se recomand modelele Gouraud i Phong, în
care intensitatea de afi are a unei fa ete se determin inîndu-se cont de orientarea fa etelor vecine.

12.4.2. Modelul GOURAUD

În modelul Gouraud [GOUR71] se calculeaz o intensitate în fiecare vîrf al suprafe ei de


vizualizat pe baza unui model de iluminare local. Intensit ile în toate celelalte puncte ale suprafe ei sunt
ob inute prin interpolarea liniar a intensit ilor din vîrfuri, pe parcursul gener rii interiorului
poligonului linie cu linie.
Astfel, procesul de redare a unei suprafe e iluminate dup modelul Gouraud este alc tuit
din
urm toarele etape:

1. Se calculeaz o normal în fiecare vîrf al re elei poligonale. Normala se poate ob ine direct
din descrierea analitic a suprafe ei (par.7.3.). Pentru cazurile în care reprezentarea re elei nu con
ine normalele în vîrfuri, Gouraud sugereaz aproximarea normalei într-un vîrf prin media
normalelor la a etele adiacente în vîrful respectiv.

2. Se calculeaz o intensitate în fiecare vîrf al re elei, folosind oricare dintre modelele de


iluminare
prezentate în paragrafele precedente (considerîndu-se ca normal la suprafa , normala vîrfului).

3. Se afi eaz suprafa a calculînd intensitatea într-un punct al unui poligon:


(a) prin interpolarea liniar a intensit ilor vîrfurilor, pentru punctele de pe laturi;
(b) prin interpolare liniar între intensit ile de pe laturi, pentru punctele interioare de pe fiecare linie
de ha urare (Observa ie: punctele suprafe ei unui poligon se calculeaz ca în algoritmul Z-Buffer).

În calculul intensit ilor se poate folosi o metod incremental , similar cu aceea folosit pentru
ob inerea coordonatei z a fiec rui punct dintr-un poligon. Astfel, dac IP este intensitatea punctului de
pe latura 1-2 i linia y=yS+1, se poate deduce, înlocuind în expresia lui IP pe yS cu yS+1, c :

IP=IP + (I1-I2)/(y1-y2)= IP + c1

unde c1 este un termen constant pentru latura 1-2, reprezentînd schimbarea de intensitate la o modificare
cu 1 a lui y. Analog se poate deduce c intensitatea IM, a punctului de coordonate x=xM+1, y=yS este:

IM=IM + (IQ-IP)/(xQ-xP)= IM + c2
85

Modelul Gouraud se poate integra foarte u or în algoritmii de generare a scenelor 3D, de


exemplu, Z-Buffer sau scan-line. Astfel, la reprezentarea fiec rei 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, intensit ile
punctelor interioare nu pot fi mai mari decît acelea ale vîrfurilor, prin a c ror interpolare se ob
in. Totodat , modelul nu elimin complet efectul de band Mach. Utilizarea normalelor în
vîrfuri asigur continuitatea numeric a valorilor intensit ilor la traversarea laturilor poligoanelor
adiacente, dar nu i continuitatea derivatelor. Din aceast cauz efectul de band Mach poate fi
observat în vecin tatea siluetei suprafe ei i a zonelor de curbur mare.

12.4.3. Modelul PHONG

În acest model [PHON75] se calculeaz prin interpolare normal în fiecare punct al suprafe ei de
vizualizat. Pentru afi area suprafe ei se parcurg urm toarele etape:

(1) Se determin o normal în fiecare vîrf al suprafe ei, ca i în modelul Gouraud;

(2) Se afi eaz suprafa a calculînd în fiecare punct vizibil mai întîi normala apoi intensitatea luminoas
folosind unul dintre modelele prezentate în paragraful 9.2. Calculul normalelor prininterpolare este
similar calculului intensit ilor în modelul Gouraud. Astfel, normala într-un punct de pe o latur
se ob ine prin interpolarea normalelor din extremit ile laturii iar într- un punct de pe un segment
(orizontal) interior poligonului prin interpolarea normalelor din extremit ile segmentului.
Componentele Nx, Ny, Nz se pot ob ine printr-un calcul incremental dar, pentru folosirea în
calculul intensit ii, normala trebuie s fie normalizat .

Modelul Phong permite înglobarea componentei speculare în calculul intensit ii tuturor


punctelor suprafe ei. 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 decît în modelul Gouraud, tiind c normalele ob inute
prin interpolare trebuie s fie normalizate pentru a fi folosite în calculul intensit ii.

Modelul Gouraud se folose te în aplica iile î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 sta iile grafice moderne.
Modelele Gouraud i Phong sunt incluse în standardele GKS3D i PHIGS.

12.5. Transparen a

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 cînd lumina trece dintr-un mediu într-altul (de exemplu, din aer în ap ), direc ia
sa se
modific datorit refrac iei. Rela ia 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.)


86

unde
n1 i n2 sunt indicii de refrac ie ai celor dou medii (materiale) traversate de lumin . Indicele
de refrac ie 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 refrac iei sunt ilustrate în figura 9.18. Obiectele 3 i 4 sunt opace iar 1 i 2 sunt
transparente, cu acela i indice de refrac ie, mai mare decît al mediului înconjur tor. Dac nu se
ine cont de refrac ie, raza luminoas a întîlne te obiectul 3, dup cum indic linia punctat . În
realitate, datorit refrac iei, raza a întîlne te obiectul 4 i deci acesta va fi obiectul luminat. Deasemenea,
ne inînd cont de refrac ie, raza b va întîlni obiectul 4 în loc de 3.

Figura 9.18.

Refrac ia produce deasemenea o distorsionare a obiectelor, asem n toare cu aceea produs de o


proiec ie perspectiv . Deci, dac se dore te ob inerea de imagini realiste trebuie s se in cont
de refrac ie.
Multe metode practice de modelare a transparen ei ignor refrac ia, astfel încît obiectele vizibile
printr-o suprafa a transparent sunt cele aflate pe direc ia razei incidente. Motivul ignor rii nu
este intotdeauna cel al reducerii volumului de calcule. Sunt multe cazuri în care nu se urm re te
ob inerea realismului fotografic în totalitate. De exemplu, ne inînd cont de refrac ie, obiectele v
zute prin cele transparente nu sunt derfomate.
Atunci cînd suprafa a vizibil într-un pixel este transparent , culoarea în care va fi afi at pixelul
se poate ob ine combinînd culoarea suprafa ei vizibile cu aceea suprafe ei aflat imediat în spatele s u,
folosind urm toarea formul de interpolare:

I = (1-kt1)*I1 + kt1*I1 (9.14.)


unde
coeficientul de transmisie kt1 m soar ransparen a suprafe ei vizibile în pixel, 0  kt1  1. Atunci cînd kt1
este egal cu 0, suprafa a vizibil este opac i deci pixelul va fi afi at în culoarea sa, I1 cînd kt1 este egal
cu 1, suprafa a vizibila este perfect transparenta i nu contribuie la culoarea pixelului. Cînd k t1=1
i suprafa a din spatele celei vizibile este la rîndul s u transparent , metoda de calcul se aplica
recursiv, pîna cînd se întîlne te o suprafata opac sau fondul.
Aproximarea liniara din modelul (9.14.) nu d rezultate bune pentru suprafe ele curbe.
Aceasta deoarece în apropierea laturilor siluetei unei suprafete curbe (de exemplu, un vas sau o sticl )
grosimea materialului reduce transparen a. 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 :
86

kt = ktmin +(ktmax - ktmin)(1-(1-Nz)m) (9.15.)


unde
ktmin i ktmax reprezint transparen a minim ¨ i cea maxim a unui obiect, Nz este componenta z a
normalei normalizate la suprafa în punctul pentru care se calculeaz kt iar m este un exponent
ce
caracterizeaz transparen a;valorile uzuale pentru m sunt 2 i 3.
O alt metod de modelare a transparen ei trateaz fiecare suprafa a ca un filtru transparent, care
las s treac în mod selectiv diferite lungimi de und . Culoarea unui pixel este dat de formula:
87
87

I = I1 + kt1*O1 I2 (9.16.)


unde
Ot este culoarea de transparen a suprafe ei 1, vizibil în pixelul considerat.

Majoritatea algoritmilor de determinare a vizibilit ii la afi area scenelor 3D pot fi adapta i


cu u urin pentru a îngloba transparen a. Astfel, în algoritmii baza i pe list de priorit i, poligoanele
sunt înscrise în memoria imagine în ordinea îndep rt rii lor de observator (primulî înscris este cel
mai îndep rtat). 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. Ad ugarea efectului de transparen în algoritmul Z-Buffer este mai dificil deoarece
poligoanele sunt generate în ordinea în care sunt întîlnite, ne inîndu-se cont nici de apropierea
lor de observator i nici de transparen . Încorporarea transparen ei în algoritmul Z-Buffer presupune
folosirea mai multor memorii buffer i generarea imaginii în mai multe etape. Imaginea final se
ob ine combinînd imaginea determinat de poligoanele opace din scen cu imaginea determinat de
poligoanele transparente.

12.6. Umbrirea

Atunci cînd un observator prive te o scen 3D iluminat de o surs de lumin dintr-o


pozi ie diferit de aceea a sursei de lumin , va vedea umbrele produse de obiectele scenei.
Umbrele au o contribu ie însemnat la realismul imaginii, îmbun t ind percep ia profunzimii.
O zon de umbr se compune în realitate din dou p r i: umbra pur i penumbra. Umbra
pur este dens , neagr i are un contur bine delimitat. Penumbra înconjoar umbra pur . Zona
aflat în penumbr prime te 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 depozi ia sursei de lumin . Dac sursa este la infinit calculele sunt mai
simple. În cazul unei surse situate la distan finit dar în afara cîmpului vizual este necesar o proiec ie
perspectiv din pozi ia sursei. Cazul cel mai dificil este acela în care sursa este situat în cîmpul vizual.
Problema determin rii umbrelor este similar aceleia de determinare a vizibilit ii
obiectelor: suprafe ele care nu sunt vizibile din pozi ia sursei de lumin sunt în umbr . Deaceea,
crearea unei imagini cu umbre presupune rezolvarea de dou ori a problemei suprafe elor
nevizibile: o dat privind scena din pozi ia fiec rei surse de lumin , a doua oar privind-o din pozi ia
observatorului.
Sunt dou tipuri de umbre: umbre proprii i umbre purtate. Umbrele proprii sunt generate
de
obiectul însu i, care împiedic lumina s ajung la unele dintre fe ele sale (figura 9.20.). Fe ele umbrite
de umbra proprie sunt fe e auto-obturate atunci cînd scena este v zut din pozi ia sursei de lumin .

Figura 9.20.

Umbra purtat este umbra pe care un obiect o produce pe alte p r i ale scenei, la care lumina nu
ajunge din cauza obiectului. Umbrele purtate se pot determina proiectînd în scen , din pozi ia
sursei, toate suprafe ele neumbrite de umbra proprie. Rezult un set de poligoane de umbr care
87

se adaug la reprezentarea scenei. Ele se folosesc ca poligoane-detaliu la redarea scenei 3D. Num
rul de poligoane de umbr este mai mic dac în loc s se proiecteze fiecare fa luminat de surs se
proiecteaz silueta
88

fiec rui obiect (v zut din pozi ia sursei de lumin ). Dup ad ugarea poligoanelor de umbr la
reprezentarea scenei, se genereaz imaginea v zut din pozi ia observatorului. Pot fi generate mai multe
vederi f r a recalcula umbrele, deoarece umbrele depind numai de pozi ia sursei (surselor) de
lumin . Un punct al unei suprafe e care este vizibil din pozi ia observatorului dar nu i din pozi ia unei
surse se afi eaz cu intensitatea de umbrire sau cu o intensitate care rezult din iluminarea sa de c tre alte
surse existente în scen . Modelul de calcul al luminii într-un punct p al unei suprafe e se poate
modifica astfel:
n
I=Ia*ka*Od+  Sifati*Il [kd*Od* (Lui Nu)+ks*Os*(Rui Vu) (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 pîr ilor
nevizibile sau poate fi efectuat într-o etap separat care precede generarea imaginii.
În continuare prezent m cî iva dintre algoritmii de umbrire folosi i în prezent.

12.6.1. Generarea umbrelor într-un algoritm scan-line

Întroducerea umbrelor într-un algoritm de eliminare a p r ilor nevizibile a fost propus


pentru prima dat de Appel [APPE68]. Solu’ia lui Appel privind modificarea unui algoritm scan-
line pentru includerea umbririi a fost îmbun t it 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 construie te o structur de date suplimentar care indic poligoanele de umbr
ce pot umbri poligonul. Eficien a acestei etape este foarte important , deoarece într-o scen cu n
poligoane exista potential n(n-1) umbre purtate. O solu ie 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 proiec ie pozitia sursei. Poligoanele care interac ioneaz în producerea umbrelor
sunt acelea ale c ror proiec ii pe suprafa a sferei se suprapun. În continuare se lucreaz numai
cu acestea, calculîndu-se proiec ia fiecarui poligon din pozi ia sursei în planul fiecaruia dintre
poligoanele cu care el interac ioneaza î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 c tre unul sau mai multe poligoane de umbr ). Dac poligonul PS nu este umbrit, segmentul este
afi at normal. Altfel, sunt posibile urmatoarele cazuri:
(a) Unul sau mai multe poligoane de umbr acoper par ial poligonul PS dar nu i segmentul vizibil;
segmentul este afi at 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 intersectîndu-l cu fiecare poligon de umbr i se aplic algoritmul
recursiv pentru fiecare segment rezultat din divizare pana cînd este satisfacut una dintre condi iile (a)
sau (b).
În mediul real, intensitatea umbrei depinde de intensitatea sursei luminoase i de distan a de la planul
care determin umbra la cel umbrit. Aceasta deoarece zona umbrit prime te lumina ambiant iar sursa
89

de lumina are dimensiuni finite. În modelele de iluminare, pentru simplitate, se ine cont fie
numai de lumina ambiant (modelul 9.17.), fie i de intensitatea sursei luminoase, caz în care
intensitatea umbrei este propor ional 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 prelucrînd de doua ori descrierea scenei pe baza aceluia i algoritm: mai întîi privind scena
din pozitia sursei de lumina i apoi din pozitia observatorului.
În prima etap se determin suprafe ele care sunt vizibile din pozi ia sursei aplicîndu-se
algoritmul Weiler-Atherton (par. 8). Pentru aceasta se aplic scenei o transformare de vizualizare
cu centrul vederii în pozi ia sursei. Rezult lista de poligoane, P, asupra carora se aplic algoritmul
Weiler- Atherton. Rezultatul algoritmului este o lista de poligoane, PL, (complete sau ob inute 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 vîrful în pozitia sursei; metoda este numit "sectorizare".
Atît poligoanelor din lista P cît i celor din lista PL li se aplic transformarea invers , ob inîndu-
se reprezent rile 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 pozi ia observatorului. Poligoanele din LV care provin din lista PL sunt marcate ca
poligoane-detaliu (par.9.4.4.). Pentru determinarea suprafe elor vizibile se aplic tot algoritmul
Weiler-Atherton (neglijîndu-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, p r ile din suprafe ele 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 ob ine prin combinarea rezultatelor vizualiz rii scenei din pozi ia 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 avînd fa ete 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 suprafe e parametrice.
Un volum de umbr este definit de o surs de lumin i un poligon luminat (vizibil din
pozi ia 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 trecînd printr-un vîrf 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.
90

Poligoanele de umbr se folosesc pentru determinarea umbririi produse de poligonul generator în


scen . Not m cu PUV poligoanele de umbr care sunt vizibile din pozi ia observatorului (A i B
în figura 9.21.) i cu PUN poligoanele de umbr care nu sunt vizibile din pozi ia observatorului
(de exemplu, poligonul C). Fie un punct P al unui obiect i VP vectorul din pozi ia
observatorului (V) în punctul respectiv. Atunci, punctul P este umbrit dac num rul de poligoane
de tip PUV intersectate de vectorul VP este mai mare decît num rul de poligoane de tip PUN
intersectate de vector. Acesta este singurul caz, atunci cînd punctul V nu este în umbr . În general,
pentru a determina dac un punct este în umbr se poate folosi un contor în care ini ial se memoreaz
num rul de volume de umbr care con in pozi ia observatorului. Se asociaz poligoanelor de tip PUV
valoarea +1 iar celor de tip PUN valoarea -
1. Atunci cînd 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 pozi ia 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 suprafe ei, vazut din pozi ia 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 suprafe e 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. Cunoscîndu-se poligonul adiacent pe
fiecare latur a fiecarui poligon vizibil din pozi ia 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 execu ia de dou ori a
algoritmului Z-Buffer. Astfel, în prima etap se construie te buffer-ul Z al imaginii v zute din
pozi ia sursei. Vom nota acest buffer cu ZS. În etapa a doua se construie te imaginea vazut din
pozi ia 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) corespunz tor
punctului (x,y,z) în vederea ob inut din pozi ia
sursei;
Dac ZS[x< z atunci
punctul (x,y,z) este în umbr i pixelul (x,y) se
afi eaz în intensitatea corespunz toare umbrei
altfel
pixelul (x,y) se afi eaz luminat

În cazul mai multor surse de lumin se utilizeaz cîte un buffer ZS pentru fiecare surs .
Plecînd de la observa ia c informa ia de umbrire este calculat i pentru punctele care nu
sunt vizibile din pozi ia observatorului, Williams a sugerat o variant în care ad ugarea umbrelor
are loc printr-o postprocesare a imaginii ob inute executînd algoritmului Z-Buffer. Astfel, în prima
etap se execut algoritmul Z-Buffer pentru scena v zut din pozi ia observatorului, ob inîndu-se
imaginea f r umbre i buffer-ul Z. Intensitatea fiec rui pixel este calculat folosind un model de
iluminare local.
90
În etapa a doua se execut urm torul algoritm:
91

Pentru x de la 0 la xmax
Pentru y de la 0 la ymax
Se calculeaz punctul (x,y,z), corespunz tor
punctului (x,y,Z[x] [y]) în vederea ob inut din pozi ia
sursei;
Se determin coordonata ZS a punctului v zut din pozi ia
sursei în pixelul (x,y);
Dac ZS < z atunci
Se mic oreaz intensitatea pixelului (x,y);

Cu toate c este mai eficient , aceast variant conduce la rezultate mai slabe decît
varianta anterioar . Astfel, imaginea determinat în prima etap poate con ine zone cu reflexii
speculare. Dac un punct dintr-o astfel de zon este umbrit, intensitatea sa va fi mic orat , dar
prin aceasta reflexiile speculare nu dispar din imagine. În realitate, un obiect care nu prime te
lumin de la o surs nu poate avea reflexii speculare. Totodat , coordonata z care se ob ine prin
transformarea valorii din buferr-ul Z este mai pu in exact decît în prima variant , datorit preciziei mai
sc zute a reprezent rii valorilor din buffer (în compara ie cu precizia reprezent rii coordonatelor din spa
iul obiect).

13. Suprafe e

13.1. Suprafe e de rota ie

Sfera

Sfera este un corp de rota ie care poate fi considerat o suprafa a 3D închis sau un
poliedru convex. Ca suprafa a 3D poate fi afi ata 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 vârfuri ale patrulaterului se considera
situate în acela i plan, cu o precizie dat ).
Afi area 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
fiec rei fete se determina pe baza unghiului dintre normala la fa i vectorul orientat de la fa
spre observator (direc ie de proiec ie, în cazul proiec iei paralele). Normala la o fa se calculeaz ca
produs vectorial al doua laturi adiacente intr-un vârf, astfel incit sa fie orientata spre exteriorul
poliedrului. Pentru aceasta, se considera orientarea trigonometrica a conturului fiec rei fe e.
Fie N normala la o fa calculata intr-un vârf al sau i V vectorul din acela i vârf spre observator.
Produsul scalar V*N se define te ca fiind:
91

V*N  V * N * cos (aa) V x*N  V y*N y  V z*N z


x

Daca V*N>0 atunci fata este vizibila; altfel nu e vizibila i deci nu se afi eaz .
Pentru afi area unei sfere trebuie sa se calculeze un set de puncte de pe suprafa a sa. În
acest scop se folosesc ecua iile parametrice. Sfera se poate ob ine prin rota ia cu 2*PI a unui semicerc în
jurul unei axe care trece prin capetele sale.
Fie semicercul definit de ecua iile parametrice:
92

x(t)  r* cos (t)


y(t)  r* sin (t) -p/ 2  t  p/ 2
z(t)  0
Prin rota ia sa în jurul axei OY cu 2* se ob ine sfera definita de urm toarea ecua ie parametrica:
S(t,u)  x(t)* cos (u) y(t) -x(t)* sin (u)
-pp2  t  p/ 2
0  u  2*p
Forma pe componente este:
x  r* cos (t)* cos (u)
92

y  r* sin (t) -p 2  t  pp2


z  -r* cos (t)* sin (u) 0  u  2*p

Torul

Torul este un corp care se poate ob ine prin rota ia unui cerc în jurul unei axe situate în acela i plan cu
cercul, care nu intersecteaz suprafa a cercului. Considerat ca poliedru reprezentat prin fe e
poligonale plane nu mai poate fi afi at prin metoda 'backface culling', deoarece este un poliedru
concav. Pentru afi are cu eliminarea p r ilor auto-obturate se va folosi algoritmul de sortare în
adâncime (algoritmul pictorului). Peticelele sunt sortate dup coordonata zmin, iar afi area se face
în ordinea de la cel mai îndep rtat de observator la cel mai apropiat.
Pentru afi area prin peticele a torului se considera proiectia ortografica.

13.2. Suprafe e de forma libera

Suprafe e Bezier

O suprafa a Bezier poate fi descrisa printr-o func ie biparametric cubica. Un punct al suprafe ei
este definit în spa iul parametric (u,v) prin:
3 3
P u, v    P ij * Bi ,3 u  * B j ,3 v 
i 0 j 0

Forma matriceala este:


(u,v)  u 3 u 2 u1 *MB * P * MBT * v 3 v 2 v1 T
0 <= u, v <= 1

unde P este matricea punctelor de control,


MB este matricea de baza Bezier,
  1..3.  3....1 
 
 3.  6.....3....0 
MB  
 3.3......0...0 
 
1....0......0...0 
 
p(u,v) este un punct de pe suprafa a, care se reprezint în coordonate carteziene prin:
(u,v)  ( x(u,v) y(u,v) z(u,v) )

Compunerea suprafe elor Bezier


93

Compunerea (alipirea) a doua suprafe e Bezier, Q(u,v) i R(u,v), implica unele


constrângeri: îndeplinirea condi iilor de continuitate de ordin 0 i 1. Astfel, daca suprafa a R se alipe te
la dreapta lui Q, constrângerile sunt:
(a) Q(1,v)  R( 0,v) pentru 0 <= v <= 1
sau
93

Q3 ,i  R0 ,i i = 0, 1, 2, 3
(b) Q3,i - Q2  k ( R1,i - R0 ,i ) i = 0, 1, 2, 3
,i

Divizarea suprafe elor Bezier

Metoda de divizare a unei suprafe e 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, pân când este îndeplinit condi ia de linearitate a segmentelor de curba ob inute.
Fie Pi punctele de control ce definesc curba. Rela iile de subdivizare în doua curbe definite de punctele
Qi i Ri, cu i=0-
3, sunt:
Q 0  P0 R 0  Q3
Q1  (P0  P1 ) / R 1  ((P1  P2 ) / 2  R 2 ) / 2
2
Q 2  (Q1  (P1  P2 ) / 2) / 2 R 2  (P2  P3 ) / 2
Q 3  (Q 2  R 1 ) / R 3  P3
2
Linearitatea punctelor de control Pi ce aproximeaz curba poate fi testata m surând distantele d1
i d2 de la punctele P1 i P2 la dreapta P0-P3. Acest test de linearitate poate fi extins la
peticele de suprafa a astfel: se determina planul în care se afla trei dintre cele 16 puncte de control ale
suprafe ei i se calculeaz distantele de la celelalte 13 puncte la acest plan. Distanta maxima trebuie sa
fie mai mic decât o precizie impus . Dac o singur distanta dep e te precizia impusa, atunci
se continua subdivizarea peticelului. Precizia impusa depinde de rezolu ia ecranului i orientarea
peticelului fata de planul de proiec ie.
Cele patru peticele ob inute în urma unei diviz ri sunt definite de matricele punctelor de control
Pi, astfel:
P1  H 1 * P* H 1 T
P2  H * P* H T
2 2

P3  H 3 * P * H 3 T
P4  H 4 * P* H 4 T
unde
 ..1.....0.....0....0 
 
1 2 ..1 2 .....0....0 
H1  
1 4.. 2 4 ..1 4....0 
 
1 8.. 3 8 .. 3 8 ..1 8
 
1 8.. 3 8 .. 3 8 ..1 8 
 
 ..0 ..1 4.. 2 4 ..1 4
H 

2  ..0.....0 ..1 2 ..1 2 
 
 ..0.....0.....0.....1 
94

Afi area suprafe elor Bezier

O suprafa Bezier poate fi afi at în doua moduri:


- prin doua familii de curbe (curbele de u constant i curbele de v constant);
- ca o suprafa opac , caz în care suprafa a trebuie sa fie divizata în peticele plane dup metoda de mai
sus.
Pentru afi area suprafe ei divizata în peticele plane se pot folosi algoritmii de tip scan-line
propu i de Lane-Carpenter i Clark. Algoritmii difer prin testul de planeitate i prin func iile
folosite pentru a ob ine ecua ii diferen iale de subdivizare a peticelelor suprafe ei.
Algoritmul Lane-Carpenter efectueaz divizarea unui peticel atunci când este intersectat de linia
de imagine curenta. Algoritmul Clark realizeaz subdivizarea tuturor peticelelor suprafe ei intr-o
etapa de preprocesare.
Algoritmul Lane-Carpenter este prezentat în urm torul pseudocod:
* construie te lista de peticele, LP;
 ini ializeaz 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 ad ugat 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 discontinuit i (rupturi) în aproximarea suprafe ei. Pentru a evita acest efect, algoritmul trebuie sa
modifice patrulaterele de aproximare adiacente, care provin din peticele diferite. Nu apar
discontinuit i dac fiecare peticel se divide de un num r 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 diviz ri care nu sunt neap rat necesare.
Peticelele plane ob inute în urma subdiviz rii pot fi tratate ca poligoane plane care pot fi afi ate
folosind un model de iluminare.

14. Aplicarea unei texturi pe o suprafa


În cadrul acestei teme se cere afi area unui cub pe fe ele c ruia 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 intensit ii unui pixel ecran se va folosi metoda "transform rii inverse": din spa iul
ecran în spa iul obiect i apoi din spa iul obiect în spa iul texturii.
95
95

Textura va fi definita printr-o matrice de 64x64 puncte. Punctele imaginii textura se


texeli. numesc

Cubul se considera definit astfel incit fe ele sale sa fie paralele cu planele principale ale
sistemului de coordonate carteziene 3D. Se va afi a într-o proiec ie izometrica, echivalent
cu
transformarea:
Pr o_izo  Ry(-45o)* Rx( 35.26o)* Pr o_ortogr fic x
Dup aceasta transformare, testul de vizibilitate a unei fe e se reduce la condi ia Nz>0, Nz fiind
componenta z a normalei la fata.
Se va utiliza modelul de iluminare LAMBERT.
Zona din fereastra 2D corespunz toare suprafe ei unui pixel se determina aplicând transformarea
de vizualizare 2D inversa (poarta de afi are -> fereastra reala) celor patru puncte ce definesc
suprafa a pixelului: (px, py), (px+1, py), (px+1, py+1), (px, py+1). Rezulta patru puncte (xi, yi) în
fereastr .
Din puncte 2D apar inând proiec iei unei fe e în fereastra se pot ob ine puncte 3D apar
inând
fetei cubului prin doua metode:
- pornind de la ecua ia planului fetei
Ax  By  Cz  D  0 Ax  By
 z  -  D C
- 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, vârfurilor cubului;
* se determina parametrii transform rii 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 vârfurilor
fetei; se ob ine un patrulater, Fe, în spa iul ecran;
pentru fiecare pixel (px, py) apar inând patrulaterului Fe

* determina zona Z din fereastra 2D, ce corespunde


suprafe ei pixelului (px,py); se ob in 4 puncte
(xi,yi);
pentru fiecare (xi,yi) executa

* calculeaz coordonata zi a punctului (xi,yi) din planul


fetei F; se ob ine punctul (xi,yi,zi);
* aplica transformarea inversa, Tinv= Pro_izo-1, pentru a
ob ine punctul de pe cubul ini ial; se ob ine punctul
(xi',yi',zi');
* 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
95

* calculeaza factorul de scalare:


fscal = nr_texeli_aprinsi_din_ZT/nr_total_texeli_din_ZT
96

* afiseaza pixelul (px, py) cu intensitatea If * fscal;

Punctele 3D apartinind unei fe e a cubului se pot reprezenta parametric astfel:


- pentru fe e paralele cu planul (xOy)
96

u  (x - x0 ) / (x1 - x0 ) y
P3 P2
v  (y - y 0 ) / (y 3 - y 0 )

P0 P1 x

- pentru fe e paralele cu planul (yOz)


y P2
u  (z - z1 ) / (z 5 - z1 ) P3
v  (y - y1 ) / (y 2 - y1 )

P0 P1 z

Analog se definesc ecua iile parametrice pentru celelalte fe e.


Indicii (s,t) în matricea textura se determina simplu:

s = u * 63
t = v * 63

15. Pachetul grafic 3DSTUDIO MAX

Interfa a

În acest compartiment este dat informa ia despre destina ia butoanelor, ferestrele vederilor,
principiile transform rii obiectelor, crearea anima iilor, calculul scenelor etc.
Dup înc rcarea 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 informa iei despre ele.

1. Bara meniului. Acest meniu standard a programului sub Windows, incluzând î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.
97

2. Panelul de instrumente (Toolbar)  este un complect de butoane, ap sarea c rora


cheam
îndeplinirea diferitor comenzi.

3. Fereastra de lucru este împ r it în patru ferestre a vederilor (Viewports): Top  vederea de
sus; Front  vederea din fa , Left  vederea din stânga i Perspective  axonometria.

Este posibil alegerea i altor proiec ii (de jos, din dreapta etc.). la ap sarea butonului
drept al
mouseului pe fereastra de vedere, din punctul Views devin accesibile toate proiec iile (vezi mai jos).

4. Butoanele de manipulare cu ferestrele vederilor (vezi mai jos).

5. Butoanele de manipulare cu anima ie.

Times Slider (contorul timpului (cadrelor))  acest buton, pe care sunt reprezentate 2 cifre. Din
stânga cadrul activ  acel, la care suntem în momentul dat, iar din dreapta  num rul total de
cadre animate în scen .

Animate  butonul ce porne te regimul anima iei. Înainte de a începe crearea anima iei, ap sa i
aceast tast (culoarea ei se va schimba în ro u).

Go to Start  se transleaz contorul timpului la începutul anima iei.


Go to End  se transleaz contorul timpului la sfâr itul anima iei.
Previous Frame  se transleaz contorul timpului cu un cadru înapoi.
Next Frame  se transleaz contorul timpului cu un cadru înainte.
Play Animation  rularea anima iei.
Key mode toggle  mi carea între cadrele cheie ale obiectului selectat.
Frame Number field  num rul cadrului.
Time Configuration  ajustarea parametrilor anima iei.

6. Panelele de comand

Create  panelul cre rii obiectelor.Acest panel cuprinde:


3D Geometry  crearea obiectelor tridimensionale.
Shapes  crearea figurilor plane.
Cameras  crearea camerei de vederi.
Lights  crearea surselor de lumin .
Helpers  crearea obiectelor de ajutor.
Space Warps  crearea surselor transform rilor spa iale
Systems  crearea sistemelor de obiecte conectate

Modify  panelul schimb rii (modifica iei) obiectelor.


Hierarchy  panelul de comand al leg turilor ierarhice i a cinematicii inverse.
Motion  panelul de comand al anima iei obiectelor.
Display  panelul de comand al informa iei, reprezentat în ferestrele vederilor.
Utilities  instrumente i posibilit i ad ug toare (suplementare).
Pentru a activa unul din panelele de comand , trebuie de ap sat pe “iconi a” lui cu butonul stâng
al mouseului.
98

7. Bara de stare  sunt dou bare pe ecran, care con in informa ia despre scen i
activarea comenzilor (controleaz sec iunea aleas , justife ea alegerii, propriet ile ecranului). Bara
const din urm toarele compartimente (în ordine):

7.1.Current selection  arat informa ia 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 r mânând neschimbate.

7.3.Coordinates and offset values  la transformarea obiectului în aceste câmpuri apar


valoarile, la care a fost translat obiectul pe axele X,Y, Z în sistemul universal de coordonate.

7.4.Grid scale  arat m rimea p tratelor 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 ap sat , atunce se selecteaz numai acele obiecte care nimeresc total în por iunea aleas . Dac
este ap sat , atunci se selecteaz i acele obiecte, care nimeresc par ial în por iunea aleas .

7.7.Degradation override  se poate de întrerupt pentru a redesena mai rapid ecranul la


mi carea obiectelor în regim de schi are. Atunci, dac calculatorul nu dovede te s calculeze parametrii
obiectului, cât ele se mi c , el le deseneaz în regim Bounding Box (în modul unei cutii care-l include),
i numai când mi carea se opre te, din nou deseneaz obiectul ini ial.

7.8.Snap Controls  introduce pasul transform rii.

Vizualizarea i dirijarea spa iului 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 ini ial. În program pentru acest caz sunt prev zute multe
posibilit i de dirijare a vederilor (proiec iilor), de asemenea vizualizarea scenei din diferite p r i.
Fereastra de vedere activ este marcat cu un chenar alb. Pentru necesitate se poate de
activat
orice fereastr ap sând butonul drept al mouseului pe denumirea ferestrei.
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, ap sând butonul drept al mouseului pe
denumirea
ferestrei i alegând proiec ia 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 p r i se poate numai în fereastra de proiec ie Perspective i
Camera, în restul sunt ar tate proiec iile bidimensionale, i anume XY  planul: (din dreapta,
din stânga, din fa , din spate) i axa vertical Z.

Butoanele dirij rii ferestrelor de proiec ie


98
Ferestre de proiec ie standarde
99

Cu ajutorul acestor butoane se poate de schimbat imaginea în fereastra de proiec ie activ .


Zoom  m re te sau mic oreaz scara imaginii în fereastra activ .
Zoom All  m re te sau mic oreaz scara imaginii în toate ferestrele în acela i timp.
Zoom Extens  arat toate obiectele. Scara imaginii se modific în a a fel, ca toate obiectele s
se includ în fereastra de proiec ie.
Zoom Extens All  arat toate obiectele în toate ferestrele de proiec ie.
Region Zoom  m rirea par ial a imaginii în por iunea aleas .
Pan  translarea imaginii în fereastra activ a proiec iei.
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 pozi ia camerei în spa iu.

Modurile de vizualizare a obiectelor în scene

Obiectele, aflate într-o scen , în ferestrele de proiec ii pot fi vizualizate un grad diferit de
reprezentare.
De metoda de vizualizare depinde viteza reprezent rii 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 ap sând butonul drept al mouseului pe
butonul necesar de pe panelul instrumentelor  în fereastra care apare se introduc datele numerice
necesare.

Unit ile de m sur în scen

Units  determin un nou sistem de m sur (milimetri, diuimi, etc.). schimbarea sistemului
de m sur se face cu ajutorul ferestrei de dialog Units Setup din meniul Views. Ini ial în
program se folosesc fu i i diuimi (1 fut este egal cu 30,48 cm).

Lucrul cu fi ierele

3DS MAX folose te fi iere de diferite formate. Dumneavoastr pute i alege calea, dup
care
programul caut fi ierul în unele cazuri. De exemplu, la salvarea fi ierului programul automat se
100

adreseaz la mapa Scenes (scene). Pentru a schimba calea pus automat se alege din meniul File punctul
Configure Paths (determinarea drumului).
Compartimentul General con ine op iuni principale. De exemplu, imaginile sintezate
automat se salveeaz în mapa C:\MAX2\Images, dup informa ie ajut toare programul se adreseaz
în mapa C\MAX2\Help, etc.
Compartimentul PlugIn determin calea spre PlugIns (complet rile programului).
Compartimentul Bitmaps determin calea apel rii la biblioteca materialelor (Bitmaps).
Schimbarea acestor acestor parametri trebuie f cut foarte atent, dar mai bine este de l
sat
parametrii instala i automat.

Deschiderea scenei

Alege i din meniul File comanda Open, pe ecran va ap rea o fereastr de dialog, din
care ve i putea selecta fi ierul i tasta i butonul Open. Deschiderea fi ierului se poate de
asemenea cu ajutorul dublului clic pe numele fi ierului în fereastra de dialog.

Trecerea obiectelor dintr-un fi ier în altul

Alege i din meniul File comanda Merge. În fereastra de dialog ap rut selecta i fi ierul, din care
trebuie trecut obiectul i tasta i butonul Open. Dup aceasta se va deschide fereastra de dialog
Merge, în care ve i vedea lista obiectelor care se afl în fi ierul din care se dore te trecerea
obiectelor. Aici se poate de selectat atât toate obiectele (All), cât i careva dintre ele: tasta Shift
permite selectarea obiectelor unul dup altul, tasta Ctrl permite selectarea obiectului câte unul.

Salvarea scenei

Pentru salvarea scenei create, alege i din meniul File comanda Save. În fereastra de dialog
ap rut în câmpul File Name introduce i numele fi ierului, alege i mapa pentru salvare i tasta i butonul
Save.
Este posibil vareantele urm toare a unei i aceia i 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 fi


ierul maxback.bak, într-o map special . Dac este necesar fi ierului maxback.bak i se poate
schimba numele în fi ier cu extensia max i de-l înc rcat.
Increment on Save (m rirea num rului la salvare)  la fiecare salvare a scenei, la
numele fi ierului se adaug un num r, care se m re te la fiecare salvare urm toare. De exemplu,
dac deschidem fi ierul myfile.max, atunci el se va salva sub numele myfile01.max,
myfile02.max, myfile03.max, etc.
Dac fi ierul în procesul de lucru a fost deja salvat, dar dori i s -l salva i sub alt nume,
alege i comanda Save As din meniul File, i în câmpul File Name introduce i numele nou al fi
ierului, dup aceea tasta i butonul Save.
Se poate de salvat în scen numai obiectele selectate. Pentru aceasta alege i din meniul
File
comanda Save Selected i introduce i numele fi ierului.
3DS MAX poate automat s salveze copiile de rezerv dup o anumit perioad de timp
(autosalvare).
100
1001
101

Enable  ini ial comutatorul este deconectat. Dac -l conect m, începe lucrul sistema de
autosalvare.
Number of Autoback files  num rul maximal de copii de rezerv a fi ierului se
cuprinde în
intervalul de la 1 la 9.
Backup Interval  timpul în minute (de la 0.01 pân la 480) între salv ri.

Comenzile Hold i Fetch


Este posibil salvarea ultimei variante a scenei, alegând comanda Hold din meniul Edit,
satfel
fi ierul va fi salvat în bufer sub numele maxhold.mx. Dac este nevoie tot timpul se poate de
deschis
aceast variant a fi ierului, dac chem m comanda Fetch din meniul Edit.
Este folositor de a salva din când în când fi ierul în bufer, pentru a avea posibilitatea de
a ne întoarce înapoi dup careva mi c ri gre ite, sau din cauza bloc rii nea teptate a calculatorului,
pentru a nu pierde informa ia, nesalvând ultima variant a fi ierului pe disc.

tergerea scenei
Tot timpul se poate de ters scena curent i de purces la crearea unei noi scene. Alege i
din
meniul File comanda New, va ap rea fereastra de dialog, care propune urm toarele variante:
Keep Objects and Hierarchy  terge toat anima ia din scen , l sând obiectele, schimb
rile
lor i leg turile ierarhice.
Keep Objects  terge toat anima ia i leg turile ierarhice în scen , l sând obiectele.
New All  terge tot cu excep ia obiectelor i schimb rile lor.
Dac alegem comanda Reset (cur are) din meniul File, atunci vor fi eliminate toate
obiectele
f r excep ii, deasemenea toate schimb rile ferestrelor de proiec ii.

Importarea i exportarea fi ierelor


Fi ierele 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 fi iere din alte
programe grafice, prin File/Import.
Arhivarea scenei
Se poate de arhivat (comprimat) fi ierul prin punctul meniului File/Archive. Nu uita i în
fereastra dispozi iilor (Preferences) în desp r itura Archive System s ar ta i numele
programului- arhivator.

Propriet ile obiectului


Informa ia total despre obiect se poate ob ine, ap sând butonul drept al mouseului pe obiect, i
din meniul ap rut se alege comanda Properties (propriet i).
Object Information  informa ie despre obiect.
Dimensions  m sura paralelipipedului care cuprinde acest obiect.
Vertices  num rul vârfurilor în obiect.
Faces  num rul fe elor în obiect.
Polygons  num rul poligoanelor.
Parent  numele p rintelui, de care este ata at obiectul.
Material Name  numele materialului, dat obiectului.
101
1011
101
Num. Childern  num rul obiectelor-copii, ata ate obiectului prec utat.
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.

102
1021
102

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 p rinte.
Motion Blur  sp larea în mi care.
None  nimic.
Object  rotunjirea cu straturi-repetate.
Image  rotunjirea prin sp larea pixelilor imaginii.
Display Properties  parametrii reprezent rii 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 vârfurilor(vertex).
Trajectory  reprezentarea traectoriei mi c rii.
Vertex Colors  de ar tat culorile vârfurilor.
Shaded  tonarea ca obiect obi nuit.
G-Buffer  num rul canalului obiectului pentru aplicarea efectelor din Video Post.

Alegerea obiectelor
Înainte de a interprinde o oarecare ac iune 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 selec iei). 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  inând ap sat tasta Ctrl, clic cu
mousul pe obiectele care dorim s le select m.
Se poate de selectat obiectele dac le împrejura cu ajutorul butonului stâng ap sat al mouseului.
Dac lucr m numai cu vârfuri sau laturi, se poate de folosit nu numai de selectare în form de p trat, 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, m rime), selectarea obiectului dup tip, de ar tat arborele ierarhic.
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
corespunz tor 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 anima iilor se poate de selectat obiecte din fereastra de dialog Track View, trebuie de
ap sat pe “+” în stânga de Objects, i, în lista deschis de ap sat pe cubicul de culoare galben
sau lâng numele obiectului.

103
1031
103

În scen tot timpul este probabil deformarea neprev zut a obiectelor. Pentru a înl tura aceasta,
se poate de folosit de compartimentul Display, care permite înghe area (Freeze) a obiectelor.
Dezghe area lor este posibil cu ajutorul butonului Unfreeze.

Vizibilitatea i invizibilitatea obiectelor


Temporar de ascuns obiectele (de f cut invizibile) se poate cu ajutorul compartimentului
Display, sau cu ajutorul meniului Tools/Display Floater.
Op iunea 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
vârfurile, muchiile, fe elor: la subnivel intern.
Pentru aceasta deschidem panelul de comand Modify, numim modificatorul i alegem butonul
Sub-Object, la stânga 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 anima ia, dat unei grupe întregi, dup degrupare dispare.

Sistemul de coordonate al obiectului


Alegerea unui sau altui sistem de coordonate se determin de rela ia de transformare a obiectului
în fereastra de proiec ii, în care se efectueaz aceast transformare.
View  în ferestrele cu proiec ii ortogonale se folose te sistemul de coordonate a ecranului, iar
în fereastra cu perspectiv  sistemul de coordonate univers.
Screen  sistemul de coordonate ecran. Care fereastr de proiec ie nu vom folosi axele
vor fi
identice: X  axa orizontal ; Y  axa vertical ; Z  adâncimea în direc ia pozitiv .
World  sistema de coordonate universal  comun pentru toat scena.
Parent  sistemul de coordonate p rinte. Dac obiectul nu este legat de nimic, atunci se
folose te sistemul de coordonate universal.
Local s sistemul de coordonate propriu fiec rui obiect.
Grid  se folose te sistema de coordonate plasei de aliniere activ (Grid).
Pick  se folose te sistemul de coordonate a altui obiect în scen .

Alegerea i transformarea centrului sistemului de coordonate


La selectarea grupei obiectelor, se poate de determinat pozi ia centrului de coordonate pentru ele:
comun pentru toate, sau local pentru fiecare. Fiecare obiect selectat din grup are centrul s u;
obiectele au un centru comun la mijloc; centrul coincide cu centrul sistemului de
coordonate universal.

Instalarea parametrilor i controlul culorii la alegerea butonului


Lua i seama la butoanele, la care în col ul dreapta de jos este o s geat mic de culoare neagr .
Aceast s geat vorbe te despre aceea, c dac de ap sat acest buton i inîndu-l pu in ap sat,
atunci apar butoane ad ug toare, subbutoane a aceluia i instrument, care permit efectuarea ac iunilor
similare (de exemplu, butonul alinierii  cu ajutorul acestui buton se poate efectua alinierea la
104
1041
103
centru, alinierea dup normale etc.).

105
1051
104

La crearea obiectelor i la schimbarea lor este necesar de regulat parametrii. Lua i seama
la butonul lung cu inscrip ia Parametrs. La stânga de aceast inscrip ie st semnul “+” 
aceasta înseamn , c fereastra cu parametri e minimizat . Dac vom tasta pe acest buton, fereastra
se va maximiza i va ap rea 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 to i parametrii, atunci în partea dreapt a ecranului apare o bar
neagr îngust  este bara derul rii. ranslând-o cu mouseul în sus i în jos se poate de ridicat
sau coborât panelul parametrilor.

Spineri i câmpurile de introducere


La darea sau modificarea parametrilor obiectului (razei, în l imii, lungimii etc.) se poate de
folosit spinerile (dou butona e la dreapta de câmpul de introducere cu s ge i în sus i în jos). S geata în
sus permite de m rit parametrul, iar s geata în jos  mic orarea. Schimbarea se petrece cu un
pas determinat (o unitate). Schimbarea parametrilor este posibil i cu ajutorul tastaturii (s ge ile în
dreapta
i în stânga). Pentru a ne transla la rapid la începutul rândului, tast m tasta Home, la sfâr itul
rândului
End. tergerea simbolului de dup cursor se efectueaz tastând tasta Delete, simbolul din fa a
cursorului  tasta Backspace. Selectarea unui bloc de text se poate cu ajutorul tastelor de mi care
a cursorului, concomitent este necesar ca tasta Shift s fie ap sat . Deasemenea se poate de
selectat un bloc de text cu ajutorul mouseului: pozi iona i cursorul mouseului în dreptul
începutului blocului, ap sa i butonul stâng a mouseului i trage i cursorul la sfâr itul blocului. Textul
selectat î i va schimba culoarea a a c va fi u or de deosebit.
Textul selectat poate fi copiat (Ctrl+C) i t iat (Ctrl+X) în buferul de schimb. Punerea textului
din buferul de schimb în câmpul de introducere se poate tastând Ctrl+V. Schimbarea rapid a textului în
câmpul de introducere se poate, inserând textul vechi i imediat introducând textul nou, în acest
caz textul vechi dispare. Pentru ca schimb rile s aib loc, tasta i tasta Enter.
În câmpul de introducere se poate de introdus atât variabile absolute, cât i variabile relative. De
exemplu, dac s-a introdus m rimea raza egal cu 50, iar introducând textul “r20” se schimb m rimea
în 70, iar textul “r-20”  în 30.

Controlul culorilor
Cu culoarea ro ie se coloreaz butonul conect rii regimului de anima ie la ap sarea lui. Cu
culoarea verde se coloreaz butoanele, destinate pentru transformarea i alegerea obiectelor de pe
panelul de instrumente la ap sarea lor (activizarea). Cu culoarea albastr se coloreaz butonul
cinematicii inverse la selectarea ei. Cu culoarea galben se coloreaz butoanele ac iunilor speciale (Sub-
Object) la nivel de sub-obiecte.

Alinierea obiectelor
În 3DS MAX exist o func ie 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 ap sarea butonului Align apare fereastra de dialog Align
Selection. Alinierea se efectueaz la alegerea op iunii din aceast fereastr .
Butonul Align Normals  alinierea dup normale. Normal se nume te vectorul,
perpendicular pe muchia obiectului. Pentru alinierea la început se noteaz normala (segmentul cu
direc ia necesar normalei) obiectului ce se aliniaz , iar apoi se arat normala obiectului, dup care se
face alinierea.
Butonul Place Highlight  alinierea direc iei sursei de lumin dup normala obiectului.
Butonul Align Camera  alinierea direc iei camerei dup normala obiectului.
Butonul Align to View aliniaz axele locale ale obiectului selectat sau a sub-obiectului cu axele
ferestrei de proiec ii curente.
106
1061
105

Obiectele ad ug toare

Grids  deosebesc plasa de baz (Home Grid) i plasa obiectelor (Grid Object) care ajut
urm rirea pozi iei obiectului în spa iu. Reglarea plasei de baza se poate de schimbat cu ajutorul ferestrei
de dialog Grid and Snap Settings. Plasa obiectelor se folose te ca un obiect ajut tor pentru alinierea i
pozi ionarea în spa iu 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, ap sând butonul drept al mouseului pe el i de ales din meniul ap rut punctul Activate
Grid Object (acela i 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 ap rea 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 m rimea 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 st t toare, total
independente de el. Lor li se poate ata a diferi i modificatori, materiale, transform ri  toate acestea nu
vor ac iona cu nimic asupra originalului, la fel, ca i modificarea originalului tot nu va ac iona
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 men ine leg tura: modificarea copiei
respectiv a originalului se transmite originalului respectiv copiei.
Copii de tipul Reference.
Copiile de acest tip posed o leg tur bidirec ional între modific rile originalului i
copiei. Toate modific rile, aplicate originalului, se transmit copiei. La copii este pu in mai
complicat: la copia de tip Reference în plasa modific rilor apar tr s turi ad ug toare asupra
modificatorilor comuni cu originalul.
Dac dorim s utiliz m modificatorul, care ac ioneaz concomitent asupra copiei i originalului,
în plasa modific rilor trebuie de ar tat la obiectul, care se g se te mai jos de tr s tur , apoi i se ata eaz
modificatorul.
Dac îns dorim s utiliz m modificatorul numai pentru copie, trebuie de ar tat la
modificator,
mai sus de tr s tura care le desparte, sau pe linie.

Obiecte standarde

Obiecte standarde
Primitive standarde
Primitive desf urate
Culoarea obiectelor
Metoda de creare a obiectelor de la tastatur
Coordonate i parametri

107
1071
106

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 ac ionat cu ajutorul modificatorilor.
La crearea obiectelor se folose te panelul Create, care con ine urm toarele categorii de obiecte:
Geometry (geometria).
Shapes (figuri liniare plane).
Light (surse de lumin ).
Cameras (camere).
Helpers (obiecte ad ug toare).
Space Warps (deforma ii spa iale, ca valurile, vântul)
Systems (sistemele obiectelor ajut toare).

Nec tând 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 (în l imea, lungimea, cantitatea de segmente

108
1081
106

etc.).
Keyboard Entry  la alegerea acestei regiuni parametrii obiectului se dau de la tastatur .
Generate Mapping Coord  în aceast regiune se ata eaz leg tura coordonatelor pentru
ata area 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)

Primitivele extinse  sunt primitive complexe tridimensionale (Capsule, OilTank, Spindle,


Hedra etc.).
În afar de primitivele geometrice pot fi create i urm toarele obiecte:
Obiecte Compound - acestea sunt obiecte combinate (Morphs, Boolean etc.).
Obiecte Loft - obiecte complexe, alc tuite din figuri plane, care sunt sec iuni i c i, dup
care
aceste sec iuni au fost “presate”.
Patch Grinds - acestea sunt suprafe e ad ug toare, care permit alinierea obiectelor relativ
unul
fa de altul.
Particle Szstems - sisteme unitare. Permit imitarea proceselor atmosferice, ca ploaia, ninsoarea
etc.

109
1091
107

NURBS Surfaces  este o suprafa analitic , care permite modelarea reliefelor tridimensionale
complicate.
Doors  permite modelarea u ilor, reglând 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 u or de g
sit
culoarea potrivit . Caracteristica lui de baz  palitra-patrat, pe care este ar tat tot spectrul de culori, cu
trecerea de alb, sus, i terminând cu negru total, jos, culoarea poate fi aleas , ap sând cu butonul stâng al
mouseului în locul care ne trebuie.
Hue (culoare, nuan )  ea poate fi schimbat , translând pointerul (s geata din stânga) în sus i
în jos. Dac transl m pointerul tocmai jos, primim culoarea neagr . Whiteness (cantitatea de
lumin alb )  un dreptunghi vertical în dreapta de p trat. Translând pointerul (s geata din dreapta) se
poate de schimbat satura ia culorii. Dac vom transla pointerul tocmai jos, vom primi culoarea alb .

RGB  model de culoare.


Red, Green, Blue: ro u, verde, albastru. Acest model de culoare se folose te în grafica
calculatorului, deoarece culorile pe ecranul displ iului se dau anume ca amestecul componentelor
de ro u, verde i albastru.
Cantitatea fiec rei componente se d printr-un num r întreg de la 0 la 255 (în partea
dreapt a
ferestrei de reglare a culorilor trei fâ ii de sus se refer la sistemul RGB). Dac plas m cursorul
în stânga pân la cap t, atunci nu se folose te nici o nuan a componentei alese, iar în câmpul
de întroducere din stânga fâ iii de rulare vom avea 0. Dac plas m cursorul la valoarea, egal cu
255, atunci se prime te componenta maxim .
HSV  model de culoare. Prezint modelul de culoare tradi ional. Instalarea valorilor, ca
i în
modelul RGB are loc cu mi carea cursorului de la 0 la 255, dar are alt sens.
Hue (culoare)  nuan . Plasarea cursorului în dreapta ne va da un ro u pur. Dac vom
transla cursorul în dreapta spectrului de culori (ro u, galben, verde, albastru, albastru deschis, roz),
ne vom întoarce tot la culoarea ro ie.
Saturation (satura ia)  instaleaz puterea culorii. Satura ia 0  minim , satura ia 255 
maxim .
Value (lumin zitate)  instaleaz luminozitatea culorii. Valoarea egal cu 147, va da
culoarea
determinat numai de nuan i satura ie.

Coordonate i parametri
Pozi ia obiectului o determin coordonatele X, Y, Z. La valorile (0, 0, 0) obiectul se va g
si direct în centrul sistemului universal de coordonate al scenei. La crearea obiectului este necesar
de urm rit, în care fereastr de proiec ie este mai convenabil de creat obiectul, de aceasta va
depinde pozi ia lui (obiectul este pozi ionat vertical sau orizontal).
107
Not : dac se consider c obiectul va fi modificat, atunci este necesar de m rit num rul
de
segmente.
108

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  num rul de p r i (cât mai multe p r i, cu atât mai neted va fi obiectul).
Smooth (netezire)  aceast op iune poate fi conectat i deconectat (de instalarea acestei
op iuni va depinde de calitatea desen rii obiectului).
Cap Segment, Height Segment  cantitatea de segmente dup baz i în l ime corespunz tor.
Momentele de baz , care este necesar de inut minte la crearea primitivelor  sunt: Determina i-
v , cum trebuie s fie pozi ionat obiectul în scen  orizontal sau vertical, i în dependen de aceasta
începe i s crea i obiectul în fereastra de proiec ie determinat .
Dac se consider , c obiectul va fi modificat, atunci m ri i cantitatea de segmente.Atribui
i
leg tura coordonat la atribuirea obiectului a unui material complex (vezi Materiale).
108

Modificatori
Standar i
Additional
Edit
Surface
Spline Edits
Utilite
Exerci ii, Utilite

Modificatori

Obiectele pozi ionate în scen au parametrii s i  parametrii, da i la creare (vezi parametrii


de creare). Se poate dup necesitate de schimbat ace ti parametrii sau de atribuit obiectelor selectate
diferi i modificatori de pe panelul modific rilor Modify.
Modificatori  sunt instrumente de baz pentru modelarea obiectelor, schimbarea formei
ini iale. Nec tând la aceasta modificatorii nu ac ioneaz asupra parametrilor ini iali.
Unuia i aceluia i obiect i se pot atribui mai mul i modificatori. Modificatorul r mâne activ pân
nu se atribuie altul, care se suprapune de asupra precedentului. inând cont de succesiunea
atribuirilor este posibil în plasa modific rilor. Lista modific rilor permite din modificatorii atribui i de-l
ales pe cel trebuincios i de-i schimbat parametrii.

Lista modific rilor este organizat în felul urm tor:


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 f r tergerea lui. Conectarea acestui buton permite de v zut obiectul f r
interac iunea modificatorului.
Active/Inactive in Viewport (modificatorul din fereastra de proiec ie activ/inactiv):
întrerupe
influen a modificatorului numai în ferestrele de proiec ie.
109

Show end result on/off toggle (ar tarea rezultatului final  conectat/deconectat): arat
obiectul selectat cu rezultatul aplic rii tuturor modificatorilor, indiferent de pozi ia curent în
plasa modifica iilor. Când acest buton este deconectat, atunci obiectul apare tot a a, cum ar ta
pân la alegerea altui obiect, la care de acum s-a aplicat un modificator, pozi ionat în stiv .
Make Unique (a face unic). În caz, când 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 leg tur . Leg tura 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 con
ine
diferite mijloace de dirijare, pentru schimbarea numelor modificatorilor, copierea lor, inserarea lor, etc.
Butonul Collapse All/To (distrugere): distruge tot sau numai modificatorii selecta i, atribui
i obiectului. Rezultatul ac iunii lor r mân, îns s ne întoarcem i s schimb m parametrii
acestor modificatori nu vom mai putea. În a a mod, obiectul se transform în Editable Mesh.
Aceasta se face pentru:
Simplificarea geometriei scenei.
Pentru mic orarea m rimii fi ierului.
Butonul SubObject (sub-obiect)  trecerea la nivel intern al obiectului, pentru ac ionarea
asupra componentelor “sub-obiectelor”: muchii, vârfuri, segmente etc., în dependen de obiect i
modifica ii. De exemplu, dac se aplic modificatorul Edit Mesh asupra primitivei geometrice,
atunci lista sub-obiectelor va fi alc tuit din vârfuri  Vertex, p r i a suprafe elor  Face, i muchii 
Edge.
Pentru a ne închipui, cum ac ioneaz modificatorul, trebuie de-l atribuit i de-i schimbat
parametrii. Rezultatele vor fi v zute în ferestrele de proiec ii.
Pentru alegerea modificatorului, care lipse te printre cei propu i ini ial în regiunea
Modifiers,
ap sa i 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 propu i ini ial s fie înc al i modificatori
care-i folosi i.

Bend
Acest modificator permite îndoirea obiectului.
În regiunea regl rii îndoirii obiectului  Bend se poate de schimbat unghiul de înclinare Angle i
direc iile lor Direction. În regiunea Bend Axis se alege axa înclin rii. În regiunea regl rii limit
rii înclin rii 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 regl rii Twis t se poate de schimbat unghiul de sucire Angle, i devia ia lui Bias.
În regiune Twist Axis se alege axa de sucire.
În regiunea regl rii 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 unit ile de ac iune Amount, de reglat curba
de compresare Curve. În regiunea Taper Axis se regleaz ac iunea modificatorului dup axe:
Primary  ac iune primar , Effect  efectul de ac iune, Summitry  ac iune simetric . În
109
regiunea limitei de compresare Limits se d limita Limits Effect, i valoarea ei de sus Upper Limit i
de jos Lower Limit.
110

Noise
Acest modificator se utilizeaz , când trebuie de deformat suprafa a obiectului, de exemplu,
la
creare mun ilor. El este asem n tor modificatorului Wave, dar la utilizarea lui, este posibil deformarea
“aleatoare” a obiectului.
În regiunea de reglare Noise se d faza ini ial  Seed, scara de ac iune  Scale, functia aleatoare
a parametrilor  Fractal, functia brutal/imediat  Roughness/Iteratioms. În regiunea Strength se
d puterea de ac iune pe axe. În regiunea Animation se regleaz animarea modificatorului.
Op iunea Animate Noise  red animarea modificatorului dup parametrii da i, Frequency

frecven a: cu cât e mai mare aceast valoare, cu atât mai repede se schimb stadiul Noise, Phase  faza.

Extrude
Acest modificator ne d în l imea în form plan închis .
Amount  grosimea, Segment  cantitatea de segmente în în l ime. În regiunea Capping se dau
tor ele obiectului, Cap Start  planele de sus, Cap End  planele de jos, op iunea Morph  este activ ,
dac se consider , c obiectul va participa în morfing (vezi Morph), Grid  grila.
Generate Mapping Coord  destina ia leg turii coordonate a obiectului pentru ata area
unui
material complex.
Generate Material Ids  leg tura de ID (num rul) materialului, p r ii de sus i de jos
(Cap Start, Cap End) a obiectului i se atribuie ID1 i ID2, iar p r ii 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 tor ele obiectului, Cap Start  planul de sus, Cap End
 planul de jos, Morph  activa i-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 ac ioneaz pe o por iune a obiectului, permi ând crearea bulelor. În
regiunea
Parameters se regleaz scara de ac iune Falloff, op iunea Back Ignore Facing întrerupe ac iunea
pe partea verso, în regiunea regl rii curbei Curve se g se te regiunea de ac iune a modificatorului: Pinch
 m rirea, Bubble  m rirea regiunii de ac iune.

Cap Holes
Modificatorul este destinat pentru prelucrarea g urilor, care apar la suprafa a 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 în l imilor, segmentelor, muchiilor a
întregii
geometrii a obiectului. Acesta se deosebe te de simpla eliminare, c eliminarea mai târziu poate
fi
110
1101
110
schimbat , eliminând modificatorul Delete Mesh.

Displace (presarea)
În regiunea Displacement se regleaz gradul de ac iune.

111
1111
111

Strength, sl birea ac iunii Decay, op iunea Luminance Center instaleaz ac iunea


modificatorului relativ de centru Center. În regiunea reglarea imaginii i h r ii Image Bitmap se alege
desenul. Dac trebuie de eliminat desenul precedent  Remove Bitmap.
Map  harta din Redactorul de materiale: Blur  permite cu ajutorul sp l rii de rotunjit
rezultatul.
În regiunea Map trebuie de ales i reglat tipul h r ii dup acela i principiu ca i în modificatorul
UVW Map.

FFD 2x2x2, 3x3x3, 4x4x4 (gratie)

La utilizarea acestui modificator obiectul se închide într-o gratie, cu ajutorul c reia,


translând
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 ar tarea gratiei pe ecran  Lattice.
În regiunea Source Volume (volumul ini ial)  reprezint ac iunea ini ial a modificatorului f r
schimbarea gratiei.
În regiunea Deform se poate de modificat suprafa a, Only in Volume  numai în volum,
All Vertices  toate vârfurile.

FFD (cyl) 4x6x4 (gratie cilindric )

La utilizarea acestui modificator se folosesc acelea i op iuni cu scopul de introducere a


schimb rilor (vezi mai sus).
În regiunea Dimensions se introduc m rimile i cantitatea de puncte  Set Number of Points.
În regiunea Display se poate de refuzat de gratia Lattice în ferestrele proiec iilor i de
reprezentat ac iunile ini iale asupra volumului ini ial f r modific ri  Source Volume.
În regiunea Deform se poate de modificat suprafa a obiectului numai prin schimbarea ei  Only
in Volume, sau de modificat toate vârfurile All Vertices. Tension  desc rcare, schimbarea ac
iunii gratiei asupra obiectului, Continuity  continuu, limiteaz ac iunea Tension.
În regiunea Selection se determin regiunea regl rii alegerii punctelor pe axe  All X, All Y, All
Z (toate punctele pe X, Y i Z).

FFD (box) 4x4x4 (gratie paralelepipedului)

Face Extrude
Preseaz o parte a suprafe ei obiectului de-a lungul normalei, care este unit cu restul suprafe ei
i formeaz un obiect unic. Pentru func ionarea acestui modificator este necesar la început de ac
ionat asupra obiectului cu modificatorul Edit Mesh, iar apoi la nivel Sub-Object de ales Face.
Selectând o por iune de suprafa de ales modificatorul Face Extrude.
Amount  schimbarea grosimii, Scale  schimbarea sc rii, op iunea Extrude From Center
permite efectuarea pres rii de la centru.

Lattice (gratie)

112
1121
112

Modificatorul este destinat pentru crearea gratiilor mai complexe, trecând obiectul în
regimul Wire. Op iunea Animate Noise – red animarea modificatorului dup parametrii reda i,
Frequency – frecven a; cu cât este mai mare valoarea acesteia, cu atât mai repede se schimb stadia
Noise, Phase – faza.

Extrude
Acest modificator red în l imea formelor plane închise.
Amount – grosimea, Segment – num rul de segmente pe în l ime.
În câmpul Capping se predau planele pe tor ele obiectului, Cap Start – planul superior,
Cap End – planul inferior, op iunea Morph – este activ , dac se presupune c obiectul va
participa la forfing (vezi Morph), Grid – plasa.
Generate Mapping Coord – generarea leg turii de coordonate a obiectului pentru
atribuirea
unui material complicat.
Generate Material Ids – leg tura la ID (num rul) a materialului, concomitent se atribuie p r ii
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 cre m obiecte prin metoda rotirii formelor plane.
Degrees – unghiul de rota ie, Weld Core – unire, Flip Normals – oglindirea normalei
obiectului, Segments – num rul de segmenete.
În regiunea Capping se regleaz planele pe tor ele obiectului, Cap Start – planul superior, Cap
End – planul inferior, Morph – îl activ m 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 ac ioneaz asupra unei regiuni a obiectului, permi ând crearea bulelor. În
regiunea Parameters se regleaz scara de interac iune asupra fe ei opuse, în regiunea regl rii
curbei Curve se regleaz regiunea ac ion rii modificato-rului: Pinch – ridicare, Bubble – m rirea
regiunii de afec iune.

Cap Holes
Modificatorul este destinat prelucr rii g urilor, care apar pe suprafa a obiectului la tergerea
segmentelor, creându-se noi segmente, care unesc marginile.
Smooth New Faces – netezirea cu muchii noi, Smooth With Old Faces – netezirea cu fe
e
vechi, All New Edeges Visible – afi area tuturor muchiilor noi.

Delete Mesh
Acest modificator este menit pentru tergerea vârfurilor, segmentelor, fe elor sau a întregii
geometrii a obiectului în întregime. Se deosebe te acesta de cel obi nuit prin faptul c tergerea poate fi
mai apoi eliminat , tergând modificatorul Delete Mesh.

Displace (for are)


În câmpul Displaecment se regleaz gradul de ac iune
Strength, sl birea ac iunii Decay, op iunea Luminance Center activeaz ac iunea
modificatorului relativ de centru Center. În regiunea regl rii imaginii texturii Image Bitmap se
alege desenul. Dac trebuie putem terge desenul curent – Remove Bitmap.
113
1131
113

Map – textura din editorul de Materiale: Blur -- permite sp larea rezultatului pentru netezire.
În regiunea Map se poate alege i regla tipul texturii dup acela i principiu, ca i
la
modificatorul UVW Map.

FDD 2x2x2, 3x3x3, 4x4x4 (rama)

La utilizarea acestui modificator obiectul se include într-o colivie, cu ajutorul c reia mi


când
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 afi area ramei pe ecran – Lattice.
Op iunea Source Volume (volumul ini ial) – red ac iunea ini ial a modificatorului f r
schimbarea ramei.
În regiunea Deform se pot modifica suprafe e, Only în Volume – numai în volum, All Verticles
– toate vârfurile.

FDD (cyl) 4x6x4 (ram cilindric )

La aplicarea acestui modificator se folosesc acelea i op iuni cu scopul introducerii schimb rilor
(vezi mai sus)
În regiunea Dimensions se introduc m rimile i num rul de puncte – Set Number of Points.
În regiunea Display se poate de refuzat la vizualizarea ramei Lattice pe ecranele cu vederi
i
redarea interac iunii ini iale la volumul corpului f r schimb ri asupra ei – Source Volume.
În regiunea Deform se poate schimba suprafa a numai la modificarea ei – Only in Volume, sau
modificarea tuturor vârfurilor All Vertices.
Tension – elasticitatea, schimbarea ac iunii ramei asupra obiectului.
Continuity – continuitatea, limiteaz interac iunea Tension.
În regiunea Selection se determin regiunea de reglare a select rii punctelor dup axe –
All X, All Y, All Z (toate punctele dup X, Y sau Z).

FFD(box) 4x4x4 (ram bloc)

Face Extrude
For eaz o por iune a fe ei obiectului dea lungul normalei, care este unit cu suprafa a r mas i
compune un obiect unic. pentru ac iunile acestui modificator este necesar ca de la început s ac
ion m asupra obiectului cu modificatorul Edit Mesh, apoi la nivel de Sub-Object de ales Face.
Selectând o parte din suprafa aplic m modificatorul Face Extrude.
Amount – schimbarea grosimii, Scale – scalarea , op iunea Extrude From Center ne
permite
de a for a de la cenrtu.

Lattice (rama)
Modificatorul este menit pentru crearea armelor mai complicate, care le putem crea trasând
obiectul în regim Wire. Fe ele vor deveni muchii iar vârfurile leg turi ale re elei (coliviei).
114
1141
113
În regiunea Geomerty se pot regla parametrii geometrici ai re elei.
Strus Only (numai muchii), Juctions Only (numai nodurle), Both ( i vârfuri i muchii).

115
1151
114

În regiunea regl rii muchiilor – Struts se pot schimba Radius – Raza, mul imea
segmenetlor – Segments, num rul fe elor – Sides, Material ID – num rul materialului din
componen a Multi/Sub- Object, Visible Edges – arat fe ele vizibile, All Edges – arat toate fe
ele, Smooth – regleaz netezirea.
În regiunea regl rii nodurilor – Junctions – se poate de le redat diferite forme : Tetra –
tetraedru, Octa – octaedru, Icosa – icosaedru.
Se poate schimba raza – Radius, mul imea segmentelor – Segments, de a alege num rul
materialului din componen a Multi/Sub-Object – Material ID i activarea netezirii – Smooth.
În regiunea regl rii coordonatei de leg tur 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 ac iunea 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 ac iunii.
În regiunea regl rii suprafe ei Surface Parameters se pot regla netezirile rezultatului
general – Smooth Result, asu în parte – Separate By: pentru materialul Material, pentru grupa
– Smoothing Groups.
În regiunea renov rii – 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 regl rii 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

suprafe e.
În regiunea Selection Level se alege Sub-Object. Surface -- alegerea suprafe ei, Surface CV –
alegerea unui vârf de control de pe dreapta orizontal , vertical din zona Selection.

Optimize
Simplific obiectul prin mic orarea num rului de vârfuri i muchii. De exemplu, dup
interac iunea 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 regl rii simplific rii formei Optimize se regleaz calitatea suprafe elor – Face
Tresh, a muchiilor – Edge Tresh, înclina ia – Bias. Maxim prin p r i – Max Edge Len, Auto Edge
– automat la muchii.
În regiunea renovare Update rezultatul renov rii manuale – Manual Update.
În regiunea Last Optimized Status este reflectat starea obiectului curent.
În regiunea de salvare a op iunilor – Preserve se determin grani ele materialului obiectului

Material Boundaries i rotunjirea grni elor – Smooth Boundaries.
116
1161
114

Preserve

117
1171
115

Acest modificator ne permite salvarea lungimii muchiei, valoarea unghiurilor, suprafe ele i
volumul deform rilor obiectului, bazându-ne pe copia ne schimbabil a obiectului.
În regiunea Original se poate specifica originalul – Pick Original.
De ar tat num rul de itera ii – Iterations .
În regiunile pentru p strarea volumului – Presevation Weights se pot alege lungimea muchiei –
Edge Lengths, ughiul de înclina ie a suprafe ei – Face Angles, puterea – Volume.
În regiunea de alegere – Selection se alege obiectul aplic rii Apply to While Mesh – atribuirea
la Mesh, numai la vârfuri anume – Selected Verts. Only dac îns putem alege toate obiectele, care nu
nimeresc în regiunea de selectare – Invert selection.

Relax – Rotunge te col urile prin sl birea lor.


Relax Value – valoarea de rotungire.
Ripple (valuri concentrice);
Crearea valurilor circulare pe suprafa a obiectului.
În regiunea Ripple se descriu amplitudinile valurilor Amplitude1, Amplitude2, lungimea
de
und a valurilor Wave Length, faza Phase i sl birea ei la eliminarea centrului – Decay.

Wave (unde liniare) – permite crearea undelor(valuri) liniare la suprafa a obiectelor.


Skew (înclina ia), în câmpul pentru valoarea înclina iei se introduce m rimea dorit , i anume în
câmpul Amount (înclina ia), direc ia în care ele se realizeaz – Direction i axa dup care se
îndepline te ac iunea – Skew Axis. În regiunea regl rii limitelor valorilor maximale – Upper
Limit i minimale – Lower Limit.

Tessellaete – acest modificator permite m rirea num rului 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 fe elor, Tension – concentra ia,
Iterations – itera iile.

Mesh select
Selectarea regiunilor obiectului la nivel de Sub-Object pentru modificarea local a altor
modificatori. Selectarea se efectueaz dup acela i principiu, ca i în Edit Mesh. Selectând o
regiune, utilizatorul, l sând regimul Sub-Object, atribuie urm torul modificator, menit pentru
afectarea acestei regiuni.

Bevel (înclinare)
Acest modificator se folose te la obiecte plane – spline (vezi Splines), redându-le volum,
analogic Extrude, i în acela i timp permi ând aplicarea înclina iilor la muchiile obiectului ob inut.
În regiunea Capping se poate refuza la afi area bazei obiectului din fa (Start), sau de la spate

118
1181
115

(End).
În regiunea Cap Type se poate alege unul din tipurile de creare a suprafe ei obiectului modificat:
Morph: creeaz suprafe e, necesare morf rii (vezi Morf).
Greed (plas ): creeaz suprafa a în form de gratii (plas ).
În regiunea Surface se regleaz parametrii pentru dirijarea deform rii fe elor, rotungirii i set rii
punctului de leg tur .
În domeniul Intersections se poate de prev zut ca s nu apar unghiuri ascu ite la intersec
ia
muchiilor vecine.
La sec iunea Bevel Values se aleg nuvelele (Level 1, Level 2, Level 3) pentru
determinarea
în l imii sloiului ales – Height i grosimea conturului sloiului – Outline.

Bevel Profile

119
1191
116

Acest modificator este sintezat din modificatorul Bevel. El permite sintezarea din dou forme un
obiect unic, astfel încât 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 lan ul de modific ri î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 deform rii spa iale
FFD (vezi Space Warp).
La punctele selectate pentru deforma ia FFD se pot aplica astfel de modificatori ca Bend, Taper
etc., modificând astfel, p r i ale obiectului, la care e aplicat deforma ia.
Î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)
urm torilor modificatori.
În calitate de sub-obiecte pot fi vârfurile, segmentele, splinele.
Volume Select
Acest modificator realizeaz alegerea vârfului, p r i ale planelor. Dup aceasta se pot reda
unu
sau mai mul i modificatori selec iei i apoi anima ia parametrilor.
Se selecteaz acea parte, care nimere te în Gizmo, ducând 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 pozi ia obiectului Gizmo. Obiectul
Gizmo
r spunde de ac iunile modificatorilor pe acest obiect. Îl putem transforma cu ajutorul butoanelor
Select
and Move, Select and Rotate, Select and Uniform Scale.

UVW Xform
Acest modificator ne permite de a controla aplicarea h r ii 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
116
Acest modificator ne permite de a redacta suprafa a obiectului, variind pozi ia vârfurilor i
a
segmentelor, sau în genere tergerea acestora, alipirea la obiect a altor forma iuni de acest tip. Cu
ajutorul acestui modificator se pot atribui p r ilor obiectului diferite materiale din componen a
Multi/Sub-Object.
117

Vartex – vârfuri;
Face – p r i ale suprafe ei;
Edge – muchii;

Edit Pach
Modificatorul acesta ne permite de a redacta suprafe ele i diferite p r i ale suprafe elor la nivel
de Sub-Object de structur interioar , adic muchii, vârfuri etc. Cu ajutorul acestui modificator se poate
modela lin suprafe ele îndoite.

La aplicarea modificatorului programul transform suprafa a 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 suprafa


a. Primul pas al model rii este deformarea.
Suprafa a – suprafa a obiectului, forma c ruia se conduce de plas .
Pentru obiectele de tip Box plasa i suprafa a obiectului vizual practic c nici nu sunt repartizate
pe planurile vederilor.
Pentru obiecte de tip Sphere plasa difer pe vederi de suprafa .

Redactarea Obiectului (desp r itura Edit Object)


Domeniul Display – aici se poate de f cut plasa vizibil sau invizibil ;
Domeniul Topology – ne permite m rirea sau mic orarea num rului de unit ilor de plas , care
compun suprafa a obiectului.
Butonul Attach ne permite s ata m regiunea aleas de suprafa la selectarea curent .
Op iunea Reorient reorienteaz patch-obiectul în a a mod, ca sistemul de coordonate
propriu
acestuia s se alinieze la sistemul de coordonate a altui pach-obiect.

Redactarea c ilor

La redactarea c ilor este necesar ca în lista Sub-Object s fie ales Patch.


În domeniul Topology se pot deta a (Detach) una sau mai multe c i (drumuri) de la
obiectul selectat. Pe ele le putem pur i simplu desface, dar se poate i copia cu ajutorul op iunii Copy,
pentru al transforma într-un drum independent.
Op iunea Reorient. Drumul inserat permite de a copia pozi ia i orientarea obiectului,
astfel încât noul obiect se va mi ca astfel c sistemul de coordonate local al obiectului se va uni la plasa
curent activ .
Butonul Delete permite tergerea drumului ales sau câteva drumuri alese. Butonul
Subdevide (înmul ire)- permite majorarea num rului drumurilor în regiunea selectat sau pe toat
suprafa a obiectului, în cazul dac este activ op iunea Portable.
Pe panoul Disply se poate de ales, ar ta sau a ascunde plasele i suprafe ele.

Redactarea p r ilor
La redactarea fe elor 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 num rul de p r i segmente ale suprafe ei. Astfel op iunea Propagate la inactivarea ei creeaz
cr p turi în muchiile dintre fe ele selectate.
118

Redactarea vârfurilor
La redactarea vârfurilor este necesar ca în lista Sub-Object s fie prezent Vartex (vârfuri).
Op iunea Lock Handles (a înt ri) une te vectorii vârfurilor astfel încât, când se mi c una
din
ele, atunci în urma ei se vor mi ca toate celelalte vârfuri alese.
Butonul Weld ne permite de a uni vârfurile selectate între dou drumuri alese în intervalul
anumit (Weld Threshold), alegând vârfurile 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 vârfurile. Aici trebuie de ac ionat atent, deoarece
tergerea oric rui vârf duce la eliminarea drumurilor, care împart acest punct de control. De
exemplu,
dac tergem un vârf la sfer , va r mâne o semi-sfer .
În cazul dac e activat op iunea Vertices în regiunea Filter, atunci se pot alege i
transla vârfuri. Dac este activ op iunea Vectors, atunci se pot alege i transla vectori. În cazul,
când nu e activat nici o op iune, atunci nu se pot redacta nici vârfuri i nici vectori.
Exist dou tipuri de vârfuri, care se pot schimba cu ajutorul unui click al butonului drept
al
mouseului. În meniul contextual ap rut alegem tipul de vârfuri necesar.
Tipul Coplanar. La alegerea acestui tip vârful cap t ni te mânere, cu ajutorul c rora se
pot ob ine treceri rotungite între drumuri. Mânerul translat a vectorului ca i cum îi impune pe ceilal i s
se acomodeze la noua suprafa .
Tipul Corner. La alegerea acestui tip, vectorii devin unghiulari i permit cre rii vârfurilor
ascu ite pe suprafa a obiectelor.

Camera Map, *Camera Map (WSM)


Acest modificator ne permite întindem harta pe obiect, ca i când 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 , când ar ta i la o camer . Dac obiectul se mi c relativ de
camer , orientarea hartei la camer r mâne aceea i (a a cum pe acel cadru, când a i ar tat la
camer ). Dar modificatorul spa ial – *Camera Map (WSM) – reînnoie te orientarea camerei la
fiecare translare a obiectului.

Map Scaler
Acest modificator sus ine scara obiectului independent de scara a îns i obiectului. Scale – scara;
Warp Texture – suprapunere echidistan at a h r ii, Up Direction – regiunea de alegere a direc
iei, World Z Axis – relativ de sistemul de coordonate mondial (axa Z), Local Z Axis – relativ de axa
local a obiectului (vezi Sist koord)

UVW Map
Cu ajutorul acestui modificator se poate de reglat mai precis leg tura de coordonate a obiectului.
În regiunea Mapping se alege metoda de proiectare a h r ii:
Planar – plan; Cylindrical – cilindric ; Spherical – sferic; Shrink Warp – proiectarea
relativ
de suprafa , Box – paralelipiped, Face – fa .
Length – lungimea h r ii, Width – l imea, Height – în l imea.
U Tile, V Tile, W Tile – num rul de repet ri 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.
118
Bitmap Fit – s se ia raportul dintre laturile Gizmo a oric rei h r i salvate pe disc.
119

Normal Align – alinierea pe normal . Trebuie s ar t m segmentul, direc ia normalei (fe


ei)
care se va lua pentru aliniere.
View Align – harta se aliniaz paralel direc iei privirii la ea de pe ecranul activ.
Region Fit – pentru a determina m rimea 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 componen a Multi/Sub-Object la tot
obiectul.

Normal (normala obiectelor)


Acest modificator ne permite de a schimba direc ia normalei la obiect;
Unify Normals – unirea normalelor, Flip Normals – oglindirea normalei.

Smooth (netezirea)
Permite de a netezii suprafa a obiectului. Op iunea Auto Smooth neteze te suprafa a automat.
Opera ia Prevent Indirect nu permite netezirea indirect . Valoarea Threshold determin
intervalul de netezire.

Unwarp UVW
Posibilit i în plus la redactarea coordonatei de leg tur UVW (redactarea formei suprapunerii).
Butonul Edit deschide fereastra de dialog redactat cu coordonata leg rii Edit UVWs, butonul
Reset UVWs anuleaz parametrii regl rii.

STL – Check
Înainte de a exporta fi ierul în format *.stl, care se folose te în stereolitografie, este necesar de a-
l testa la gre eli. Modificatorul STL-Check controleaz dace se îndeplinesc cerin ele, care ar trebui s le
aib un fi ier de acest format. Cerin a de baz – suprafe ele, folosite în scen trebuie s fie
închise. Pentru startul test rii trebuie de activat op iunea Check. Dup testare ma ina alege
elementele care nu corespund cerin elor. În regiunea Status se afi eaz mul imea gre elilor. Pentru
comoditate se poate de sortat gre elile pe tipuri, reglând regiunile Errors i Selections.

Splainuri

Teorie
Exerci ii
Instrumente NURBS
Exerci ii pe NURBS – plane

Formele bidimensionale în programe se folosesc pentru crearea obiectelor plane, obiecte-


loft,
obiecte de rota ie, în calitate de cale la utilizarea controlerelor anima ionale. Exist dou tipuri de Spline
i NURBS Curves.
Tipurile de figuri Slines
Line (Linia). Pentru a crea o linie, ap s m pe butonul Line, facem un click pe oricare
vedere, apoi ducem cursorul dup cum avem nevoie, ap sând butonul stâng de fiecare dat când avem
119
nevoie de un unghi (puncte de reper) la fiecare îndoire. Terminând linia, ap s m butonul drept.
Parametrii formei:
120

General (generale): se redau parametrii formei;


Rendering: se redau parametrii de calcul;
Renderable (calculabile): dac întrerup torul este activ, atunci figura va fi vizibil la calculare.
Thickness (grosimea): reglarea grosimii liniei reprezentate. Generate Mapping Coords: redarea
întregului obiect coordonata de leg tur pentru aderarea materialelor.
Creation Method (metoda creerii): alegerea metodei de creare a obiectului.
Initial Type (tipul ini ial): Corner (drept), Smooth (neted);
Drag Type – se aleg tipurile de leg tur a vârfurilor 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 câtorva) Create Line (crearea liniei) –
pe
spline se creeaz o linie ad uf toare.

Redactarea liniilor:
Sub-Object/Varex
Named Selections (denumirile vârfurilor selectate): copierea (Copy) i inserarea (Paste) a
denumirilor, date câtorva vârfuri. Dac avem mai multe vârfuri, dar lucr m cu câteva, poate s
apar necesitatea de a insera rapid vârfurile necesare. Selectându-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 ac iunile, care se pot aplica vârfurilor. Connect – legarea, Break – deconectarea,
Refine – ad ugarea, Insert – inserarea, Make First – transformarea unghiului în primul rând, Weld – a
grupa, Weld Treshhold – valoarea de prag a împreun rii, Delete – tergerea.
Sub-Object/Segment
Named Selections (segmentele alese denumite): copierea (Copy), Paste, Break – deconectarea,
Refine – ad ugarea, Detach – decuparea segmentului selectat din Spline, Same Shape – tot a a fel
de segment, Copy – copia lui, Divide – divizarea: segmentul ales se divizeaz în sub-segmente,
cantitatea c rora se precizeaz la Divizions. Insert – inserarea, Delete – tergerea.

Sub-Object/Spline
Close – a închide. Outline – se red conturul slinei pentru grosimea ar tat în Outline
Width.
Mirror – reflec ia. Copy – se creeaz copii ale splinelor la oglindirea Detach – a deta a, Copy – copie,
Reverse – inversat, Insert – a insera, Delete – a terge.
Donut – inel. Ap sând butonul stâng al mouse-ului, i inând-o ap sat , red m prima raz .
Tot
a a se red i a doua raz .
Parametrii formei:
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 circumferin e);
Radius 2(raza circumferin ei a doua);

Circle (circumferin ): ap sând butonul stâng al mouse-ului i inându-l ap sat red m raza
cercului.
Parametrii formei:
General (vezi Line);
120
1201
120
Creation Method;

121
1211
121

Keybord Entry (vezi Line);


Radius – raza circumferin ei;

Arc – curb . Ap s m butonul stâng i analogic îi red m curbura.


Parametrii formei:
General (vezi Line);
Ceration Mode – modul cre rii;
End-End-Middle – de la punctele de la m rgina e 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, închizând astfel figura. Reverse (întoarcerea): schimb direc ia curbei cu cea opus .

Helix – spiral . De la început ap sând butonul stâng al mouse-ului red m raza spiraleis i
apoi regl m în l imea i o fix m, iar i for ând butonul stâng al mouse-ului. Apoi red m raza a
doua – sub ierea sau îngro area spiralei i analogic în l imii o fix m.

Parametrii formei
General (vezi Line);
Ceration Mode – metoda cre rii;
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 – în l imea, Turns – mul imea
de
înf ur ri a spiralei, Bias – deplasarea înf ur rilor la unul sau alt cap t a spiralei.

Ngon – poligon. Se creeaz cu o ap sare a butonului stâng a mouse-ului în timpul red rii 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 –
num rul de laturi, Corner Radius – raza rotunjirii unghiurilor, Circular – rotunje te
laturile
poligonului pân la circumferin .

Rectangle – dreptunghi. Se reproduce ap sând pe butonul stâng al mouse-ului în oricare


dintre
col urile dreptunghiului, dup aceasta deplas m cursorul la pozi ia col ului 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 – l imea, Corner Radius – raza de rotunjire a unghiurilor.

Ellipse – elips . For a i butonul stâng al mouse-ului i tragem p n la coordonatele alese.


Când vom elibera butonul se av crea o elips , o p trime a c rei numai bine încape în
dreptunghiul creat de cursor.
122
1221
121
Parametrii formei:

123
1231
122

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 – l imea;

Star – stea. Se creaz de la centru for ând butonul stâng al mouse-ului deplasând pân când se va
ob ine prima raz dorit . Apoi redâm a doua raz , i o fix m cu un click.
Parametrii formei: General
(vezi Line); Keyboard Entry
(vezi Line); Parametrii:
Radius 1 – raza întâi, Radius 2 – raza a doua, Points – num rul de puncte vârfuri ale
stelei,
Distortion – deformarea formei pe contul rotirii unei raze relativ de cealalt . Fillet Radius 1 i
Fillet Raduis 2 – rotunjirea vârfurilor primei a a doua raz .

Text – textul se introduce în fereastra Text, pozi ia lui se red cu un click al butonului stâng
al
mouse-ului în orice punct al ecranului vedere.
Parametrii formei:
General (vezi Line);
Parameters: – se aleg stilul, înclina ia, reprezentarea i alinierea textului.
Size – m rimea textului curent, Kerning – distan a dintre literele textului.
Section – sec iune. Pentru a cerea o sec iune, ap s m butonul stâng într-un col al figurei,
i
inând-o ap sat deplas m cursorul mouse-ului în col ul opus al figurii.
Parametrii formei:
General (vezi Line);
Section Parameters:
Create Shape – for area butonului creaz o form de sec ionare la intersec ia sec iunii cu figura
tri-dimensional .
Update – a renova;
When Selection Moves – la translarea sec iunii;
When Section Seleceted – la alegerea sec iunii;
Manually – manual;
Update Section – renovarea sec iunii;
Section Extents – m rimea sec iunii;
Infinite – infinite, Section Boundary – mic orarea m rimii sec iunii, Off – deconecat , Section
Size – m rimea sec iuii.
Length – lungimea i Width – l imea.

Panoul de instrumente NURBS

Butoanele panoului de instrumente NURBS se utilizeaz pentru crearea suprafe elor 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 intersec ie a dou curbe;
Create surf point – crearea unui punct pe suprafa ;
124
1241
123

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 propor ionale 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 suprafe e CV;
Create point surface – crearea unei suprafe e de puncte.
Create transform surface – crearea unei copii propor ionale a unei suprafe e;
Create blend surface – crearea unei suprafe e de leg tur ;
Create offset surface – crearea unei copii a suprafe ei;
Create mirror surface – crearea unei copii oglindite a unei suprafe e;
Create extrude surface – crearea unei suprafe e prin presare;
Create lathe surface – crearea suprafe elor de rota ie;
Create ruled surface – crearea suprafe elor din curbe;
Create Uloft surface – crearea unei suprafe e loft;
Create cap surface – crearea unei suprafe e dintr-o curb circular .

Obiecte loft

Obiecte loft
Exerci ii
Deformarea obiectelor loft

Crearea:
Închipui i-v c a i 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, pute i
deplasa câteva spline (figuri plane) dea lungul unei c i, schimbând dimensiunile între sec iuni, la
necesitatea de a multiplica sec iunile. Crearea lofturilor necesit spline-uri (Shape). Unul dintre
aceste spline reprezint calea, dup care se mi c splinul – sec iunea.
Lofturile se utilizeaz la crearea obiectelor cu un num r mare de diferite sec iuni, la necesitatea
de a anima sec iunile, precum i pentru modifing (vezi Modifing) al obiectelor.
La lofturi pentru modifing trebuie respectate urm toarele condi ii: toate splinele trebuie s
aib un num r constant de vârfuri, obiectele componente trebuie s con in un num r constant de
spline introduse.
Pentru a este posibil de a anima iona calea loftului (Path), a sec iunilor (Shape) i deformarea la
ac iunea asupra loftului.
Ni te reguli pentru crearea corect a unui loft:
Path – Calea.
Path trebuie s fie un spline simplu (vezi Shape) sau s se compun din câteva spline simple sau
module NURBS. Pentru ca s fie mai pe în eles: Donut sau Text din câteve simboluri (Shape) nu poate
reprezenta un drum.
Shape – sec iune.

125
1251
124

A adar, minimum dou figuri plane. Una din ele – calea, anume cu ea se determin
adâncimea obiectului. A doua figur plan , numit Shape (sec iune), determin forma obiectului.
Cantitatea intersect rii pe cale nu sunt limitate.
Calea poate fi o linie închis sau deschis , con inând mai mult de un splin.

Deformarea lofturilor

La crearea obiectelor complicate se utilizeaz deformarea lofturilor. Pentru ac iunea


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 sec iunile loft-obiectelor pe proiec ia axelor X, Y. nimerind
în fereastra de dialog a deforma iei, pute i modifica conturul pe fiecare proiec ie. Dac avem
nevoie de ac iune simetric , legându-le între ele cu ajutorul butonului Make Symmetrical.
Pentru modificarea proiec iei unei curbe se adaog noi noduri, cu ajutorul instrumentului Insert
Corner (Bezier) Point. Nodurile pot fi mi cate i mai putem s le modific m propriet ile. Se face acest
lucru ca i la lucru cu splinele: pe nodul selectat facem un click drept i select m în fereastra de
parametri noul s u tip : Corner – nod de col , Bezier-Smooth – nod netezit, Bezir – Corner –
nod unghiular netezit.
Observa ii: în fereastra Skin Parameters pe panoul Modify este plasat butonul Skin, care arat
reprezentarea geometric a suprafe ei 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 c ii, care se determin prin num rul de puncte de
control în fereastra Scale-deforma ie i set rile în fereastra Skin Parameters.
2.Twist deformeaz sec iunile prin rotirea împrejurul direc iei drumului. Fereastra de dialog
seam n cu cea a Scale Deformation. Deosebirea dintre acestea const în faptul c primele 5 butoane în
Twist sunt neactive, deoarece acesta ac ioneaz doar într-o direc ie. Linia ro ie determin gradul
de înclina ie.
3.Teeter rote te (stoarce) sec iunile în jurul axelor X Y. în fereastra de dialog ca
parametru ini ial este ap sat butonul pentru stoarcerea simetric asupra axei.dac avem nevoie de a ac
iona numai asupra unei axe, atunci dezactiv m butonul pentru stoarcerea simetric .
4.Bevel – aceast deforma ie seam n cu Scale. Ea schimb m rimea sec iunilor (scaleaz ).
În deosebire de Scale în aceast deforma ie se poate de determinat gradul de interac iune (în unit
i, repartizate pe axe). Lucrul cu fereastra Bevel-deforma ii este analogic cu cel efectuat cu
celelalte metode.
5.Fit – dumneavoastr crea i spline, care reprezint sec iuni 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 proiec ie
activ m butonul Get Shape, dup aceasta select m splinul. Proiec iile se redacteaz cu folosirea
acelora i taste ca i în cazurile precedente.

Camera Camera

în scen

Camera în Max este predestinat pentru alegerea punctului optim al profilului cu corec ia
unghiului de vedere, distan ele focale i punctele de anima ie i parametrii. Alegerea punctului de vedere
se poate efectua i în vederea Perspective, dar aici nu avem posibilitatea regl rii corecte i îndeplinirea

126
1261
125

mai convinabil a astfel de ac iuni. Se creeaz o camer pe panoul Create/Camera. Camerele pot fi de
dou tipuri : Free (liber ) i Target (cu o direc ie). Deosebirea între ele const în faptul, c la camera cu
direc ie se regleaz aparte Target (punctul la care este legat camera, acest punct îi determin tot odat
i direc ia). Camera Free se regleaz ca un obiect integru.
Camerele în 3DS Max, ca i obiectele obi nuite pot fi deplasate i rotite, în dependen
de cerin e, i utilizând 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 ap rut 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 (proiec ia ortografic ).
Panoul Stock Lenses ne permite alegerea unei distan e focale standarde în milimetri
15mm..200mm.
Întrerup torul Show Cone coprinde acele obiecte care au nimerit în zona de vedere a
camerei,
independent este ea selectat sau nu.
Întrerup torul Show Horizon activeaz i dezactiveaz observarea liniei orizontului.
Evirment Ranges
(regiunea de reglare a intervalelor mediului înconjur tor)—parametrul Ranges se folose
te în acele cazuri, când în scen sunt prezente efectele atmosferice (Fog, Volume Fog)
pentru determinarea apropiatului (Near Range) i a îndep rtatului (Far Range), se utilizeaz în
acele cazuri când se ini ializeaz intervalele de intensitate a ce ii relativ de camer .
Acest parametru este legat de reglarea efectelor atmosferice în fereastra
Rendering/Envirment (înconjur torul). În aceast fereastr în regiunea Standard se reguleaz
procentul de densitate, adic intransparen a ce ii i a intervalelor minim i maxim. Între grani ele
acestora se situeaz un tunel.

Cliping Planes
(excluderea obiectelor din zona de vedere a camerei la dep rtare)
op iunea Clip Manually (decuparea manual ) determin pentru plane valoarea Near Clip
(apropiat) i Far Clip (îndep rtat), situându-se mai departe, obiectele se “desprind” adic nu sunt
percepute. În scene vor fi vizibile numai acele obiecte (p r i de obiecte),care s-au situat între
planele Near Clip i Far Clip.

Lumini Surse de

lumin

Sursele de lumin în 3Dmax modific surse reale de lumin – ele ilumineaz scena. Cum
i ori ice 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 ini ial 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 câteva tipuri:
Surse de lumin de tip omni (punctiforme)
Astfel de surse degaj raz uniform în toate direc iile.
Pentru a crea o surs de lumin de tip Omni, se selecteaz mai întâi panelul
Create/Lights i efectu m un click pe butonul cu denumirea Omni. Apoi se alege vederea necesar i
locul unde trebuie creat sursa de lumin , i efectu m un click stânga.
127
1271
126

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 urm rite unele transform ri, 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 Ro u, Verde i Albastru, dar sistemul de culori HSV – nuan a de culoare
(situarea în spectru de culori), densitatea i intensitatea culorii sursei. Valorile le pute i introduce
desinest t tor sau de la tastatur , sau cu ajutorul spinerelor.
Culoarea, pe care o regla i, 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 Exerci iul).
Câteodat trebuie de luminat numai un obiect dat, sau de f cut astfel ca, numai un obiect s lase
umbr . Butonul Exclude ne permite excluderea obiectelor selectate din luminare
(eliminare/includere), care con ine lista obiectelor. Anume în în aceast list se pot include sau
exclude obiectele din iluminare.
Op iunile 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.
Ob iunea affect Diffuze (efectul de colorare) activeaz i dezactiveaz efectul de interac
iune a
sursei cu obiectul adic cu iluminarea lui.
Op iunea Affect Specular (efect de str lucire) activeaz i dezactiveaz efectul de str lucire
a
suprafe ei de la sursa de lumin . Când op iunea este dezactivat se ob ine efectul de suprafa mat .
Regiunea Attenuation (sl bire)
Aici pute i s impune i m rimile intervalelor de intensitate. În leg tur cu acest fapt op
iunea Use activeaz /dezactiveaz folosirea grani elor în ecranele de vederi i ob iunea Show
activeaz vizibilitatea grani elor ferestrelor de vederi, independent de faptul dac este selectat ori nu
o surs de lumin .
Sl birea ne permite de a schimba ac iunile intensit ii luminii pe dou intervale – Near (la
aproapele) i Far (la îndep rtat), care la rândul lor se împart în dou : Start (ini ial) i End (final).
În regiunea Decay (stingere) se red gradul de interac iune a sursei de lumin pe obiect.
Interac iunea se poate de interzis (none), ea poate fi sl bit i aproape stins (Inverse – viceversa), sau
de a ac iona propor ional sl birii (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 exerci ii.
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, dezactivând op iunea Cast Shadows.
Cast Shadows: regl ri individuale a gener rii umbrei.
Use Global Settings: dac regl m parametrii Map Bias, Size, Smp Range i ar t m op
iunea Use Global Settings, atunci la urm toarea schimbare a parametrilor sursei va fi suficient de
a activa aceast op iune ca s se restabileasc parametrii ini iali.
128
1281
126
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 op iunile de
transparen (Ray-Traced shadows).

129
1291
127

Surse de lumin de tip Target i Free Directional

Aceast surs genereaz fluxuri de lumin orientate, care se propag paralel. Target Direct are
leg tur el, Free Direct e îndreptat liber (tot a a 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 câmpul pentru introducerea Falloff se înscrie m rimea intervalelor externe de stingere a
luminii spre margini.
Op iunea Show Cone include în sine vizibilitatea unui con.
Circle, Rectangle schimb forma (sec iune) conul de lumin . La setarea formei
rectangulare (Rectangle) apare posibilitatea de a schimba corela ia 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 , l rgindu-se, într-o direc ie
oarecare, sau, cu alte cuvinte, se propag conic. Propriet ile sursei Target Spot (lumin orientat )
sunt identice propriet ilor Free Spot (lumin liber ).

Parametrii Spot deasemenea sunt la fel ca cei ai sursei Direc ional.

Ori ice surs de lumin poate fi translat, rotit i scalat pe ecranele de vederi la fel ca i
toate
celelalte obiecte standarde în 3DMAX.

Materialele

Material Editor
Materiale
Suprapunerea h r ilor (Bitmaps)
Tipuri de h r i (Map Types)
Descrierea tipurilor de h r i
Materiale Matte/Shadow
Materiale Raytrace

Material Editor
Redactor de materiale. Date despre iconi e.

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, când se
elaboreaz materiale noi.
130
1301
128

Background – fonul din spate în slot. E folositor, când apare necesitatea de a vedea
rezultatul
interac iunii între transparen i netransparen .
Sample UV Tiling – reguleaz num rul de repet ri ale copiilor exemplului de textur bitmap pe
suprafa a slotului la crearea unui material complicat.
Setul de exemplare Tiling ac ioneaz numai asupra slotului i nu are nici o atribu ie 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 tendin a de a se schimba când
imaginea se transmite la vizualizare. Pixelii, care con in aceste culori sl besc pe obiect.
Make Preview (vizualizare prelabil ), Play Preview (derularea înscrierii), Save Prevew
(salvarea înscrierii) – aceste butoane ne permit crearea, derularea i salvarea (în AVI – fi iere) anima ia
materialului în slot în coordonate reale ale timpului.
Options (op iunile editorului de materiale) – regl rile dirij rii 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 (ob inerea 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 dori i s copia i materialul i s experimenta i cu copia lui, l sând în pace exemplarul
ini ial (sau în genere crea i un nou material i îl denumi i cu acela i nume). Dac s-a ob inut
rezultat pozitiv i a i hot rât s -l înlocui i pe cel vechi din scen , atunci pur i simplu for a i
acest buton pentru a v atinge scopul.
Assign Material to Selection – asigneaz materialul con inut în slot obiectului selectat din

131
1311
128

scen .
Reset Map/Mtl Default – cur area slotului. Dup acesta slotul devine sur i apar regl rile
definite ca ini iali.
Make Material Copy (crearea unei copii a materialului) – “înghe ” slotul activ, copiind
materialul “pe dânsa”. Materialul în acest caz î- i p streaz numele.
Put to Library (plasarea în bibliotec ) – adaog materialul ales la materialele existente.
Material Effects Channel (canalul efectelor ale materialului) – adi ioneaz unul din canalele
pentru utilizarea efectelor în Video Post.
ID = 0 înseamn , c canalul efectelor nu este în folosin .
Show Map In Viewport (reprezentarea texturii în ecranul vederii) – arat textura
materialului complicat pe suprafa a 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 afla i în momentul dat, împreun
cu
cele de mai jos:
Go To Parent (trecerea la p rinte) – deplasarea cu un nivel mai sus, de la materialul
subordonat p rintelui.
Go Forward To Subling (trecerea la materialul cel mai apropiat – “frate”) –
deplasarea
printre materiale, care se afl pe acela i nivel de subordonare materialului p rinte.
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. Activa i iconi a,
face i
click pe obiectul ales, i materialul apare pe slotulselectat.
Material/Map Browser.
View List (vizualizarea listei) – vizualizarea listei materialelor posedate.

132
1321
129

View List + Icons – permite vizualizarea listei materialelor posedate cât 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 con inutului 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: afi area obiectului la care este ata at materialul.
La crearea noului material:
Putem repartiza h r ile nenecesare dup propriet i:
2D maps – h r i bidimensionale.
3D maps – h r i tridimensionale.
Compositors – combinate.
Color Mods – care prelucreaz culorile.
Other – h r ile oglindite.
All – afi are total .

Tipurile de umbrire (Shading)

Constant – nuan m uniform fiecare segment al obiectului, netezind trecerile între ele,
creând
muchii, ca ochiul în form de plas al insectelor.
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 c tre Soften, în care se pierde o parte din informa ie a lucirii.
Metal – imiteaz materialul metalului.
2-Sided – ini ial se reprezint doar suprafe ele faciale a muchiilor. La necesitate se pot calcula i
p r ile interioare a fe elor obiectului, pentru aceasta este destul de a activa op iunea 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 opera ie 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 diferi i:
129
Masive i Copii
130

Masive i copii
Exerci iul “Insul ”

Masive i copii

În procesul lucrului deseori apare necesitatea de a crea una, dou , sau chiar mai multe copii ale
obiectului (dublicate).
Închipui i-v cerul înstelat cu un num r mare de stele, firi oare 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 câteva tipuri Copy, Instance i Reference.
Copy – absolut independent de obiectul ini ial. La diferite transform ri, transform
rile
originalului nu vor influen a nicidecum asupra obiectului copie a acestuia.
Instance – acest tip de copie, este copia la modificarea c reia se modific i originalul i
viceversa.
De exemplu, dac dorim s desen m un stol de pe ti, atunci pe ei se poate de-i creat ini
ial ca Instance – copii, i apoi de-l animat, aplicând modificatorul Ripple la unul din pe ti ori. Ca
rezultat tot stolul va pluti, efectuând fiecare în parte acelea i mi c ri.
Reference – copii. La astfel de copii orice modificator, aplicat originalului, va afecta
asupra
Reference – copiei, dar în nici un caz invers.
În program exist câteva metode de creare a dublicatelor:
Crearea copiilor inând ap sat tasta Shift, select m obiectul, care trebuie copiat; apoi select
m butonul de mi care, rota ie sau scalare, i men inând ap sat tasata shift i butonul stâng al mouse-
ului, cre m un obiect dublicat nou. În a a mod putem crea circumferin e (utilizând butonul rotirii
de pe panoul de instrumente) i linii (utilizând butonul de translare de pe panoul de instrumente) cât i
crearea mul imilor de obiecte.

Crearea masivelor

Folosirea tastei de mul ime ne permite crearea unui, sau a dou masive tridimensionale. Astfel ca
în timpul cre rii, 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 distan a dintre fiecare obiect din viitoarea mul ime pe axele X, Y, Z
— în
unit i.
Rotate – determin gradul de rotire relativ de oricare din cele trei axe pentru fiecare obiect
din
masiv (în grade).
Scale – determin procentajul din scar (mic orare sau m rire) dup orice ax pentru
fiecare
obiect al masivului (în procente).

Totals (mul imi comune)


130
1301
130

Move – determin distan a total pe fiecare din cele trei axe între punctele de centru a
dou obiecte m rgina e a mul imii. De exemplu dac ordon m zece obiecte pe axa X cu valoarea
de 100, atunci 10 obiecte vor fi aliniate într-un rând de lungimea de 100 unit i între dou obiecte m
rgina e.

131
1311
131

Rotate – determin gradele întregi de rotire dup oricare dintre cele trei axe.
Op iunea 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.
Op iunea Uniform deconecteaz spinii Y, Z – i aplic modificarea X dup toate axele,
terminând 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 num rul necesar de copii (Count), cât i setarea
densit ii mul imii.
1D – unidimensional, 2D – bidimensional, 3D – tridimensional.

Reflec ia obiectelor

Reflec ia se utilizeaz în cazurile când avem nevoie de a ob ine 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 apari
ia
ferestrei de dialog Mirror, în care deasemenea pot fi îndeplinite regl rile necesare.
Utilizarea butonului de reflectare permite crearea copiilor oglindite a obiectelor dup toate
trei
axe, sau pur i simplu reflexia a îns i originalului.

Teorie. Lumina i culoarea

Sistemul vizual al omului percepe radierile electromagnetice cu lungimea de und de la 400 pân
9
la 700 nm.(nanometri, 1nm egal cu 10 m) ca lumina vizibil . Lumina se prime te direct de la surs , sau
indirect, prin reflectarea ei de la obiect sau refrac ia prin el.
Sursa sau obiectul se nume te acromatic, dac lumina con ine toate lungimile de und vizibile în
propor ii aproximativ egale. Sursa acromatic pare a fi alb , iar lumina acromatic reflectat sau
refractat  alb , sur sau neagr . Albe arat obiectele, care reflect mai mult de 80% lumina
sursei albe, iar negre  mai pu in de 3%. Valorile intermediare dau obiectelor nuan e sure.
Diferen a dintre luminozitate i str lucire const într-aceea, c luminozitatea este o proprietate a
obiectelor reflectoare care nu lumineaz i se m soar de la negru pân la alb, iar str lucirea este
proprietatea obiectelor care lumineaz i se m soar de la mic la mare.
Dac lumina con ine lungimi de und în propor ii diferite, atunci ea se nume te cromatic
(cu alte cuvinte, colorat ). La lungimea de und , care se g se te la 400 nm lumina pare violet ,
iar la 700 nm  ro ie. La mijloc se g se te albastru deschis, albastru, verde, galben i oranj.
Din sine radierea electromagnetic nu are nici o culoare  acest sim apare, ca o reac ie 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 interac iunea 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 ro u, atunci el va fi negru, deoarece
de le el lumina aproape c nu se reflect .
Reprezentarea psihofiziologic a luminii se determin prin nuan a culorii, satura ia i
132
1321
131
luminozitatea. Nuan a culorii permite deosebirea culorilor, iar satura ia  determin gradul de sl
bire (amestecare) a culorii date cu alb. La culoarea pur ea este egal cu 100 % i se mic oreaz pe m
sur

133
1331
132

ce se adaug alb. La culoarea acromatic satura ia este egal cu 0%, iar luminozitatea este egal
cu
luminozitatea acestei culori.
Deoarece ochiul reac ioneaz numai la culorile ro ie, verde i albastr , ele se numesc culori
de

134
1341
132

baz .
În grafica pe calculator se folosesc dou sisteme de amestecare a culorilor: RGB  ro ie, verde,
albastr (red, green, blue) i CMY  albastru deschis, magent , galben (cyan, magenta, yellow).
Albastru deschis, magenta i galbenul sunt culori ad ug toare a celor trei culori de baz :
ro u, verde, albastru. No iunea de ad ug toare înseamn în cazul dat aceea c aceste culori se combin
una pe alta pân la alb: albastru deschis i ro u sunt egale cu culoarea alb etc. este interesant c
culoarea magent , nu exist în spectrul luminii solare (el trebuie s se g seasc între violet i ro u), el
subiectiv se creeaz de sistemul vizual a omului.
Modelul RGB este comod de-l folosit pentru ar tarea culorii obiectelor luminoase, de exemplu,
pixelilor monitorului sau becurilor colorate. Dac becul lumineaz în spectrul ro u i verde, atunci
ea pare galben (ro u plus verde egal cu galben). Amestecarea tuturor culorilor din acest model
formeaz culoarea alb .
Modelul CMY se folose te pentru obiectele care reflect i refract lumina, de exemplu, în
filtrele de lumin i poligrafie. Dac culoarea se reflect de la o foaie de hârtie, pe care este imprimat
culoarea galben i magenta, atunci culoarea galben va absorbi culoarea albastr care se con ine
în lumina care cade pe aceast foaie, iar magenta  culoarea verde; r mâne culoarea ro ie. În a a
caz, galben plus magenta egal cu ro u, amestecarea tuturor acestor culori a acestui model formeaz
culoarea neagr .
A adar, pe lâng modelul de culoare HSV (hue, saturation, value: nuan a, satura ia,
luminozitatea) pot fi folosite i modelele RGB i CMY, bazate pe propriet ile 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 folose te de pictori, când ei aleg culoare. La început se
alege nuan a convenabil (culoarea pur ), apoi la ea se adaug negru (nuan e), iar apoi  alb. În
a a mod, fiecare culoare poate fi dat prin nuan , cantitatea de culoare neagr i culoare alb , a a model
de culoare poart denumirea de HBW (hue, blackness, whiteness: nuan , cantitate de culoare
neagr , cantitatea de culoare alb ).
Sistemul vizual al omului poate percepe aproximativ 350 000 de culori. Clar percepute
aproximativ 128 de nuan e, 16 nivele de satura ie a culorii galbene i 23 de nivele de satura ie a culorii
ru u-violet.

Teorie. Sistemul de coordonate

În grafica pe calculator universal foarte important este în elegerea sistemului de


coordonate. Sistemele de coordonate în geometrie nu s-au folosit pân la Decart, care a elaborat
i a introdus sistemul de coordonate cartezian.
Pentru ce ele se folosesc? Într-adev r, sistemele de coordonate sunt foarte confortabile, deoarece
ele ajut reprezentarea obiectelor geometrice în form de numere i egalit i; 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 tradi ionale, 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 folose te în 3D Studio MAX, se nume te sistemul de coordonate
dreptunghiular i se construie te în felul urm tor: Alegem în spa iu un punct. O vom numi
originea sistemului de coordonate i îl vom nota cu punctul O.

135
1351
133

Tras m prin acest punct trei linii perpendiculare una fa de alta, pentru fiecare din aceste
linii alegem direc ia pozitiv (se înseamn cu o s geat ). Vom numi aceste linii axele de
coordonate i le vom numerota prin x, y, z.
În sfâr it, alegem pentru fiecare ax segmentul unitar, adic segmentul, lungimea c ruia o
vom
socoti unitate (segmentele unitare pe desen sunt ar tate prin grada ii).
Coordonatele oric rui punct di spa iu în sistemul de coordonate dreptunghic se g sesc în
felul
urm tor: Din punctul dat pe axa Ox coborâm o perpendicular .
Lungimea segmentului, care une te originea sistemului de coordonate i punctul de intersec ie a
perpendicularei cu axa i este coordonata punctului. Dac ea se afl în jum tatea pozitiv a axei, o lu m
cu semnul plus, dac -i în cea negativ  cu semnul minus.
Repet m acela i lucru pentru celelalte dou axe; în rezultat primim trei numere 
coordonatele punctului. În acest sistem de coordonate noi putem descrie oricare punct al spa iului
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 spa iu au trei m suri ( i anume, lungime, l imea i în l imea), de aceea
spa iul se nume te tridimensional.
În 3DSMAX se folose te numai sistemul de coordonate dreptunghiular, îns în limitele
unei scene noi putem folosi sisteme de coordonate diferite. La diferite sisteme de coordonate, dup
cum în elege i, pot fi origini diferite, direc iile axelor diferite i diferite segmente unitare. Detailat
despre sistemele de coordonate, utilizate în 3DS MAX, este dat în documenta ia 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 câteva modele matematice, despre care vom vorbi în continuare.
Unele din aceste modele sunt bazate pe teorii, unele  pe observ ri neuristice, altele  pe
specula ii . S începem cu cel mai simplu model de iluminare.

Modelul de iluminare simplu

Orice obiect, care se afl în scen poate fi v zut 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
nume te corp absolut negru). Dac obiectul practic nu absoarbe lumina ce cade pe el, el art alb, dac el
absoarbe par ial 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 :
Propriet ile reflect rii difuze
Propriet ile reflect rii oglindite.
Reflectarea difuz este caracteristic pentru suprafe ele mate, anume culoarea difuz
determin
culoarea obiectului.
Reflectarea oglindit este caracteristic pentru obiectele str lucitoare (metale, sticl ), anume
cantitatea de lumin oglindit determin puterea de str lucire a obiectului.
Lumina difuz are aceea i culoare ca i obiectul.
Lumina oglindit are aceea i culoare, ca i lumina incident (dac o bil de metal este luminat
133
de o surs de lumin ro ie, atunci i str lucirea va fi ro ie).
Lumina difuz se reflect în toate p r ile propor ional.
134

Lumina oglindit se reflect dup legea de reflectare oglindit , unghiul incident este egal
cu
unghiul de reflectare.
Intensitatea luminii difuze reflectate este propor ional 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 atât lumin difuz , cât i lumin oglindit , dar
în propor ii diferite. În 3DS MAX caracteristicile luminii reflectate difuze i oglindite sunt date
în redactorul de materiale.
Pe lâng ace ti factori, asupra intensit ii luminii difuze ac ioneaz distan a dintre surs pân la
suprafa (intensitatea este invers propor ional cu distan a de la surs ). În realitate obiectele sunt
iluminate nu numai de lumina direct , dar i de lumina împr tiat . În 3DS MAX lumina împr
tiat poate fi modelat de sursa de lumin real Ambient (uite Lumina).
Legea reflect rii 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 reflec ie, str lucirea nu
este
vizibil din orice punct al scenei. La mi carea observatorului “iepura ii” tot se mi c .
“Oglindirea“ luminii reflectate pentru diferite obiecte este dat de coeficientul N, care se
folose te în ecua ia, de determinare a intensit ii luminii reflectate. Intensitatea este propor ional
N
cu m rimea cos  , unde   unghiul dintre raza reflectat i vectorul, îndreptat din punctul de
reflectare în ochiul observatorului. Lua i în vedere c lumina oglindit i reflectarea  sunt dou procese
diferite.
Lumina oglindit permite de redat corect str lucirile la suprafa a obiectului, îns el nu ajut
de realizat efectul de reflectare în oglind . Reflectarea se consider în modelul global ca
luminarea cu trasarea razei.

Transparen a

La prec utarea transparen ei noi ne ciocnim cu apari ia refrac iei. La trecerea dintr-un mediu în
altul, de exemplu din aer în ap raza luminoas se refract , adic î i schimb direc ia mi c rii.
Refrac ia se calculeaz dup legea lui Snellius: 1 sin  =  2 sin  , aici  1 i  2 
coeficien ii de refrac ie a mediilor,   unghiul incident,   unghiul de refrac ie. Î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 (cea a, sticla
mat ). Dac s ne uit m la obiect prin suprafa a semitransparent , atunci el pare neclar i sp l cit.
Efectul transparen ei poate fi efectuat total numai în modelul total al ilumin rii cu trasarea razei.

Umbra

Umbra este compus din 2 p r i  penumbre i umbre pure. Umbra pur  este umbra central
, dens , are un contur bine delimitat, iar penumbra  înconjoar de obicei umbra pur i prime te 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.
134

Texturi
135

În grafica calculatorului textur (factur ) este numit detalizarea construirii suprafe elor.
Aplicarea texturilor asupra obiectelor permit redarea acestor obiecte forma real . Detalizarea de
obicei se folose te de dou tipuri. În primul caz pe o suprafa neted se pune uzorul preg tit
din timp (desenul), de exemplu, dac scan m fotografia unei suprafe e de lemn i o red m unei
bile, atunci noi primi o bil din lemn.
Nec tând la ceea, c cu ajutorul acestei metode se poate de redat suprafe ei o form neregulate,
ea tot r mâne neted . A doua metod con ine interac iunea local în ecua ia suprafe ei, i în acest caz ea
devine într-adev r neregulat . Unele greut i cu texturile primei metode apar, dac le plas m pe
suprafe e neplane. De obicei în aceste cazuri în imagine se introduc deform ri, a a c la plasarea lor s
arate ca reale. A a arat harta globului p mântesc dup introducerea deform rilor.
Alt problem legat de texturi  este efectul scalar. La o m rire mare a imaginii se
observ structura ei granular (ca i în jocul Doom, când v apropia i foarte aproape de pere i).
Pentru a preîntâmpina aceste apari ii ale efectului scalar, se folosesc texturi de m rimi 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
suprafe ele i obiectele fractale este caracteristic, c noi putem s m rim 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, pute i afla din compartimentul
“Redactorul materialelor”.

Modelul global de iluminare cu trasarea razei

Modelul universal de iluminare trebuie s duc cont de urm toarele efecte: reflectarea,
transparen a, umbra i textura; toate acestea sunt posibile cu ajutorul algoritmului de trasare a razei. Pe
lâng efectele sus men ionate, în desenul primit pot fi introduse i ad ug ri i deform ri ad ug
toare (vezi Filtre). De exemplu noi putem introduce deformarea, care de obicei apare la imaginile
video i foto.
Pentru sintetizarea imaginilor reale este necesar de luat seama, c lumina sl be te, trecând
prin obiectele transparente, i chiar poate s - i schimbe nuan a. Algoritmul de trasare a razei (Ray
Tracing), despre care s-a vorbit mai sus, este unul din metodele de înl turare din scen a suprafe elor
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 ro u, 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 direc ia razei în acest algoritm nu conteaz . Dac socotim, c razele ies din camer , atunci
algoritmului îi trebuie mai pu ine resurse a calculatorului.
Într-un caz mai complicat la colorarea pixelului se ia în considera ie nivelul reflect rii 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 str lucirea ei este egal cu str lucirea luminii împr tiate î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, când raza p r se te scena, sau când
intensitatea ei cade mai jos de domeniul dat. Dup ce toate razele trasate au fost urm rite, se cap t
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,
când imaginea este constituit din puncte.
136

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 folose te
numai o singur metod . De obicei se consider c pixelii nu au m rime, nec tând la aceea, c
în realitate, fiecare din el ocup o oarecare suprafa foarte mic .
Dac consider m 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 creând
o trecere lent .
Iat cum poate fi rezolvat problema desen rii unei drepte, apropiat de vertical sau orizontal
cu ajutorul algoritmului de eliminare a efectului scalar. Noi vedem c str lucirea pixelului este
direct propor ional cu suprafa a, 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 tras rii razelor este bazat
pe acela i principiu. La prima etap razele se trimit în scen , dar nu prin centrul pixelilor, dar
prin vârfurile lor. Dac culorile prin vârfurile pixelilor aproximativ coincid (pixelul nu se g se te 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 . Împ r irea pixelilor se petrece pân când ei nu devin foarte mici, iar culoarea lor
intermediar se combin i se prime te pixelul de baz . Parametrii algoritmului de baz se regleaz
pentru materiale Ray-Traced în redactorul de materiale.

Tonarea (umplerea)

Multe suprafe e 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.
Aceast aproximare permite semnificativ reducerea resurselor de calcul, care trebuiesc la
vizualizarea obiectului, îns ea introduce i efecte secundare: cât de mici nu vor fi poligoanele, pe desen
se observ structura frânt a suprafe ei.
Pentru a elimina acest efect, se folosesc algoritmi speciali de umplere a suprafe elor
curbilinii, purtând numele fondatorilor s i, metoda Fong (Phong) i metoda Blinn (Blinn) (de
asemenea este cunoscut metoda Guro (Gouraund), îns în 3D Studio el nu se folose te).
Desigur exist umplerea monoton simpl (Constant), care nu neteze te suprafa a poligonal .
Pe lâng aceste metode de tonare, în 3D Studio MAX se folose te i umplerea metalic , bazat
pe propriet ile suprafe elor metalice. Mai detailat vede i în redactorul de materiale.

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