Notes
Slide Show
Outline
1
Computação Gráfica
Introdução
  • UniverCidade - Prof. Ismael H F Santos


2
Considerações Gerais
  • Objetivo: Discutir os principais conceitos eos princípios básicos dos Sistemas Gráficos e a Programação em OpenGL.
  • A quem se destina : Alunos e Profissionais que desejem aprofundar seus conhecimentos sobre Computação Grafica e suas aplicações.


3
Bibliografia
  • Computação Gráfica Volume 1. Jonas Gomes e Luiz Velho. Instituto de Matemática Pura e Aplicada – IMPA.
  • Introdução a Computação Gráfica - Paulo Roma
    •  http://www.lcg.ufrj.br/compgraf1/downloads/apostila.pdf
    • http://www.lcg.ufrj.br/compgraf1/downloads/apostila.ps.gz
  • Notas do Curso ministrado na Universidade de Maryland pelo Prof. David Mount
    • ftp://ftp.cs.umd.edu/pub/faculty/mount/427/427lects.ps.gz
    • http://www.lcg.ufrj.br/~esperanc/CG/427lects.ps.gz
  • Apostila Fundamentos da Imagem Digital – Antonio Scuri
  • Computer Graphics: Principles and Practice, Second Edition. James Foley, Andries van Dam, Steven Feiner, John Hughes. Addison-Wesley.
  • OpenGL Programming Guide, 2nd Edition. Mason Woo, Jackie Neider, Tom Davis. Addison Wesley.
4
Bibliografia OpenGL
  • OpenGL® Programming Guide, 2nd Edition. Mason Woo, Jackie Neider, Tom Davis. Addison Wesley.
    • http://www.lcg.ufrj.br/redbook
  • Manual de referência online
    • http://www.lcg.ufrj.br/opengl
  • Sítio oficial do OpenGL
    • www.opengl.org


5
Conteúdo do Curso
  • Introdução
  • Gráficos vetoriais e matriciais
  • Dispositivos gráficos
  • Programação gráfica com OpenGL
  • Geometria
  • Câmeras e projeções
  • Modelagem geométrica
  • Cor
  • Iluminação local e global
  • Colorização (shading)
  • Visibilidade
  • Recorte
  • Rasterização
  • Mapeamentos
    • Textura
    • Rugosidade
    • Ambiente
  • Técnicas sobre imagens
    • Dithering
    • Quantização de cores
    • Codificação

6
Aplicações
  • Desenho Assistido por Computador (CAD)
  • Desenho Geométrico Assistido por Computador (CAGD)
  • Sistemas de Informações Geográficas (GIS)
  • Visualização Científica
  • Visualização Médica
  • Educação
  • Entretenimento
7
Áreas de atuação dos profissionais de CG
8
Disciplinas relacionadas
  • Computação
    • Algoritmos
    • Estruturas de Dados
    • Métodos Numéricos
  • Matemática
    • Geometria,
    • Álgebra Linear
  • Física
    • Ótica
    • Mecânica
  • Psicologia
    • Percepção
  • Artes


9
Computação Gráfica
10
Modelagem de Dados
11
Modelagem de Dados
12
Visualização
13
Visualização
14
Visualização
  • Cinema
15
Visualização
  • Jogos
16
Visualização
17
Visualização
18
Visão Computacional
19
Processamento de Imagens
20
Processamento de Imagens
21
Processamento de Imagens
22
Realidade Aumentada
23
Representações Gráficas
  • Gráficos “Vetoriais”
    • Representados por coleções de objetos geométricos
      • Pontos
      • Retas
      • Curvas
      • Planos
      • Polígonos
  • Gráficos “Matriciais”
    • Amostragem em grades retangulares. Matriz (m,n) onde cada elemento é uma estrutura de dados associada à cor e outros componentes da imagem.
    • Tipicamente, imagens digitais
      • Matrizes de “pixels”
      • Cada pixel representa uma cor
    • Dados volumétricos
      • Imagens médicas
      • Cada pixel representa densidade ou intensidade de algum campo
24
Representações Vetoriais
  • Permitem uma série de operações sem (quase) perda de precisão
    • Transformações lineares / afim
    • Deformações
  • Por que “quase”? Estruturas de dados utilizam pontos e vetores  cujas coordenadas são números reais
    • É necessário usar aproximações
      • Representação em ponto-flutuante
      • Números racionais
  • Complexidade de processamento = O (no vértices / vetores)
  • Exibição
    • Dispositivos vetoriais
    • Dispositivos matriciais (requer amostragem, i.e., rasterização)
25
Representações Matriciais
  • Representação flexível e muito comum
  • Complexidade de processamento = O (no de pixels)
  • Muitas operações implicam em perda de precisão (reamostragem)
    • Ex.: rotação, escala
    • Técnicas para lidar com o problema
      • Ex.: técnicas anti-serrilhado (anti-aliasing)
  • Exibição
    • Dispositivos matriciais
    • Dispositivos vetoriais (requer uso de técnicas de reconhecimento de padrões)
26
Conversão entre representações
27
Dispositivos Gráficos
  • Dispositivos vetoriais
    • Terminais gráficos vetoriais (obsoletos)
    • Traçadores (plotters)
    • Dispositivos virtuais
      • Ex.: Linguagens de descrição de página (HPGL / Postscript)
      • Rasterização implícita
  • Dispositivos Matriciais
    • Praticamente sinônimo de dispositivo gráfico
    • Impressoras, displays, scanners, frame grabber
28
Displays
  • Resolução espacial
    • Tipicamente de 640x480 até 1600x1200
    • Tendência de aumento
  • Resolução no espaço de cor
    • Monocromático (preto e branco)
      • Praticamente restrito a PDAs e equipamentos de baixo custo
    • Tabela de cores
      • Cada pixel é representado por um número (tipicamente 8 bits – de 0 a 255) que indexa uma tabela de cores (tipicamente RGB 24 bits)
      • Poucas (ex.: 256) cores simultâneas mas cada cor pode ser escolhida de um universo grande (ex.: 224)
      • Problema da quantização de cores
    • RGB
      • Cor é expressa por quantidades discretas de vermelho (red), verde  (green) e azul (blue)
      • Tipicamente 24 bits (8 bits para cada componente)
      • Quando o número de bits não é divisível por 3, a resolução do azul costuma ser menor que das outras 2 componentes
29
Dispositivos Vetoriais (1960...1985)
  • Dispositivo Vetoriais de Retraçamento





        •                                           Comportamento do Fósforo
30
Dispositivos Saída Vetorial (1970...1985)
  • Tektronix 4010


31
Dispositivos de Saída Matricial (1980...)
  • Displays Monocromáticos com 2 niveis (1 bit/pixel)






  • Planos de bits com                                                 tabelas de tons de cinza
32
Dispositivos de Saída Matricial (1980...)
  • Displays Coloridos – Tabela de Cores





33
Dispositivos de Saída Matricial (1980...)
  • Displays Coloridos
      •                                                Varredura (interlaced e
      •                                                                  non-interlaced)




      •                                                          Pixel Colorido

34
Arquitetura de Sistemas Gráficos
35
Arquitetura de Sistemas Gráficos
36
Processador (acelerador) gráfico
  • Hardware especializado
  • Uso de paralelismo para atingir alto desempenho
  • Alivia a CPU do sistema de algumas tarefas, incluindo:
    • Transformações
      • Rotação, translação, escala, etc
    • Recorte (clipping)
      • Supressão de elementos fora da janela de visualização
    • Projeção (3D ®2D)
    • Mapeamento de texturas
    • Rasterização
    • Amostragem de curvas e superfícies paramétricas
      • Geração de pontos a partir de formas polinomiais
  • Normalmente usa memória separada da do sistema
    • Maior banda
37
Programação Gráfica
  • À primeira vista: basta desenhar
    • Uma subrotina para desenhar cada tipo de objeto
  • Mas ...
    • Como fazer interação?
    • Como estruturar a cena?
    • Como controlar os atributos dos objetos?
    • Como resolver problemas de visibilidade?
    • Como suportar diversos dispositivos gráficos?
    • Como fazer programas independentes dos sistemas operacionais?
  • Ferramentas:
    • APIs gráficas (ex.: OpenGL, PHIGS, Java3D)
    • Camadas de interface com o S.O. / sistema de janelas