13.07.2015 Views

Manual de Apoio 2010

Manual de Apoio 2010

Manual de Apoio 2010

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Ao <strong>de</strong>senhar objectos, o OpenGL <strong>de</strong>ci<strong>de</strong> qual a cor para cada pixel. Cada vértice das nossas primitivas temum valor RGB diferente baseado no efeito conjunto das 3 componentes <strong>de</strong> luz ambiente, difusa e especularmultiplicado pela reflectivida<strong>de</strong> ambiente, difusa e especular do material.Calculo do Efeito das luzesO cálculo do RGB das três componentes <strong>de</strong> luz é feito <strong>de</strong> forma similar. No entanto, a direccionalida<strong>de</strong> das luzesdifusa e especular <strong>de</strong>pen<strong>de</strong> do ângulo <strong>de</strong> incidência da luz.O cálculo do RGB obtido a partir da incidência da luz (ambiente neste caso) com o RGB (0.5, 0.5, 0.5)numa superfície com proprieda<strong>de</strong>s reflectivas da luz ambiente (0.5, 1.0, 0.5) po<strong>de</strong> ser calculado da seguinteforma;Ou seja,RGB reflected = RGB light × RGB materialRGB reflected = (0.5, 0.5, 0.5) × (0.5, 1.0, 0.5) = (0.25, 0.5, 0.25)Figura 5.13: Compontente <strong>de</strong> luz ambiente <strong>de</strong> um Objecto5.5 Adição <strong>de</strong> Luzes ao CenárioA fim <strong>de</strong> consolidar os conceitos teóricos nas secções anteriores, e antes <strong>de</strong> avançarmos com mais conceitos, épertinente contextualizá-los no OpenGL.Activação a LuzPara utilizar a luz no OpenGL activamos a flag GL LIGHTING:gl. glEnable ( GL2 . GL_LIGHTING );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 ();Ao activar a flag GL LIGHTING, o OpenGL <strong>de</strong>termina a cor <strong>de</strong> cada vértice com base nos parâmetros dosmateriais. Como ainda não foram <strong>de</strong>finidos quaisquer parâmetros dos materiais, os objectos no nosso cenárioaparecem escuros e sem qualquer luz (Figura 5.14).Configuração do Mo<strong>de</strong>lo <strong>de</strong> LightingO primeiro passo <strong>de</strong>pois <strong>de</strong> activar o cálculo <strong>de</strong> luzes é configurar o mo<strong>de</strong>lo <strong>de</strong> lighting. As três componentes <strong>de</strong>luz que afectam o nosso mo<strong>de</strong>lo <strong>de</strong> lighting são <strong>de</strong>finidos com recurso à função:glLightMo<strong>de</strong>lfv ( int mo<strong>de</strong> , float [] params , int offset );46

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

Saved successfully!

Ooh no, something went wrong!