uso de técnicas baseadas em pontos para visualização de...

43
Uso de Técnicas Baseadas em Pontos para Visualização de Horizontes Sísmicos Orientador Professor Marcelo Gattass Ricardo Szczerbacki

Upload: vukien

Post on 10-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Uso de Técnicas Baseadas em Pontos paraVisualização de Horizontes Sísmicos

OrientadorProfessor Marcelo Gattass

Ricardo Szczerbacki

Motivação

Objetivos

Dissertação

Conclusão

Organização da Apresentação

Aprimoramento de Ferramentas em Uso

Visualização de Dados SísmicosImportante ferramenta de prospecção

Visualização Baseada em PontosPotencial para melhor qualidade de resultados

Motivação

Avaliar e Definir Técnicas a Serem Empregadas

Avaliar Resultados da Aplicação do Método

Definir Caminhos para a Implementação Futura

Objetivos

IntroduçãoVisão Geral e ObjetivosSísmica e HorizontesVisualização de Dados SísmicosVisualização Baseada em PontosSurface Splatting

Processo AdotadoOrigem dos DadosOrganização de DadosNormaisIluminaçãoImplementação

Resultados

ConclusãoPróximos Passos

Objetivos

Distribuição dos Capítulos

Introdução

Sísmica de Reflexão

Introdução

fonte deondas sísmicas hidrofones

ondas refletidas

interface entre rochas

fundo do mar

navio-sísmico

Dados Sísmicos

Volumes Sísmicos

Horizontes Sísmicos

Introdução

2004

P

BG

Visualização Baseada em Pontos – Histórico

Introdução

1979

Csu

ri, A

NIM

A II

1982

Blin

n, A

néis

de

Satu

rno

1983

Ree

ves,

Fuz

zy O

bjec

ts

1985

Levo

y, P

onto

com

o Pr

imiti

va

1990

Wes

tove

r, Sp

latti

ng

2000

Rus

inki

ewic

z, Q

Spla

tZw

icke

r, Su

rfel

s

2001

Zwic

ker,

Surf

ace

Spla

tting

2002

Zwic

ker,

Surf

ace

Spla

tting

Em p

laca

, com

pol

ígon

os

2005

Zwic

ker,

Surf

ace

Spla

tting

EWA

em p

laca

Objetos Complexos Hardware

2007

Wey

rich,

SIG

GR

APH

200

7H

ardw

are

Arc

hite

ctur

e

Um método para visualização de superfícies a partir de nuvens de pontos

Adaptação do filtro EWA (Elliptical Weighted Average) de Heckbert

Publicado por Zwicker et al., no SIGGRAPH de 2001

Surface Splatting

Uso da teoria de processamento de sinais

Considera os pontos como uma amostragem da superfície

Utiliza um filtro de reconstrução para obter a função contínua

Aproxima o mapeamento desta função para o espaço da tela

Utiliza um filtro de passa-baixas para o anti-aliasing

Reamostra a função no espaço da tela

Surface Splatting

Para cada ponto: posição, normal e cor, associada à uma função radialmente simétrica (Gaussiana 2D)

Parametrização local: aproxima a vizinhança de um ponto para um plano

Surface Splatting

Fonte: Zwicker, 2001

Define o filtro de reconstrução, para cada ponto, no espaço parametrizado 2D

Aproxima o mapeamento projetivo do espaço parametrizado 2D para o espaço de tela, para um mapeamento afim

Calcula as contribuições do ponto para os pixels

Consolida as contribuições no frame buffer, gerando o resultado final

Surface Splatting

IntroduçãoVisão Geral e ObjetivosSísmica e HorizontesVisualização de Dados SísmicosVisualização Baseada em PontosSurface Splatting

Processo AdotadoOrigem dos DadosOrganização de DadosNormaisIluminaçãoImplementação

Resultados

ConclusãoPróximos Passos

Conteúdo da Dissertação

Interpretação manual

Dados interpolados e exportados para XYZ

Apenas coordenadas em 3D

Origem dos Dados

Splat: posição, normal, tamanho do splat e cor.

Nenhuma ordem específica necessária

Cálculo de normais Busca por vizinhança

Estruturas usuais: octrees e kd-trees(Park, 2004 / Pajarola 2004)

Organização de Dados

(0,100) (100,100)

(0,0) (100,0)

(5,45)A

(0,0)

(25,35) B

(35,40)C

(50,10)D

(60,75) E (80,65)

F

(80,15) G

(90,5) H

x

y

1 2

5 69

1

1013

Adaptado de Samet, 1989

Octree gera muitos nós vazios, para os dados estudados

Kd-tree é a estrutura escolhida para o trabalho

Kd-tree em GPU, resultados promissoresReal-time KD-tree construction on graphics hardwareKun Zhou et al., SIGGRAPH Asia '08

Organização de Dados

Para pontos rastreados em um volume, como voxels: uso dos dados volumétricos para a obtenção da normal (não usaremos esta abordagem)

Para pontos gerados como superfícies (caso estudado), uso da geometria dos pontos

Cálculo de Normais

Duas principais abordagens (Dey, 2005):

Numérica: otimização com plane fitting, surface fitting, etc

Combinatória: uso de Delaunay / Voronoi

Dey (Eurographics ’05), obteve resultados favoráveis ao plane fitting, para dados como os estudados (em que conhecemos a qualidade previamente)

Plane fitting ponderado foi utilizado no trabalho

Cálculo de Normais

Obtenção da vizinhança através de um algoritmo de kNN, sobre a kd-tree

Cálculo de Normais

Busca de coeficientes do plano (A, B, C, D) que minimizam as distâncias dos pontos ao plano (d1, d2 , d3 , ... ), através de otimização por mínimos quadrados, ponderados pela distância ao ponto central

Quanto maior a distância do ponto ao ponto central (l12, l13 , l14 , ... ), menor o peso no cálculo

Coeficientes lineares do plano (A, B, C) compõem a normal desejada

d =01

d2

d3 d4

d5

l12

A + B + C + D = 0x y z

Cálculo de Normais

Normais geradas, através da técnica apresentada, para pontos de um horizonte sísmico interpretado

Deferred ShadingNormal e cor são ponderados e acumulados

Para cada pixel é calculada a iluminação de cada fragmento (contribuição de um determinado splat) é, ponderadamente, gerada a iluminação final do pixel

Mais precisão no resultado final

Shading por SplatA iluminação é calculada para cada splat, e acumulada com peso associado

Para cada pixel as cores dos fragmentos são ponderadas, pelo seu peso, gerando uma cor final

Menos processamento (melhor performance) e menor qualidade final

Estratégia de Iluminação

Carga do arquivo XYZArquivo texto, contendo unicamente as coordenadas x, y e z, do espaço, é carregado pelo sistema

Criação da kd-treeKd-tree é criada com splats contendo as coordenadas obtidas

Cálculo da normal e do tamanho do splatOs splats são varridos, e para cada splat é consultada uma vizinhança fixa, de 9 splats (o central mais oito)

É calculada a normal da forma já apresentada.efetuado o cálculo descrito para a obtenção da normal e o tamanho do splat é calculado a partir da distância ao vizinho mais próximo

Algoritmo

Surface Splating é implementado em duas passadas por todos os splats

Antes é realizado um pré-processamento

Na 1ª passada é feito o splatting e a rasterização, sendo gerados os fragmentos de cada pixel

Na 2ª passada os fragmentos de cada pixel são consolidados gerando uma cor final

Algoritmo

Identifica se o splat está virado para a câmera

Isto é feito analisando produto escalar da normal do splat pela direção da câmera

A direção da câmera é dada pela diferença entre a posição do splat e a posição da câmera

Algoritmo – 1ª Passada

cos , para ( )

se cos 90 aponta para a câmera ( 0)se cos 90 perpendicular à câmera ( 0)se cos 90 fundo do ( 0)

dir dir dir splat câmera

dir

dir

dir

n c n c c p p

splat n csplat n c

splat n c

pcâmera

psplat

n

n cos

Como queremos enxergar o fundo da superfície, invertemos a normal, caso estejamos vendo o fundo do splat

se ( 0), então dirn c n n

Calcula a matriz de variânciaA cada splat é associado um filtro de reconstrução, no caso uma Gaussiana 2D

Este filtro tem o tamanho e a forma definidos pela matriz de variância

Neste trabalho estamos utilizando um filtro circular e a matriz de variância é definida como:

sendo s o tamanho do splat

Algoritmo – 1ª Passada

V SSs 0

onde, S=0 s

Tr

Vr

Matriz da cônica

A equação implícita de uma cônica com centro na origem é:

Que pode ser reescrita como:

onde é chamada de matriz cônica

A função de base radial pode ser vista como uma cônica, no espaço parametrizado local, que será posteriormente projetada na tela, por aproximação afim

Algoritmo – 1ª Passada

2 22Ax Bxy Cy D

A B xx y D

B C y

QA BB C

Matriz da cônica

A matriz da cônica pode ser obtida invertendo-se a matriz de variância do splat:

Para que seja efetuado o mapeamento projetivo, da cônica, do espaço parametrizado para o espaço de tela, devemos representar em coordenadas homogêneas:

onde F é o tamanho do filtro de reconstrução, que assumimos como 2

Algoritmo – 1ª Passada

1Q Vr

Q

Q

11 12

21 22

Q Q 0Q Q Q 0

0 0 Fh

Mapeamento projetivo

O próximo é o mapeamento projetivo da cônica representada por do espaço parametrizado local, para o espaço de tela

Para criar a matriz M, que representa este mapeamento, é primeiramente obtido o sistema de coordenadas , que representa o espaço parametrizado 2D, definido pelas tangentes ao plano e

é obtido gerando-se um vetor qualquer, perpendicular à normal do splat e é obtido pelo produto vetorial entre a normal e

Algoritmo – 1ª Passada

Qh

ut vtuv

utvt ut

Mapeamento projetivo

, e , a posição do splat, são mapeados do espaço parametrizado, para a tela, utilizando-se as matrizes ModelView e Projection, gerando

, e

A matriz de mapeamento M, pode ser, então, definida como:

A matriz cônica resultante , mapeada para o espaço de tela, é:

Algoritmo – 1ª Passada

' ' '

' ' '

' ' '

Mx y w

x y w

u u u

v v v

x y w

t t t

t t t

p p p

ut vt p'ut 'p'

vt

'Qh

' 1 1Q M Q MT

h h

Aproximação afim

O uso da projeção perspectiva, entretanto, faz com que o kernel do filtro deixe de ser uma Gaussiana, o que tornaria complexa a aplicação do filtro de passa-baixas Gaussiano.

Por isso, o mapeamento de projeção perspectiva é aproximado localmente para um mapeamento afim, para cada splat

Para tal, a cônica representada pela matriz deve ser primeiro transformada em uma cônica central (com centro na origem)

Isto é feito, primeiro, calculando a translação do ponto central da cônica:

Algoritmo – 1ª Passada

'hQ

( , )t tx y

11 22 12 21

' ' ' 'Q Q Q Qh h h hdelta

12 23 22 13

' ' ' 'Q Q Q Qh h h htx

delta

12 13 11 23

' ' ' 'Q Q Q Qh h h hty

delta

onde,

Aproximação afim

Splats com delta > 0 são descartados, pois cálculo é feito apenas com elipses

É aplicada a transformação projetiva na cônica central, que faz com que obtenhamos um mapeamento afim, que não corresponde ao projetivo, mas coincide na curva (elipse)

A matriz final da cônica, com a aproximação afim, com os cálculos mencionado é gerada por:

Algoritmo – 1ª Passada

11 12

33 13 23 21 22

' ''''

' ' ' ' '

Q QFQQ Q Q Q Q

h h

h h t h t h hx y

Aproximação afim

A matriz de variância do filtro de reamostragem pode ser calculada como a soma da matriz de variância do pré-filtro à matriz de variância do filtro de reconstrução com aproximação afim, dado pela inversa de

é calculado no pré-processamento, comoonde pode ser a matriz identidade, uma vez que não queremos maior atenuação de ruídos. E S é a matriz:

Invertendo a matriz de variância obtemos a matriz da cônica do filtro de reamostragem, que representa o splat no espaço da tela

Algoritmo – 1ª Passada

V'Vh

'''Q1' '''V V Qh

1Q V

V

'V SV STh h'Vh Vh

1 0LarguraViewport

S=10

AlturaViewport

Frustum culling

No pré-processamento são calculados os 6 planos de clipping (ponto e normal), no espaço normalizado. Eles correspondem aos 6 planos do frustum,que delimitam a área visível.

Para cada splat mapeado para o espaço normalizado, é verificado, para cada um dos 6 planos, se o splat intersecta o plano, ou se está do lado de fora do mesmo. Neste caso o splat não é incluído na rasterização.

Algoritmo – 1ª Passada

Rasterização

É calculado a bounding box de pixels que contém a elipse na tela, para que seja varrida pixel a pixel calculando o peso

Algoritmo – 1ª Passada

'''22

min

'''22

max

'''11

min

Q F LarguraViewport CentroViewport

Q F LarguraViewport CentroViewport

Q F AlturaViewport CentroViewport

t x

t x

t y

x xdelta

x xdelta

y ydelta

'''11

maxQ F AlturaViewport CentroViewportt yy ydelta

Rasterização

São varridos todos os pixels do bounding box, verificando se o pixel está dentro da elipse, calculando o peso e a cor após a iluminação (caso o shading seja por splat) e gerando um fragmento para cada pixel varrido

Como o peso é determinado pela Gaussiana e a sua aplicação utiliza cálculo de exponencial, uma operação custosa em termos de processamento. E, como sabemos que o domínio da função varia entre 0 e 2 (o tamanho do filtro), foi criada uma tabela com valores calculados previamente no pré-processamento

Algoritmo – 1ª Passada

Consolidação do frame buffer

No trabalho foi utilizado um a-buffer para a acumulação dos fragmentos e posterior geração do frame buffer consolidado

No a-buffer, existe uma lista de pixels da tela, sendo que para cada pixelexiste uma lista de fragmentos associada

O algoritmo varre a lista de pixels e para cada pixel é feita uma ordenação dos fragmentos, do mais próximo ao mais distante

Cada fragmento é acumulado de acordo com o seu peso, gerando uma cor final para o pixel. Caso esteja sendo utilizado deferred shading, para cada fragmento é calculada a iluminação, antes de ser acumulado.

A-buffer, devido ao número irrestrito de fragmentos por pixel, não são apropriadas para otimização em hardware, sendo, neste caso, viáveis outras soluções, como o Z3 (Jouppi, 1999) e k-buffer (Bavoil, 2007),

Algoritmo – 2ª Passada

Distância versus Qualidade

Resultados

Deferred Shading versus Shading por Splat

Resultados

Pontos versus Poligonal

Resultados

Conclusão

Trabalhos Futuros

Uso de Técnicas Baseadas em Pontos paraVisualização de Horizontes Sísmicos

OrientadorProfessor Marcelo Gattass

Ricardo Szczerbacki