• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

Share "VISUALIZAÇÃO EM 3D. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR"

Copied!
81
0
0

Texto

(1)

VISUALIZAÇÃO EM 3D

Adair Santa Catarina Curso de Ciência da Computação Unioeste – Campus de Cascavel – PR

(2)

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)

(3)

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

(4)

Movimentos de Câmera

4

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

(5)

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

(6)

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

(7)

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).

(8)

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.

(9)

Obtenção da Base Ortonormal do SRC

1) Calculando o vetor n: 9

P

VRP

N

=

r

(

1

,

2

,

3

)

ˆ

n

n

n

N

N

n

= r

=

r

(10)

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

r

10

( )

Y

n

n

Y

N

N

N

Y

N

Y

ˆ

ˆ

=

=

r

r

r

r

r

r

r

r

(

1

,

2

,

3

)

ˆ

v

v

v

V

V

v

= r

=

r

( )

Y

n

n

Y

V

=

ˆ

ˆ

r

r

r

(11)

Obtenção da Base Ortonormal do SRC

3) Calculando o vetor u:

N

V

U

r

r

r

×

=

11

(

1

,

2

,

3

)

ˆ

u

u

u

U

U

u

= r

=

r

n

v

u

ˆ

=

ˆ

×

ˆ

ou

(12)

Matriz de Transformação M

SRU,SRC

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

SRU.       = 0 0 3 2 1 3 2 1 v v v u u u R       − − = 0 1 0 0 0 1 0 0 y x T 12         = 1 0 0 0 0 0 3 2 1 3 2 1 n n n v v v R         − − = 1 0 0 0 1 0 0 0 1 0 0 0 z y T             ⋅ − ⋅ − ⋅ − = ⋅ = 1 0 0 0 ˆ ˆ ˆ 3 2 1 3 2 1 3 2 1 , n VRP n n n v VRP v v v u VRP u u u T R MSRU SRC Concatenando as matrizes, tem-se:

(13)

Exercício 01 – Conversão SRU, SRC

O objeto abaixo está descrito no SRU. Considerando que a câmera está posicionada em VRP = (50, 15, 30) e o ponto focal P = (20, 6, 15), converta as coordenadas 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)

(14)

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

(15)

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.

(16)

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)

(17)

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.

(18)

Projeções Paralelas Oblíquas

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

(19)

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.

(20)

Projeções Paralelas Ortográficas

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

(21)

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.

(22)

Projeções Ortográficas – Axonométricas

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

(23)

Projeções em Perspectiva

As arestas dos objetos convergem para os pontos de fuga;

Ocorrência do encurtamento perspectivo.

(24)

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 ponto de fuga Dois pontos de fuga Três ponto de fuga

(25)

Anomalias da Projeção em Perspectiva

Encurtamento perspectivo 25 Pontos de fuga

(26)

Anomalias da Projeção em Perspectiva

Confusão visual P1 P2 P3 P2’ P3’ VRP 26 P1’ P2 Distorção topológica VRP

(27)

Matemática das Projeções Ortográficas

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

y

y

x

x

p

= ,

p

=

Vista Frontal 27

y

y

x

x

p

= ,

p

=

=

1

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

ort

M

(28)

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 de projeção plano de projeção

(29)

Matemática das Projeções em Perspectiva

P = (x, y, z) Pp=(xp, yp, zp) Yv zvp Qualquer ponto Pp, ao longo de uma

projetante, pode ser escrito como: 29 zprp Xv Yv Zv

]

1

,

0

[

)

(

=

=

=

=

u

com

u

z

z

z

z

yu

y

y

xu

x

x

prp p p p Quanto u = 0 P = (x, y, z) Quando u =1 Pp = (0, 0, zprp)

(30)

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)

z

z

u

u

z

z

z

z

u

z

z

z

z

vp prp vp prp p

=

=

=

)

(

)

(

30 zprp Xv Yv Zv zvp

z

z

z

z

u

prp vp

=

Substituindo u em xp e yp, temos:

=

=

z

z

z

z

y

y

e

z

z

z

z

x

x

prp vp prp p prp vp prp p

z

prp

z

vp

=

d

p

(31)

Matemática das Projeções em Perspectiva

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

matricial.         0 1 0 0 0 0 0 1 x x O fator homogêneo é: 31             ⋅                 −         − =             1 1 0 0 0 0 0 0 1 0 z y x d z d d z z d z h z y x p prp p p prp vp p vp h h h p prp d z z h = − homogêneo é: h y y h x xp = h , p = h Portanto:

(32)

Exercício 02 – Projeções

Considerando o exercício 01, obtenhas as coordenadas daquele objeto em projeção paralela ortográ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

(33)

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.

(34)

Transformação Janela – Porta de Visão

Uma matriz de TG composta por 3 passos;

Translação, Escala, Translação.

34

(

xmin, ymin

)

T − −  T

(

umin, vmin

)

     − − − − min max min max min max min max , y y v v x x u u S

(35)

Transformação Janela – Porta de Visão

Concatenando as 3 transformações temos Mjp.

(

)

(

min min

)

min max min max min max min max min min, , T x , y y y v v x x u u S v u T M jp ⋅ − −      − − − − ⋅ = 35                 + − − ⋅ − − − + − − ⋅ − − − = 1 0 0 0 0 min min max min max min min max min max min min max min max min min max min max v y y v v y y y v v u x x u u x x x u u M jp

(36)

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

(37)

Transformação Janela – Porta de Visão

Em algum momento será necessário espelhar o

objeto em relação ao eixo Ox.

(38)

Transformação Janela – Porta de Visão

Concatenando as 4 transformações temos:

(

)

( )

(

min min

)

min max min max min max min max max min, , T x , y y y v v x x u u S Ox E v u T M jp ⋅ − −      − − − − ⋅ ⋅ = 38                 + − − ⋅ − − + − − ⋅ − − − = 1 0 0 0 0 max min max min max min min max max min min min max min max min min max min max v y y v v y y y v v u x x u u x x x u u M jp

(39)

Exercício 03 – Mapeamento para o SRT

Utilizando os resultados do exercício 02, mapeie o objeto para coordenadas do SRT, considerando a janela e a porta de visão especificadas a seguir.

E VRP = (50, 15, 30) P = (20, 6, 15) d = 17 A B C D E 39 dp = 17 Janela: - Largura = 16 - Altura = 10 Porta de visão: - (umin, vmin) = (0, 0) - (umax, vmax) = (320, 240)

(40)

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

40

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.

(41)

Visibilidade – Confusão Visual

(42)

Visibilidade – Confusão Visual

42

(43)

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.

43

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.

(44)

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)

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)

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.

46

x

z

(47)

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

47

x

y

x

z

y

(48)

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.

48

próxima do observador está sobre uma aresta.

x

z

(49)

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.

49 Usando a silhueta de controle, desenhar apenas as

partes de cada polyline que não são ocultadas por partes desenhadas anteriormente.

(50)

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

50

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

(51)

Abordagem Imagem-Precisão

51

Acima: A, B, G. Abaixo: E, F Entre: C, D

(52)

Problemas da Abordagem Imagem-Precisão

Problemas de aliasing

52

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.

(53)

Algoritmo da Linha Horizontal

Desenhar as polylines com coordenada x constante.

z

53

x

y

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

(54)

Algoritmo da Linha Horizontal

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

(55)

Algoritmo da Linha Horizontal – Problemas

Um conjunto de polylines não oculta as polylines do

outro conjunto.

55

O conjunto de polylines mais próximas do paralelismo com o plano de projeção é processado na ordem frente-fundo (as com z constantes, no exemplo). Entre duas polylines com z constantes e subsequentes são traçados

os segmentos das polylines com x constantes.

(56)

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).

56

(57)

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.

57

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.

(58)

Diferenças entre os Algoritmos Básicos

Imagem-precisão Objeto-precisão 58 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.

(59)

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.

59 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 , 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 min min min min − ≠ =               − + − + = f n z z z z M Paralela Perspectiva Canônica

(60)

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.

60 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

(61)

Cálculo da Distância – Algoritmo do Pintor

Calcular a distância euclidiana entre o

observador (VRP) e o centróide do objeto (CO).

(

)

2

(

)

2

(

)

2 z z y x x

CO

VRP

CO

y

VRP

CO

VRP

D

=

+

+

61 Considerando que o observador

está na origem do SRC, temos:

2 2 2 z y x

CO

CO

CO

D

=

+

+

(62)

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

CO

h

62





=

x y

CO

CO

arctg

h

cos





=

h

CO

arctg

CO

D

x x

cos

(63)

Algoritmo do Pintor – Problemas

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

63 Dividir um objeto côncavo

(64)

Visibilidade pelo Cálculo da Normal

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

Z

v

64 O lado visível de uma superfície é aquele cuja

normal está voltada para o lado onde se encontra o observador.

(65)

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

=

+

+

+

x

b

y

c

z

d

a

O vetor normal ao plano é dado por:

65 O vetor normal ao plano é dado por:

)

,

,

(

a

b

c

N =

r

P1 P2 P3 P4

(66)

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

(

P

P

)

B

=

r

Portanto: 66 P1 P2

(

P

1

P

2

)

A

=

r

(

P

3

P

2

)

B

=

r

A

B

N

r

r

r

×

=

(

a

b

c

)

A

A

A

B

B

B

k

j

i

N

z y x z y x

=

,

,

=

r

(67)

Determinando a Equação de um Plano

De outra forma:

(

) (

) (

)

(

) (

) (

)

(

)

c

b

a

z

P

z

P

y

P

y

P

x

P

x

P

z

P

z

P

y

P

y

P

x

P

x

P

k

j

i

N

3 2 3 2 3 2

=

,

,

=

r

67

(

P

1

x

P

2

x

) (

P

1

y

P

2

y

) (

P

1

z

P

2

z

)

(

) (

) (

) (

)

(

) (

) (

) (

)

(

P

x

P

x

) (

P

y

P

y

) (

P

x

P

x

) (

P

y

P

y

)

c

x

P

x

P

z

P

z

P

x

P

x

P

z

P

z

P

b

z

P

z

P

y

P

y

P

z

P

z

P

y

P

y

P

a

2 3 2 1 2 1 2 3 2 3 2 1 2 1 2 3 2 3 2 1 2 1 2 3

=

=

=

(68)

Qual a Posição Relativa do Observador?

Aplicando um dos Pi na equação do plano

0

=

+

+

+

x

b

y

c

z

d

a

(

a

P

x

) (

b

P

y

) (

c

P

z

)

d

=

2

2

2 Temos:

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

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

equação do plano temos:

d

VRP

c

VRP

b

VRP

a

D

=

x

+

y

+

z

+

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.

(69)

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 P

n Interpretação 69 VRP u v n

Aplicamos o teste:

n

⋅ N

ˆ >

0

Se o teste for satisfeito então a

superfície é visível.

θ

n

( )

0

cos

θ

>

2

0

p/

θ

<

π

(70)

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)

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.

71

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).

(72)

Algoritmo Z-Buffer

Y plano de projeção z=10 Y plano de projeção z=5 72 Xv VRP Yv Zv VRP 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.

(73)

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

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

projetada é:

0

=

+

+

+

by

cz

d

ax

Agora consideremos uma projeção paralela desta superfície (xp = x, yp = y).

(74)

Algoritmo Z-Buffer Incremental

Dada a equação do plano:

0

=

+

+

+

by

cz

d

ax

74 Assim, za(xa, ys) é:

c

by

ax

d

z

a

=

a

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

(

)

c

by

x

a

d

z

a+1

=

a

+

1

s

(75)

Algoritmo Z-Buffer Incremental

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

(

)

c

by

ax

d

c

by

x

a

d

z

z

a+1

a

=

a

+

1

s

a

s Ou seja, para ∆x = 1:

=

a

75 Ou seja, para ∆x = 1:

c

a

z

=

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

a

z

(76)

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.

76 O pixel assume a cor do objeto interceptado

(77)

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:

77

)

(

)

(

)

(

0 1 0 0 1 0 0 1 0

z

z

t

z

z

y

y

t

y

y

x

x

t

x

x

+

=

+

=

+

=

Qual a coordenada de P’? P0 P1 P’

(78)

Ray Tracing – Interseção com Esferas

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

z

t

z

z

y

t

y

y

x

t

x

x

+

=

+

=

+

=

0 0 0

P1=(x1, y1, z1) Uma esfera é representada

pela equação:

78 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: 2 2 2 2

)

(

)

(

)

(

x

a

+

y

b

+

z

c

=

r

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

(79)

Ray Tracing – Interseção com Esferas

z

t

z

z

y

t

y

y

x

t

x

x

+

=

+

=

+

=

0 0 0 2 2 2 2

)

(

)

(

)

(

x

a

+

y

b

+

z

c

=

r

[

( ) ( ) ( )

]

2 ) (∆x2 + ∆y2 + ∆z2 t2 + tx x0a + ∆y y0b + ∆z z0c + 79

[

]

0 ) ( ) ( ) ( ) ( ) ( ) ( 2 ) ( 2 2 0 2 0 2 0 0 0 0 = − − + − + − + − ∆ + − ∆ + − ∆ + ∆ + ∆ + ∆ r c z b y a x c z z b y y a x x t t z y x

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.

(80)

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.

80 P0=(x0, y0, z0) P1=(x1, y1, z1) P’ ax+by+cz+d=0 0 0 0 0 = + + + ⇒      ∆ ⋅ + = ∆ ⋅ + = ∆ ⋅ + = d cz by ax z t z z y t y y x t x x ) ( ) ( 0 0 0 z c y b x a d z c y b x a t ∆ ⋅ + ∆ ⋅ + ∆ ⋅ + ⋅ + ⋅ + ⋅ − =

(81)

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.

81

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.

Referências

Documentos relacionados

Para equalização dos pilotos em cada categoria, mesmo na Mista, será adicionado lastro, fornecidos pelo Velopark, se assim necessário, até o limite de 20 kg de peso.. Essa carga

Caso o dinheiro disponível seja suficiente para comprar os 10 novos computadores (pelo preço mínimo), o programa deve informar qual será o saldo restante..

Nessa linha de pesquisa, no Brasil encontram-se os estudos realizados por Ferreira e Ellery (1996), Azzoni (2001), Souza e Porto Júnior (2002), e há ainda o de Lopes

Assumimos o compromisso de reforçar e aperfeiçoar a governança em todos os níveis, para a efetiva implementação da Agenda 21, das Metas de Desenvolvimento do Milênio e

Este trabalho visa avaliar tecnicamente a utilização do RCMG como substituição de parte do agregado miúdo (areia) para argamassas de revestimento e argamassa para produção de

Esse trabalho visa auxiliar as atividades de extensão apoiadas pelo Programa NERDS da fronteira do CPPP, no ensino e treinamento de alunos para as provas das

8.1 Os resultados do processo seletivo aos cursos de educação profissional de nível técnico, para o ano letivo de 2008/1, serão divulgados pela Comissão de Seleção na portaria da

– Relações com Investidores +80% ≥80% +5.000 ≥40% 2025 2023 Manter Obter ≥90% ≥35% 2022 100% -70% -100% 2030 -50% new new &gt;99% new new Manter new new Metas new ≥95%