computação gráfica - 09 - início — univasf...
Post on 16-Nov-2018
220 Views
Preview:
TRANSCRIPT
Computação Gráfica - 09
Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br
www.univasf.edu.br/~jorge.cavalcanti
www.twitter.com/jorgecav
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 2
• Os objetos do mundo físico possuem formas altamente diversificadas, sendo impossível criar um programa gráfico que contenha cada uma destas possíveis formas.
– É necessário que se disponha de recursos que permitam a construção de um objeto qualquer a partir de primitivas e propriedades comuns entre os objetos.
• A suavização de curvas permite gerar uma série de objetos criados pelo homem que possuam superfície curva como garrafas, engrenagens, esferas etc .
Objetos 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 3
Planos
• São os objetos mais simples na geometria de 3 dimensões. Apesar de ser infinito, pequenas partes finitas podem ser usadas para compor um objeto. – Sua caracterização é dada por Ax + By + Cz + D = 0;
– x, y, z são coordenadas de um ponto pertencente ao plano no espaço e A, B, C e D são constantes que descrevem as propriedades espaciais do plano;
– Uma importante forma de caracterizar um plano é através do seu vetor normal, perpendicular ao plano.
Primitivas Básicas 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 4
Paralelepípedos
• Objetos muito comuns nas modelagens e representações 3D. – Sua definição pode ser dada a partir da posição de dois dos seus
vértices opostos ligados por uma diagonal.
– Se as 6 faces forem quadradas, temos um cubo.
Primitivas Básicas 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 5
Superfícies Quádricas
• São uma família de superfícies curvas representadas por entidades matemáticas cujas expressões contem termos quadráticos.
• Esferas – Todos os pontos da superfície estão à mesma distância do seu
centro(raio).
– Uma esfera é definida pela equação: x2 + y2 + z2 = r2
Primitivas Básicas 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 6
Elipsóides
• Semelhante à esfera, com a diferença que qualquer plano que corte uma esfera resultará em um círculo enquanto cortes feitos no elipsóide resultará em elipses. – É definido pela equação: (x/rx)
2 + (y/ry)2 + (z/rz)
2 = 1
– rx,, ry e rz são os coeficientes (raios) nos sentidos dos 3 eixos.
Primitivas Básicas 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 7
Toróides • É gerado pela rotação de um círculo ou elipse ao redor de um
eixo. – Um toróide gerado pela rotação de uma elipse que gira ao redor de
um eixo z e a uma distância r desse eixo é definido por:
Primitivas Básicas 3D
1
222
zrx y
z
y
y
r
xr
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 8
Criação de Objetos 3D
Modelagem de Objetos
Modelagem de cenas
Visualização de Cenas
É a fase onde deve-se descrever, de alguma forma, os objetos com os quais se trabalhará
Corresponde ao instanciamento dos objetos em um universo 3D
É a fase onde se procura gerar uma imagem de uma cena 3D anteriormente modelada. Geralmente obtém-se uma projeção 2D da cena 3D original, tal como em uma fotografia
Etapas
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 9
Representação
• A forma mais comum de representação tridimensional é através de um conjunto de superfícies poligonais que delimitam o interior de um objeto.
– Os programas gráficos geralmente traduzem a descrição do objeto
em termos de superfícies poligonais.
• A vantagem deste método é que as superfícies planas formadas permitem um tratamento através de equações lineares, o que
acelera o cálculo.
•
Aresta
Vértice
Face
Normal
Malha Poligonal
Representação de Objetos 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 10
Representação
• Uma segunda solução propõe a representação do sólido através de uma série de faces conectadas apropriadamente.
– Uma aproximação matemática simples pode ser utilizada para descrever cada face, e a exibição do objeto é produzida como o agregado destas faces.
Representação de Objetos 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 11
Representação
• A figura abaixo mostra um exemplo de um cilindro transformado numa superfície poligonal.
– As figuras podem ser apresentadas facilmente na forma de estrutura de arame.
• Além disso, o grau de detalhamento da superfície pode ser aumentado desde que a superfície seja dividida num número maior de polígonos, mais isso tem um custo computacional maior.
Representação Objetos 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 12
Visualização Tridimensional
• É um processo semelhante ao processo de visualização 2D, porém mais complexo, pois os dispositivos existentes são adequados à apresentação de imagens bidimensionais;
– É considerada, no entanto, uma nova etapa: a projeção;
• Através da projeção, as coordenadas de profundidade são tratadas corretamente;
• As imagens são vistas através de uma câmera virtual, que também representa a posição do observador do objeto/cena.
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 13
Visualização Tridimensional
• Dada a geometria (ponto) num sistema de coordenada de mundo, como visualizar (pixel)?
– Transformar para sistema de câmera
– Transformar (warp) para o volume de visualização
– Clip (cortar partes não visíveis)
– Projetar em coordenadas de display (janela)
– Rasterizar
xo
zo
yo
yc
xc
zc
xw zw
yw yim
xim
(R,T)
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 14
Visualização Tridimensional
• Pipeline da Visualização 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 15
Câmera Virtual
• A visualização pode partir de dois princípios:
– Câmera móvel: as coordenadas do universo não se modificam;
– Mundo móvel: o universo é movimentado em busca de um ângulo que permita uma melhor visualização;
• Define de que local a cena será exibida;
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 16
Câmera Virtual
• Um mesmo conjunto de objetos no universo tem diferentes coordenadas para cada posição, dependendo de quem os observa;
• É preciso definir a partir da posição da câmera e de sua orientação um novo sistema de referência, Sistema de Referência da Câmera (SRC).
• Antes de projetar qualquer entidade tridimensional é preciso obter suas coordenadas em relação ao SRC e somente então projetá-las.
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 17
Câmera Virtual
• Fatores que determinam como a imagem será projetada no plano para formar a imagem 2D:
– Posição da câmera;
– Direção ou orientação – vetor que vai da câmera ao ponto focal;
– Ponto focal – Para onde a câmera está apontando;
– Tipo de projeção;
– Posição dos planos de recorte.
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 18
Câmera Virtual
• Fatores que determinam como a imagem será projetada no plano para formar a imagem 2D:
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 19
Câmera Virtual
• Fatores que determinam como a imagem será projetada no plano para formar a imagem 2D:
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 20
Câmera Virtual
• Os planos de corte são usados para eliminar partes da cena que estão muito próximas ou muito distantes da câmera;
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 21
Estrutura de dados em 3D • Uma das formas mais utilizadas na representação de polígonos é
através de 3 tabelas, contendo respectivamente uma lista de vértices, uma lista de arestas e uma lista de polígonos.
V1
V2
V3
V4
V5
A1
A2
A3
A4
A5
A6
S2
S1
Tabela de arestas A1
V1
V2 A2
V2
V3 A3
V1
V3 A4
V3
V4 A5
V4
V5 A6
V1
V6
Tabela de vértices V1
x1
y1
z1 V2
x2
y2
z2 V3
x3
y3
z3 V4
x4
y4
z5 V5
x6
y6
z6
Tabela de polígonos S1
A1
A2
A3
S2
A3
A4
A5
A6
Tabela de polígonos S1
V1
V2
V3
S2
V1
V3
V4
V5
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 22
• As coordenadas de todos os vértices do objeto são armazenadas na tabela de vértices.
– A lista de arestas faz referência à tabela de vértices para
definir todas as arestas do objeto.
• De forma análoga, a tabela de superfície de polígonos utiliza a tabela de arestas para formar os elementos poligonais do objeto, ou então, como mostrado, um índice para a tabela de vértices
• Com as tabelas de vértices e arestas pode-se compor a imagem do objeto em estrutura de arame.
Estrutura de dados em 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 23
• Outra forma de armazenar estas informações seria com somente duas tabelas: a de vértices e a de polígonos.
– Neste caso, contudo, algumas arestas podem ser traçadas duas vezes.
• Outra alternativa é manter apenas a tabela de polígonos, mas além de inviabilizar a apresentação da estrutura de arame, também aumenta a necessidade de memória pois cada vértice pode aparecer em vários polígonos.
– Os atributos dos elementos podem ser armazenados em outras tabelas ou em campos adicionais.
– Pode-se optar pela carga dos atributos em tempo de execução, definidos dentro do código do programa.
Estrutura de dados em 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 24
Transformações Geométricas em 3D
Translação
czbyaxzyxzyxT cba ,,',',',,,,
1
0100
0010
0001
1,,,1,',','
cba
zyxzyx
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 25
Escala
czbyaxzyxzyxS cba ,,',',',,,,
1000
000
000
000
1,,,1,',','c
b
a
zyxzyx
Transformações Geométricas em 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 26
Rotação ao redor do eixo de cada eixo:
Transformações Geométricas em 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 27
Rotação ao redor do eixo X
cossin,sincos,
',',',,
zyzyx
zyxzyxRx
1000
0cossin0
0sincos0
0001
1,,,1,',','
zyxzyx
Transformações Geométricas em 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 28
Rotação ao redor do eixo Z
zyxyx
zyxzyxR z
,cossin,sincos
',',',,
1000
0100
00cossin
00sincos
1,,,1,',','
zyxzyx
Transformações Geométricas em 3D
25/03/2013 Computação Gráfica – Parte 10
Prof. Jorge Cavalcanti Página 29
Rotação ao redor do eixo Y
cossin,,sincos
',',',,
zxyzx
zyxzyxR y
1000
0cos0sin
0010
0sin0cos
1,,,1,',','
zyxzyx
Transformações Geométricas em 3D
top related