Sumário COMPUTAÇÃO GRÁFICA E INTERFACES Transformações Geométricas e Visualização D Transformações geométricas Pipeline de visualização D Transformação de coordenadas Window-Viewport Recorte (Clipping) Carlos Carreto Curso de Engenharia Informática Ano lectivo 3/4 Escola Superior de Tecnologia e Gestão da Guarda Modelo É uma representação de uma entidade física ou abstracta. Modelagem É o processo de representar algo através de modelos. Modelos em computação gráfica Representam os objectos e as cenas que se pretendem desenhar. Modelagem em computação gráfica É o processo pelo qual se descreve um modelo (objecto ou cena), de forma a que seja possível desenha-los.
Estruturas de dadas Os modelos são armazenados em estruturas de dados que armazenam a informação sobre os objectos e cenas. Existem várias técnicas de representação e armazenamento que dependem da natureza dos modelos e das operações que queremos fazer com eles. Técnicas de representação Por entidades matemáticas com representação analítica conhecida: círculos, linhas, curvas, etc representação por parâmetros ou coeficientes que permitem a reconstrução dos objectos através de um procedimento. Técnicas de representação Por amostragem de pontos: armazenamento dos pontos e identificação do método para a aproximação da curva ou superfície amostrada. Técnicas de representação Por enumeração de pontos imagem constituída por uma matriz de pontos (bitmap).
Técnicas de representação Por decomposição planar representação de áreas de uma superfície por subdivisão sucessiva e hierárquica do plano onde está definida. Técnicas de representação Por vértices e arestas é a técnica de representação mais comum. são armazenados os vértices e as arestas que aproximam os contornos dos objectos. Representação por vértices e arestas Vértices Arestas, y, 3, y, 3 Representação por procedimentos Quando o armazenamento numa única estrutura de dados é muito custoso, podemos usar a modelagem baseada em procedimentos onde apenas armazenamos um conjunto mínimo de parâmetros e a identificação de um procedimento capaz de reconstruir o modelo a partir desses parâmetros. É ocaso dos L- systems e dos fractais. 4 3, y3 4, y4..., 3 3, 4...
Pipeline de Visualização D Visão preliminar Transformações geométricas D Na maioria das aplicações os objectos que formam uma cena podem sofrear manipulações que alteram o seu aspecto. Estas manipulações são realizadas através de transformações geométricas. Modelo Processo de Visualização D Imagem Os objectos são formados por primitivas gráficas tais como pontos, linhas, curvas, etc. Estas primitivas são definidas por coordenadas cartesianos de pontos no espaço. As transformações geométricas são aplicadas a estas coordenada cartesianos alterando uniformemente o aspecto dos objectos, mas não a sua topologia. Isto é, o modelo do objecto não é alterado, pois as transformações geométricas são aplicadas apenas no momento em que o objecto é desenhado. Transformações geométricas D As transformações geométricas básicas são: Translação Transformações geométricas D Translação A translação troca um objecto de lugar adicionando uma constante de deslocamento às coordenadas de cada ponto do objecto. Variação de Escala ' + T ' + T Na forma matricial: Rotação [ ' ' ] [ ] + [ ] T T
Transformações geométricas D Translação Exemplo com Tx e Ty - Transformações geométricas D Variação de escala A variação de escala altera o tamanho e/ou as proporções do objecto multiplicando as coordenada de cada ponto por factores de escala. ' E ' E Na forma matricial: E [ ' ' ] [ ] E Transformações geométricas D Variação de escala Exemplo com Ex e Ey Transformações geométricas D Variação de escala em relação a um ponto fixo º Translação de modo a fazer coincidir o ponto com a origem; º Variação de escala; 3º Translação inversa da primeira.
Transformações geométricas D Variação de escala em relação a um ponto fixo Exemplo: P(, ), E e E Transformações geométricas D Rotação (, ) cos φ sen φ (, ) cos (φ + θ) cos φ cos θ senφ sen θ y sen (φ + θ) sen φ cos θ + cos φ sen θ θ φ. cos θ. senθ. cos θ +. sen θ Transformações geométricas D Rotação A rotação roda todos os pontos do objecto, segundo um ângulo θ em relação à origem. Transformações geométricas D Rotação Exemplo com θ 9º ' cos θ - sen θ ' sen θ+ cos θ Na forma matricial: cosθ - senθ senθ [ ' ' ] [ ] cosθ
Transformações geométricas D Rotação em relação a um ponto arbitrário º Translação de modo a fazer coincidir o ponto com a origem; º Rotação; 3º Translação inversa da primeira. Unindo tudo numa única formula: ' (- r) cos θ - (- r) sen θ ' (- r) cos θ+ ( r) sen θ Onde ( r, r ) é o ponto de referencia, em torno do qual será feita a rotação Transformações geométricas D Coordenadas homogéneas Verificamos que a representação matricial das transformações não é sempre igual. A translação é tratada como uma soma, enquanto que a variação de escala e a rotação são tratadas como multiplicações. As transformações devem ser tratadas da mesma maneira para que possam ser facilmente combinadas. Para uniformizar a representação matricial das transformações usamos coordenadas homogéneas. Transformações geométricas D Transformações geométricas D Coordenadas homogéneas P(, ) -> P(W, W, W), para W Na computação gráfica consideramos W Translação: [ ' ' ] [ ] T T Composição das transformações Uma vez que ao usar coordenadas homogéneas, todas as transformações são tratadas como multiplicações, podemos criar uma transformação composta, combinando várias matrizes numa só, multiplicando-as. Depois multiplicamos os vários pontos do objecto pela matriz resultante. Variação de escala: [ ' ' ] [ ] E E Exemplo: Ponto P(3,, ) Transformações E(, ) e T(, ) Rotação [ ' ' ] [ ] cosθ - senθ senθ cosθ P (P E) T ou P P (T E)
Transformações geométricas D Composição das transformações P (P E) T P P (T E) [ ] [ ] [ ] [ ] 3 8 6 3 ' ' [ ] [ ] [ ] 3 8 3 ' ' Pipeline de visualização D Sistema de Referência do Objecto (SRO) O SRO é o espaço de coordenadas mais adequado à criação do objecto. Pipeline de visualização D Sistema de Referência do Universo (SRU) Depois de modelados, os objectos são posicionados no universo. O SRU é o espaço de coordenadas do universo. Pipeline de Visualização D Modelo (SRO) Processo de Visualização D (SRU) Imagem Transformações geométricas Revisitado
Instanciação Por vezes os objectos de uma cena são derivados de um mesmo modelo, isto é, são instâncias do mesmo modelo. Instanciação O uso de instâncias torna o universo menor pois para representar instâncias diferentes basta armazenar o nome do modelo e os parâmetros de instanciação. O armazenamento das instâncias pode ser realizado usando tabelas ou listas com o nome do modelo e os valores dos parâmetros de instanciação Modelo Cor T T E E θ Casa As instâncias possuem a mesma estrutura básica, mas diferem num conjunto de parâmetros como a cor, o tamanho, a posição, etc. Árvore Árvore... Mapeamento Notemos que os modelos são criados no SRO para posterior instanciação no SRU. As informação do modelo, bem como das instâncias referem-se à aplicação e não ao dispositivo. Isto é, os modelos são criados independentemente do dispositivo. Para visualizar as instâncias é então necessário converter as coordenadas do modelo para coordenadas do dispositivo. Mapeamento O mapeamento converte as coordenadas do sistema de referência do universo (SRU) para o sistema de referência do dispositivo (SRD). P SRU ( U, U ) P SRD ( D, D )
Mapeamento Para determinar a coordenada D Mapeamento Para determinar a coordenada D (Invertemos a relação dos eixos porque crescem em sentidos opostos ) Umax Dmax D U Dmin Umin Dmax Umax Dmin Umin Umax Dmin D U Dmax Umin Dmin Umax Dmax Umin U D U D ( ) ( Dmax Dmin U Umin D + Umax Umin ) Dmin ( ) ( Dmin Dmax U Umin D + Dmax Umax Umin ) Umin Dmin Umin Dmax Mapeamento Notar que o mapeamento pode ser visto como uma transformação composta que inclui uma translação, uma variação de escala e outra translação. Window e Viewport A Window é a área do universo que interessa visualizar e tem coordenadas no SRU. A Viewport é a área do dispositivo onde o conteúdo da Window vai ser mapeado e tem coordenadas do SRD. ( ) ( Dmax Dmin U Umin D + Umax Umin ) Dmin Window Viewport
Pipeline de Visualização D Recorte (Clipping) É necessário haver uma etapa de recorte que elimine os objectos que ficam total ou parcialmente fora do Window. Modelo (Descrição geométrica No SRO) Transformações Geométricas Instanciação dos objectos (SRU) Especificação da Window Recorte (SRU) Especificação da Viewport Mapeamento SRU -> SRD Rasterização (SRD) Imagem (Matriz de pontos)