A empresa Intel lançou a versão 1.0 do projeto OSPRay Studio, que desenvolve um aplicativo para visualização 3D interativa usando o motor de rastreamento de raios distribuído OSPRay. Entre outras funcionalidades, o programa pode ser utilizado para renderização de alta precisão de cenas complexas e processamento de cenas muito grandes, que requerem a execução distribuída de cálculos em um cluster de vários computadores. O código do aplicativo é escrito em C++ e distribuído sob a licença Apache 2.0. Para a renderização na tela, são utilizados OpenGL e a biblioteca GLFW.
A cena a ser renderizada pode ser carregada em formatos comuns ou criada usando nós de gráfico de cena (scene graph). O suporte inclui a importação de modelos no formato MTL com materiais para renderização fotorrealista, animações 3D no formato glTF, texturas no formato UDIM, partículas volumétricas esparsas (por exemplo, nuvens) no formato VDB, nuvens de pontos no formato PCD (Point Cloud Data) e perfis de iluminação no formato EULUMDAT (.ldt). O estado do gráfico de cena pode ser salvo ou carregado no formato JSON.
Recursos avançados, widgets para a interface do usuário e manipuladores de importação de dados podem ser conectados na forma de plugins. Por exemplo, estão disponíveis plugins para visualização de dados médicos no formato DICOM, geração de paisagens a partir de mapas de altura, processamento de grandes grupos de objetos padrão (grama, árvores), simulação de eventos astronômicos, visualização de dados científicos no formato VTK, e assim por diante.
Para simular o comportamento da luz, o uso do método de rastreamento de caminho é suportado. A visualização pode ser realizada em volume ou em plano. O suporte inclui iluminação global fotorrealista, considerando as propriedades físicas dos materiais e efeitos avançados de sombreamento (sombras, transparência e sombreamento "Ambient occlusion"). É possível criar scripts para executar operações em modo batch, por exemplo, para renderização de imagens em um sistema sem monitor, seleção de áreas para renderização, ajuste de câmera, parâmetros de renderização e cena.
Na nova versão do OSPRay Studio:
- Adicionada a suporte para a funcionalidade do motor OSPRay que surgiu na versão 3.1.
- A interface do usuário foi integrada com suporte a materiais adicionais suportados pelo motor OSPRay.
- Adicionado suporte para a API OpenEXR v2.x e v3.x.
- Foi implementada a identificação de alterações nos arquivos em modo assíncrono para atualização automática de texturas.
- Na API para plugins, foi implementada a possibilidade de acesso às classes MainWindow e ArcballCamera.
- No modo em lote, há suporte para renderização distribuída usando MPI.
Além disso, vale destacar a publicação, há alguns dias, de uma nova versão do mecanismo de renderização 3D OSPRay 3.1, utilizado no OSPRay Studio 1.0. O mecanismo está sendo desenvolvido como parte de um projeto maior chamado Intel Rendering Framework, voltado para o desenvolvimento de ferramentas de visualização computacional de cálculos científicos SDVis (Software Defined Visualization), que incluem a biblioteca de traçado de raios Embree, o sistema de renderização fotorrealista GLuRay, a biblioteca para remoção de ruído em imagens oidn (Open Image Denoise) e o sistema de rasterização computacional OpenSWR. O código foi escrito em C++ e publicado sob a licença Apache 2.0.
O OSPRay é principalmente direcionado ao uso em aplicações interativas para renderização de cena em tempo real. O mecanismo pode funcionar sem dependência de GPU, permitindo o uso da biblioteca em uma ampla gama de dispositivos, desde estações de trabalho até nós em clusters computacionais. Para garantir desempenho adequado, utiliza-se intensamente multithreading e vetorização com instruções baseadas em SIMD, como Intel SSE4, AVX, AVX2 e AVX-512. A renderização pode ser distribuída em vários nós do cluster (suporte a MPI), permitindo, por exemplo, o uso do OSPRay para organizar a renderização de imagens de muito alta resolução em paredes de vídeo, onde uma única imagem é formada por um conjunto de painéis LCD separados.
Entre as melhorias no OSPRay 3.1:
- Suporte ao uso de texturas emissivas com materiais brilhantes.
- Os objetos esféricos suportados agora incluem 'disco' (OSP_DISC) e 'disco orientado' (OSP_ORIENTED_DISC).
- Adicionados modos de repetição espelhada e imersão de textura na borda (edge texture wrap).
- Suporte ao modo OSPTextureWrapMode foi adicionado para todas as texturas.
- Suporte completo para o mapeamento de texturas no formato glTF foi implementado.
- Adicionada suporte para remoção de ruído e correção de tom para dados no buffer.
- Apoio ao desfoque de movimento foi implementado para objetos em movimento ao usar GPU.
Fonte: opennet.ru
