computação gráfica - retondaro.pro.br · cc by-sa 2017 engenharia de computação cefet/rj –...

39
CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro Aula 1 Apresentação Computação Gráfica

Upload: letuyen

Post on 18-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

CC BY-SA 2017

Engenharia de Computação

CEFET/RJ – campus Petrópolis

Prof. Luis Retondaro

Aula 1

Apresentação

Computação Gráfica

2

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

4

Introdução

Relação da matemática com a arte

Exemplo de fractal

5

Introdução

Relação da matemática com a arte

Exemplo de fractal

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.

9

Computação Gráfica

Histórico

10

Computação Gráfica

1885– Início da tecnologia CRT

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

13

Computação Gráfica

1959– surge o termo

Computer Graphics, criado por L. Hudson da Boeing

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

16

Computação Gráfica

1963– Englebart

inventa o dispositivo de interação “mouse”

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

21

Computação Gráfica

1966– é lançado no mercado o primeiro

console caseiro de jogos Odissey

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