Uma arquitetura de comunicação escalável para sistemas de visualização imersivos. - Belloc, Olavo da Rosa (2016)
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.