Partilhar via


Renderização na nuvem de pontos

Nota

O recurso de renderização de nuvem de pontos ARR está atualmente em visualização pública.

Este recurso está sendo desenvolvido ativamente e pode não estar completo. É disponibilizado numa base de "Pré-visualização". Você pode testar e usar esse recurso em seus cenários e fornecer comentários.

Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

O ARR suporta a renderização de nuvens de pontos como uma alternativa às malhas triangulares. A renderização de nuvem de pontos permite novos casos de uso em que a conversão de nuvens de pontos em malhas triangulares como uma etapa de pré-processamento é impraticável (tempos de resposta, complexidade) ou se o processo de conversão perder detalhes importantes.

Semelhante à conversão de malha triangular, a conversão de nuvem de pontos não dizima os dados de entrada.

Conversão de nuvem de pontos

A conversão de ativos de nuvem de pontos funciona de forma totalmente análoga à conversão de malhas triangulares: um arquivo de entrada de nuvem de ponto único é convertido em um .arrAsset arquivo, que, por sua vez, pode ser consumido pela API de tempo de execução para carregamento.

A lista de formatos de arquivo de nuvem de pontos suportados pode ser encontrada na seção de conversão de modelo.

As configurações de conversão especificamente para arquivos de nuvem de pontos são explicadas no parágrafo de configurações de conversão.

Limitações de tamanho

A conversão de ativos na nuvem de pontos tem um limite rígido de 12,5 bilhões de pontos por ativo convertido. Se conjuntos de dados maiores precisarem ser renderizados, o arquivo de origem precisará ser dividido em vários ativos que obedeçam à restrição de 12,5 bilhões de pontos cada. O renderizador não limita o número de ativos exclusivos que estão sendo carregados, e a técnica de streaming de dados garante que a priorização funcione perfeitamente em todas as instâncias carregadas. Para o número máximo total de pontos permitidos carregados e renderizados pelo ARR, aplica-se o mesmo tipo de distinções entre uma sessão e premium uma standard sessão de renderização, conforme descrito no parágrafo sobre limites de tamanho do servidor.

Propriedades de renderização global

Há uma única API para acessar as configurações globais de renderização para nuvens de pontos. O _Experimental sufixo foi adicionado para indicar que a API está atualmente em visualização pública e pode estar sujeita a alterações.

void ChangeGlobalPointCloudSettings(RenderingSession session)
{
    PointCloudSettings settings = session.Connection.PointCloudSettings_Experimental;

    // Make all points bigger (default = 1.0)
    settings.PointSizeScale = 1.25f;
}
void ChangeGlobalPointCloudSettings(ApiHandle<RenderingSession> session)
{
    ApiHandle<PointCloudSettings> settings = session->Connection()->PointCloudSettings_Experimental();

    // Make all points bigger (default = 1.0)
    settings->SetPointSizeScale(1.25f);
}

Streaming de dados na nuvem de pontos

Os arquivos de ativos da nuvem de pontos são configurados automaticamente para streaming dinâmico de dados durante a conversão. Isso significa que, ao contrário dos ativos de malha triangular, os ativos de nuvem de pontos de tamanho significativo não são totalmente baixados para a VM de renderização, mas parcialmente carregados do armazenamento, conforme necessário.

Independentemente do tamanho do arquivo de nuvem de pontos, o grande benefício da abordagem de streaming de dados é que o renderizador pode começar cedo com a apresentação dos dados. A decisão do renderizador sobre quais dados priorizar é baseada na visão da câmera e na proximidade em todos os modelos de nuvem de pontos carregados. Nenhuma interação personalizada por meio da API é necessária. Além disso, o streaming de dados gerencia automaticamente o orçamento e as prioridades com base na quantidade de dados específicos relevantes para a exibição atual. Caso vários ativos de nuvem de pontos sejam instanciados em cena, o sistema de streaming garante que priorize os dados perfeitamente em todas as nuvens de pontos, assim como seria um único ativo. Assim, dividir o arquivo de origem é uma maneira conveniente de contornar a limitação de tamanho por arquivo.

Documentação da API

Próximos passos