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.

eshape(GLAutoDrawable drawable, int x, int y, int width, int height)Chamada sempre que a janela (ou componente) contendo o viewport, são redimensionados. Permite a actualizaçãoe ajuste do viewport ou da visualização em geral, <strong>de</strong> forma a a<strong>de</strong>quá-lo ao novo tamanho da janela.3.4 The State MachineO <strong>de</strong>senho em OpenGL é conseguido com a ajuda <strong>de</strong> um conjunto <strong>de</strong> variáveis e atributos que vão sendo <strong>de</strong>finidosao longo da execução. No entanto, não é fácil ao <strong>de</strong>veloper estar consciente <strong>de</strong> todos esses elementos aquando daadição <strong>de</strong> nova geometria.Estes elementos fazem parte estado no pipeline. O OpenGL funciona como uma máquina <strong>de</strong> estados quepermite gerir o estado <strong>de</strong>stes elementos.Utilizando a máquina <strong>de</strong> estados, o OpenGL permite que no mesmo <strong>de</strong>senho possamos ter, por exemplo,objectos <strong>de</strong>senhados com lighting e outros sem lighting activando e <strong>de</strong>sactivando uma simples flag.gl. glEnable (GL. GL_LIGHTING );// ...// draw geometry with lightinggl. glDisable (GL. GL_LIGHTING );// ...// draw geometry without lightingA verificação do estado <strong>de</strong> uma <strong>de</strong>terminada flag po<strong>de</strong> ser feito com recurso a gl.glIsEnabled(flag).3.5 O pipeline <strong>de</strong> TransformaçõesAs transformações mais comuns são feitas na projection matrix e na mo<strong>de</strong>lview matrix.O caminho <strong>de</strong>s<strong>de</strong> as coor<strong>de</strong>nadas <strong>de</strong> simples vertex até à imagem no ecrã está <strong>de</strong>scrito na Figura 3.3.Figura 3.3: Pipeline <strong>de</strong> transformações <strong>de</strong> vérticesNo primeiro passo, cada vector é convertido numa matrix 1 × 4, contento as coor<strong>de</strong>nadas [x, y, z] e um factor<strong>de</strong> escala 1 . O vertex é então multiplicado pela matriz <strong>de</strong> transformações Mo<strong>de</strong>lview, que contém as transformadasrelacionadas com o observador. O resultado é multiplicado pela matriz <strong>de</strong> transformações Projection, o queelimina todos os objectos fora do nosso volume <strong>de</strong> clipping 2 . No passo seguinte, as coor<strong>de</strong>nadas resultantes sãodivididas pelo factor w do vertex, com o objectivo <strong>de</strong> normalizar as coor<strong>de</strong>nadas.1 Utilizado nas funções <strong>de</strong> vectores com 4 argumentos, ex.: glVertex4f(x, y, z, w)2 O que representa uma mais-valia em termos <strong>de</strong> processamento17

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

Saved successfully!

Ooh no, something went wrong!