Baixe o app para aproveitar ainda mais
Prévia do material em texto
Computação Gráfica I aula 02 Primitivas de Rasterização Computação Gráfica I2 ➢ O que devo usar para desenvolver aplicações gráficas ? Bibliotecas Gráficas Computação Gráfica I3 ➢ Pipeline básico Bibliotecas Gráficas Processamento de vértices Recorte e e combinação de primitivas Rasterização Produção de linhas Processamento de fragmentos Vértices Pixels Computação Gráfica I4 ➢ Pipeline básico: processamento de vértices ➢ Vértices são processados independentemente. ➢ Transformações de coordenadas ➢ Determinação de cor para cada vértice. Bibliotecas Gráficas Computação Gráfica I5 ➢ Pipeline básico: recorte e combinação de primitivas ➢ Primitiva = objeto –> linha ou polígono. ➢ Recorte: ajuste de cada primitiva ao campo de visão disponível. ➢ O recorte é executado em cada primitiva separadamente. ➢ As primitivas precisam ser criadas a partir dos vértices para serem aparadas. Bibliotecas Gráficas Computação Gráfica I6 ➢ Pipeline básico: rasterização – produção de linhas ➢ As primitivas após o recorte ainda são fornecidas em termos de vértices. ➢ Rasterização: processo de converter as primitivas em informação de pixel – qual pixel pertence ao objeto e como deve ser pintado. ➢ O resultado do processo de rasterização é um conjunto de fragmentos, um para cada primitiva. Bibliotecas Gráficas Computação Gráfica I7 ➢ Pipeline básico: processamento de fragmentos ➢ Verifica entre os fragmentos aqueles que devem ser visíveis na janela (viewport) ➢ Verifica a profundidade ➢ Adiciona textura ➢ Adiciona efeitos de cor e iluminação Bibliotecas Gráficas Computação Gráfica I8 ➢ Organização básica: Bibliotecas Gráficas Aplicação Biblioteca Gráfica (API) Drivers Computação Gráfica I9 ➢ Organização básica: ➢ Biblioteca básica – API (Application Programming Interface). ➢ O que é uma API gráfica ? ➢Conjunto de funções ou classes que fornecem um interface para que os nossos programas possam acessar as facilidades gráficas. ➢ Porque se utiliza uma API gráfica ? ➢ Evita o conhecimento de detalhes de hardware e software. ➢ Facilita o processo de desenvolvimento. Bibliotecas Gráficas Computação Gráfica I10 ➢ Java 2D: é uma API para fazer desenhos em 2D. ➢ Java 3D: é uma API para 3D baseada na descrição da estrutura das cenas (grafos de cena). ➢ Java3D usa OpenGL ou DirectX para a renderização propriamente dita. ➢ É uma interface que permite o uso do paradigma de orientação a objeto. Bibliotecas Gráficas - Java 2D/3D Computação Gráfica I11 ➢ É uma coleção de APIs desenvolvida pela Microsoft para desenvolvimento de aplicações em multimidia e jogos nas plataformas Windows. ➢ Lida com gráficos, som, entrada/saída, rede, etc. ➢ É específica para os sistemas operacionais da família Windows. ➢ Possui um bom desempenho no processo de renderização em 3D e poucos recursos para 2D. ➢ O principal pacote do DirectX é o Direct3D. Bibliotecas Gráficas- DirectX Computação Gráfica I12 ➢ A Open Graphics Library foi desenvolvida pela Silicon Graphics. ➢ É uma API gráfica extremamente rápida para múltiplas linguagens de programação e múltiplas plataformas. ➢ Seu principal objetivo é servir de interface para aceleradores gráficos, escondendo os detalhes e a capacidade do hardware. ➢ Foi projetada para lidar com objetos 3D, mas também trata objetos 2D. ➢ Não trata sons ou outros recursos multimídia (somente gráficos). Bibliotecas Gráficas- OpenGL Computação Gráfica I13 ➢ Entrada: ➢Primitivas 2D ➢ Saída: ➢Coleção de fragmentos de pixels a serem pintados, juntamente com seus atributos (cor, profundidade, etc.) Rasterização Computação Gráfica I14 ➢ w = largura do plano ➢ h = altura do plano Rasterização Computação Gráfica I15 ➢ Mapeando o plano cartesiano (2D) em pixels: Rasterização Computação Gráfica I16 ➢ Exemplo: Rasterização Computação Gráfica I17 ➢ Exemplo: Rasterização Computação Gráfica I18 ➢ Exemplo: Rasterização Computação Gráfica I19 UVA – Universidade Veiga de Almeida Geometria Analítica • Na definição Euclidiana, uma linha reta é a menor distância entre dois pontos. • É um elemento unidimensional que possui comprimento, mas não largura. Computação Gráfica • Uma linha reta possui atributos de comprimento e espessura (ou seja, largura) • Quando uma linha é desenhada na tela, uma série de pixels são distribuídos ao longo e são ligados através da função primitiva de desenho de ponto. • A série de pontos discretos não é suave: apresenta efeito gráfico de escada. • Dependendo do tamanho de cada pixel, uma linha desenhada na tela mostrará uma escada com mais ou menos degraus. Reta Conceitos Efeito escada Computação Gráfica I20 Características dos algoritmos para desenho de linhas retas • Limites - A linha reta deverá terminar precisamente, sem buracos entre o seu ponto inicial e final (iniciam e terminam em pontos endereçáveis da tela). • Continuidade - A linha reta deverá parecer uma reta contínua, embora inicie e termine em pontos endereçáveis da tela, ela pode passar por pontos não endereçáveis, o que significa que não têm representação gráfica, gerando uma descontinuidade. • Densidade - A linha reta deverá ter densidade constante, isto é os pontos devem ser igualmente espaçados. • Aspecto - A densidade da linha deverá ser independente de seu tamanho e ângulo. • Rapidez - A linha reta deverá ser desenhada rapidamente. Reta - Conceitos Computação Gráfica I21 ➢ Dado um segmento de reta entre P1= (x1, y1) e P2= (x2, y2) gostaríamos que a rasterização desse segmento tivesse as seguintes propriedades: ➢ Os pixels correspondentes às extremidades (P1 e P2 ) devem sempre ser renderizados; ➢ Os pixels atravessados pelo segmento de reta devem ser renderizados ➢ Na verdade, nem todos, apenas os mais próximos ao segmento; ➢ Espessura do segmento deve ser uniforme; ➢ Aparência do segmento deve ser linear e contínua; ➢ Rapidez na renderização. Segmentos de Reta Computação Gráfica I22 Propriedades de linha • Estilo de linha - A prática usual é a utilização de uma variável inteira que contém um padrão de bit. Este padrão é duplicado repetidamente ao longo da linha. • Largura da linha (peso) - Pode ser obtida redesenhando-se a linha para vários deslocamentos. A melhor maneira é redesenhar a linha deslocada de 1 pixel de cada vez. Reta - Conceitos Computação Gráfica I23 Equação da Reta • Seja uma reta PR e um ponto Q sobre ela. Considerando que os triângulos PAQ e PBR são semelhantes, então: B A B A Plado Plado Rlado Qlado , isto é: 12 1 12 1 xx xx yy yy , logo: 11 12 12 yxx xx yy y y2 y1 x1 x2 y x P R BA Q y - y1 y2 - y1 x2 - x1 x - x1 Reta - Conceitos Computação Gráfica I24 Equação da Reta (cont.) Comp Graf I - A Reta - Cap. 4 Colocando: Dx = x2 - x1 e Dy = y2 - y1 tem-se: 11 yxx Dx Dy y Fazendo: a Dy Dx e 11 x Dx Dy yb , obtém-se: bxay . a Dy Dx = tang() • O coeficiente a é denominado de coeficiente angular da reta e é representa a tangente do ângulo entre a reta e o eixo horizontal: • O coeficiente b é denominado de coeficiente linear da reta, e representa o ponto de interseção da reta com o eixo vertical. Computação Gráfica I25 Equação da Reta (cont.) y = a x + b Classificações da reta segundo o coeficiente angular a = DY / DX • a > 0 (DY e DX com mesmo sinal) : reta crescente • a < 0 (DY e DX com sinais diferentes) : retadecrescente • a = 0 (DY = 0) : reta horizontal • a = (DX = 0) : reta vertical • | a | = 1 : reta com variações de x iguais que às variações de y ➢ Os eixos x e y possuem o mesmo movimento: | DY | = | DX | • 0 < | a | < 1 - reta com variações de x maiores que as variações de y. ➢ O eixo dos x é o de maior movimento: | DY | < | DX | • | a | > 1 - reta com variações de y maiores que as variações de x. ➢ O eixo dos y é o de maior movimento: | DY | > | DX | Reta - Conceitos Computação Gráfica I26 Equação da Reta (cont.) y = a1x + b1 y’ = a2x’ + b2 • retas paralelas: a1 = a2 • retas perpendiculares: a1 = -1 / a2 Reta - Conceitos Computação Gráfica I27 Equações Paramétricas da Reta • A equação: y = a x + b não poderia representar linhas verticais (pois o coeficiente a seria infinito). • Os algoritmos anteriores são bastante rápidos e voltados para sistemas de processamento de imagens em mapa de bits. • Um algoritmo utilizando as equações paramétricas da reta é mais eficiente para sistemas vetoriais, onde se faz necessário a determinação de pontos notáveis tais como intercessão entre retas, etc., Reta - Conceitos Computação Gráfica I28 Equações Paramétricas da Reta (cont.) • Considere as equações: • Para t = 0 tem-se: x = x1 e y = y1 (extremo do segmento) • Para t = 1 tem-se: x = x2 e y = y2 (extremo do segmento) • Para t = 1/2 tem-se: x = (x1 + x2) / 2 e y = (y1 + y2) / 2 (ponto médio da linha) tyyyy txxxx . . 121 121 onde: t é um parâmetro que assume valores entre 0 e 1. Reta - Conceitos Computação Gráfica I29 Rasterização
Compartilhar