3.8 Árvores de Volumes Envolventes
3.8.2 Árvores de Volumes Envolventes de Modelos Dinâmicos
solução trivial consiste em calcular e usar os volumes evolventes somente para níveis da árvore do modelo a partir dos quais não haja mais movimento relativo entre suas partes. A segunda forma é recalcular grosseiramente os volumes envolventes desatualizados a partir dos volumes envolventes dos nós imediatamente subordinados, em vez de usar os vértices contidos nas folhas subordinadas. Isso, além de resultar em volumes bem maiores do que o necessário, só é viável se o número de volumes recalculados for bastante pequeno.
Propomos, aqui, outras duas formas de tratar esses modelos que podem ser usadas de forma combinada com as anteriores. A primeira é calcular volumes envolventes para uma posição preferencial, se ela existir (como o canhão apontando para frente ilustrado na Figura 3.9), e utilizar um sentinela para assinalar a saída dessa posição. Neste caso, a visibilidade é resolvida utilizando os volumes envolventes dos nós filhos. Esta estratégia tem o uso restrito a modelos ou partes deles que possuam
Dissertação de Mestrado uma posição preferencial bem evidente. A segunda proposta é usar envoltórias de movimento para calcular os volumes envolventes dos nós superiores.
Figura 3.9 - Objeto com posição preferencial: um sentinela avisa quando a torre não está na posição preferencial e a caixa envolvente principal não é mais usada
3.8.2.1 Árvore de volumes envolventes de objetos articulados
Para tirar proveito das envoltórias de movimento na árvore de volumes envolventes de um modelo, como citado acima, podemos usar uma hierarquia combinada de vínculos e composição conforme ilustrado na Figura 3.10. Enquanto temos a liberdade de reorganizar a composição de acordo com os métodos citados nas Seções 3.5, 3.6 e 3.7, devemos manter inalterada a organização de vínculos para preservar a hierarquia de instanciações. Conforme visto na Seção 3.2, temos objetos
Dissertação de Mestrado articulados construídos a partir de objetos compostos. Para os objetos elementares e para os compostos, calculamos volumes envolventes ajustados à sua geometria, enquanto para objetos articulados calculamos os volumes envolventes a partir das envoltórias de movimento de seus componentes.
Figura 3.10 - Hierarquia de vínculos e de composição
Suponhamos, por exemplo, um tanque simplificado composto essencialmente pela carcaça e torre do canhão. Como a carcaça e a torre são individualmente íntegras e sem peças com movimentos relativos, elas podem ter volumes envolventes estreitamente ajustados. Já o volume que envolve todo o tanque deve levar em consideração todo o movimento que a torre tem liberdade de fazer em relação à carcaça, como mostra a Figura 3.11. Esse relaxamento no ajuste do volume acarreta naturalmente a desvantagem de o tanque ser aceito quando nenhuma das suas partes for visível, mas que é resolvida ao se processar os nós descendentes.
Dissertação de Mestrado
Figura 3.11 - Envoltória de movimento da torre (o movimento vertical do canhão e outros não foram considerados)
Figura 3.12 - Objeto com comportamento determinístico: a caixa mais externa envolve todas as possíveis posições da torre
Dissertação de Mestrado A Figura 3.13 mostra a árvore do tanque com a torre subordinada à carcaça de forma que, quando a carcaça se move, a torre acompanha esse movimento. A torre, por sua vez, possui um movimento restrito de rotação em torno de um eixo vertical. A Figura 3.14 apresenta a árvore do mesmo tanque com seus objetos compostos reorganizados.
Figura 3.13 - Árvore mostrando a hierarquia combinada de vínculos e de composição para o tanque da Figura 3.9 conforme proveniente do modelador
Dissertação de Mestrado
Figura 3.14 - Grafo mostrando a hierarquia combinada de vínculos e de composição para o tanque da Figura 3.12 depois de reorganizada segundo um dos critérios citados
nas Seções 3.5, 3.6 e 3.7
3.8.2.2 Árvore de volumes envolventes de objetos com movimento livre
Estendendo o uso de envoltórias de movimento, propomos uma hierarquia de dois níveis, ilustrada na Figura 3.15. Esse esquema pretende atender o requisito de que alguns objetos devem ser agrupados, pois fazem parte de uma composição ou possuem vínculos, enquanto outros são independentes e não podem ser indexados conjuntamente durante toda a simulação.
A hierarquia de mais baixo nível representa índices de macro-objetos, tais como plataformas marítimas, aviões e navios. É uma hierarquia estática construída numa fase de pré-processamento. Desta forma, temos tempo de processamento suficiente para buscar uma forma apropriada de usar os volumes envolventes e uma estratégia apropriada para combiná-los.
Dissertação de Mestrado
Figura 3.15 - Indexação espacial de dois níveis
Nesta proposta, um macro-objeto é composto de objetos estáticos e objetos vinculados cujos movimentos relativos são conhecidos e de extensão razoavelmente restrita. Para evitar a atualização da hierarquia toda vez que um objeto vinculado se move, calculamos dois volumes envolventes para cada parte móvel: o primeiro se ajusta à sua geometria na posição inicial e o segundo à sua envoltória de movimentos. Este segundo volume é usado somente durante a construção da hierarquia, uma vez que representa uma geometria virtual utilizada para combinar um objeto com outro. Desta forma, se o objeto se mover, o programa de visualização precisa transformar apenas o primeiro volume envolvente. Nenhuma atualização é necessária porque o objeto se move dentro de uma região já considerada durante a fase de pré- processamento.
Em simulações reais, os macro-objetos se movem livremente, e dois objetos inicialmente próximos podem se distanciar um do outro. Por isso, nossa proposta é não apenas atualizar a hierarquia de volumes envolventes mas também reagrupar os nós baseados em coerência espacial. A melhor estratégia para efetivamente manter essa hierarquia dinâmica ainda está sendo investigada. Temos considerado a combinação de hierarquias e técnicas de compartimentação.
Dissertação de Mestrado