Manual de Apoio 2010
Manual de Apoio 2010
Manual de Apoio 2010
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Figura 5.14: Polígono sem parâmetros <strong>de</strong> materiais <strong>de</strong>finidosO argumento mo<strong>de</strong> permite-nos seleccionar qual a(s) componente(s) que estamos a configurar. O segundoargumento é um array contendo os valores RGBA da luz 1 .Para <strong>de</strong>finir a componente <strong>de</strong> luz ambiente utilizamos a variável GL LIGHT MODEL AMBIENT, como mostra oexemplo: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);Configuração das Proprieda<strong>de</strong>s dos MateriaisA configuração das proprieda<strong>de</strong>s dos materiais é feita antes <strong>de</strong> os <strong>de</strong>senhar, <strong>de</strong>finindo as cores que estes reflectempara cada componente. Isto po<strong>de</strong> ser feito com recurso à função:glMaterialfv ( int face , int pname , float [] params , int offset )O parâmetro face <strong>de</strong>fine qual a face que toma os valores que estamos a <strong>de</strong>finir:• GL FRONT: Frente• GL BACK: Trás• GL FRONT AND BACK: Ambas as facesO parâmetro pname <strong>de</strong>fine qual a proprieda<strong>de</strong> que estamos a configurar e po<strong>de</strong> tomar os valores:• GL AMBIENT, GL DIFFUSE, GL SPECULAR: Luz ambiente, difusa e especular• GL AMBIENT AND DIFFUSE: Componentes ambiente e difusa (tomarão os mesmos valores).• GL EMISSION: Luz própria do objecto.O seguinte exemplo mostra uma possível utilização da função glMaterial:float gray [] = { 0.75f, 0.75f, 0.75f, 1.0 f };gl. glMaterialfv ( GL2 . GL_FRONT , GL2 . GL_AMBIENT_AND_DIFFUSE , gray , 0);Na maior parte das vezes, a luz ambiente e difusa tomam valores semelhantes, para tal a flag GL AMBIENT AND DIFFUSEé utilizada. A nossa imagem terá agora o aspecto da Figura 5.15.A segunda forma <strong>de</strong> atribuir proprieda<strong>de</strong>s aos materiais é activando o color tracking. Com o color tracking,dizemos ao OpenGL para utilizar as cores <strong>de</strong>finidas com recurso a glColor.Para activar o color tracking, activamos a flag GL COLOR MATERIAL:glEnable ( GL2 . GL_COLOR_MATERIAL );Da mesma forma utilizamos a função glColorMaterial para <strong>de</strong>finir a face e a componente <strong>de</strong> luz afectada:glColorMaterial ( GL2 . GL_FRONT , GL2 . GL_AMBIENT_AND_DIFFUSE );1 O parâmetro offset é específico do binding JOGL. No contexto <strong>de</strong>ste documento tomará sempre o valor 0.47