1
|
- UniverCidade - Prof. Ismael H F Santos
|
2
|
- 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
|
- 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
|
- 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
|
5
|
- 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
|
- 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
|
|
8
|
- Computação
- Algoritmos
- Estruturas de Dados
- Métodos Numéricos
- Matemática
- Geometria,
- Álgebra Linear
- Física
- Psicologia
- Artes
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
- 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
|
- 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çã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
|
|
27
|
- 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
|
- 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
|
- Dispositivo Vetoriais de Retraçamento
|
30
|
|
31
|
- Displays Monocromáticos com 2 niveis (1 bit/pixel)
- Planos de bits com
tabelas de tons de cinza
|
32
|
- Displays Coloridos – Tabela de Cores
|
33
|
- Displays Coloridos
-
Varredura (interlaced e
-
non-interlaced)
-
Pixel Colorido
|
34
|
|
35
|
|
36
|
- 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
|
37
|
- À 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
|