Return to search

Uma arquitetura de comunicação escalável para sistemas de visualização imersivos. / A scalable communication architecture for immersive visualization systems.

A complexidade dos sistemas de visualização imersivos pode variar tremendamente conforme a sua aplicação. Algumas ferramentas mais simples fazem uso de um único óculos de Realidade Virtual como infraestrutura de visualização. No entanto, aplicações mais complexas, como simuladores e outras ferramentas de treinamento, podem necessitar de uma infraestrutura distribuída, contendo diversos computadores e telas. Alguns simuladores e outras aplicações de treinamento fazem uso frequente de periféricos sofisticados de interação, que reproduzem de maneira fiel os elementos encontrados no cenário real. Além disto, o espaço de treinamento pode ser compartilhado por dois ou mais usuários. Estes requisitos acabam por impor o uso de sistemas de visualização complexos e distribuídos, que visam cobrir de maneira quase completa o campo de vis~ao destes usuários. Por causa das características deste tipo de sistema, as aplicações desenvolvidas nestes cenários são inerentemente complexas, pois frequentemente consideram aspectos específicos da infraestrutura para realizar a distribuição e o sincronismo da cena virtual. Esta complexidade dificulta o desenvolvimento, a manutenção e a interoperabilidade destas ferramentas. Este trabalho apresenta uma arquitetura de comunicação para promover o uso de sistemas imersivos de forma simples e transparente para as aplicações, viabilizando o uso de infraestruturas complexas e distribuídas. A arquitetura proposta utiliza o mecanismo de substituição do driver OpenGL para obter, de forma automática, a distribuição do aspecto gráfico das aplicações. Apesar deste conceito já ter sido discutido na literatura, esta proposta apresenta um conjunto de técnicas para contornar as limitações inerentes desta abordagem e obter ganhos de desempenho significativos, com resultados consistentes em um amplo conjunto de infraestruturas. As técnicas apresentadas neste trabalho sugerem, entre outras coisas, o uso de recursos modernos do padrão OpenGL para reduzir o volume de comunicação entre CPU e GPU. Um dos recursos avaliados foi o uso de mecanismos de renderização indireta, onde a aplicação armazena os comandos de renderização na memória da placa gráfica. Juntamente com esta técnica, o trabalho também investigou o uso de um algoritmo de culling na própria GPU, o que permitiu que esta otimização fosse utilizada mesmo em sistemas com arranjos mais complexos de tela. Os resultados obtidos mostram que a aplicação pode exibir o seu conteúdo em um conjunto amplo de sistemas imersivos, contendo mais resolução e mais geometria visível, sem deteriorar o seu desempenho. Os testes foram conduzidos em diferentes infraestruturas e com cenas de tamanhos variáveis. Nos casos mais complexos, as técnicas propostas podem reduzir em 86% o tempo médio de renderização, quando comparadas com as abordagens tradicionais. / The complexity of immersive visualization systems can vary tremendously depending on their application. Some simple tools might only require a conventional virtual reality goggle as a visualization infrastructure. However, more complex applications, such as simulators and other training tools, might require a distributed infrastructure, containing several computers and screens. Some training applications and simulators invariably make use of physical peripherals for interaction, which are designed to faithfully reproduce the elements found in real scenarios. Furthermore, the training area may be shared by two or more users. These requirements usually impose the use of complex and distributed imaging systems, which are intended to cover almost the entire field of view of the users involved. Because of the characteristics of this type of system, the applications developed for these infrastructures are inherently complex. They are required to consider specific aspects of the infrastructure itself to carry out the distribution and synchronization of the virtual scene. This complexity hampers the development, maintenance and interoperability of these tools. This work presents a communication architecture to promote the use of immersive systems by allowing applications to use complex and distributed infrastructures in a simple and transparent way. The proposed architecture uses the approach of replacing the OpenGL driver to transparently achieve graphics distribution. Although this has already been discussed in the literature, this document presents a set of techniques to overcome the inherent limitations of this approach and ultimately achieve significant performance gains, with consistent results across a broad range of infrastructures. The techniques presented here suggest, among other things, the use of modern features of the OpenGL standard to reduce the communication overhead between CPU and GPU. One of the features evaluated was the usage of indirect rendering, where the application stores all the rendering commands in the graphics card dedicated memory. Along with this feature, the work also investigated the use of a culling algorithm on the GPU itself, which allowed this optimization to be used even on systems containing screens with a more complex layout. The results show that the application can render its content in a wide range of immersive systems, with higher resolution and more visible geometry, without degrading its performance. The tests were conducted at different infrastructures and scenes with variable sizes. In the more complex use cases, the proposed techniques can reduce by up to 86% the average rendering time, when compared to the traditional approaches.

Identiferoai:union.ndltd.org:usp.br/oai:teses.usp.br:tde-23012017-154200
Date21 November 2016
CreatorsBelloc, Olavo da Rosa
ContributorsZuffo, Marcelo Knorich
PublisherBiblioteca Digitais de Teses e Dissertações da USP
Source SetsUniversidade de São Paulo
LanguagePortuguese
Detected LanguagePortuguese
TypeTese de Doutorado
Formatapplication/pdf
RightsLiberar o conteúdo para acesso público.

Page generated in 0.0027 seconds