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

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

Nov 18, 2018

Download

Documents

LeTuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Computação Gráfica - retondaro.pro.br · 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

Page 2: Computação Gráfica - retondaro.pro.br · 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

Page 3: Computação Gráfica - retondaro.pro.br · 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

Page 4: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

4

Introdução

Relação da matemática com a arte

Exemplo de fractal

Page 5: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

5

Introdução

Relação da matemática com a arte

Exemplo de fractal

Page 6: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – 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.

Page 7: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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.

Page 8: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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.

Page 9: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

9

Computação Gráfica

Histórico

Page 10: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

10

Computação Gráfica

1885– Início da tecnologia CRT

Page 11: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

11

Computação Gráfica

1927– Indústria cinematográfica define o

padrão de 25 imagens por segundo (fps)

Page 12: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 13: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

13

Computação Gráfica

1959– surge o termo

Computer Graphics, criado por L. Hudson da Boeing

Page 14: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

14

Computação Gráfica

1961– no MIT é

criado o primeiro jogo de computador (Spacewars) para o computador DEC PDP-1

Page 15: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

15

Computação Gráfica

1963– Sutherland

apresenta um sistema de desenho interativo de primitivas gráficas 2D baseado em caneta luminosa

Page 16: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

16

Computação Gráfica

1963– Englebart

inventa o dispositivo de interação “mouse”

Page 17: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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)

Page 18: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 19: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 20: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 21: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

21

Computação Gráfica

1966– é lançado no mercado o primeiro

console caseiro de jogos Odissey

Page 22: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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)

Page 23: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 24: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

24

Computação Gráfica

1974– Catmull desenvolve o algoritmo

Z-Buffer– Inviável nesta época, mas a

tecnologia do futuro

Page 25: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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)

Page 26: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 27: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

27

Computação GráficaModelagemGeométrica

Processamentode Imagens

DadosAnálise

(reconhecimento depadrões)

Síntese(rendering)

Imagens

Page 28: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 29: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 30: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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)

Page 31: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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)

Page 32: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

32

Conversão entre representações

Repr. Vetoriais

Rasterização, Reconhecimento

“Scan conversion” de padrões

Repr. Matriciais

Page 33: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 34: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 35: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

35

Arquitetura de Sistemas Gráficos

Barramento (BUS)

CPU Periféricos

MemóriaFrameBuffer

Controladorde vídeo Monitor

Arquitetura Simples

Page 36: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 37: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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

Page 38: Computação Gráfica - retondaro.pro.br · CC BY-SA 2017 Engenharia de Computação CEFET/RJ – campus Petrópolis Prof. Luis Retondaro – Aula 1 Apresentação Computação Gráfica

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.

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

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