visualizaÇÃo em 3d - inf.unioeste.bradair/cg/notas aula/slides 05 - visualizacao... · u, ve...

82
VISUALIZAÇÃO EM 3D Adair Santa Catarina Curso de Ciência da Computação Unioeste – Campus de Cascavel – PR Fev/2019

Upload: buidung

Post on 13-Dec-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

VISUALIZAÇÃO EM 3D

Adair Santa CatarinaCurso de Ciência da Computação

Unioeste – Campus de Cascavel – PR

Fev/2019

Page 2: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Pipeline de Visualização

Corresponde a uma sequência de operações realizadas sobre os objetos 3D da cena para desenhá-los corretamente em uma tela 2D.

Objetos 3D Transformação de Câmera Recorte 3D

2

Objetos 3D

(SRU)de Câmera

(SRC)

Recorte 3D

Projeção

Rasterização

Mapeamento (SRT)

Imagem 2D

(SRT)

Page 3: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

O Modelo de Câmera

“View Up”

Planos de recorte:frente (n) e fundo (f)

3

Tipo de projeção

VRP - Posição da câmera

P - Ponto focal

“View Up”Orientação

Ângulo de visão

Page 4: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Movimentos de Câmera

4

� Dolly (in, out): modifica a distância da câmera;� Zoom (in, out): altera o ângulo de visão.

Page 5: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Sistema de Referência da Câmera (SRC)

Primeira etapa do pipeline de visualização:Transformação de Câmera

Objetivo

5

Converter as coordenadas dos

objetos do Sistema de Referência do

Universo (SRU) para o SRC.

Page 6: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Especificação do SRC

Definir a posição da câmera (VRP), o ponto focal (P) e o vetor de orientação da câmera (View Up).

“View Up”Orientação

6

Posição da câmera (VRP)

Ponto focal (P)

Orientação

Page 7: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Transformação de SRU para o SRC

Equivale a uma transformação que superpõe o SRC (mão-direita) ao SRU, usando transformações

geométricas de translação e rotação.

Processo em 2 etapas:

7

1) Transladar o VRP para a origem do SRU

T(-x0, -y0, -z0)

2) Aplicar rotações para alinhar os eixos do SRC (xv, yv, zv) com os eixos do SRU (xw, yw, zw).

Page 8: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Transformação de SRU para o SRC

Como determinar as rotações que alinham os eixos do SRC e do SRU?

Processo em 3 etapas:

1) Determinar o vetor n;

8

u, v e n formam a base ortonormal do SRC.

1) Determinar o vetor n;

2) Determinar o vetor v;

3) Determinar o vetor u.

Page 9: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Obtenção da Base Ortonormal do SRC

1) Calculando o vetor n:

9

PVRPN −=�

( )321 ,,ˆ nnnN

Nn == �

Page 10: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Obtenção da Base Ortonormal do SRC

2) Calculando o vetor v:Projetar um vetor Y qualquer sobre o plano de projeção obtendo o vetor V.

)0,1,0(=Y�

10

( ) nnYY

N

N

N

YNY

ˆˆ ⋅⋅=′

⋅⋅

=′

��

��

( )321 ,,ˆ vvvV

Vv == �

( ) nnYYV ˆˆ ⋅⋅−=���

Page 11: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Obtenção da Base Ortonormal do SRC

3) Calculando o vetor u:

NVU���

×=

11

( )321 ,,ˆ uuuU

Uu == �

nvu ˆˆˆ ×=

ou

Page 12: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Matriz de Transformação MSRU,SRC

A base ortonormal do SRC define a matriz de rotações que alinha os eixos do SRC aos eixos do

SRU.

=0

0

321

321

vvv

uuu

R

=010

001

0

0

y

x

T

12

=

1000

0

0

321

321

nnn

vvvR

−=

1000

100

010

0

0

z

yT

⋅−

⋅−

⋅−

=⋅=

1000

ˆ

ˆ

ˆ

321

321

321

,nVRPnnn

vVRPvvv

uVRPuuu

TRM SRCSRU

Concatenando as matrizes,

tem-se:

Page 13: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Exercício 01 – Conversão SRU, SRC

O objeto abaixo está descrito no SRU. Considerandoque a câmera está posicionada em VRP = (50, 15,30) e o ponto focal P = (20, 6, 15), converta ascoordenadas do objeto para o SRC.

E

13

A

B

C

D

A = (30, 2, 25)B = (35, 4, 20)C = (25, 3, 18)D = (20, 1, 23)E = (30, 10, 22.5)

Page 14: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Recorte 3D

A transformação de recorte 3D visa eliminar os objetos que estão fora do volume de visão (z > n

ou z < f).

Volume de visão

14

Plano de recorte da frente (n)

Plano de recorte do fundo (f)

Volume de visão

u

v

n

Page 15: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeções

Projeção é o processo que possibilita representar objetos tridimensionais (3D) em meios

bidimensionais (2D), que são os dispositivos de exibição utilizados nos computadores.

15

Page 16: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Taxonomia das Projeções

Oblíqua

(as projetantes não são

perpendiculares ao plano

de projeção)

Ortográfica

(as projetantes são

perpendiculares ao plano

de projeção)

Parelela

(projetantes paralelas)

- um ponto de fuga

- dois pontos de fuga

- três pontos de fuga

Perspectiva

(projetantes convergentes)

Projeções

16

Cabinet Cavalier

de projeção)

- Planta

- Lateral

- Frontal

Vistas

(plano de projeção

paralelos aos

planos principais

- Isométrica

- Dimétrica

- Trimétrica

Axonométricas

(planos de projeção

não paralelos aos

planos principais)

de projeção)

Page 17: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeção Paralela x Perspectiva

� Paralela: as projetantes que incidem no plano de projeção são paralelas entre si;

� Perspectiva: as projetantes convergem no centro de projeção.

17

Page 18: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeções Paralelas Oblíquas

Nas projeções oblíquas as projetantes não incidem perpendicularmente ao plano de projeção.

18

Page 19: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeções Oblíquas – Cabinet x Cavalier

Nas projeções oblíquas as dimensões das arestas paralelas ao plano de projeção são equivalentes às

dimensões reais do objeto.

19

Na projeção Cabinet há um encolhimento na profundidade para corrigir a distorção da

projeção oblíqua.

Page 20: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeções Paralelas Ortográficas

Nas projeções ortográficas as projetantes incidem perpendicularmente ao plano de projeção.

20

Page 21: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeções Ortográficas – Vistas

Nas vistas ortográficas a normal do plano de projeção e as projetantes coincidem com os eixos do

sistema cartesiano.

21

Page 22: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeções Ortográficas – Axonométricas

Os planos principais do objeto são oblíquos em relação ao plano de projeção.

22

Page 23: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Projeções em Perspectiva

� As arestas dos objetos convergem para os pontos de fuga;

� Ocorrência do encurtamento perspectivo.

23

Page 24: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Pontos de Fuga: um, dois e três

Três ponto

O número de eixos interceptados pelo plano de projeção determina o número de pontos de fuga.

24

Um pontode fuga

Dois pontosde fuga

Três pontode fuga

Page 25: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Anomalias da Projeção em Perspectiva

Encurtamento perspectivo

25

Pontos de fuga

Page 26: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Anomalias da Projeção em Perspectiva

Confusão visual

P1

P2

P3

P2’

P3’

VRP

26

P1’

P2

Distorção topológica

VRP

Page 27: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Matemática das Projeções Ortográficas

O plano de projeção é perpendicular à direção de projeção.

yyxx pp == ,

Vista Frontal

27

yyxx pp == ,

=

1000

0000

0010

0001

ortM

Page 28: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Matemática das Projeções em Perspectiva

Calcular as coordenadas dos objetos 3D, ao longo das projetantes, na interseção com o plano de

projeção.

P = (x, y, z)

plano de

28

Pp=(xp, yp, zp)

zprp

Xv

Yv

Zv

zvp

centro deprojeção

plano deprojeção

Page 29: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Matemática das Projeções em Perspectiva

P = (x, y, z)

Pp=(xp, yp, zp)

Yvzvp

Qualquer ponto Pp, ao longo de uma projetante, pode ser escrito como:

29

zprp

Xv

Yv

Zv

]1,0[

)(

=

⋅−−=

−=

−=

ucom

uzzzz

yuyy

xuxx

prpp

p

p

Quanto u = 0 � P = (x, y, z)

Quando u =1 � Pp = (0, 0, zprp)

Page 30: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Matemática das Projeções em Perspectiva

No plano de projeção sabemos que zp = zvp, então:

P = (x, y, z)

Pp=(xp, yp, zp)zz

u

uzzzz

uzzzz

vp

prpvp

prpp

−=

⋅−−=

⋅−−=

)(

)(

30

zprp

Xv

Yv

Zv

zvpzz

zzu

prp

vp

−=

Substituindo u em xp e yp, temos:

−=

−=

zz

zzyye

zz

zzxx

prp

vpprp

p

prp

vpprp

p pvpprp dzz =−

Page 31: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Matemática das Projeções em Perspectiva

Usando coordenadas homogêneas, podemos escrever a transformação perspectiva na forma

matricial.

0010

0001

xx

O fator homogêneo é:

31

−=

1100

00

0010

z

y

x

d

z

d

d

zz

d

z

h

z

y

x

p

prp

p

p

prp

vp

p

vp

h

h

h

p

prp

d

zzh

−=

homogêneo é:

h

yy

h

xx h

ph

p == ,

Portanto:

Page 32: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Exercício 02 – Projeções

Considerando o exercício 01, obtenhas ascoordenadas daquele objeto em projeção paralelaortográfica e perspectiva.

E

A = (30, 2, 25)B = (35, 4, 20)

A

B

C

D

B = (35, 4, 20)C = (25, 3, 18)D = (20, 1, 23)E = (30, 10, 22.5)

VRP = (50, 15, 30)P = (20, 6, 15)dp = 17

32

Page 33: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Mapeamento para o SRT

� A janela corresponde a uma porção visível do mundo;� Porta de visão é a região da tela correspondente.

33

Se janela e porta de visão não possuem a mesma razão largura/altura, então ocorrem deformações nos objetos.

Page 34: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Transformação Janela – Porta de Visão

� Uma matriz de TG composta por 3 passos;� Translação, Escala, Translação.

34

( )min min, ,0T x y− − ( )min min, ,0T u vmax min max min

max min max min

, ,1u u v v

Sx x y y

− −

− −

Page 35: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Transformação Janela – Porta de Visão

Concatenando as 3 transformações temos Mjp.

( ) ( )max min max minmin min min min

max min max min

, ,0 , ,1 , ,0jp

u u v vM T u v S T x y

x x y y

− −= ⋅ ⋅ − −

− −

35

max min max minmin min

max min max min

max min max minmin min

max min max min

0 0

0 0

0 0 1 0

0 0 0 1

jp

u u u ux u

x x x x

v v v vy vM

y y y y

− − − ⋅ + − − − −

− ⋅ += − −

Page 36: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

u

y

Transformação Janela – Porta de Visão

E se a viewport tem eixo v em sentido oposto ao eixo y?

36

x

y

v

window viewport

Page 37: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Transformação Janela – Porta de Visão

Em algum momento será necessário espelhar o objeto em relação ao eixo Ox.

37

Page 38: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Transformação Janela – Porta de Visão

Concatenando as 4 transformações temos:

( ) ( ) ( )max min max minmin max min min

max min max min

, ,0 , ,1 , ,0jp

u u v vM T u v E Ox S T x y

x x y y

− −= ⋅ ⋅ ⋅ − −

− −

���

38

max min max minmin min

max min max min

min max max minmin max

max min max min

0 0

0 0

0 0 1 0

0 0 0 1

jp

u u u ux u

x x x x

v v v vy vM

y y y y

− − − ⋅ + − − − −

⋅ += − −

Page 39: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Concatenando as matrizes do Pipeline

Para reduzir a quantidade de operações matemáticas devemos concatenar as matrizes do

Pipeline na ordem correta.

, ,SRU SRT jp proj SRU SRCM M M M= ⋅ ⋅

39

Assim, a transformação de um ponto no SRU diretamente para o SRT é obtida por:

, ,

1

h

h

SRU SRT SRU SRU SRT

x x

y yP M P M

z z

h

′ = ⋅ ⇒ = ⋅

hSRT

hSRT

xx

h

yy

h

=

=

Page 40: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Exercício 03 – Mapeamento para o SRT

Concatene as matrizes do pipeline e mapeie oobjeto do exercício 1 para coordenadas do SRT,considerando os parâmetros abaixo.

E

VRP = (50, 15, 30)P = (20, 6, 15)d = 17

A

B

C

D

E

40

dp = 17

Janela:- Largura = 16- Altura = 10Porta de visão:- (umin, vmin) = (0, 0)- (umax, vmax) = (320, 240)

Page 41: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade

O processo de determinação da visibilidade objetiva determinar

quais objetos são visíveis a partir da posição da câmera.

Objetos não visíveis não precisam ser desenhados, reduzindo o

41

Objetos não visíveis não precisam ser desenhados, reduzindo o

processamento necessário para se criar uma cena sintética.

A solução eficiente do problema da visibilidade é um dos

principais passos para obtenção de imagens realistas.

Page 42: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade – Confusão Visual

42

Page 43: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade – Confusão Visual

43

Sem ocultação de linhas Com ocultação de linhas

Page 44: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Determinação da Visibilidade

Duas soluções:� Representação por um subconjunto de curvas,

extraídas dos contornos dos objetos.� Representação do sólido através de uma série de

faces conectadas apropriadamente.

44

Há várias maneiras para resolver este problema:� Algumas são simples, mas usam mais memória;� Outras usam menos memória, mas são lentas;� Outras são rápidas, mas limitadas.

Hoje, pela redução de custo, as técnicas baseadas no uso intensivo de memória são mais utilizadas.

Page 45: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ocultação de Linhas

Uma aplicação usual na computação gráfica é o desenho de funções contínuas a duas variáveis,

como z=f(x, y).

45

Page 46: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ocultação de Linhas

Este é um caso especial de problema de ocultação de superfícies, para o qual existe solução

específica e eficaz.

46

Page 47: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ocultação de Linhas – Solução

� Uma função y = f(x, z) pode ser aproximada por uma matriz m x n de valores y;

� Cada ponto da matriz é a altura de um ponto (x, z) do reticulado que é a base do gráfico;

� x � colunas; z � linhas.

47

x

z

y

Page 48: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ocultação de Linhas – Solução

Para uma representação wireframe devemos desenhar dois conjunto de polylines. Um conjunto

de linhas com z fixos e outro de colunas com x fixos.

z

y

48

x

y

x

zy

Page 49: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ocultação de Linhas – Solução

O algoritmo de ocultação de linhas deve suprimir todas as partes da superfície que estão

atrás de outras partes.

Consideremos o problema de desenhar somente as polylines com z constantes. A polyline mais próxima do observador está sobre uma aresta.

49

próxima do observador está sobre uma aresta.

x

z

y

Page 50: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ocultação de Linhas – Solução

Desenhar as polylines de coordenada z constante na ordem “frente-para-fundo”, pois aquelas mais

afastadas não ocultam as mais próximas do observador.

50

Usando a silhueta de controle, desenhar apenas as partes de cada polyline que não são ocultadas por

partes desenhadas anteriormente.

Page 51: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo da Linha Horizontal

Utiliza uma estrutura de dados para representar o mínimo e o máximo da coordenada y para cada

coordenada x da silhueta.

Abordagem imagem-precisão

Dois vetores (YMIN e YMAX) para armazenar os

51

Dois vetores (YMIN e YMAX) para armazenar os limites da silhueta, em coordenadas de projeção, para um conjunto finito de coordenadas x. Para aumentar a precisão aumentamos o conjunto de coordenadas x.

Abordagem objeto-precisão

Substituição dos vetores YMIN e YMAX por duas polylines (listas). As partes desenhadas (visíveis) são inseridas nas polylines. É mais precisa e complexa.

Page 52: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Abordagem Imagem-Precisão

52

Acima: A, B, G. Abaixo: E, F Entre: C, DVisíveis: AB, EF Invisíveis: CD Parciais: BC, DE, FG

Page 53: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Problemas da Abordagem Imagem-Precisão

Problemas de aliasing

53

Vértices em lados opostos da silhueta (YMAX). Calcular o ponto de

interseção e traçar o segmento visível.

Ambos os vértices estão abaixo de YMAX, portanto o segmento é

considerado não visível.

Page 54: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo da Linha Horizontal

Desenhar as polylines com coordenada x constante.

z

54

x

y

Começar pela polyline mais próxima do observador que, neste caso, não forma uma aresta.

Page 55: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo da Linha Horizontal

Sobreposição das polylines, as com coordenadas zconstantes e as com coordenadas x constantes.

55

Page 56: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo da Linha Horizontal – Problemas

Um conjunto de polylines não oculta as polylines do outro conjunto.

56

O conjunto de polylines mais próximas do paralelismo com o plano de projeção é

processado na ordem frente-fundo (as com zconstantes, no exemplo). Entre duas polylinescom z constantes e subsequentes são traçados os segmentos das polylines com x constantes.Compartilhar a estrutura de dados da silhueta.

Page 57: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ordem de Processamento

O conjunto de segmentos das polylines com x constantes também devem ser processados na

ordem correta (frente-fundo e esquerda/direita).

57

Ordem correta Ordem incorreta

Page 58: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade de Superfícies

Dois algoritmos básicos

para cada pixel da imagem faça{� determinar o objeto mais próximo do

observador que é visível pela projeção através do pixel;

� plotar o pixel na cor apropriada.

58

� plotar o pixel na cor apropriada.}

para cada objeto no mundo faça{� determinar quais partes do objeto cuja

visão não está ocultada por partes do mesmo ou de outro objeto;

� plotar estas partes na cor apropriada.}

Page 59: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Diferenças entre os Algoritmos Básicos

Imagem-

precisão

Objeto-

precisão

59

� Usa a resolução da tela;

� Processa cada pixel para determinar a visibilidade;

� Mudança no tamanho da tela implica em recálculos.

� Independente da resolução da tela;

� Processa os objetos para determinar quais partes são visíveis;

� Mudança no tamanho da tela implica só no redesenho da cena.

Page 60: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade – Projeção Paralela x Perspectiva

P1= (x1, y1, z1) oculta P2= (x2, y2, z2)?

Sim. Se ambos os pontos estiverem na

mesma linha de visada.

60

Em projeção paralela quando:

(x1=x2) e (y1=y2)

Em projeção perspectiva quando:

(x1/z1=x2/z2) e (y1/z1=y2/z2)1,

0100

11

100

0010

0001

min

min

min

min

−≠=

−+−

+=

f

nz

z

z

z

M

ParalelaPerspectiva

Canônica

Page 61: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade por Prioridade

Quando o objeto A bloqueia a visão do objeto B, com ambos na mesma linha de visada do

observador, então B está mais distante que A.

61

Calcular as distâncias entre os objetos e o observador.

Ordenar os objetos de acordo com a distância calculada,

apresentando-os na tela em ordem decrescente.

Page 62: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Cálculo da Distância – Algoritmo do Pintor

Calcular a distância euclidiana entre o observador (VRP) e o centróide do objeto (CO).

( ) ( ) ( )222

zzyxx COVRPyCOVRPCOVRPD −+−+−=

62

Considerando que o observador está na origem do SRC, temos:

222

zyx COCOCOD ++=

Page 63: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Cálculo da Distância – Algoritmo do Pintor

A radiciação é computacionalmente cara; então é preferível utilizar expressões trigonométricas

para calcular a distância.

= x

CO

COh

63

=

x

y

CO

COarctg

h

cos

=

h

COarctg

COD

x

x

cos

Page 64: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo do Pintor – Problemas

A ordenação pela distância aos centróides apresenta limitações.

64

Dividir um objeto côncavo em vários objetos convexos.

Page 65: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade pelo Cálculo da Normal

Ao observarmos uma superfície não podemos observar seu lado oposto.

Zv

65

O lado visível de uma superfície é aquele cuja normal está voltada para o lado onde se

encontra o observador.

Zv

Page 66: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Determinando a Equação de um Plano

Para obtermos o vetor normal a uma superfície determinamos a equação do plano que contém

esta superfície.

0=+⋅+⋅+⋅ dzcybxa

O vetor normal ao plano é dado por:

66

O vetor normal ao plano é dado por:

),,( cbaN =�

P1

P2

P3

P4

Page 67: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Determinando a Equação de um Plano

Dados 3 vértices (P1, P2 e P3), em sentido anti-horário, que pertencem a superfície, temos:

P3

( )PPB −=�

Portanto:

67

P1 P2( )21 PPA −=�

( )23 PPB −=�

ABN���

×=

( )cba

AAA

BBB

kji

N

zyx

zyx ,,==�

Page 68: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Determinando a Equação de um Plano

De outra forma:

( ) ( ) ( )( ) ( ) ( )

( )cba

zPzPyPyPxPxP

zPzPyPyPxPxP

kji

N ,,232323 =

−−−

−−−=�

68

( ) ( ) ( )zPzPyPyPxPxP 212121 −−−

( ) ( ) ( ) ( )( ) ( ) ( ) ( )( ) ( ) ( ) ( )yPyPxPxPyPyPxPxPc

xPxPzPzPxPxPzPzPb

zPzPyPyPzPzPyPyPa

23212123

23212123

23212123

−⋅−−−⋅−=

−⋅−−−⋅−=

−⋅−−−⋅−=

Page 69: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Qual a Posição Relativa do Observador?

Aplicando um dos Pi na equação do plano

0=+⋅+⋅+⋅ dzcybxa

( ) ( ) ( )zPcyPbxPad 222 ⋅−⋅−⋅−=Temos:

Substituindo a posição do observador (VRP) na

69

Substituindo a posição do observador (VRP) na equação do plano temos:

dVRPcVRPbVRPaD zyx +⋅+⋅+⋅=

Se D = 0 � O observador é parte do plano;Se D > 0 � O observador está à frente do plano;Se D < 0 � O observador está atrás do plano.

Page 70: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

A Superfície é Visível?

A visibilidade de uma superfície depende da posição do observador (VRP) e da direção de projeção.

v

PN̂

N̂n

Interpretação

70

VRP

u

v

nN̂

Aplicamos o teste: 0ˆ >⋅Nn

Se o teste for satisfeito então a superfície é visível.

θN̂n

( ) 0cos >θ

20p/

πθ <≤

Page 71: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Visibilidade pelo Cálculo da Normal

Este método é adequado para poliedros convexos fechados, como cubos, prismas,

cilindros e esferas, por exemplo.

Não resolve o problema quando um objeto oculta outro objeto. Ainda é necessário ordenar as faces outro objeto. Ainda é necessário ordenar as faces visíveis de acordo com a distância ao observador.

Utilizado como pré-filtro, pode eliminar mais da metade das superfícies a serem

processadas em outros métodos de determinação da visibilidade, reduzindo o

tempo de processamento em aproximadamente 75%.

71

Page 72: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo Z-Buffer

Método desenvolvido por Catmull (1974). Fácil de implementar em software ou hardware.

Implementação baseada no uso intensivo de memória. Requer dois bufffers de dimensões

idênticas à tela de apresentação.

72

idênticas à tela de apresentação.

� O buffer de imagem, também chamado de rascunho, tem profundidade de cor igual à tela de apresentação. É inicializado com a cor de fundo.

� O z-buffer armazena a profundidade associada ao objeto visível em cada pixel. É inicializado com um valor que represente a máxima distância de um ponto ao plano de projeção (ou à câmera).

Page 73: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo Z-Buffer

Y

plano deprojeção

z=10

Y

plano deprojeção

z=5

73

Xv

VRP

Yv

ZvVRP

Xv

Yv

Zv

Os objetos são projetados pixel a pixel. Para cada pixel projetado verificamos sua profundidade em relação ao valor armazenado no z-buffer.� Se for menor, calculamos a cor do pixel e atualizamos o

buffer de imagem, bem como o z-buffer.

Page 74: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

A cada novo pixel projetado, ao longo de uma superfície plana, devemos comparar sua

profundidade com o valor armazenado no z-buffer.

Algoritmo Z-Buffer Incremental

Como acelerar o cálculo da profundidade do pixel?

A equação do plano que

74

A equação do plano que contém a superfície a ser

projetada é:

0=+++ dczbyax

Agora consideremos uma projeção paralela desta

superfície (xp = x, yp = y).

Page 75: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo Z-Buffer Incremental

Dada a equação do plano:

0=+++ dczbyax

75

Assim, za(xa, ys) é:

c

byaxdz saa

−−−=

e za+1(xa+1, ys) é:

( )c

byxadz saa

−+−−=+

11

Page 76: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Algoritmo Z-Buffer Incremental

Então, a diferença de profundidade entre za e za+1 é:

( )c

byaxd

c

byxadzz sasaaa

−−−−

−+−−=−+

11

Ou seja, para ∆x = 1:a

−=∆

76

Ou seja, para ∆x = 1:c

az −=∆

Assim, o cálculo completo da profundidade é realizado apenas no primeiro ponto da scan line. Para cada novo pixel (xi, ys), a profundidade será incrementalmente calculada por:

c

azz ii −= −1

Page 77: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ray Tracing

É um algoritmo imagem-precisão, o qual determina a visibilidade das superfícies pelo

traçado de um raio de luz imaginário, que parte do olho do observador até os objetos da cena.

77

O pixel assume a cor do objeto interceptado que está mais próximo do centro de projeção.

Page 78: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ray Tracing

O núcleo de qualquer ray tracer é a tarefa de determinar a interseção do raio com os objetos.

Cada ponto P=(x, y, z) ao longo do raio entre P0=(x0, y0, z0) e P1=(x1, y1, z1) pode ser escrito

em função de um parâmetro t[0, 1], tal que:

78

)(

)(

)(

010

010

010

zztzz

yytyy

xxtxx

−+=

−+=

−+=

Qual a coordenada de P’?

P0

P1

P’

Page 79: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ray Tracing – Interseção com Esferas

Por conveniência reescrevemos as equações paramétricas:

ztzz

ytyy

xtxx

∆⋅+=

∆⋅+=

∆⋅+=

0

0

0

P1=(x1, y1, z1) Uma esfera é representada pela equação:

79

Para calcularmos a interseção entre o raio e a esfera, substituímos os valores x, y e z da

equação do raio na equação da esfera.

P0=(x0, y0, z0)

P’

pela equação:2222 )()()( rczbyax =−+−+−

Onde (a, b, c) é o centro da esfera e r seu raio.

Page 80: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ray Tracing – Interseção com Esferas

ztzz

ytyy

xtxx

∆⋅+=

∆⋅+=

∆⋅+=

0

0

0

2222 )()()( rczbyax =−+−+−

[ ])()()(2)( 000

2222 +−∆+−∆+−∆+∆+∆+∆ czzbyyaxxttzyx

80

[ ]0)()()(

)()()(2)(

22

0

2

0

2

0

000

=−−+−+−

+−∆+−∆+−∆+∆+∆+∆

rczbyax

czzbyyaxxttzyx

Resolvendo a equação acima podemos encontrar:� nenhuma raiz real: o raio não intercepta a esfera;� uma raiz real: o raio tangencia a esfera;� duas raízes reais: o raio intercepta a esfera na

raiz positiva de menor valor.

Page 81: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ray Tracing – Interseção com Polígonos

Para encontrar a interseção entre o raio e um polígono primeiramente determinamos se o raio intercepta o plano do que contém o polígono.

Substituímos os valores de x, y e z da equação do raio na equação do plano que contém o polígono.

81

P0=(x0, y0, z0)

P1=(x1, y1, z1)

P’

ax+by+cz+d=0

0

0

0

0

=+++⇒

∆⋅+=

∆⋅+=

∆⋅+=

dczbyax

ztzz

ytyy

xtxx

)(

)( 000

zcybxa

dzcybxat

∆⋅+∆⋅+∆⋅+⋅+⋅+⋅

−=

Depois, testes dentro-fora.

Page 82: VISUALIZAÇÃO EM 3D - inf.unioeste.bradair/CG/Notas Aula/Slides 05 - Visualizacao... · u, ve nformam a base ortonormal do SRC. 2) Determinar o vetor v; 3) ... Paralela: as projetantes

Ray Tracing – Desempenho

É um algoritmo computacionalmente caro. Numa tela com 1024x768 pixels e 100 polígonos serão necessários 78.643.200 cálculos de interseção.

O cálculo de interseções representa de 75% a 90% do tempo de processamento.

82

do tempo de processamento.

Usar como pré-filtro o teste de visibilidade pelo cálculo da normal.

Outra alternativa é envolver os objetos (poliedros) em uma esfera. Se a esfera envolvente é

interceptada, então verificamos se há interseção com as faces do poliedro.