computação gráfica i - mat.ufc.bresdras/ck090_2007/notasdeaula/capitulo01.pdf · 4 sumário do...
TRANSCRIPT
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
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, ...
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)
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
40
1.1 Aplicações de CG
Realismo visual• Radiosidade• Renderização baseada em iluminação global • Balanceamento energético
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
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
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
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
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
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
121
1.5 A Câmera “Pinhole”
• Campo de profundidade da câmera– Infinito: Todos os pontos estão em foco
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
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
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
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