Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Fundamentos de ComputaFundamentos de Computaçção Grão Grááficafica Aula 2Aula 2 2 GKS - Graphical Kernel System. 1a especificação gráfica (2D) padronizada (ANSI). Em 1988 surgiu o padrão GKS-3D. Pode-se agrupar primitivas geométricas linhas, polígonos, caracteres e seus atributos, em entidades denominadas segmentos. PHIGS - Programmer's Hierarchical Interactive Graphics System. Em PHIGS todas as primitivas são passíveis de transformações geométricas (escala, rotação e translação). Os grupos em PHIGS são hierárquicos. Pacotes Gráficos 3 OpenGL* - Open Graphical Library. É uma interface de programação funções para captura, geração e exibição de dados gráficos nos dispositivos gráficos. É uma API (Application programming Interface) padrão da indústria gráfica. Pacotes Gráficos * Criado em 1992 pela SGI em uma tentativa de portar para outras máquinas a biblioteca IRIS GL 4 Por que usar OpenGL? • É uma API padrão para desenvolvimento de aplicações gráficas 3D em tempo-real. •PROGRAMAS são baseados em OpenGL (ou são aplicações OpenGL). Eles são escritos em alguma linguagem de programação que faz chamadas a uma ou mais rotinas OpenGL 5 OpenGL http://fly.srk.fer.hr/~unreal/theredbook 6 OpenGL http://fly.srk.fer.hr/~unreal/theredbook 7 OpenGL http://fly.srk.fer.hr/~unreal/theredbook 8 OpenGL http://fly.srk.fer.hr/~unreal/theredbook 9 GL_QUAD_STRIP GL_POLYGON GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_POINTS GL_LINES GL_LINE_LOOPGL_LINE_STRIP GL_TRIANGLES GL_QUADS • O argumento de glBegin() determina qual objeto será desenhado OpenGL OpenGL -- ElementosElementos de de DesenhoDesenho 10 Sistema de Referência de Coordenadas: Nos dá referência de medidas tamanho e posição dos objetos dentro de uma área de trabalho. Sistemas a serem utilizados: SRO – Sistema de Referência do Objeto SRU – Sistema de Referência do Universo SRD – Sistema de Referência do Dispositivo Sistemas de ReferênciaSistemas de Referência 11 SRO SRU InstanciamentoInstanciamento 12 ProcessoProcesso de de VisualizaVisualizaççãoão Área de interesse (Window) Região na tela (viewport) SRU SRD 13 Modelo de OBJETO (Descrição Geométrica) Processo de Visualização IMAGEM P3 P2 P1 (0,0) Representação matricial Representação vetorial Pipeline Pipeline GrGrááficofico 14 Modelo de OBJETO (Descrição Geométrica) Processo de Modelagem OBJETO (Real ou Imaginário) // Estrutura que descreve um ponto (X, Y) Typedef struct XY { float x; float y; } PontoXY; PontoXY P1, P2, P3; P3 P2 P1 (0,0) glBegin( GL_TRIANGLE ); glColor3f(1.0f, 0.0f, 0.0f); glvertex2i (P1,P2); glvertex2i (P2,P3); glvertex2i (P3,P1); glEnd(); COD X Y P1 -5 0 P2 0 5 P3 5 0 Pipeline Pipeline GrGrááficofico 15 Window e ViewportWindow e Viewport Universo Tela Window 1 Viewport 1 Window 2 Viewport 2 Window 3 Viewport 3 SRU SRD 16 Compressão horizontal / Vertical MapeamentoMapeamento SRU SRU -- SRDSRD Original Window Viewport Viewport 17 Zoom-in / Zoom-out: ampliação / redução MapeamentoMapeamento SRU SRU -- SRDSRD Window ViewportsWindow Window 18 Pan / Panning • Movimento panorâmico sobre os objetos. • Produzido quando move-se a janela de seleção de tamanho fixo sobre eles. MapeamentoMapeamento SRU SRU -- SRDSRD 19 RecorteRecorte Composição (registro) da imagem: • cena; • olho/câmera. 20 RecorteRecorte Deslocamento à esquerda 21 Rasterizar significa “escolher pixels” Processo de conversão da geometria do objeto (representação vetorial) em pixels (representação matricial) no caso de dispositivos matriciais. Processo acontece frequentemente (por isso os algoritmos de rasterização devem ser eficientes) RasterizaRasterizaççãoão 22 RasterizaRasterizaççãoão Problema de Aliasing O desejado O gerado (aliasing) Com tratamento (antialiasing) 23 RasterizaRasterizaççãoão Problema de Aliasing 24 RasterizaRasterizaççãoão: : DesenhoDesenho de de LinhasLinhas Line Scan 25 Sejam as retas definidas por – preta P1=(0,0) e P2=(5,2) – vermelha P1=(0,1) e P2=(1,4) Quais são os pixels ligados? Alg. Básico DDA Bresenham RasterizaRasterizaççãoão: : DesenhoDesenho de de LinhasLinhas 26 RasterizaRasterizaççãoão 27 RasterizaRasterizaççãoão Demonstração: Raster Algorithms: Bresenham's Algorithm, Rasterization, Antialiasing http://www.cs.technion.ac.il/~cs234325/Applets/doc/ht ml/etc/AppletIndex.html#Raster-Algorithmen 28 DesenhoDesenho de de PolPolíígonosgonos Polígono é dado por uma lista de vértices Último vértice = primeiro vértice O OpenGL rasteriza apenas triângulos – Triângulos são casos especiais de polígonos – Polígonos genéricos precisam ser triangulados • Triangulação faz parte da biblioteca de utilitários (gluTesselate) 29 Objetos TridimensionaisObjetos Tridimensionais Sólidos Não Sólidos Superfícies Fenômenos Naturais Gelatinosos/ Emborrachados 30 Descrição espacial dos elementos (vértices, arestas, faces, etc.) de um objeto. Sistema Cartesiano / Sistema de Coordenadas XYZ Z X Y Y X Z SistemaSistema de de coordenadascoordenadas 31 Sistemas de Coordenadas no Espaço 3D OpenGL FundamentosFundamentos 32 FundamentosFundamentos 33 Métodos ou Formas de Representação 3D: Poligonal / Aramada / Wireframe Objeto3D Superfícies Polígonos Vértices Arestas Modelagem 34 O objeto é representado através de seus elementos (pontos, vértices, faces) Alto grau de realismo durante a criação ou alteração do modelo. Edição mais fácil e visualização rápida. Modelagem Métodos ou Formas de Representação 3D: Poligonal / Aramada / Wireframe Objeto3D Superfícies Polígonos Vértices Arestas 35 Quadtree Modelagem Métodos ou Formas de Representação 3D: Subdivisão do espaço / Enumeração Espacial 36 Octree Modelagem Métodos ou Formas de Representação 3D: Subdivisão do espaço / Enumeração Espacial 37 Caso especial de decomposição de células Modelagem Métodos ou Formas de Representação 3D: Subdivisão do espaço / Enumeração Espacial 38 Métodos ou Formas de Representação 3D: Geometria fractal ModelagemModelagem http://www.dcc.uchile.cl/~ekrsulov/cursos/cc52b/ terreno fractal nuvem fractal 39 Métodos ou Formas de Representação 3D: Geometria fractal ModelagemModelagem Programa Demonstração http://www.softwarefederation.com/fractal.html 40 Polígonos Limites Métodos ou Formas de Representação 3D: B-Rep (Boundary Representation) ModelagemModelagem 41 ModelagemModelagem Métodos ou Formas de Representação 3D: Geometria de Sólidos Construtivos (CSG - Constructive Solid Geometry) 42 ModelagemModelagem Métodos ou Formas de Representação 3D: Trem construido através da técnica CSG csgmovie.mov 43 ModelagemModelagem Métodos ou Formas de Representação 3D: Sweep (varredura) Sólidos são descritos por: • geratriz (forma planar) • diretriz (tragetória) Programa Demo SWPRJ.exe 44 Baixa resolução Média resolução Alta resolução ModelagemModelagem Métodos ou Formas de Representação 3D: Superfícies paramétricas / Patches paramétricos 45 Os tipos de patches dependem de como os pontos de controle são interpretados ao descrever uma superfície: Bèzier, Spline, Hermite... ModelagemModelagem Métodos ou Formas de Representação 3D: Superfícies paramétricas / Patches paramétricos 46 A superfície Bézier é baseada na curva Bézier. Interpola o primeiro e o último pontos de controle(outros dão a direção da curva nos pontos extremos). Provê grande controle sobre sua forma por parte do usuário. ModelagemModelagem Métodos ou Formas de Representação 3D: Curvas e superfícies de Bèzier 47 ModelagemModelagem Métodos ou Formas de Representação 3D: Curvas e superfícies de Bèzier ( Utah Teapot) Mais detalhes em http://www.sjbaker.org/teapot 48 A curva na qual se baseia a superfície B-spline É totalmente aproximada. Aparência muito suave. ModelagemModelagem Métodosou Formas de Representação 3D: Curvas e superfícies Spline 49 A curva do tipo Hermite, interpola o primeiro e último pontos de controle. Os outros dois pontos são vetores que determinam a tangente da curva nos pontos interpolados. O comprimento destes vetores define a curvatura da curva nos pontos extremos. ModelagemModelagem Métodos ou Formas de Representação 3D: Curvas e superfícies de Hermite 50 ModelagemModelagem Programa de demonstração de Curvas Bèzier, Spline e Hermite http://www.siggraph.org/education/materials/HyperGraph/ modeling/splines/demoprog/curve.html Programa Demonstração 51 Câmera Sintética x Observador Virtual Observador virtual: é uma figura fictícia que pode “caminhar” ao redor de um objeto 3D (ou no seu interior) carregando consigo uma câmera sintética para registrar as “poses” dos objetos. Definição da posição do observador virtual equivale a definir a posição da câmera sintética; Idéias sobre câmeras fotográficas ou de filmagem são incorporadas nas APIs gráficas 3D CâmeraCâmera SintSintééticatica 52 CâmeraCâmera SintSintééticatica 53 Transformações de visualização: Caso 1: transformação geométrica sobre os objetos CâmeraCâmera SintSintééticatica 54 Transformações de visualização: Caso 2: transformação sobre a câmera virtual CâmeraCâmera SintSintééticatica 55 CâmeraCâmera SintSintééticatica 56 A. Projeção Paralela Ortográfica Superior Lado Frontal ProjeProjeççõesões 57 B. Projeção Perspectiva Descoberto por Donatello, Brunelleschi, e DaVinci durante a Renascença ProjeProjeççõesões 58 B. Projeção Perspectiva Na Computação Gráfica 3D, a tela é considerada o plano de projeção 2D do mundo real 3D. Que altura o coelho deve ter? ProjeProjeççõesões 59 C. Comparação entre as projeções Ortográfica:• preserva as dimensões relativas do objeto;• é usada para obter vistas precisas dos lados dos objetos;• não dá uma representação real da aparência do objeto. Perpectiva: • simular a visão do olho humano/câmera fotográfica; • objetos distantes ao plano de projeção são projetados menores; • objetos mais próximos ao plano de projeção são projetados maiores; • não preserva as dimensões relativas do objeto. ProjeProjeççõesões 60 ProjeProjeççõesões Programa Demonstração 61 Iluminação 15 red balls by Kamal Birdi; www.irtc.org; jul/aug 2005 62 A renderização produz imagens 3D com alta qualidade e requinte de detalhes como se fosse uma foto, às vezes iludindo o observador pelo realismo aplicado. Visualização com Renderização Flower by Bernard hatt; www.irtc.org; jul/aug 2005 63 Fundamentos de Luz e Cor 64 Luz Cromática e Acromática A luz é uma radiação eletromagnética e corresponde à porção visível do espectro eletromagnético. A luz visível varia de 400-700nm A cor é uma sensação provocada pela presença de luz no ambiente. As cores se diferenciam devido ao tamanho de onda de luz que elas possuem. Fundamentos de Luz e Cor 65 Modelo de cor (ou sistema de cor) explica como uma cor é formada, quais suas propriedades e comportamento. Processos de formação da cor (combinação das cores) Aditivo Subtrativo Técnicas de Renderização 66 Modelo RGB Usa o sistema de coordenadas cartesianas R, G, B, cujo espaço de interesse é representado por um cubo. A diagonal do cubo representa os tons de cinza. As coordenadas RGB em geral não são transferíveis, isto é, os mesmos valores de coordenadas não reproduzem exatamente a mesma cor em diferentes dispositivos. Técnicas de Renderização 67 Modelo CMYK Adotado em vários dispositivos de hardcopy através do depósito de pigmentos coloridos no papel. As cores primárias utilizadas no modelo CMYK são o ciano, magenta, amarelo e preto, respectivamente. Técnicas de Renderização Y C M 68 Modelo HSV Técnicas de Renderização É o espaço de cor mais intuitivo Saturation Value (luminozidade) Hue (matiz) 69 H S V Cor 0 1.0 1.0 Red 120 1.0 1.0 Green 240 1.0 1.0 Blue * 0.0 1.0 White * 0.0 0.5 Gray * * 0.0 Black 60 1.0 1.0 270 0.5 1.0 270 0.0 0.7 Modelo HSV O modelo HSV(Hue, Saturation, Value) baseia-se na percepção humana de cores quanto os componentes matiz, saturação e concentração de brilho. É mais intuitiva Usa o sistema de coordenadas cartesianas H, S, V, cujo espaço de interesse é representado por um prisma Técnicas de Renderização 70 Modelo HSV Técnicas de Renderização Vista de cima da pirâmide hexagonal que define o espaço HSV 71 Iluminação Lighting Na Computação Gráfica, a luz digital nos ajuda a perceber as superfícies dos objetos que pertencem a uma cena. Lighting 72 Considerações sobre a iluminação de objetos em uma cena – objetos isolados são iluminados em função dos materiais que os constituem – interação entre objetos • um objeto pode refletir outros objetos • pode ser opaco e fazer sombra em outros • pode ser transparente e “deixar” passar a luz Lighting 73 Iluminação é o processo que calcula o comportamento de um raio de luz quando atinge uma superfície. Como a luz interage com os objetos de uma cena? Emissão/Transmissão Absorção Refração. Reflexão Técnicas de Renderização 74 Luz: Tipos de Fontes Emissoras de Raios Ambiental Ilumina todas as superfícies dos objetos de igual forma e mesma intensidade. Gera uma iluminação constante em todos os pontos do objeto. A luz refletida dependerá das propriedades da superfície. Posição da luz não é importante A posição da câmera não é importante Propriedades da superfície não são importantes Cena com um ponto de luz ambiental 75 Luz: Tipos de Fontes Emissoras de Raios Direcional Todos os raios chegam à superfície de uma mesma direção. Todos os raios que chegam à superfície são paralelos. A intensidade dos raios não diminui com a distância. Simula os raios solares. Luz do Sol Mesma cena anterior iluminada com um ponto de luz direcional e um ponto luz ambiental 76 Luz: Tipos de Fontes Emissoras de Raios Pontual Emite luz igualmente em todas as direções Os raios atingem a superfície em diversas inclinações, portanto em intensidades diferentes . Simula uma luz incandescente. 77 Luz: Tipos de Fontes Emissoras de Raios Spot Light A luz é emitida a partir de um ponto e distribuída em forma de cone. A intensidade dos raios são atenuados em todas as direções. Quanto mais próximo da fonte de luz, a intensidade do raio é maior. Quanto mais longe da fonte de luz, a intensidade cai em todas as direções. Simula spots lights comuns. 78 Luz: Tipos de Fontes Emissoras de Raios Difusa É o resultado da luz que vem de uma direção, atinge a superfície e é refletida em todas as direções. Superfícies refletem luz difusa igualmente em todas as direções. Ocorre quando a superfície do objeto é opaca ou escura e com saliências (Ex.: parede de alvenaria). 79 Luz: Tipos de Fontes Emissoras de Raios Especular Objetos com superfície brilhosa refletem quase que totalmente a luz em uma direção preferencial. O ângulo de reflexão é igual ao ângulo de incidência. Gera um brilho com a cor da luz e não com a cor do objeto. Ocorre quando a superfície de objeto é polida ou metalizada. N LR θθ θ(l)ight = θ(r)eflection 80 Luz: Tipos de Fontes Emissoras de Raios Emissiva Simula a luz emitida por outro objeto. 81 Luz: Tipos de Fontes Emissoras de Raios Comparação: Difusa x Especular 82 O olho humano usa a técnica de sombreamento para identificar a forma, posição e profundidade dos objetos Tratar todos os raios de luz numa cena é muito caro! Modelos de Sombremanto nos dão uma idéia bastante aproximada de como são os objetos numa cena com pouco custo computacional. Modelos de Sombreamento (Shading) 83 Métodos de sombreamento: Flat Shading / Constant Shading http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm É a abordagem mais simples de shading. Usado para exibir objetos facetados com maior velocidade Calcula o valor de um ponto e o mesmo é atribuído a todos os outros pontos do objeto (constante). ShadingFlat Shading sem reflexão especular Flat Shading com reflexão especular 84 Métodos de sombreamento: Gouraud shading http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm A cor / luz é calculada em cada vértice do objeto. Busca obter suavidade na exibição de objetos com superfícies curvas quando representados por polígonos Shading Gouraud Shading sem reflexão especular 85 Métodos de sombreamento: Phong Shading http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm Calcula a iluminação em vários pontos de cada face do objeto. Técnica mais avançada/cara que tenta chegar mais próximo do real Shading Gouraud Shading com reflexão especular 86 Métodos de sombreamento: Comparação O cálculo do modelo de sombremento é feito: – uma única vez a cada face do objeto (Flat) – para cada vértice das faces (Gouraud) – para cada ponto das faces (Phong) Shading 87 Métodos de Iluminação Direta (ou Local) Trata apenas alguns raios de luz Algoritmos simples Técnicas: Ray Casting Polygon Shading Métodos de Iluminação Global Trata vários caminhos raios de luz Algoritmos complexos Técnicas: Ray Tracing Métodos de Monte Carlo Radiosidade Iluminação 88 Iluminação Direta: Ray Casting A cor de cada ponto do objeto (baseada na radiância da superfície) a ser definida no plano de projeção dependerá de como cada raio de luz alcança a superfície do objeto e com qual intensidade. Iluminação 89 Iluminação Global: Ray Tracing Método avançado utilizado para produzir reflexões. É o método mais adequado quando deseja-se criar um trabalho de alta qualidade ou com um grau de realismo tal que pode ser difícil distinguir uma cena real de uma virtual. Idéia principal: o algoritmo calcula as reflexões na superfície de um objeto seguindo cada raio de luz a partir de sua fonte de volta à câmera. O custo da renderização é grande. Iluminação (http://scheib.net/school/782/lab3/) 90 Iluminação Global: Radiosidade É o nome dado à luz gerada (tanto pela emissão quanto reflexão) entre os objetos que fazem parte da cena. Utilizada para melhorar a visualização de objetos com superfícies que não possuam brilho, ou que dispersam quase que totalmente a luz, pois a técnica de Ray-tracing não consegue retratar fielmente. O método foi desenvolvido para representar melhor cenas de interior de ambientes. Iluminação 91 Iluminação Global: Radiosidade Exemplos Iluminação 92 Comparação: Com e sem Radiosidade Iluminação Sem Luz Ambiente Sem Radiosidade Com Radiosidade Com Luz Ambiente Sem Radiosidade Com Radiosidade 93 Iluminação Comparação: Ray Tracing x Radiosidade Ray tracing simula as reflexões especulares bem mas as difusas de forma aproximada. Radiosidade simula as reflexões difusas quase que perfeitamente, entretanto, ignora as reflexões especulares. Algoritmos mais avançados mesclam os dois tipos de técnicas. 94 Iluminação Problema de Alising na Radiosidade 95 Iluminação Alising corrigido: técnica de anti-alising 96 Texturização 97 98 Aplicação de Textura 99 Aplicação de Textura 100 Alplicação da Textura Onde colar a imagem na geometria? 101 Aplicação da Textura Onde colar a imagem na geometria? 102 Formas de Mapeamento: Planar Mapping Mapeamento da Textura 103 Formas de Mapeamento: Cylindrical Mapping Mapeamento da Textura 104 Formas de Mapeamento: Spherical Mapping Mapeamento da Textura 105 Formas de Mapeamento: Box Mapping Mapeamento da Textura 106 Métodos de Mapeamento Texture Map Mip Map Light Map Displacement Map Shadow Map Bump Map Environment Map Mapeamento da Textura 107 Texture Map Mapeamento da Textura 108 Mapeamento da Textura Mip Map Múltiplas imagens, com níveis decrescentes de resolução são armazenadas Cada imagem tem metade da resolução da imagem antecessora 109 Mapeamento da Textura Light Map Cálculos em tempo-real dos efeitos da luz sobre um objeto são substituídos pelo armazenamento de uma amostra da contribuição da fonte de luz e aplica-se como textura. 110 Mapeamento da Textura Light Map O jogo Quake introduziu light maps na aplicação dos efeitos de luz em tempo-real nas cenas dos jogos eletrônicos. Light map 111 Mapeamento da Textura Bump Map Técnica usada para adicionar relevo ou rugosidade sem modificar a geometria do objeto. Esfera com textura difusa bump map com rugosidade Esfera com textura difusa + bump map com rugosidade 112 Mapeamento da Textura Bump Map + = 113 Mapeamento da Textura Bump Map 114 Mapeamento da Textura Displacement Map A textura é realmente utilizada para mover pontos da geometria. 115 Mapeamento da Textura Shadow Map Texturas podem ser utilizadas para gerar sombras. 116 Mapeamento da Textura Environment Map É o tipo de mapeamento que reflete na superfície dos objetos os elementos que compõe a cena. Suportado pelo OpenGL. 117 Mapeamento da Textura Alguns Exemplos 118 Mapeamento da Textura Alguns Exemplos 119 Mapeamento da Textura Alguns Exemplos
Compartilhar