aula 5 - computacao grafica - engenharia

10
UNIVERSIDADE ESTADUAL DE PONTA GROSSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO GRÁFICA PROFESSOR : ARIANGELO HAUER DIAS CADERNO DE ATIVIDADES Abril - 2007

Upload: api-3813652

Post on 07-Jun-2015

625 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Aula 5 - Computacao Grafica - Engenharia

UNIVERSIDADE ESTADUAL DE PONTA GROSSA

DEPARTAMENTO DE INFORMÁTICA

COMPUTAÇÃO GRÁFICA

PROFESSOR : ARIANGELO HAUER DIAS

CADERNO DE ATIVIDADES

Abril - 2007

Page 2: Aula 5 - Computacao Grafica - Engenharia
Page 3: Aula 5 - Computacao Grafica - Engenharia

AULA

5

Departamento de Informática Prof. Reinaldo Afonso Mayer Prof. Ariangelo Hauer Dias

Computação Gráfica 3

1. SISTEMA DE COORDENADAS

Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em um sistema 2D. O sistema de coordenadas serve para nos dar uma referência em termos de medidas do tamanho e posição dos objetos dentro de nossa "área de trabalho".

Um determinado sistema de coordenadas é denominado de Sistema de Referência de Coordenadas. Ao definirmos um sistema de referência de coordenadas, devemos especificar dois aspectos principais : a unidade de referência básica e os limites extremos dos valores aceitos para descrever os objetos.

Exemplos de sistemas de coordenadas (unidade de trabalho), que podemos utilizar : - Escala em milímetros, - Escala em centímetros, - Escala em kilômetros

- Escala em "unidades de medida" (genérica). Neste caso a determinação da unidade real é feita em um momento posterior, o objeto é todo descrito em termos de uma unidade genérica, mas mantendo mesmo assim as suas relações de posição e tamanho

1.01. Sistema de Referência do Objeto (SRO) :

Neste sistema de referência fazemos com que cada objeto seja um universo individual, ou seja, cada objeto tem suas coordenadas descritas em função de um ponto extremo deste. As coordenadas são relativas ao próprio objeto, são relativas a uma extremidade do objeto. Exemplo:

Sistema de referência do objeto

1.02. Sistema de Referência do Universo (SRU) ou WCS:

Descrição dos objetos em termos de coordenadas do universo. O universo é o sistema de referência utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário. Sendo assim, cada usuário especifica o seu universo (mundo) de trabalho, por exemplo, para sistemas de CAD de arquitetura o universo deverá ser metros ou centímetros e para um CAD de mecânica o universo provavelmente será em milímetros, bem como cada um destes sistemas de CAD deverá ter suas limitações extremas (coordenadas mínimas e máximas do universo).

Page 4: Aula 5 - Computacao Grafica - Engenharia

AULA

5

4 Computação Gráfica Departamento de Informática Prof. Reinaldo Afonso Mayer

Prof. Ariangelo Hauer Dias

Exemplo : Universo de trabalho --> Escala em milímetros

Limites da área de trabalho : X - 0 à 100000

(Valores inteiros) Y - 0 à 100000

Sistema de referência do universo

1.03. Sistema de Referência Normalizado (SRN) :

Trabalha com as coordenadas normalizadas, onde 0 < X < 1 e 0 < Y < 1, sendo que ambos os eixos tem suas coordenadas expressas por números reais. Serve como um sistema de referência intermediário entre o SRU e o SRD. Sua principal aplicação é tornar a geração das imagens independentes de dispositivo, pois as coordenadas de universo são convertidas para o SRN que é um sistema de coordenadas padrão (normalizado), necessário para as operações.

1.04. Sistema de Referência do Dispositivo (SRD) :

Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de saída específico. Usualmente denominamos a saída no vídeo como sendo uma saída que utiliza-se do SRT (sist. de refer. da tela). Exemplos :

Vídeo CGA : X = 0 à 639, Y = 0 à 479, numa tela 640 X 480

xwmax xwmin

janela

ywmin

ywmax

0 10

1

xvmin xvmax

yvmin

yvmax

enquadramentoN W

WCSNDCS PDCS

2. OPERAÇÕES PARA EXIBIÇÃO DE MODELOS

TRANSFORMAÇÕES : De acordo com Venetianer( 1988, p. 154), todo pacote gráfico opera três tipos de transformações : As de segmentos ou geométrica, a normalizada e a de estação.

Transformações de segmento ou geométricas: As transformações geométricas são operações suplementares que podem ser utilizadas visando a alteração de algumas das

Page 5: Aula 5 - Computacao Grafica - Engenharia

AULA

5

Departamento de Informática Prof. Reinaldo Afonso Mayer Prof. Ariangelo Hauer Dias

Computação Gráfica 5

características - posição, orientação, tamanho - do objeto a ser desenhado. Normalmente são utilizadas quando se trabalha sobre o Sistema de Referência do Objeto - SRO.

Transformação normalizada: converte parâmetros para SRN, guardando características independentes do dispositivo.

Transformação de estação: Estabelecem a visualização da imagem nos dispositivos de visualização, de acordo com imposições físicas dos dispositivos.

Os processos de manipulação de imagens apresentados pelos sistemas gráficos devem dar a impressão aos seus usuários de que estes estão observando uma imagem através de uma pequena janela retangular, como uma câmera de TV (aproximando-se, afastando-se ou girando a câmera.

A esta área do universo que delimita a região de interesse do usuário em um dado instante chama-se JANELA DE SELEÇÃO ou WINDOW. Uma window é delimitada pelas coordenadas de seus cantos( inferior-esquerdo e superior-direito), os quais são dados, sempre, em valores que dizem respeito ao Sistema de Referência do Universo (SRU). Quando há, no universo, objetos (entidades) que ficam, total ou parcialmente, fora da Janela de Seleção (window) definida para visualização é preciso não exibí-los, como mostra a figura a seguir:

De forma análoga ao que foi feito para o Universo quando se delimitou, com a Janela de Seleção, a região de interesse do usuário, é possível definir em que parte da tela deseja-se exibir o que foi delimitado. A esta região dá-se o nome de JANELA DE EXIBIÇÃO OU VIEWPORT. Uma viewport é delimitada pelas coordenadas de seus cantos, os quais são dados, sempre, em valores que dizem respeito ao Sistema de Referência da Tela ( SRT ).

RECORTE: Ao processo de retirada dos objetos que não estão dentro da Janela de Seleção dá-se o nome de RECORTE. Sendo assim, com a inclusão do procedimento de recorte, o processo de visualização bidimensional fica esquematizado da seguinte maneira:

O recorte de pontos, linhas e caracteres para o caso de uma window está ilustrado na figura abaixo:

Page 6: Aula 5 - Computacao Grafica - Engenharia

AULA

5

6 Computação Gráfica Departamento de Informática Prof. Reinaldo Afonso Mayer

Prof. Ariangelo Hauer Dias

Diferentes bibliotecas gráficas utilizam esquemas diversos de transformações e mapeamento de coordenadas. No caso de uma biblioteca gráfica que utiliza primitivas gráficas bidimensionais, como o GKS (Graphical Kernel System), por exemplo, o modo de mapeamento é realizado através da definição de duas transformações. No GKS, especificado os limites da área de trabalho do usuário, cujo espaço é denominado de coordenadas de mundo, um retângulo em seu interior define a área de interesse para a visualização. Um segundo retângulo define o espaço das coordenadas normalizadas, na qual o retângulo é mapeado através da transformação de normalização. Nesta etapa pode se habilitar ou não operações de recorte (clipping) bem como de preservação ou não de relações de aspecto (aspect ratio), ou seja, o objeto original a ser exibido pode ser achatado ou esticado ou mantido com suas proporções iniciais inalteradas. A transformação de dispositivo MAPEIA as coordenadas de um retângulo definido no espaço das coordenadas normalizadas no das coordenadas de dispositivo. Nesta fase, não são permitidas operações de recorte e de alteração da relação de aspecto.

MAPEAMENTO: Para permitir então a visualização deste tipo de entidade (modelos) faz-se necessário realizar CÁLCULOS para conversão dos valores do modelo para valores compatíveis com as dimensões da tela. A esta conversão dá-se o nome de MAPEAMENTO. Um exemplo onde é necessária uma operação de mapeamento pode ser visto na figura a seguir.

Os recortes de pontos, linhas e caracteres são tratados POR ALGORÍTMOS ESPECIAIS, que serão tratados oportunamente na sua forma de implementação..

Page 7: Aula 5 - Computacao Grafica - Engenharia

AULA

5

Departamento de Informática Prof. Reinaldo Afonso Mayer Prof. Ariangelo Hauer Dias

Computação Gráfica 7

Há, no exemplo acima, dois sistemas de coordenadas distintos, um referente à aplicação e outro referente à tela. O primeiro é dito Sistema de Referência da Aplicação ou do Universo (SRU) e o segundo, Sistema de Referência da Tela ou do Dispositivo (SRT ou SRD).

Para se realizar o mapeamento entre estes dois Sistemas de Referência tomamos um ponto Pu de coordenadas (Xu, Yu), no SRU e tentamos obter seu correspondente (Xt, Yt) no SRT, ou seja, na tela. Iniciando pela componente X temos, de acordo com o seguinte diagrama:

Page 8: Aula 5 - Computacao Grafica - Engenharia

AULA

5

8 Computação Gráfica Departamento de Informática Prof. Reinaldo Afonso Mayer

Prof. Ariangelo Hauer Dias

3. COMANDOS BÁSICOS OPENGL

As funções glEnable e glDisable habilitam ou desabilitam funcionalidades do Opn GL.

GL_ALPHA_TEST Permite a utilização de funcionalidades ALFA.

GL_AUTO_NORMAL Faz os cálculos inerentes aos vetores que constituem uma superfície quando são utilizados tanto GL_MAP2_VERTEX_3 quanto GL_MAP2_VERTEX_4 para gerar vértices.

GL_BLEND Permite que misturar códigos RGBA com os valores utilizados no buffer de cores.

GL_CLIP_PLANEi Promove a possibilidade da união do recorte defnido pelo usuário com aquele que foi definido automaticamente pelo plano i.

GL_COLOR_MATERIAL Permite a especificação de um ou mais, para que estes sejam anexados ao esquema atual de cores.

GL_DEPTH_TEST Permite que sejam realizadas comparações de profundidade para que desta forma seja possível estabelecer comparações de profundidade entre os vértices.

GL_DITHER Permite a utilização de recursos de pulverização de cores.

GL_FOG Quando utilizado permite que sejam utilizados recursos de pós-texturização

GL_LIGHTING Gera a possibilidade da utilização de fontes de iluminação e respectivas equações de tratamento das mesmas.

GL_LINE_SMOOTH Quando habilitado permite o desenho das linhas utilizando o filtro correto.

A função gluPerspective estabelece a forma de projeção da matriz de perpectiva.

void gluPerspective( GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar );

Page 9: Aula 5 - Computacao Grafica - Engenharia

AULA

5

Departamento de Informática Prof. Reinaldo Afonso Mayer Prof. Ariangelo Hauer Dias

Computação Gráfica 9

Parâmetros:

fovy: especifica o valor em graus com a direção y.

aspect: determina o aspecto da visualização em relação a direção x. (o aspecto e a relação entre x (largura) e y (altura).

zNear: especifica a distância entre o observador até o plano de visualização (sempre positivo).

zFar: especifica a distância entre o observador e o plano mais distante (sempre positivo).

A função glClear limpa o buffer da janela de visualização.

void glClear( GLbitfield mask );

Parâmetros:

Mask: Mascara de bits que indica como o buffer do desenho será atualizado. Exitem quatro valores possíveis para este gerenciamento.

GL_COLOR_BUFFER_BIT: gerencia a cor do BIT.

GL_DEPTH_BUFFER_BIT: gerencia a cor da profundidade do BIT.

GL_ACCUM_BUFFER_BIT: gerencia a cor do buffer de acumulação.

GL_STENCIL_BUFFER_BIT: gerencia a cor do buffer tipo stencil.

A função glPolygonMode seleciona o modo de rasterização do polígono que foi desenhado.

void glPolygonMode( GLenum face, GLenum mode );

Parâmetros:

face: Especifica o modo de como o modo será aplicado ao polígono, pode ser GL_FRONT, GL_BACK ou GL_FRONT_AND_BACK.

mode: Especifica a forma de rasterização, os valores aceitos são: GL_POINT, GL_LINE eGL_FILL. O valor default é GL_FILL.

Os procedimentos glPushMatrix e glPopMatrix empilham e desempilham a matriz que representam os polígonos.

void glPushMatrix( void );

void glPopMatrix( void );

Os procedimentos glTranslated e glTranslatef multiplicam a matriz de coordenadas do polígono pela matriz de translação.

void glTranslated( GLdouble x, GLdouble y, GLdouble z );

Page 10: Aula 5 - Computacao Grafica - Engenharia

AULA

5

10 Computação Gráfica Departamento de Informática Prof. Reinaldo Afonso Mayer

Prof. Ariangelo Hauer Dias

void glTranslatef( GLfloat x, GLfloat y, GLfloat z );

Parâmetros:

x, y, z: especificam as coordenadas para a matriz de translação

Os procedimentos glRotated e glRotatef multiplicam a matriz de coordenadas do polígono pela matriz de rotação.

void glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z )

void glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z )

Parâmetros:

angle: Especifica o ângulo de rotação em graus.

x, y, z: especificam as coordenadas para a matriz de rotação

Os procedimentos glBegin e glEnd delimitam os vértices de uma primitiva ou conjunto de primitivas.

void glBegin( GLenum mode );

void glEnd( void );

Parâmetros:

mode: As seguintes constantes simbólicas podem ser utilizadas:

GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, e GL_POLYGON.