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.

Capítulo 3Introdução ao OpenGLO OpenGL po<strong>de</strong> ser <strong>de</strong>finido como uma interface <strong>de</strong> software para dispositivos gráficos. Consiste <strong>de</strong> uma bibliotecagráfica <strong>de</strong> 3D e mo<strong>de</strong>ling. É altamente portable (suportada em vários sistemas operativos e dispositivos). Tirapartido da aceleração hardware (on<strong>de</strong> disponível), conseguindo níveis <strong>de</strong> <strong>de</strong>sempenho elevados.Mais do que uma linguagem ou uma simples API, <strong>de</strong>fine um standard.3.1 O pipeline OpenGLO processo <strong>de</strong> <strong>de</strong>senho com recurso a OpenGL, é feito com recurso a um conjunto <strong>de</strong> passos (stages). O nomepipeline sintetiza numa palavra esta topologia (Figura 3.1).Figura 3.1: Versão simplificada do pipeline OpenGLOs comandos feitos com recurso à API são colocados num fila <strong>de</strong>nominada command buffer (dados dosvértices (vertex), texturas, . . . ). Quando é dada uma or<strong>de</strong>m <strong>de</strong> processamento ao buffer (flush), quer <strong>de</strong> formaprogramática ou pelo driver, os dados são passados ao passo seguinte na pipeline.No passo transform and lighting, são efectuadas as transformações matemáticas e geométricas que permitemo cálculo da localização e orientação dos nossos pontos e objectos.Na fase <strong>de</strong> rasterização a imagem é criada a partir dos dados <strong>de</strong> geometria, textura e cor do passo anterior.A imagem resultante é então colocada no frame buffer que po<strong>de</strong> ser consi<strong>de</strong>rado como a memória do nossodispositivo gráfico que finalmente a coloca no ecrã.3.2 Tipos <strong>de</strong> DadosA fim <strong>de</strong> garantir portabilida<strong>de</strong>, o OpenGL <strong>de</strong>fine os seus próprios tipos <strong>de</strong> dados (data types). Ao fazê-lo,permite ao <strong>de</strong>veloper, abstrair-se dos pormenores relacionados com os compiladores <strong>de</strong> cada sistema operativo.A cada tipo <strong>de</strong> dados correspon<strong>de</strong> um sufixo. Este sufixo será utilizado a fim <strong>de</strong> i<strong>de</strong>ntificar o tipo <strong>de</strong> dados<strong>de</strong> cada função da API. A Tabela 3.1 mostra os tipos <strong>de</strong> dados, a sua representação em C e o sufixo utilizado nanomenclatura OpenGL.3.2.1 Nomes <strong>de</strong> Funções - ConvençãoAs funções OpenGL seguem uma nomenclatura que ajuda na i<strong>de</strong>ntificação da biblioteca, comando, número <strong>de</strong>argumentos e tipo <strong>de</strong> dados a utilizar nesses argumentos (Figura 3.2), segundo a sintaxe:< biblioteca >< comando >< argumentos >< tipo >O exemplo em cima é uma função da biblioteca gl, o comando Color, que recebe 3 argumentos do tipo float(f).15

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

Saved successfully!

Ooh no, something went wrong!