propagação de som em ambientes acústicos virtuais...
TRANSCRIPT
Propagação de Som em Ambientes Acústicos Virtuais
Bidimensionais
Sérgio Alvares R. de S. Maffra
Orientadores: Marcelo Gattass Luiz Henrique de Figueiredo
Roteiro
Introdução Modelando a Propagação do Som Trabalhos relacionados Trabalho desenvolvido Implementação Exemplos Conclusões Trabalhos futuros Demonstração
Introdução
Simulação de Fenômenos Acústicos– Projeto e Análise
Salas de concerto Auditórios
– Ambientes de Realidade Virtual Localização de objetos Separação de eventos sonoros simultâneosMaior compreensão espacial do ambiente
Modelando a Propagação do Som
Métodos Numéricos– Alto custo computacional
Elementos Finitos Elementos de Contorno
Simplificação– Acústica Geométrica
Onda tratada como um raio
Modelando a Propagação do Som
Objetivo: Calcular a resposta do ambiente ao impulso
Resposta do Ambiente ao Impulso (RI) Registro das atenuações e atrasos sofridos pela onda
– Convolução
Dividida em– Reverberações iniciais
Primeiros 80 ms da RI Tratadas geometricamente
– Reverberações finais Algoritmos de reverberação
– Filtros recursivos (IIR Filters)
Modelando a Propagação do Som
Técnicas de Enumeração– Enumeração por tipos de caminho– Método das fontes virtuais
Técnicas de Varredura– Ray Tracing– Beam Tracing
Modelando a Propagação do Som Técnicas de Enumeração
– Não reaproveitam caminhos de propagação
– Geram caminhos inválidos Não consideram visibilidade
– Trabalham com todos os oclusores do ambiente Complexidade depende do tamanho do ambiente! O(nr)
– Método das fontes virtuais Tem apenas reflexão especular
Modelando a Propagação do Som
Técnicas de Varredura– Permitem reaproveitar caminhos de propagação
Apenas quando o receptor se move
– Não geram caminhos inválidos Consideram visibilidade
– Ambiente pré-processado Limita o número de oclusores a considerar
Ray Tracing
Fenômenos– Reflexão especular– Difração– Refração
Superfícies curvas
Problemas– Aliasing
Beam Tracing
Sem Aliasing– Trabalha com regiões (fachos) ao invés de raios– Um facho pode representar infinitos raios!
Operações geométricas mais complexas– Ambientes definidos por polígonos
Depende de uma decomposição do ambiente em células convexas
Implementação para fontes móveis na literatura
Beam Tracing – Trabalhos relacionados
Funkhouser et. al – Siggraph 1998 A beam tracing approach to acoustic modeling for interactive virtual
environments
– Fontes fixas Fachos criados em uma etapa de pré-processamento
– Apenas reflexão especular
– Decomposição celular Feita com um particionamento recursivo (árvore BSP) Estrutura de grafo p/ percorrer as células
– Conclusão Fontes móveis aumentar desempenho em duas ordens de
grandeza
Beam Tracing – Trabalhos relacionados
Funkhouser et. al – Siggraph 1999 Real-time acoustic modeling for distributed virtual environments
– Aumento de performance de 2 ordens de grandeza Beam tracing amortizado Beam tracing bidirecional Priority driven beam tracing
– Servidor dedicado p/ traçamento de fachos
Beam Tracing – Trabalhos relacionados
Min, Funkhouser – Eurographics 2000 Priority-driven acoustic modeling for virtual environments
– Teste de diferentes funções de prioridade Busca traçar caminhos de propagação mais significativos
acusticamente
– Melhor função: TPL + RPL
– TPL: traversed path length– RPL: remaining path length
Beam Tracing – Trabalhos relacionados
Tsingos, Funkhouser – Siggraph 2001 Modeling acoustics in virtual environments using the uniform theory of diffraction
Fachos– Reflexão especular– Difração
Fontes Fixas
Decomposição celular– Particionamento recursivo (árvores BSP)– Estrutura topológica completa (non-manifold)
Beam Tracing – Trabalhos relacionados
Siggraph 2002 (julho) Funkhouser (Princeton) Jot (Creative Labs) Tsingos (INRIA, Bell Labs)
– Course Notes Sounds Good to me!
VAE – Virtual Acoustic Environment(trabalho desenvolvido)
Ambientes 2D
Decomposição celular– Particionamento recursivo – Simplificação de triangulações com restrições– Estrutura topológica (half-edge)
Beam tracing p/ fontes fixas
Fachos– Reflexão– Difração (cálculo de atenuação aproximado)
Controle no traçamento dos fachos– Número máximo de fachos– Número máximo de reflexões e difrações nos caminhos de propagação
VAE – Virtual Acoustic Environment(trabalho desenvolvido)
Reprodução de áudio via DirectX– Caminhos calculados geometricamente geram fontes virtuais– Ainda não incorpora algoritmos de reverberação
Implementação– C++– IUP, Lua, CD, Iuplua, XY– CGAL (estrutura topológica de mapas planares)
Acesso eficiente a células
Difração
Cálculo da Atenuação– Uniform geometrical theory of diffraction (UTD)– Directive line source method (DLSM)
Difração
Aproximação
Beam Tracing
Fachos
Etapas do algoritmo (fontes fixas)
Pré-processamento do ambiente– Decomposição celular
Traçadores (beam tracers)
Cálculo de atenuação
Beam Tracing
Fachos– Operações
Pertinência Detecção de interseção com
oclusores Interseção com oclusores
– Representação 2 matrizes de transformação Xp, Ypi, Ypf
Beam Tracing
Fachos– Operação de Pertinência
Beam Tracing
Fachos– Detecção de interseção com oclusores
Beam Tracing
Fachos– Interseção com oclusores
Beam Tracing
Object-space algorithm– Os oclusores do ambiente determinam o formato dos fachos
Associação entre fachos e células– Fachos delimitam regiões infinitas– Células determinam a região do facho que é válida
Beam Tracing
Duas etapas– Pré-processamento (traçado de fachos)
Criar uma beam tree
– Em tempo de execução Construção dos caminhos de propagação
Beam Tracing
Construção de caminhos de propagação– Percorrendo a beam tree
Pré-processamento do ambiente
Decomposição em células convexas– Acelera determinações de visibilidade
Pré-processamento do ambiente
Criação da decomposição– Particionamento recursivo– Simplificação de triangulações com restrições
Vértices e Arestas Vértices, Arestas e Faces
Pré-processamento do ambiente
Particionamento recursivo
Pré-processamento do ambiente
Particionamento recursivo– Algoritmo
Inserir arestas do fecho convexo
Agrupar oclusores colineares
Preencher lacunas entre oclusores
Realizar o particionamento
Enumerar ciclos
Pré-processamento do ambiente
Particionamento Recursivo– Problemas
Aumento do número de arestas e vértices
Pré-processamento do ambiente
Simplificação de triangulações com restrições
– Triangulações são decomposições celulares
– Número linear de células Não aumenta número de vértices Não divide oclusores
– Arestas podem ser removidas eficientemente Critério local
– Remover arestas em ordem crescente de comprimento– Remover arestas em ordem decrescente de comprimento
Pré-processamento do ambiente
Simplificação de triangulações com restrições
Triangulação Remoção em ordem crescente
Remoção em ordem decrescente
Traçadores de fachos
Construção de beam trees
Traçador mais simples– Número máximo de fachos
Cria os diferentes tipos de fachos– Transmissão– Reflexão– Difração
BFS_BeamTracer(Real x, Real y, Int numFachos){
fachoInicial = Cria_Fonte_Pontual(x, y)célulaInicial = Localiza_Célula(x, y)
Associa_Célula(fachoInicial, célulaInicial)
Fila FInsere_Fim(F, fachoInicial)
n = 0
while (Fila_não_Vazia(F) e n < numFachos){
facho = Remove_Primeiro(F)célula = Recupera_Célula(facho)
for i = 0 to Número_de_Arestas(célula){
aresta = Recupera_Aresta(célula, i)
if Interação_Válida(facho, aresta){
...}
} }
}
Traçadores de fachos
Fachos de transmissão
if Ocorre_Transmissão(facho, aresta) {
novoFacho = Cria_Facho_Transmissão(facho, aresta)
novaCélula = Recupera_Célula_Vizinha(célula, aresta)
Associa_Célula(novoFacho, novaCélula)
Valida_Interação_Transmissão(novoFacho, aresta)
Insere_Fim(F, novoFacho)
n = n + 1}
Traçadores de fachos
Fachos de reflexão
if Ocorre_Reflexão(facho, aresta) {
novoFacho = Cria_Facho_Reflexão(facho, aresta)
Associa_Célula(novoFacho, célula)
Valida_Interação_Reflexão(novoFacho, aresta)
Insere_Fim(F, novoFacho)
n = n + 1}
Traçadores de fachos
Fachos de difração
Há região de sombra Não há região de sombra
if Ocorre_Difração(facho, aresta) {
novoFacho = Cria_Facho_Difração(facho, aresta)
Associa_Células_Cobertas_por_Difração(novoFacho)
Valida_Interação_Difração(novoFacho)
Insere_Fim(F, novoFacho)
n = n + 1}
Cálculo de atenuação
Atraso do som
Amplitude de pressão final
Reprodução de áudio
Fontes virtuais criadas utilizando DirectX– 200 pulsos com maior amplitude de pressão
Posição das fontes virtuais– Ângulo de incidência no receptor– Distância igual ao comprimento do caminho de propagação– Volume correspondente às perdas decorrentes em reflexões e
difrações
Exemplos
Difração aumenta a cobertura por fachos
Exemplos
Difração aumenta a cobertura por fachos
Intensidade sem difração Intensidade com difração
Exemplos
Difração resulta em um campo sonoro mais suave
Amplitude da frente de onda Intensidade sem difração Intensidade com difração
Conclusões
Bom entendimento do problema
Desempenho– Reverberações iniciais em tempo real– Fontes móveis provavelmente podem ser tratadas sem um servidor dedicado
Difração– Acelera crescimento do número de fachos– Maior cobertura do ambiente– Permite criar um campo sonoro mais suave
Valida qualitativamente nossa aproximação
Decomposição celular– Simplificação de triangulações parece ser uma técnica promissora
Programa pode ser útil para análises acústicas se calibrado
Trabalhos Futuros
Diferentes tipos de materiais para oclusores
Atenuação com cálculos mais rigorosos fisicamente– UTD, DLSM
Comparar aproximação da difração com outras soluções
Transmissão do som através de paredes
Fontes móveis– Levar em consideração posição do receptor
Decomposição celular– Comparar particionamento recursivo com a simplificação de triangulações– Fazer a simplificação de “triangulações” 3D
Traçar fachos em ambientes 2.5D ou 3D