Post on 26-Jun-2020
VISUALIZAÇÃO TRIDIMENSIONAL COMBINADA DE DADOS VOLUMÉTRICOS E
MODELOS POLIGONAIS USANDO O ALGORITMO SHEAR-WARP
ANA ELISA FERREIRA SCHMIDT
Tese de Doutorado Departamento de Informática - PUC-Rio
Orientação: Prof. Marcelo Gattass Prof. Paulo Cezar Pinto Carvalho
Conteúdo da Apresentação
• Conceitos • Objetivo • Shear-Warp Volume Rendering • Shear-Warp e Modelos Poligonais • Resultados Obtidos • Conclusões e Trabalhos Futuros
Conceitos
Visualização Volumétrica - Exibição e análise de dados representados através de valores distribuídos em uma grade tridimensional. - Cada elemento de volume deste espaço 3D é denominado voxel, sendo representado pela tupla <i,j,k,E>
Conceitos
Obtenção de Dados Volumétricos
- Simulação - Aquisição
Conceitos
Estratégias para Visualização de Volumes
- Surface Fitting: conversão das estruturas presentes no volume para uma representação poligonal (Marching Cubes). Emprega pipeline de renderização de polígonos para criar imagem final.
- Direct Volume Rendering: não existe etapa de conversão. Voxels são projetados diretamente sobre a imagem a ser criada (Ray Casting e Shear-Warp).
Conceitos
Visualização Volumétrica Híbrida - Visualização de modelos combinados que integram dados volumétricos e objetos poligonais.
Conceitos
Estratégias para Visualização Híbrida: - Superfícies: volume transformado p/ representação poligonal (Marching Cubes). Renderização por algoritmos como Z-Buffer.
- Voxelização: modelo poligonal é convertido p/ representação por voxels. Renderização através de algoritmos como Ray Casting.
- Primitiva Ponto: cada voxel e polígono é representado através de informações pontuais, como posição, vetor normal, etc. Renderização por algoritmos como Splatting.
- Híbrida: cada representação é renderizada de acordo com sua natureza e imagens resultantes são combinadas.
Objetivos desta tese
Criar imagens híbridas compostas de dados volumétricos e modelos poligonais opacos e/ou transparentes, gerando imagens corretas, de qualidade, em tempos aceitáveis.
Integrar algoritmos de Shear-Warp e Z-Buffer, propondo
uma solução híbrida para a combinação dos dados volumétricos e poligonais.
Direção de visualização
Fatias do
volume
Plano da imagem
final
Mview = Mwarp2D * Mshear3D
warp
projeção
Plano da imagem
intermediária
shear
Algoritmo Shear-Warp
- Shear-Warp fatora a matriz de visualização em uma operação de shear3D e um warp2D.
- Método híbrido de volume rendering que tira vantagens de
otimizações como early ray termination e RLE do volume.
Algoritmo Shear-Warp
Fatias
Imagem Intermediária
Imagem Final
shear + projeção
Propriedades Shear-Warp
• Scanlines do volume são paralelas às scanlines da imagem intermediária.
• Ponderadores para interpolação bilinear são iguais para voxels de uma mesma fatia.
• Caminhar um voxel na scanline do volume significa caminhar um pixel na imagem intermediária.
Imagem Intermediária
- Resolução da imagem intermediária depende da resolução das fatias do volume e da direção de projeção, não dependendo da resolução da imagem final.
wlow = wslice + dslice * si
hlow = hslice + dslice * sj
- Shear-warp é eficiente para tratar volumes de pequeno e médio porte (enquanto a resolução das fatias for menor ou igual a resolução da imagem final).
- O passo de warp corrige a distorção e também reamostra a imagem intermediária para a resolução da imagem final.
Otimizações para o Shear-Warp
- Run-length encode do volume • Dado volumétrico é classificado através da função de
transferência de opacidade. • Porções transparentes do volume são descartadas,
tirando proveito da coerência do volume. • Estruturas associadas ao RLE são construídas em pré-
processamento.
- Run-length encode da imagem intermediária • Pixels já opacos são agrupados e saltados durante a
etapa de criação da imagem intermedária. • Equivale a otimização de early ray termination.
Otimizações para o Shear-Warp
run de voxels transparentes
run de voxels não transparentes
run de pixels opacos
run de pixels não opacos
reamostragem e composição
salta trabalha salta trabalha salta
Scanline do volume
Scanline da imagem
k i
j
fatia 0
fatia k-1
volume modelo poligonal
z o x o
y o
w u v
w u v
w u v
Shear Z-Buffer
volume e polígonos
Shear-Warp e Modelos Poligonais
warp cria imagem final
imagem intermediária
Integração Shear-Warp e Z-Buffer
- Como o acúmulo das contribuições dos voxels ocorre durante a etapa de criação da imagem intermediária, as contribuições dos polígonos também deve ser computadas durante esta fase.
- Modelo poligonal deve ser reamostrado para a resolução da
imagem intermediária. - Se a resolução da imagem intermediária for baixa podem
surgir efeitos de aliasing durante a reamostragem do modelo poligonal.
Integração Shear-Warp e Z-Buffer
Problemas encontrados:
• Introdução de artefatos e aliasing durante o processo de reamostragem do modelo poligonal.
• Combinar dados volumétricos com modelos poligonais semi-transparentes.
• Buscar soluções que criem imagens híbridas de qualidade em tempos aceitáveis.
Integração Shear-Warp e Z-Buffer
Algoritmos propostos:
• Composição em baixa resolução
• Composição em alta resolução
• Composição em resolução dual • Footprint
• Alta freqüência
Principais diferenças nos algoritmos propostos: • abordagem para o tratamento de aliasing
• tempo de processamento
Matriz de Projeção do Z-Buffer
- Reamostrar o modelo poligonal para a resolução da imagem intermediária é passo comum a todos os algoritmos propostos.
- Reamostragem feita através do algoritmo de Z-Buffer, que recebe a matriz de projeção a ser empregada de acordo com a resolução da imagem intermediária.
Mshearmodel = RCMshearP
Composição em Baixa Resolução
- Modelo poligonal é reamostrado para a resolução da imagem intermediária original, chamada de “baixa resolução”.
- É o mais simples entre os métodos propostos pois
não existe composição a nível de subpixels. - Apresenta maior presença de aliasing na imagem
rasterizada dos polígonos.
Algoritmo Composição em Baixa Resolução
Fatias
Imagem Final Imagem Intermediária
Scanline ativa da imagem TL TR
BL
slice_u slice_v fatia
imagem intermediária a
b BR
p
pixel voxel
u
v
i
Scanlines ativas da fatia
j a = slice_u - floor (slice_u) b = slice_v - floor (slice_v)
Composição em Baixa Resolução
C’v = (1-a)(1-b)C’BR + (a)(1-b)C’BL + (1-a)(b)C’TR + (a)(b)C’TL
α’v = (1-a)(1-b) α’BR + (a)(1-b) α’BL + (1-a)(b) α’TR + (a)(b) α’TL
C’p,new = C’p,old + C’v(1- αp,old) C’p,new = C’p,old + C’pol(1- αp,old) α’p,new = α’p,old + α’v(1- αp,old) α’p,new = α’p,old + α’pol(1- αp,old)
Composição em Baixa Resolução
Presença de aliasing nas bordas do modelo poligonal
Composição em Alta Resolução
Idéia Básica:
• Utilizar uma imagem intermediária de resolução comparável a da imagem final para evitar aliasing.
• Para tanto pixels da imagem intermediária devem
ser subamostrados.
Imagem intermediária em alta resolução
Resolução da imagem intermediária de alta:
whigh = M(wlow-1)+1 hhigh = N(hlow-1)+1
- Corresponde a dividir cada intervalo de pixel da
imagem intermediária original (low) em MxN subpixels.
⎟⎟⎠
⎞⎜⎜⎝
⎛=ʹ
11
01
ww
v!
⎟⎟⎠
⎞⎜⎜⎝
⎛=ʹ
10
00
ww
u!
u
v
uv
Imagem Intermediária x
y
Imagem Final
uʹ!
v ʹ!
Imagem intermediária em alta resolução
- Os fatores M e N são tais que um passo unitário nas direções u e v no espaço da imagem intermediária aproxime-se de um passo unitário no espaço da imagem final.
M = ceil(max(|w00|, |w10|, 1)
N = ceil(max(|w01|, |w11|, 1)
scanline ativa da imagem intermediária
NW N
W
fatia imagem intermediária a
b p
pixel voxel
u
v
i scanlines ativas da fatia
j
NE
E
S SW SE p
NW N
W
NE
E
S SW SE
C 0 1
1
0
C
fatia
Composição em Alta Resolução
- Todos os pixels da imagem intermediária são compostos em alta resolução.
- Calculada a contribuição dos voxels para cada subpixels considerando 9 voxels vizinhos.
Composição em Alta Resolução
Redução da presença de aliasing nas bordas do modelo poligonal.
Tempos de processamento mais elevados.
Composição em Resolução Dual
Idéia Básica: Aumentar a resolução da imagem intermediária
somente nas regiões influenciadas pela presença do modelo poligonal.
imagem intermediária
fatia
Algoritmo Footprint
- Todos os pixels que recebem influência dos polígonos são marcados para serem compostos em alta resolução.
- Cria duas imagens intermediárias, uma em baixa e outra em alta resolução; depois faz a combinação em uma única imagem intermediária de alta.
intermediária em alta
intermediária em baixa
intermediária final em alta
Algoritmo Footprint
Imagem final com aliasing reduzido nas bordas do modelo poligonal
Algoritmo Alta Freqüência
- Detecta, através de um filtro passa-alta, as regiões da imagem do modelo poligonal mais propensas à presença de aliasing.
Algoritmo Alta Freqüência
- Compõe em alta resolução somente os pixels das regiões de borda ou irregularmente iluminadas.
- Cria três imagens intermediárias, duas em baixa e uma em alta resolução; depois faz a combinação em uma única imagem intermediária de alta.
intermediária em alta
intermediárias em baixa intermediária final em alta
Algoritmo Alta Freqüência
Imagem final com aliasing reduzido nas bordas do modelo poligonal.
Modelos Poligonais com Transparência
- Algoritmos propostos são facilmente estendidos para tratar diferentes níveis de transparência do modelo poligonal.
- O algoritmo de Z-Buffer é alterado para produzir n mapas de cor, opacidade e profundidade, onde n é o nível de transparência associado ao modelo.
Zlist-buffer com 5 níveis
Contexto do TesteDado Volumétrico cabeça Woman
Dimensão do Volume 512x512x209 (original)127x127x51 (small)
Opacidade do Volume Opaco
Modelo Poligonal 6 cones
Número de Polígonos 300
Opacidade do Modelo Poligonal Opaco
Níveis de Transparência do Modelo 0
Biblioteca Gráfica G3D (software)
Plataforma de Hardware Intergraph
Resultados Obtidos - Eficiência dos Algoritmos
Footprint Alta Freqüência
small 0.000 0.111 0.221 0.222 0.220original 0.000 0.291 0.353 0.357 0.357small 0.000 0.000 0.029 0.029 0.060original 0.000 0.000 0.066 0.041 0.128small 0.068 0.065 0.958 0.524 0.511original 1.687 1.711 3.940 3.297 2.459small 0.000 0.000 0.058 0.053 0.055original 0.000 0.024 0.125 0.135 0.131small 0.068 0.065 0.900 0.356 0.275original 1.687 1.687 3.815 2.908 1.922small 0.000 0.000 0.000 0.115 0.182original 0.000 0.000 0.000 0.254 0.405small 0.167 0.175 0.190 0.195 0.199original 0.195 0.208 0.209 0.224 0.238small 0.235 0.351 1.399 0.970 0.990original 1.882 2.210 4.569 3.919 3.182
Tempo Total
Composição da Contribuição dos Polígonos entre as Fatias
Composição da Contribuição das Fatias
Combinação das Imagens Intermediárias
Warp
Tamanho do Volume
Sem Polígonos
Composição em Baixa resolução
Composição em Alta
resolução
Z-Buffer do Modelo Poligonal
Criação da Imagem Intermediária
Determinação e Marcação das Regiões de Alta freqüência
Crânio da Visible Woman
Eficiência dos Algoritmos
- Tempo gasto com Z-Buffer do modelo poligonal é significativo.
- Tempo de criação da imagem intermediária é o mais alto dentre as etapas.
- Algoritmo de composição em baixa resolução é o mais eficiente, contudo existe compromisso com a qualidade da imagem criada.
0 0.05 0.1
0.15 0.2
0.25
Tempo (s)
Rasterização Extração Etapas do Z-Buffer
Footprint
G3D GL
Eficiência - Comparação entre G3D e OpenGL
Implementação do Z-Buffer por software, através do G3D, é mais eficiente na etapa de extração dos mapas de cor, opacidade e profundidade, sendo a diferença na ordem de centésimos de segundo.
Entretanto, na etapa de rasterização, OpenGL é mais eficiente, sendo a diferença na ordem de décimos de segundo.
Contexto do TesteDado Volumétrico Syn64
Dimensão do Volume 643
Opacidade do Volume Opaco
Modelo Poligonal planos + cone
Número de Polígonos 302
Opacidade do Modelo Poligonal Transparente
Níveis de Transparência do Modelo 0, 1, 3, 5
Biblioteca Gráfica G3D
Plataforma de Hardware Intergraph
Eficiência - Modelos com Diferentes Níveis de Transparência
Eficiência - Modelos com Diferentes Níveis de Transparência
- Algoritmo de baixa resolução continua sendo mais eficiente. - Dependendo do nível de transparência associado ao modelo,
os algoritmos de Footprint e Alta Freqüência se alternam como mais eficiente. Diferença diz respeito a etapa de “determinação das regiões de alta freqüência”.
- Neste exemplo, algoritmo de Alta resolução apresentou
tempos próximos aos dos algoritmos duais devido à geometria do modelo poligonal.
Eficiência - Modelos com Diferentes Níveis de Transparência
- Para volumes semi-transparentes com dimensões maiores, a escolha de mais de um nível de transparência dos polígonos reflete, em termos de décimos de segundo, no tempo de criação da imagem final.
- Neste teste, algoritmo de Footprint foi o mais eficiente, dentre os que criam imagens em alta resolução, empregando três níveis de transparência.
127x127x51 30.59
512x512x209 562.97
Pélvis 512x512x100 160.69
Tempos de Construção do RLE do Volume
Crânio da Visible Woman Sem RLE Com RLE
91.025 14.365 Tempo total (s)
Pélvis+Prótese - Baixa resolução
Tempos de Pré-processamento - RLE do Volume
- Construção das estruturas de RLE do volume de acordo com função de transferência de opacidade.
- Tempo de processamento para construção são elevados, exigindo que esta etapa seja feita em pré-processamento.
- Para cada função de transferência de opacidade, as estruturas RLE do volume são construídas uma única vez.
127x127x51 17.19 s
512x512x209 1158.97s
Pélvis 512x512x100 525.36 s
Tempos de Quantização do Gradiente
Cabeça da Visible Woman
Tempos de Pré-processamento - Quantização do Gradiente
- Gradiente quantizado para tabela de normais pré-calculada com 256 entradas, em fase de pré-processamento.
- Economia de memória com gradiente, representação em 1 byte.
- Compromisso com a qualidade da imagem gerada.
Resultados - Qualidade da Imagem
Baixa resolução Alta resolução
Footprint Alta freqüência
Resultados - Qualidade da Imagem
Modelo com 1 nível Modelo com 3 níveis Diferença
Resultados - Qualidade da Imagem
Prótese Opaca Prótese 1 nível
Prótese 1 nível Prótese 3 niveis Diferença
Conclusões
- Os a lgor i tmos apresentados combinam corretamente dados volumétricos com modelos poligonais, com ou sem a presença de transparência.
- As diferentes estratégias de tratamento de aliasing possibilitam a escolha do melhor custo x benefício considerando tempo de processamento e qualidade das imagens geradas.
Conclusões
- O algoritmo de baixa resolução apresenta menor tempo para realizar a combinação; entretanto, a imagem final gerada pode apresentar problemas de aliasing.
- O algoritmo de alta resolução gera a imagem final de melhor qualidade, porém apresenta o tempo de processamento mais elevado.
Conclusões
- Os algoritmos de resolução dual geram imagens finais de qualidade comparável às criadas pelo algoritmo de alta resolução, apresentando melhor pe r fo rmance em t e rmos de t empo de processamento.
- A partir dos testes, pode-se indicar o uso do algoritmo de alta freqüência para os casos em que o modelo poligonal é opaco e o de footprint para os casos onde existe transparência.
Conclusões
- Emprego de RLE do volume e da imagem intermediária é imprescindível para obtenção de tempos aceitáveis na renderização do dado volumétrico.
- Os algoritmos desenvolvidos nesta tese são independentes da presença de hardware especializado.
- Pode-se tirar melhor proveito de bibliotecas gráficas aceleradas por hardware se o acesso ao Z-Buffer for otimizado.
Conclusões
- Embora soluções implementadas em hardware, como a VolumePro, possam manipular volumes em tempos interativos, elas ainda não incorporam a visualização de modelos poligonais combinados com os dados volumétricos.
Trabalhos Futuros
- Implementação das etapas como a de warp e convolução através de funções aceleradas no hardware das placas gráficas.
- Comparação com funções de Z-Buf fer implementadas através do Direct3D, aceleradas por hardware.
Trabalhos Futuros
- Desenvolver uma ferramenta para a realização da modelagem e do posicionamento do modelo poligonal em relação ao volume, onde os objetos poligonais possam ser criados ou adaptados em função da geometria dos objetos volumétricos. Para tanto, deve-se integrar a modelagem do objeto poligonal ao processo de segmentação das estruturas presentes no dado volumétrico.
Trabalhos Futuros
- Desenvolver ferramentas para exploração e análise do dado volumétrico (planos de corte, extração de subvolumes, manipulação das fatias, realização de medidas quantitativas, etc.), com ou sem a presença do modelo poligonal.
Animações
Animações
Aprendi que se depende sempre De tanta muita diferente gente Toda pessoa sempre é as marcas Das lições diárias de outras tantas pessoas E é tão bonito quando a gente entende Que a gente é tanta gente Onde quer que a gente vá É tão bonito quando a gente sente Que nunca está sozinho Por mais que pense estar É tão bonito quando a gente pisa firme Nessas linhas que estão Nas palmas de nossas mãos É tão bonito quando a gente vai à vida Nos caminhos onde bate Bem mais forte o coração Caminhos do Coração (Gonzaguinha)