Computação Gráfica - 09 - Início — UNIVASF...

29
Computação Gráfica - 09 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação

Transcript of Computação Gráfica - 09 - Início — UNIVASF...

Page 1: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

Computação Gráfica - 09

Prof. Jorge Cavalcanti [email protected]

www.univasf.edu.br/~jorge.cavalcanti

www.twitter.com/jorgecav

Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação

Page 2: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 3: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 4: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 5: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 6: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 7: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 8: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 9: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 10: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 11: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 12: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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.

Page 13: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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)

Page 14: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

25/03/2013 Computação Gráfica – Parte 10

Prof. Jorge Cavalcanti Página 14

Visualização Tridimensional

• Pipeline da Visualização 3D

Page 15: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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;

Page 16: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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.

Page 17: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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.

Page 18: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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:

Page 19: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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:

Page 20: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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;

Page 21: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 22: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 23: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 24: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 25: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 26: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 27: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 28: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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

Page 29: Computação Gráfica - 09 - Início — UNIVASF ...jorge.cavalcanti/comput_graf09_Primi_EstDados... · polígonos utiliza a tabela de arestas para formar os elementos poligonais

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