14.08.2013 Views

Suport de curs

Suport de curs

Suport de curs

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

glPolygonMo<strong>de</strong> (fata, modredare);<br />

fata este oricare dintre constantele simbolice<br />

GL FRONT, GL BACK, GL FRONT AND BACK<br />

iar modredare este una dintre constantele simbolice<br />

GL LINE, GL POINTS, GL FILL .<br />

Valorile implicite sunt GL FRONT pentru fata, repsectiv GL FILL pentru modredare.<br />

Cea <strong>de</strong>-a treia categorie <strong>de</strong> funct¸ii OpenGL legate <strong>de</strong> reprezentarea polinoamelor<br />

sunt cele care permit eliminarea poligoanelor care sunt vizualizate din<br />

spate (sau din fat¸ă). În primul rând, trebuie activat modul <strong>de</strong> eliminare, prin<br />

comanda<br />

glEnable (GL CULL FACE);<br />

În continuare, trebuie precizat care sunt poligoanele care vrem să fie înlăturate,<br />

prin funct¸ia<br />

glCullFace (fata);<br />

un<strong>de</strong> fata este una dintre constantele simbolice<br />

GL FRONT, GL BACK<br />

Astfel, apelarea funct¸iei glCullFace (GL BACK); are ca efect eliminarea din<br />

<strong>de</strong>sen a poligoanelor văzute din spate, i.e. pentru care observatorul este situat<br />

în spatele poligonului. În final, după ce au fost eliminate din <strong>de</strong>sen poligoanele<br />

dorite, trebuie <strong>de</strong>zactivat modul <strong>de</strong> eliminare, prin funct¸ia<br />

glDisable (GL CULL FACE);<br />

Aceste funct¸ii pot fi apelate în mod repetat într-o procedură <strong>de</strong> <strong>de</strong>senare,<br />

astfel că, <strong>de</strong> exemplu, o parte din poligoane pot fi trasate cu linie continuă,<br />

altele cu linie punctată, etc.<br />

5.3 Teste <strong>de</strong> adâncime<br />

O altă clasă <strong>de</strong> funct¸ii standard în OpenGL sunt cele care permit efectuarea<br />

unor teste <strong>de</strong> adâncime pentru selectarea suprafet¸elor vizibile. Pentru a putea<br />

utiliza aceste facilităt¸i, trebuie în primul rând, modificată funct¸ia GLUT <strong>de</strong><br />

init¸ializare glutInitDisplayMo<strong>de</strong>, adăugându-i argumentul GLUT DEPTH, care<br />

specifică utilizarea buffer-ului <strong>de</strong> adâncime (<strong>de</strong>pth buffer). De exemplu, dacă<br />

utilizăm un singur buffer <strong>de</strong> culoare ¸si dorim să activăm buffer-ul <strong>de</strong> adâncime,<br />

în programul principal va figura comanda:<br />

glutInitDisplayMo<strong>de</strong> (GLUT SINGLE | GLUT RGB | GLUT DEPTH);<br />

Valorile pentru buffer-ul <strong>de</strong> adâncime pot fi init¸ializate cu funct¸ia<br />

glClear (GL DEPTH BUFFER BIT);<br />

Alternativ, acestea pot fi init¸ializate simultan cu cele ale buffer-ului <strong>de</strong> culoare:<br />

17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!