CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro Aula 1 Apresentação Computação Gráfica
CC BY-SA 2017
Engenharia de Computação
CEFET/RJ – campus Petrópolis
Prof. Luis Retondaro
Aula 1
Apresentação
Computação Gráfica
CC BY-SA 2017
Engenharia de Computação
CEFET/RJ – campus Petrópolis
Prof. Luis Retondaro – www.retondaro.pro.br
Aula 1
Apresentação
Computação Gráfica
6
Introdução
Cultura geral: matemática e arte [Maor, 1987]
Curiosidade sobre os números racionais
– As frações eram conhecidas pelo homem desde que aprendeu a contar, pois qualquer medida que não resulta exatamente em um número inteiro leva ao uso de frações.
– Os gregos, em particular, tiveram uma grande consideração pelas frações. Eles acreditavam - e essa era a essência do ensino pitagórico - que tudo na natureza deveria ser expressável em termos de índices de números inteiros.
– Esta filosofia, com maior probabilidade, teve sua origem na música– Como o próprio Pitágoras descobriu, os intervalos musicais comuns
produzidos por uma corda vibratória correspondem a ratios numéricos simples de comprimentos de cordas.
7
Introdução
Pitágoras– Como o próprio Pitágoras descobriu, os intervalos musicais comuns produzidos
pela vibração da corda de um instrumento correspondem a razão numérica simples de comprimentos de cordas.• Para produzir duas notas, com uma oitava separada, deixe vibrar primeiro em seu
comprimento total, e depois a metade do seu comprimento;• Assim, uma oitava corresponde à razão 2:1. • Do mesmo modo, o intervalo de um quinto corresponde à razão 3:2, um quarto para
4:3, e assim por diante...
– Na verdade, quanto mais agradável o intervalo soa, mais simples é a fração que o representa. • Os intervalos dissonantes têm relações mais complicadas, como 9:8 para o segundo e
16:15 para o meio tom.
– Como a música, a matemática e a filosofia tinha igual importância para os gregos, eles viram nesses fatos um sinal de que todo o universo é construído de acordo com as leis da harmonia musical, isto é, os números racionais.
– Assim, os números racionais dominaram a visão grega do mundo como o pensamento racional dominou sua filosofia. Na verdade, a palavra grega para razão é "logos" da qual se originou a atual lógica.
8
Computação gráfica
Definição da ISO
“um conjunto de ferramentas e técnicas para converter dados ;
para ou de um dispositivo gráfico
através do computador".
– CG é uma ferramenta que une matemática e arte
– Proporciona um maior poder de abstração, ajudando na criação de imagens complexas e em muitos casos não imaginadas.
11
Computação Gráfica
1927– Indústria cinematográfica define o
padrão de 25 imagens por segundo (fps)
12
Computação Gráfica
1950– Ben Laposky
cria as primeiras obras de arte com bases tecnológicas, usando um efeito de um osciloscópio
14
Computação Gráfica
1961– no MIT é
criado o primeiro jogo de computador (Spacewars) para o computador DEC PDP-1
15
Computação Gráfica
1963– Sutherland
apresenta um sistema de desenho interativo de primitivas gráficas 2D baseado em caneta luminosa
17
Computação Gráfica
1963– Zajac produz nos
laboratórios da Bell o primeiro filme gerado por computador (imagens formadas de linhas e texto)
18
Computação Gráfica
1963– surge o primeiro
sistema comercial de CAD (DAC-1)
– Wireframe– Problemas:
visibilidade, recorte, técnicas de modelagem 2D e 3D
19
Computação Gráfica
1963– Coons inventa a teoria de
representação de superfícies curvas através de “retalhos” baseados em aproximações polinomiais
20
Computação Gráfica
1965– Roberts cria um algoritmo de
remoção de partes invisíveis de segmentos de reta e introduz a noção de coordenadas homogêneas na representação geométrica de objetos
22
Computação Gráfica
1967– surge a primeira empresa de
produção computacional de animações e efeitos especiais, a MAGI (Mathematical Applications Group, Inc)
23
Computação Gráfica
1967– Rougelet cria o primeiro simulador de
vôo interativo da NASA
1972– Bushnell funda a empresa ATARI
1977– a Academia de Artes e Ciências
Cinematográficas de Hollywood cria a categoria de Oscar de Efeitos Especiais
24
Computação Gráfica
1974– Catmull desenvolve o algoritmo
Z-Buffer– Inviável nesta época, mas a
tecnologia do futuro
25
Computação Gráfica
Anos 80– Visualização
realista– Animação– Iluminação Global– Interfaces
Gráficas– Primeiro filme a
usar efeitos de CG: TRON (1982)
26
Computação Gráfica
Anos 90– Consolidação do raster (bitmap)– Visualização volumétrica– Captura de movimentos– Primeira animação em CG: Toy Story
27
Computação GráficaModelagemGeométrica
Processamentode Imagens
DadosAnálise
(reconhecimento depadrões)
Síntese(rendering)
Imagens
28
Disciplinas relacionadas
Computação – Algoritmos– Estruturas de
Dados–Métodos
NuméricosMatemática
–Geometria – Álgebra Linear
Física– Ótica– Mecânica
Psicologia– Percepção
Artes
29
Representação Gráfica
Gráficos Vetoriais– Representados por coleções de objetos
geométricos• Pontos, retas, curvas, planos, polígonos
Gráficos Matriciais– Amostragem em grades retangulares– Tipicamente, imagens digitais
• Matriz de pixels, cada pixel = 1 cor
– Dados volumétricos
30
Representação Vetorial
Permitem uma série de operações sem (quase) perda de precisão
– Transformações lineares / afim– Deformações
Porquê “quase”?– Estruturas de dados utilizam pontos e vetores cujas
coordenadas são números reais• Necessário usar aproximações
– Complexidade de processamento = O (nº vértices / vetores)
– Exibição• Dispositivos vetoriais• Dispositivos materiais (requer rasterização)
31
Representação Matricial
Representação flexível e muito comum– Complexidade de processamento = O (nº
pixels)– Muitas operações implicam em perda de
precisão (reamostragem)• EX.: Rotação, escala
– Técnicas como (anti-aliasing)
– Exibição• Dispositivos matriciais• Dispositivos vetoriais (requer técnicas de
reconhecimento de padrões)
32
Conversão entre representações
Repr. Vetoriais
Rasterização, Reconhecimento
“Scan conversion” de padrões
Repr. Matriciais
33
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)
Dispositivos Matriciais– Praticamente sinônimo de dispositivo gráfico
Impressoras, displays
34
Displays
Resolução espacial– Tipicamente de 1366x768 até Full-HD (1920x1080)
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
35
Arquitetura de Sistemas Gráficos
Barramento (BUS)
CPU Periféricos
MemóriaFrameBuffer
Controladorde vídeo Monitor
Arquitetura Simples
36
Arquitetura de Sistemas Gráficos
Barramento (BUS)
CPU Periféricos
MemóriaFrameBuffer
Contro-lador de vídeo
Monitor
Proces-sadorgráfico
Memóriado
Sistema
Arquiteturacom processador
gráfico
37
Processador Gráfico - GPU
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
38
Programação Gráfica
* CG usa de primitivas como pontos, linhas, curvas e formas ou polígonos (baseados em expressões matemáticas) para representar imagens. ---- Descrição Vetorial→
* Os desenhos vetoriais são baseados em vetores que são definidos pelos seus pontos de controle ou nós.
– Os mais simples são segmentos de retas definidos pelo seus pontos
– Cada um desses pontos possui uma posição definida no plano de trabalho.
– Com atributos como cor, forma e espessura e preenchimento.– Estas propriedades não aumentam o tamanho dos arquivos de
desenho vetorial, uma vez que todas as informações residem na estrutura que descreve como o vetor deve ser desenhado.
39
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) – Camadas de interface com o S.O. / sistema de janelas