computação gráfica i - mat.ufc.bresdras/ck090_2007/notasdeaula/capitulo01.pdf · 4 sumário do...

168
Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

Upload: phamphuc

Post on 08-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Computação Gráfica I

CRAb – Grupo de Computação Gráfica

Departamento de ComputaçãoUFC

2

Objetivos

• Estudar – equipamentos, técnicas de programação e

conceitos matemáticos

• Para– representação, manipulação e projeção de

objetos bi- e tridimensionais– aplicar a problemas específicos

3

Sumário do Curso

• Sistemas Gráficos e Modelos• Programação Gráfica• Input e Interação• Objetos Geométricos e Transformações• Visualização• Pintura• Técnicas Discretas• Implementação de um Renderizador

4

Sumário do Curso

1. Sistemas Gráficos e Modelos1.1 Aplicações de Computação Gráfica (A1)

1.1.1 Mostrar informações1.1.2 Projeto1.1.3 Simulação e animação1.1.4 Interfaces com os usuários

1.2 Um Sistema Gráfico (A1)1.2.1 Pixels e o Frame Buffer1.2.2 Dispositivos de saída1.2.3 Dispositivos de entrada

5

Sumário do Curso

1.3 Imagens: Física e Sintética (A1)1.3.1 Objetos e observadores1.3.2 Luz e imagens1.3.3 Ray Tracing

1.4 O Sistema Visual Humano (A2)1.5 A Câmera “Pinhole” (A2)1.6 O Modelo da Câmera Sintética (A2)

6

Sumário do Curso

1.7 A Interface com o Programador (A2)1.7.1 Interfaces com os programadores de

aplicações1.7.2 O Modelo de Plotadora-de-Pena1.7.3 APIs tridimensionais1.7.4 Uma seqüência de imagens1.7.5 O Paradigma de Modelagem-Rederização

7

Sumário do Curso

1.8 Arquiteturas Gráficas (A3)1.8.1 Processadores gráficos1.8.2 Arquiteturas pipepline1.8.3 Transformações1.8.4 Clipping1.8.5 Projection1.8.6 Rasterização1.8.7 Características de desempenho

1. Sistemas Gráficos e Modelos

9

1.0 Computação gráfica

• Geração, manipulação e interpretação de imagens por meio de computadores

Síntese de imagens

Análise de imagens

Processamentode

imagens

representaçãovisual deimagens

especificaçãoabstrata da

imagem

10

1.0 Computação gráfica

• Síntese de imagens– In: objetos (geometria, material) e

iluminação– Out: cenário

• Processamento de imagens– In: imagem– Out: imagem melhorada ou com realce

• Análise de imagens– In: representação visual de uma imagem– Out: especificação de seus componentes

11

1.0 Computação gráfica

• Popularização– Avanços na tecnologia de hardware– Avanços na tecnologia de software

• Hardware– Maior velocidade de processamento

– Maior capacidade de armazenamento

– Menor preço

– Novos equipamentos especializados

12

1.0 Computação gráfica

• Software – Novas estruturas de dados

– Algoritmos mais eficientes

– Padronização

– Novas técnicas de modelagem

– Novas técnicas de renderização

13

1.1 Aplicações de CG

• Animação: uso de imagens estáticas para gerar cenas– simulação, filmes, vinhetas, jogos, entretenimento

• Ergonometria/Conectividade/Projeto de Interface: interação com usuários– interface "amigável"

• Fractais: representação de fenômenos naturais– uso na Matemática, representação de montanhas,

vegetação

14

1.1 Aplicações de CG

• Modelagem Geométrica: definição dos objetos e suas transformações – Engenharia e Arquitetura (CAD /CAM /CAE)

• Percepção Visual: estudo considerando os aspectos fisiológicos dos usuários – aprimoramento de técnicas de Computação

Gráfica• Processamento de Imagem: interpretação da

informação raster– Sistemas de Informações Geográficas e

Sensoriamento Remoto (Arc-Info /Spring)

15

1.1 Aplicações de CG

• Realidade Virtual: imersão em “mundo virtual”– Medicina, controle de processo remotos, educação

a distância, trabalhos cooperativos

• Realismo: utilização de técnicas de rendering– Publicidade e Propaganda (Adobe/CorelDraw)

• Visualização Científica: conjunto de técnicas que permitem a análise de modelos– modelagem e simulação

16

1.1 Aplicações de CG

• CAD (Computer-Aided Design)– Projetos de arquitetura, estruturas, peças

mecânicas, circuitos elétricos e eletrônicos, automóveis, indústria aeroespacial;

– Planejamento de ocupação em escritórios e fábricas

• Gráficos de Apresentação– Gráficos de barra, linha, pizza

17

1.1 Aplicações de CG

• Cartografia– Mapas climáticos, estatísticas

populacionais, geologia

• Modelagem e Simulação– Sistemas físicos e químicos, financeiros,

econômicos, fisiológicos, operação de equipamentos

18

1.1 Aplicações de CG

• Treinamento e Educação– Pilotagem de aviões, navegação de navios,

funcionamento de equipamentos, modelos de sistemas físicos

• Animação– Filmes, desenhos animados, modelagem e

simulação

• Arte Comercial– Anúncios televisivos, desenho de logotipos

19

1.1 Aplicações de CG

• Arte Criativa– Programas de desenho do tipo

“paintbrush”

• Interfaces Gráficas

– ícones em processadores de texto

– editores de publicações

– programas de desenvolvimento de projetos

20

1.1 Aplicações de CG

• Processamento de Imagens

– Apresentação e manipulação de fotografias

– Aplicações médicas

– Astronomia

– Análise geológica de fotos de satélite

21

1.1 Aplicações de CG

• Software gráfico ...– Animação: Aladim, Director, ...– Automação: CAM - Computer Aided

Manufacture, ...– Cálculo Matemático: MatCAD, WinSurfer, ...– Geoprocessamento: Idrisi, Spring,Arc-Info,

... – Internet: Flash, Image Composer e

Internet Space Builder (VRML)

22

1.1 Aplicações de CG

• ... Software gráfico– Produção: CAE - Computer Aided Engineer,

...

– Raster 2D: Adobe, CorelDraw, ...

– Vetorial/Raster 3D: CAD - Computer AidedDesign – AutoCad, ...

– Visualização Cientifica: Ensight, Fscan, PV-Wave, ...

23

1.1 Aplicações de CG

1.1.1 Mostrar informações– Modelos de terrenos

24

1.1 Aplicações de CG

1.1.1 Mostrar informações– Destruição da camada de ozônio

25

1.1 Aplicações de CG

1.1.1 Mostrar informações– Informações arquitetônicas

26

1.1 Aplicações de CG

1.1.1 Mostrar informações– Dados coletados ou simulados

27

1.1 Aplicações de CG

1.1.1 Mostrar informações– Campos bioelétricos

28

1.1 Aplicações de CG

1.1.1 Mostrar informações– Campo de petróleo

29

1.1 Aplicações de CG

1.1.1 Mostrar informações– Projeto Visual human

30

1.1 Aplicações de CG

1.1.1 Mostrar informações– Gráficos comerciais

31

Figure 1: Exploded view of the structure

1.1 Aplicações de CG

1.1.2 Projeto– Projeto do SACI (Satélite Científico

Brasileiro)

32

1.1 Aplicações de CG

1.1.2 Projeto– Projeto de elementos mecânicos

33

1.1 Aplicações de CG

1.1.2 Projeto– Projeto de arquitetura

34

1.1 Aplicações de CG

1.1.2 Projeto– Projeto de aeronaves

35

1.1 Aplicações de CG

1.1.3 Simulação e animação– Simulação de um modo de vibração do

SACI

36

1.1 Aplicações de CG

1.1.3 Simulação e animação– Simulações aerodinâmicas (CFD)

37

1.1 Aplicações de CG

Animação• Dar alma a um objeto

inanimado• É o controle do

movimento• Desafios

– Reproduzir movimentos reais

– Satisfazer a sensibilidade visual humana

– Complexidade dos modelos

38

Modelagem e CAD• Modelagem de dutos e

pavimentos • Simulação do comportamento

estrutural • Visualização das simulações

1.1 Aplicações de CG

39

1.1 Aplicações de CG

Realismo visual• Ray Tracing• renderização baseada em

iluminação global

40

1.1 Aplicações de CG

Realismo visual• Radiosidade• Renderização baseada em iluminação global • Balanceamento energético

41

1.1 Aplicações de CG

Realidade Virtual• Ambientes Virtuais para

Aprendizagem de Línguas

42

1.1 Aplicações de CG

Realidade Virtual• Integração de

ambientes virtuais a aplicações externas

43

1.1 Aplicações de CG

Realidade Virtual• Virtual Trip

44

1.1 Aplicações de CG

Realidade Virtual• Aprendizagem a distância

45

1.1 Aplicações de CG

Realidade Virtual• Bate-papo em ambiente

virtual• Parceria UFC/SoftBuilder

46

1.1 Aplicações de CG

Realidade Virtual• Ceará Virtual: Viagem de campo virtual

47

1.1 Aplicações de CG

Animação• Physically based

animation• Técnica de Spacetime

Constraints

48

1.1 Aplicações de CG

Animação• Physically based

animation• Técnica de

Controladores

49

1.1 Aplicações de CG

1.1.4 Interfaces com os usuários

50

Processador

Memória

Frame buffer

1.2 Um Sistema Gráfico

• Cinclo elementos principais− Processador − Memória− Frame buffer − Dispositivos de saída− Dispositivos de entrada

51

1.2 Um Sistema Gráfico

• Sistemas Gráficos Interativos – Projetados para criação e manipulação de

objetos de uma cena em um monitor de vídeo

52

1.2 Um Sistema Gráfico

1.2.1 Pixels e o Frame Buffer• Pixel: Significa Picture Element

–É um ponto em uma imagem gráfica

–Imagens são uma coleção de milhares ou milhões de pixels

–Pixels são distribuídos em linhas e colunas

53

1.2 Um Sistema Gráfico

1.2.1 Pixels e o Frame Buffer• Frame buffer: Uma parte de memória

onde as informações sobre os pixelssão armazenadas

54

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada• Teclado• Light Pen• Digitalizadora• Mouse• Joystick• Touch Panel• OBS: Estações-de-trabalho gráficas

combinam vários tipos de dispositivos de E/S

55

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada– Teclado

56

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada• Light Pen

57

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada• Light Pen

58

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada• Mouse e Digitalizadoras

59

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada• Mouse e Digitalizadoras

60

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada• Digitalizadoras 3D

www.3dscanner.ch/

61

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada• Digitalizadoras 3D

GoddessTamanho original: 19 x 21 x 30 cmNúmero de pontos: 74.275Número de polígonos: 148.546Número de scans: 27Base giratória: simTempo gasto: 4 horas

62

1.2 Um Sistema Gráfico

1.2.2 Dispositivos de entrada– Spaceball e Joystick

63

1.2 Um Sistema Gráfico

1.2.3 Dispositivos de saída• Plotadoras

64

1.2 Um Sistema Gráfico

1.2.3 Dispositivos de saída• Monitores

LCD Touch Screen

65

Tubo de Raios Catódicos (CRT)

• Dispositivo mais comum utilizado em monitores

CANHÃOELETRÔNICO

ACELERAÇÃO E

FOCALIZAÇÃO

DEFLECTOR HORIZONTAL

DEFLECTORVERTICAL

FÓSFOROFEIXE DE

ELETRONS

66

Tubo de Raios Catódicos (CRT)

• Persistência– tempo necessário para que a luz emitida

decaia a 1/10 de seu valor original (varia de poucos microssegundos a alguns segundos)

• Taxa de Atualização– número de vezes por segundo que os

pontos da tela são re-iluminados (30-60 vezes/segundo para uma resposta ocular correta)

67

Tubo de Raios Catódicos (CRT)

• Resolução– número de pontos exibidos por centímetro

• Aspect Ratio– razão entre o número de pontos

horizontais e verticais (ou vice-versa) por centímetro

68

Monitores de rastreio programado (Vetoriais)

• Linhas componentes da cena são exibidas em sucessão - numa ordem pré-definida

69

Monitores de rastreio programado (Vetoriais)

• Imagem armazenada como conjunto de instruções

• Taxa de atualização depende da complexidade da cena

– atualização inicia após traçado da última linha

70

Monitores de rastreio programado (Vetoriais)

• Cintilação – se cena refeita menos de 30

vezes/segundo

• Linhas bem definidas em alta resolução• Adequados para aplicações com

desenho de linhas

71

Sistemas Rastreio Programado (Vetoriais)

• Processadores de Exibição – Interface entre a CPU e o dispositivo de

exibição– Converte dados gráficos digitais para

analógicos (voltagem)

ProcessadorGráfico

DispositivosInterativos

Dispositivosde I/O CPU

Memória

72

Sistemas Rastreio Programado (Vetoriais)

• Processadores de Exibição – Conjunto especial de instruções para exibir

• Segmentos de linha• Texto• Diferentes estilos de linha• Curvas

73

Sistemas Rastreio Programado (Vetoriais)

• Executa ciclicamente a lista de comandos para atualizar a imagem na tela

Dispositipo deExibição

Arquivo de exibição contendo

o programa deatualização da

imagem(Lista de Comandos)

74

Sistemas Rastreio Programado (Vetoriais)

• Seqüência de operações • Para apagar objetos da tela

– Retira-se comandos correspondentes do arquivo de atualização

Arquivo de Tradutor em

imagemProcessador

GráficoProgramaGráfico

Arquivo de imagem

75

Sistemas Rastreio Programado (Vetoriais)

• Segmento de reta – Especificar coordenadas das extremidades– Passá-las ao Gerador de Vetores – Necessário um contador de instruções e

um controle lógico

Deflexão X

Deflexão Y

IntensidadeDispositivode Exibição

Gerador de Vetores

x1

x2

y1

y2

76

Sistemas Rastreio Programado (Vetoriais)

• Gerador analógico de vetores: linhas uniformes

• Linhas curvas: – conjunto de segmentos de retas

interligados

• Caracteres: – conjunto de segmentos de reta

77

Monitores CRT Coloridos ...

• Penetração de Raios

– método típico utilizado em sistemas

vetoriais

– duas camadas de fósforo de cores

diferentes

78

Direct-view storage tube(DVST)

• Não precisa fazer ciclo de atualização

da imagem

• Definição da figura armazenada como

uma distribuição de cargas no interior

do CRT

79

Direct-view storage tube(DVST)

Tela de fósforo

Grade de armazenagem

Grade coletora

canhãode

inundação

principalcanhão Sistema

de focalizaçãoe deflexão

[material não condutor]

feixe de elétrons de alta velocidade

feixe de elétrons de baixa velocidade

80

Direct-view storage tube(DVST)

• Vantagens– Não utiliza memória para definição de

figuras– Exibe figuras complexas sem problemas de

flicker (já que não ocorre atualização) – Alta resolução (~ 4.000 x 4.000)

• Desvantagens– Limite ou ausência total de cores– Não permite apagar seletivamente

81

Sistemas Rastreio Fixo (Matriciais)

• Baseado em tecnologia de TV – dispositivo gráfico de saída mais comum

• Pontos componentes exibidos linha a linha, de cima para baixo

82

Sistemas Rastreio Fixo (Matriciais)

• Pixel (Picture Element)– posição na tela ou – elemento da matriz raster

• Linha de rastreio (scan line) – linha horizontal de pixels

• Scan Conversion– Processo de digitalização da cena no frame

buffer

83

Sistemas Rastreio Fixo (Matriciais)

• Imagem armazenada como conjunto de valores de intensidade– um para cada ponto na tela

• Taxa de atualização constante – Atualização inicia após o traçado da última

linha de pixels (Vertical Retrace)• Interlacing (alternância de linhas)

– aumenta a taxa de atualização em sistemas capazes de atualizar 30 quadros/s

84

Sistemas Rastreio Fixo (Matriciais)

• Sistemas modernos – podem operar a 70 quadros/s “non-

interlaced”

• Adequado a cenas com regiões coloridas e texturas

– resolução pior do que a dos monitores vetoriais

85

Sistemas Rastreio Fixo (Matriciais)

• Máscara de Sombra – Técnica comum em monitores raster

Monitores RGB são monitores coloridos de alta qualidade

Triângulode pontosde fósforo

Máscara de sombra

Canhões de elétrons

86

Sistemas Rastreio Fixo (Matriciais)

• Percorre ciclicamente elementos da Matriz Raster– correspondência biunívoca com os pontos

da tela– armazenam intensidade de iluminação do

pixel Dispositivo

de Exibição

Matriz Raster(Frame Buffer, Bitmap Refresh Buffer)

87

Sistemas Rastreio Fixo (Matriciais)

• Gerador digital de vetores: – linhas digitalizadas

• Linhas curvas: – seqüência de pontos

• Caracteres: – conjunto de segmentos de reta

digitalizadas ou – grade retangular de pontos

88

Sistemas Rastreio Fixo (Matriciais)

• Seqüência de Operações

ProcessadorGráficoGráficos

Comandos Raster ControladorGráfico

RasterizaçãoAplicação Frame Buffer Controle daatualização

89

Sistemas Rastreio Fixo

• Memória necessária ao armazenamento da imagem – depende do número de valores de

intensidade disponíveis– Sistemas Preto e Branco: 1 bit/pixel– Sistemas coloridos: até 24 bits/pixel

90

Sistemas Rastreio Fixo

• Vantagem de sistemas raster• Armazenamento das intensidades no

raster– habilidade de lidar com áreas coloridas – habilidade de lidar com texturas

• Caracteres e símbolos especiais – grades-padrões pré-armazenadas – copiadas sobre o raster

91

Sistemas Rastreio Fixo (Matriciais)

• Interface entre a CPU e o dispositivo de exibição

• Converte dados gráficos digitais para analógicos (voltagem)

92

Painéis de Plasma

• Também opera sem atualização

Eletrodos Verticais

Eletrodos Horizontais

Túbulos de Gás Neon

93

Painéis de Plasma

• Fujitsu PDS-5001 PlasmavisionSlimscreen

• Dimensões:1.27m x 1.27m x 0.10m• Peso: 45kg

Hitachi CMP307XU 37" Plasma Display PanelDimensões:0.88m x 0.68m x 0.10mPeso: 30kg

94

Painéis de Plasma

• Pontos inicialmente iluminados por uma determinada voltagem (firingvoltage ~ 120V ) mantém-se iluminados por uma voltagem mais baixa (sustaining voltage ~ 90V )

• Transparentes• Resistentes• Baixa resolução• Caros

95

Monitores LED - LCD

• Light-Emitting Diodes / Liquid CrystalDisplays

• Armazenam a informação da figura em uma memória auxiliar (similar aos sistemas raster)

• Utilizados em micromonitores

96

Monitores LED - LCD

• Como funciona um LCD

97

Monitores LED - LCD

• Como funciona um LCD• Veja animação flash em:

– http://www.viewsonic.com/products/lcd101_howlcdswork.htm

• Comparing Conventional CRT and Flat Panel LCD Monitors– http://www.touchscreens.com/intro-

displaytech.html

98

Dispositivos Laser

• Figuras gravadas em tiras de filme com laser

• Imagens projetadas na tela com outra fonte luminosa

• Não é possível apagar seletivamente– Utilizar outra tira virgem para gerar

imagem modificada

99

Monitores Estereoscópicos

• Efeitos 3D – visões diferentes para cada olho– cada visão mostrada em um local diferente

do monitor coberto com tela polarizada • uma horizontal • outra vertical

100

Monitores Estereoscópicos

• In an active system – two alternating images

(left eye and right eye) are displayed at twice the standard refresh rate

– Active pair of glasses with two shutters works in synchronisation with the projector through an infrared emitter

• the left eye shutter is closed when the right eye information is projected and vice versa.

• Due to the higher refresh rate of the incoming signal, a projector with a 'fast phosphor' green CRT is required

101

Monitores Estereoscópicos

– Visualização através de óculos polarizados– Usuários têm de usar um capacete com

dois pequenos osciloscópios - um para cada olho

• Veja também – http://astronomy.swin.edu.au/~pbourke/

other/HET409/stereographics.html#20

102

1.2 Um Sistema Gráfico

• Leituras complementares– http://www.cms.dmu.ac.uk/~cfi/Network

s/ComputerGraphicsHardware/ComputerGraphicsHardware0.htm

– http://www.accad.ohio-state.edu/~waynec/history/timeline.html

– http://www.cs.wpi.edu/~matt/courses/cs563/talks/history.html

– http://www.siggraph.org/education/curriculum/misc/jmorie.html

103

1.3 Imagens: Física e Sintética

1.3.1 Objetos e observadores– Elementos básicos da formação de

imagens– Objetos são sintetizados em CG

– Posição no espaço– Combinação de primitivas geométricas

– Pontos– Linhas– Polígonos

– Sistemas CAD: interface para construçãode modelos sintéticos do mundo

104

1.3 Imagens: Física e Sintética

1.3.1 Objetos e observadores– Observador forma imagens dos objetos

– Sistema visual humano– Imagem formada na retina

– Câmera– Imagem formada no plano do filme

– Observadores distintos formam imagensdiferentes de um mesmo objeto

– Objetos e observadores estão no mundo3D

– Imagens são 2D

105

1.3 Imagens: Física e Sintética

1.3.2 Luz e imagens– Sem luz não há imagem– Luz oriunda de uma fonte luminosa

– Inside sobre os objetos– Parte da luz refletida penetra no olho do

observador

106

1.3 Imagens: Física e Sintética

1.3.2 Luz e imagens• Três elementos da visualização

– Fonte luminosa– Observador– Objeto mediador

• intermediário entre fonte luminosa e observador

• transmite luz• reflete luz

107

1.3 Imagens: Física e Sintética

1.3.2 Luz e imagens• Arranjos da visualização

– Cor iluminante: • observador olha diretamente para a fonte

luminosa

– Cor transmitida: • observador vê a luz passando por um filtro

– Cor refletida: • observador vê a luz refletida por um objeto

108

1.3 Imagens: Física e Sintética

• Cor iluminante

• Cor transmitida

• Cor refletida

109

1.3 Imagens: Física e Sintética

1.3.2 Luz e imagens• Luz

– forma visível de radiação eletromagnética– propaga-se em movimento ondulatório– velocidade = 300.000 km/s (no vácuo)– redução de velocidade em proporção ao

índice de refração do meio– comprimentos-de-onda da radiação visível

• 380 a 760 nanômetros (10-9 m)

110

1.3 Imagens: Física e Sintética

• Outas radiações eletromagnéticas– ondas de rádio – as microondas – radiação infravermelha – raios ultravioletas– raios-X– raios-gama

• Espectro electromagnético

Luz visível

111

1.3 Imagens: Física e Sintética

• Todas as radiações têm– v = c = 300.000 km/s– c = λ f– Energia de cada photon definida pela

equação de Planck • E = 6,626 × 10−34 f = 6,626 × 10−34 × (c/λ)• quanto menor o λ maior a energia

112

1.3 Imagens: Física e Sintética

• Espectro eletromagnético

113

1.3 Imagens: Física e Sintética

• Espectro eletromagnético

114

1.3 Imagens: Física e Sintética

1.3.3 Ray Tracing

115

1.4 O Sistema Visual Humano

lente Íris

Cones e bastonetes

córnearetina

Nervoóptico

116

• Luz entra pela córnea e pela lente• Íris abre e fecha para ajustar

quantidade de luz que entra• Lentes formam imagem na retina• Cones e bastonetes da retina são

sensores luminosos– 1 tipo de Bastonete: visão noturna– 3 tipos de Cones: visão diurna

• Acuidade visual = resolução– Tamanho mímimo de objeto

1.4 O Sistema Visual Humano

117

• Intensidade é medida física da energia luminosa

• Brilho é medida de quão intensa percebemos a luz emitida por um objeto

• Duas fontes de mesma intensidade emitindo luz monocromática são percebidas pelo olho com brilhos diferentes– Maior sensibilidade ao verde– Média sensibilidade ao vermelho– Baixa sensibilidade ao azul

• Sinais luminosos são processados no cortex visual

1.4 O Sistema Visual Humano

118

• Caixa com – um pequeno orifício no centro de uma das

faces– Filme na face oposta ao orifício

1.5 A Câmera “Pinhole”

x

y

z

(x, y, z)

d

Filme

Orifício

119

1.5 A Câmera “Pinhole”

• Vista lateral da câmera

z

y

(y, z)(yp’, -d)

d

dzyy

dzxx

p

p

/

/

'

'

−=

−=

Projeção

120

1.5 A Câmera “Pinhole”

• Campo de visão da câmera

z

y

h

d

dh

2tan2 1−=θ

121

1.5 A Câmera “Pinhole”

• Campo de profundidade da câmera– Infinito: Todos os pontos estão em foco

122

1.6 Modelo de Câmera Sintética

z

y

h

d dPlano de Projeção

Projetor

123

1.6 Modelo de Câmera Sintética

left top

rightbottom

z

y

x

Plano de Projeção(Janela)

124

1.7 A Interface com o Programador

1.7.1 Interfaces com os programadoresde aplicações (API)

Programade

Aplicação

Programade

Aplicação

BibliotecaGráfica

(API)

BibliotecaGráfica

(API)HardwareHardware

125

1.7 A Interface com o Programador

• APIs mais populares– OpenGL– PHIGS+– Direct3D– VRML– JAVA-3D

126

1.7 A Interface com o Programador

• Funções da API para o modelo de câmera

– Objetos– Observador– Fonte Luminosa– Propriedades dos materiais

127

1.7 A Interface com o Programador

• Objetos são compostos por primitivasbásicas

– Pontos– Segmentos de retas– Polígonos– Textos (às vezes)

128

1.7 A Interface com o Programador

• OpenGL Geometric Drawing Primitives– Bracket each set of vertices between glBegin()

and glEnd()– Pass appropriate argument to glBegin()

glBegin(GL_POLYGON) glvertex2f(0.0, 0.0);glvertex2f(0.0, 3.0);glvertex2f(3.0, 3.0);glvertex2f(4.0, 1.5);glvertex2f(3.0, 0.0);

glEnd()

GL_POLYGON

GL_POINTS

129

1.7 A Interface com o Programador

• OpenGL Geometric Drawing Primitivesvoid glBegin(Glenum mode);

Linked strip of quadrilateralsGL_QUAD_STRIP

Linked fan of trianglesGL_TRIANGLE_FAN

Linked strip of trianglesGL_TRIANGLE_STRIP

Same as above, with segment added between last and first verticesGL_LINE_LOOP

Series of connected line segmentsGL_LINE_STRIP

Quadruples of vertices interpreted as four-sided polygonsGL_QUADS

Triples of vertices interpreted as trianglesGL_TRIANGLES

Boundary of a simple, convex polygonGL_POLYGON

Pairs of vertices interpreted as individual line segmentsGL_LINES

Individual pointsGL_POINTS

MeaningValue

130

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_LINES);– If n is odd, the last segment is drawn

between vn-3 and vn-2 and vn-1 is ignored

v0

v1

v2v3

v4

v5

v6 v7

131

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_POLYGON);– If number of vertices is less than 3,

nothing is drawn– Polygon must be convex

v0

v1

v2

v3

132

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_TRIANGLES);

– If n is not multiple of 3, the last one or two vertices are ignored

v1

v0v2

v4 v5

v3

133

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_QUADS);

– If n is not multiple of 4, the last one, two

or three vertices are ignored

v1

v0

v2

v4

v5

v3

v6

v7

134

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_LINE_STRIP);– n-1 line segments are drawn– n must be larger than 1– Lines can intersect arbitrarily

v1

v0

v2

v4

v5

v3

135

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_LINE_LOOP);

– Same as GL_LINE_STRIP, except that the last segment closes the sequence of vertices

v1

v0

v2

v4

v5

v3

136

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_TRIANGLE_STRIP);

– n must be at least 3 for anything to be

drawn

v1

v0 v2 v4

v5

v3

137

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_TRIANGLE_FAN);

v1

v0

v2

v4v5

v3

138

1.7 A Interface com o Programador

• OpenGL Geometric Drawing PrimitivesglBegin(GL_QUAD_STRIP);

v1

v0 v2 v4

v5v3v7

v6

139

1.7 A Interface com o Programador

• Acesso direto a frame buffer– Lê pixesl: glReadPixels()– Escreve pixels: glDrawPixels()

140

1.7 A Interface com o Programador

• Observador (Câmera)– Várias maneiras de especificar câmera– Todas as formas de especificação devem

prover• Posição: De onde está olhando• Orientação: Para onde e como• Distância focal• Plano do filme

Filme Lente Position

Look Vector

141

1.7 A Interface com o Programador

• Fonte Luminosa– Localização– Intensidade– Cor– direcionalidade

142

1.7 A Interface com o Programador

• Propriedades dos materiais– Atribuída no momento de definição de

cada objeto– Reflectividade– Opacidade

143

1.7 A Interface com o Programador

1.7.2 O Modelo de Plotadora-de-Pena– Model Conceitual com Referência a um

Dispositivo de Saída• Produz images movendo uma caneta plotadora

sobre uma guia

< Pen plotter >

144

1.7 A Interface com o Programador

1.7.2 O Modelo de Plotadora-de-Pena– 2 Drawing Functions

• moveto(x, y);• lineto(x, y);

– Example :

moveto(0, 0);

(0, 0) (1, 0)

lineto(1, 0);

(1, 1)

lineto(1, 1);

(0, 1)

lineto(0, 1);lineto(0, 0);

145

1.7 A Interface com o Programador

• Vertex– Posição no espaço (2D, 3D, 4D)– Define os objetos geométricos básicos

1 : ponto

2 : segmento de reta

3 : triângulo, círculo

4 : quadrilátero

146

1.7 A Interface com o Programador

• OpenGL : glVertex*( )

– glVertex2i(GLint xi, GLint yi);

– glVertex3f(GLfloat x, GLfloat y, GLfloat z);

– glVertex3fv(vertex);

• #define GLfloat float

• GLfloat vertex[3];

147

1.7 A Interface com o Programador

• OpenGL: glBegin( ), glEnd( )– Especifica um tipo geométrico– Segmento de reta

– Dois pontos

glBegin(GL_LINES);glVertex2f(x1, y1);glVertex2f(x2, y2);

glEnd( );

glBegin(GL_LINES);glVertex2f(x1, y1);glVertex2f(x2, y2);

glEnd( );

glBegin(GL_POINTS);glVertex2f(x1, y1);glVertex2f(x2, y2);

glEnd( );

glBegin(GL_POINTS);glVertex2f(x1, y1);glVertex2f(x2, y2);

glEnd( );

(x1, y1)

(x2, y2)

(x1, y1)

(x2, y2)

148

1.7 A Interface com o Programador

1.7.3 APIs tridimensionais– As principais API 3D

• Discussão 3D API Discussion.htm

149

1.7 A Interface com o Programador

1.7.4 Uma seqüência de imagens• Wireframe de uma cadeira

150

1.7 A Interface com o Programador

1.7.4 Uma seqüência de imagens• Ray tracing

151

1.7 A Interface com o Programador

1.7.4 Uma seqüência de imagens• Fractais

152

1.7 A Interface com o Programador

1.7.4 Uma seqüência de imagens• Mais sobre renderização

153

1.7 A Interface com o Programador

1.7.5 O Paradigma de Modelagem-Rederização– Separar fase de Modelagem da fase de

Renderização

ModeladorModelador RenderizadorRenderizador

Arquivode

interface

154

1.7 A Interface com o Programador

– Separar fase de Modelagem da fase de Renderização

Modelagem Renderização

155

1.7 A Interface com o Programador

– RenderMan da PixarImagem do Filme Bug’s Life

156

1.8 Arquiteturas Gráficas

1.8.0 Early graphics systems

Programade

Aplicação

Programade

AplicaçãoAPIAPI

Hardware + Software

(implementamfuncionalidades

da API)

Hardware + Software

(implementamfuncionalidades

da API)

Computadorde Finalidede

Geral com arquitetura

von Neumann

Computadorde Finalidede

Geral com arquitetura

von Neumann

ConversorDigital-

Analógico

ConversorDigital-

Analógico

157

1.8 Arquiteturas Gráficas

1.8.1 Processadores gráficos– Host não faz atualização cíclica da imagem– Host monta imagem uma única vez– Envia imagem para processador gráfico– Processador Gráfico armazena imagem em

sua memória como “display list” (disp. file)

HostHost Processadorgráfico

Processadorgráfico

Display ListDisplay List

158

1.8 Arquiteturas Gráficas

1.8.2 Arquiteturas pipepline– Avanços das workstations– Circuitos VLSI de finalidade-especial – Memória “solid-state” barata Raster

displays– Pipeline

• Aumenta o throughput para múltiplosconjuntos de dados

++

a

**cb

159

1.8 Arquiteturas Gráficas

– Pipepline Geométrica

ClipperClipperTransformadorTransformadorVértices

ProjetorProjetorRasterizadorRasterizador

160

1.8 Arquiteturas Gráficas

1.8.3 Transformações– Concatenação de matrizes (4x4)

representando mudanças de • Coordenadas, • Forma e • Posição

até a imagem no dispositivo de saída– Seqüência de transformações pode ser

“pipelined” e tirar vantagem de paralelismo

161

z

x

y

z

x

y

z

x

y

z

x

y

1.8 Arquiteturas Gráficas

x

y

z

162

1.8 Arquiteturas Gráficas

1.8.4 Clipping– O mundo não pode ser visto todo de uma

só vez em um sistema gerador de imagens– Olho humano tem campo de visão de 90o

– Câmeras• Filme de tamanho limitado• Campo de visão ajustado através de lentes

– Câmera sintética• Retângulo de clipping no plano de projeção• Objetos projetados fora da janela são

recortados

163

1.8 Arquiteturas Gráficas

1.8.4 Clipping– Pode ocorrer em vários estágios do

processo de geração de imagens– Pode ser subdividido em uma seqüência de

clippers na pipeline

164

1.8 Arquiteturas Gráficas

1.8.5 Projection– Objetos 3D que não foram clipados e que

aparecerão na imagem devem ser projetados como objetos 2D

– Tipos de projeções• Paralelas (+ subtipos)• Perspectiva (+ subtipos)

165

1.8 Arquiteturas Gráficas

1.8.6 Rasterização– Os objetos projetados (2D) devem ser

representados como informações de pixelsarmazenados no frame buffer

– Processo também conhecido como “scanconversion”

– Final da pipeline de geração de síntese de imagem

166

1.8 Arquiteturas Gráficas

1.8.7 Características de desempenho– Dois tipos de processamento

• Geométrico• Manipulação de bits no Frame buffer

167

1.8 Arquiteturas Gráficas

– Processamento geométrico• Processamento de vértices pelos

transformadores e clippers• Geometry engine da SGI• Floating-point accelerator chips (ex. Intel i860)

– Transformações com matrizes 4x4 feitas no chip– Multiplicação de matrizes reduz-se a uma instrução

• Application Specific Integrated Circuits (ASICS)– Incluem no chip muitas das operações gráficas

168

1.8 Arquiteturas Gráficas

– Manipulação de bits no Frame buffer• Operações de movimentação de blocos de bits• Paralelização de processamento de bits

– Desempenho global do sistema depende• Velocidade de processamento geométrico na

pipepline• Quantos bits por segundo podem ser alterados

no Frame buffer