Documente Academic
Documente Profesional
Documente Cultură
GRAFICA PE CALCULATOR
Curs de prelegeri
pentru studen ii specialit ilor "Automatica i
Informatica", "Calculatoare", "Microelectronic ",
"Tehnologii informa ionale", FAF
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
3. Primitive grafice
3.1. Opera ii cu pixeli.
3.2. Construirea liniilor.
3.3. Poligoane.
3.4. Curbe conice.
3.5. Suprafe e.
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.
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.
4
10.3. Modelul procesului de vizualizare 3D.
10.4. Proiec ii. Proiec ia perspectiv .
10.5. Vizualizarea imaginilor 3D.
5
14.12. Crearea materialelor.
14.13. Crearea obiectelor de rota ie.
14.14. Anima ia.
6
1.SISTEME GRAFICE
8
1.4. Dispozitive de intrare ale sistemelor grafice
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.
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.
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
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.
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).
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
2. Portabilitatea informa iei grafice, adic posibilitatea transferului descrierilor de imagini Între
sisteme grafice diferite.
4. Uniformitatea instruirii în domeniul proiect rii i utiliz rii sistemelor grafice, asigurarea unui
vocabular unic de termeni i concepte.
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 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.
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.
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.
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.
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.
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
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:
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.
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
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. 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.
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.
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.
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.
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.
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)
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.
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.
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.
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.
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
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.
Getmaxcolor - func ia întoarce num rul maxim de culori ce pot fi folosite în modul grafic curent.
Setbkcolor(c) - func ia poate fi apelata pentru specificarea culorii fondului. Ea modifica prima
intrare a paletei de culori la valoarea specificata ca parametru.
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
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.
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.
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.
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.
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.
Î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.
Î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.
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.
33
Tabelul 5.1. Seturi de caractere
Direc ia de scriere poate fi orizontala sau verticala. Pentru specificarea sa se pot folosi
constantele HORIZ_DIR i VERT_DIR:
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).
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
Î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
Î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.
Î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.
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.
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.
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.
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.
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.
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
Î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.
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.
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.
41
7. Formatele fi ierelor de grafic
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.
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.
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.
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.
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.
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:
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).
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).
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.
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.
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 (headerul) 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.
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 0u 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.
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 , nu 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.
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.
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.
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
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 1u
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.
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
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.
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’),
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
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
x=x*sx
y=y*sy
Dac sx=sy scalare este uniform ; ea nu produce deformarea obiectului transformat. În caz
contrar
scalare este numit neuniform .
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
Px,y fa de F(xf,yf) cu factorii sx, sy se descrie ca
x = (x- xf)sx + xf
y = (y yf)sy + yf
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 Px,y se
efectueaz în mod urm tor
x=x*cos(u)-y*sin(u)
y=x*sin(u)+y*cos(u)
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)-(yyf)sin(u)+xf
y = (x-xf)sin(u)-(yyf)cos(u)+yf
Î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)
sx 0
x y = x y 0 sy
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)
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
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.
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:
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 0sx 0 01 0 0
= x y 1 0 1 00 sy 00 1 0
-xf -yf 10 0 1xf yf 1
Rota ia fa de punctul F
1
x y 1 = x y 1 [T ][R][T ]
x= x
y=-y
sau
1 0 0
x y 1 = x y 10 -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
Forfecarea pe axa x:
x = x + Fx*y
y = y
sau
1 0 0
x y 1 = x y 1Fx 1 0
0 0 1
Forfecarea pe axa y
x = x
y = y + Fy*x
sau
1 Fy 0
x y 1 = x y 10 1 0
0 0 1
Cazul general:
x = x + Fx*y
y = y + Fy*x
sau
1 Fy 0
x y 1 = x y 1Fx 1 0
0 0 1
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 xOy. Sistemul xOy 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 xOy 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 xOy, ob inut prin rota ia axelor sistemului xOy cu unghiul
u. Punctul P, va avea în sistemul xOy coordonatele:
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 xOy 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
P(x,y,z) P(x’,y’,z’),
Transform rile geometrice tridimensionale cuprind transla ia, scalare, rota ia, oglindirea forfecarea
i proiec ia obiectelor 3D.
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
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
[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
sx 0 0 0
S 0 sy 0 0
0 0 sz 0
0 0 0 1
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
cos sin 0 0
sin
cos 0 0
Rz
0 0 1 0
0 0 0 1
9. 5. Transform ri inverse
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
54
54
1 c 0
b f
0
d 1
F 1 0
g
i 0 1
0 0
1 0 0 0
0 1 0 0
O
yz
0 0 1 0
0 0 0 1
0 0 0 1
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:
55
55
unde [ Mi ] poate îi orice matrice de transformare elementar : scalare, forfecare, transla ie, rotire,
oglindire,
proiec ie.
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.
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
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.1.Transformarea de vizualizare 2D
(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
Figura 2.11.
Not m cu:
xpmax-xpmin ypmax-ypmin
57
sx = ----------- sy = -----------
xfmax-xfmin yfmax-yfmin
xp = xf*sx + tx
yp = yf*sy + ty (2.20.)
----------------------------------------
-----------------------------------------
Figura 2.12.
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:
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;
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.
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
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.
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:
Efortul de calcul este propor ional cu (n*p), unde n este numarul de o iecte ale scenei, iar p
reprezinta rezolu ia ecranului.
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).
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
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
-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.
Figura 8.3.
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
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.
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.
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.
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:
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.
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 ), 0i < 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).
* 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;
Punctele testate aflate pe o latur sunt arbitrar determinate ca fiind interioare sau exterioare
poligonului.
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)
Dac proiectorul intersecteaz planul fe ei, punctul de intersec ie (xi,yi,zi) verific ecua ia
planului, deci
xi = xO + ti(xV - xO)
yi = yO + ti(yV - yO)
xi = zO + ti(zV - zO)
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 :
În continuare se poate aplica una din metodele prezentate anterior pentru a stabili dac
punctul
de intersec ie este sau nu interior poligonului.
69
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
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.
(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.
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
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)
ScriePixel( x, y, culoare_fond);
zBuffertx,ys = 1;
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).
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
Î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
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.
-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
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.
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.
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
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.
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 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.
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
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.):
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:
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:
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
unde OdR este o constant specific materialului din care este construit suprafa a.
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.
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*Il [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*Ili [Kd*Od*(Lui Nu)+Ks*Os*(Rui Vu) ] (9.8.)
1=i=m
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.
Î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.
`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.
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.
Î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:
IM=IM + (IQ-IP)/(xQ-xP)= IM + c2
85
Î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:
(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 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:
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.
12.6. Umbrirea
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*Il [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.
(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.
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.
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 .
Figura 9.21.
90
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:
Î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
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
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
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.
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
Q3 ,i R0 ,i i = 0, 1, 2, 3
(b) Q3,i - Q2 k ( R1,i - R0 ,i ) i = 0, 1, 2, 3
,i
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
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.
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
u (x - x0 ) / (x1 - x0 ) y
P3 P2
v (y - y 0 ) / (y 3 - y 0 )
P0 P1 x
P0 P1 z
s = u * 63
t = v * 63
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
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).
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).
6. Panelele de comand
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.2.Lock Selection Set permite de lucrat numai cu obiectele selectate, obiectele care nu au fost
selectate r mânând neschimbate.
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.
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.
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
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 PlugIn determin calea spre PlugIns (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.
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.
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.
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.
102
1021
102
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.
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.
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.
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
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
Obiecte standard
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)
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
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
Modificatori
Standar i
Additional
Edit
Surface
Spline Edits
Utilite
Exerci ii, Utilite
Modificatori
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 SubObject (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
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.
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.
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).
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.
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.
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.
Redactarea c ilor
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.
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
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.
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
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
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 .
123
1231
122
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.
Butoanele panoului de instrumente NURBS se utilizeaz pentru crearea suprafe elor curbilinii.
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
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
129
1291
127
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).
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 ).
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 .
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 .
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.
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.
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 .
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 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 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.