13.07.2015 Views

Manual de Apoio 2010

Manual de Apoio 2010

Manual de Apoio 2010

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figura 5.15: Polígono após <strong>de</strong>finição com glMaterialJuntando tudo no mesmo bloco <strong>de</strong> código obtemos:...// No metodo init (...)gl. glEnable ( GL2 . GL_LIGHTING );float [] ambientLight = new float [] {1f, 1f, 1f, 1f};gl. glLightMo<strong>de</strong>lfv ( GL2 . GL_LIGHT_MODEL_AMBIENT , ambientLight , 0);gl. glEnable ( GL2 . GL_COLOR_MATERIAL );...// No metodo display (...)gl. glColorMaterial ( GL2 . GL_FRONT , GL2 . GL_AMBIENT_AND_DIFFUSE );gl. glColor3f (0.75f, 0.75f, 0.75 f);gl. glBegin ( GL2 . GL_TRIANGLES );gl. glVertex3f (60f, -40, 0f);gl. glVertex3f ( -60f, -40f, 0f);gl. glVertex3f (0f, 40f, 0f);gl. glEnd ();O resultado final da utilização do GL COLOR MATERIAL, será semelhante ao obtido <strong>de</strong>finindo o material paracada polígono individual (Figura 5.15).A Figura 5.16 mostra os resultados para vários níveis da luz ambiente num objecto mais complexo.5.6 Fontes <strong>de</strong> LuzNum cenário real, as fontes <strong>de</strong> luz po<strong>de</strong>m ser variadas. Para além da cor e intensida<strong>de</strong>, são providas <strong>de</strong> umalocalização e direccionalida<strong>de</strong>. Com o OpenGL é possível <strong>de</strong>finir 8 fontes <strong>de</strong> luzes in<strong>de</strong>pen<strong>de</strong>ntes com umalocalização no nosso viewing volume.Ao especificar uma luz, dizemos ao OpenGL a sua localização e para on<strong>de</strong> se dirige. Ao especificar umaluz direccional, esta inci<strong>de</strong> nos objectos com um <strong>de</strong>terminado ângulo, que <strong>de</strong>termina a forma como o objectoé iluminado. A fim <strong>de</strong> conseguir calcular o shading (as sombras) numa superfície, o OpenGL <strong>de</strong>ve conhecer oângulo <strong>de</strong> incidência da luz.A luz inci<strong>de</strong> numa superfície com um <strong>de</strong>terminado ângulo (A) e é reflectida com outro ângulo (B) em direcçãoao observador (Figura 5.17). Estes ângulos são utilizados em conjunto com as proprieda<strong>de</strong>s dos materiais, para<strong>de</strong>terminar a cor aparente <strong>de</strong> cada vértice. Posteriormente pela utilização <strong>de</strong> smooth shading (GL SMOOTH), édada a sensação <strong>de</strong> iluminação do polígono.Se tivermos em consi<strong>de</strong>ração que cada polígono é <strong>de</strong>finido por um conjunto <strong>de</strong> pontos, <strong>de</strong>terminar o ânguloque a luz faz com um ponto po<strong>de</strong> representar uma dificulda<strong>de</strong> 1 . Para resolver esse problema, cada ponto teráque conter informação acerca do vector que <strong>de</strong>fine a sua orientação vertical (upward).1 O segundo ângulo (B) po<strong>de</strong> tomar uma infinida<strong>de</strong> <strong>de</strong> valores possíveis48

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

Saved successfully!

Ooh no, something went wrong!