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.

...try {InputStream stream = Imaging . class . getResourceAsStream (" stone . tga ");img = TGAImage . read ( stream );bb = img . getData ();stream . close ();} catch ( IOException e) {e. printStackTrace ();}gl. glTexImage2D ( GL2 . GL_TEXTURE_2D , 0, GL2 . GL_RGB ,img . getWidth () , img . getHeight () ,0, img . getGLFormat () , GL2 . GL_UNSIGNED_BYTE , bb );// Activar as texturasgl. glEnable ( GL2 . GL_TEXTURE_2D );// ...A face frontal tem que ser <strong>de</strong>senhada na or<strong>de</strong>m CCW para que a nossa textura seja aplicada correctamente.Assim a or<strong>de</strong>m <strong>de</strong> <strong>de</strong>senho correcta será - cTop-cFrontLeft-cFrontRight. As coor<strong>de</strong>nadas são especificadas <strong>de</strong>forma semelhante às da Figura 8.4(b).O código em baixo calcula o verctor normal à face frontal (vNormal), especifica as coor<strong>de</strong>nadas da texturapara cada vértice (glTexCoord) e <strong>de</strong>senha-o 1 :// Face da FrentevNormal = GlTools . getNormalVector (cTop , cFrontLeft , cFrontRight );gl. glNormal3fv ( vNormal . toArray () , 0);gl. glTexCoord2f (.5f, 1f);cTop . draw ();gl. glTexCoord2f (0f, 0f);cFrontLeft . draw ();gl. glTexCoord2f (1f, 0f);cFrontRight . draw ();O <strong>de</strong>senho das restantes faces do triângulo são feitas <strong>de</strong> forma semelhante. A Figura 8.6 mostra o output doficheiro Pyramid.java.Figura 8.6: Output do ficheiro Pyramid.java1 Por uma questão <strong>de</strong> conveniência a class GLVector tem um método que <strong>de</strong>senha o vector actual utilizando a função glVertex83

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

Saved successfully!

Ooh no, something went wrong!