O ator de volume heterogêneo é usado para renderizar o material de domínio de volume que amostra Sparse Volume Textures, SVTs (texturas de volume esparso). Esse ator oferece suporte ao volume de renderização em tempo real e com o Path Tracer (rastreador de caminho). Atores de volume heterogêneo pode renderizar material de textura de volume esparso animado ou estático.
À esquerda, SVT de volume único estático; à direita, uma SVT animada.
Como trabalhar com ator de volume heterogêneo
Use o seguinte fluxo de trabalho para começar a usar o volume heterogêneo no seu projeto:
- Importe uma VDB para criar uma textura ativa de volume esparso na Unreal Engine.
- Configure um material de domínio de volume que amostre um ativo de SVT.
- Adicione um ator de volume heterogêneo à cena e atribua um material de SVT a ele.
Como importar arquivos VDB
Para começar, você deve ter um arquivo VDB (ou base de dados de voxel) a ser importado para o Navegador de Conteúdo.
Para importar um arquivo VDB, siga estes passos:
- Arraste e solte o VDB diretamente no Navegador de Conteúdo.
- Use o botão Importar no Navegador de Conteúdo.
VDBs têm sua própria janela de importação para importar arquivos VDB estáticos e animados.
Você tem a opção de importar um arquivo VDB estático ou animado. VDBs estáticas incluem apenas o arquivo único e seus dados de volume armazenados, enquanto VDBs animadas são um conjunto de arquivos individuais numerados sequencialmente. VDBs animadas precisam apenas importar qualquer um dos arquivos VDB numerados sequencialmente para importar a VDB animada em sua totalidade.
As VDBs podem incluir diferentes atributos armazenados com seus dados. Esses podem ser divididos entre atributos A e atributivos B. A recomendação geral é dividir os dados de entrada em dois atributos de amostragem, em que o primeiro dado de atributo é importado como unorm de 8 bits e o segundo dado de atributo é um float de 16 bits.
Para projetos na Epic Games, preferimos enviar a densidade como um unorm de 8 bits e passar todos os outros dados pela lista de atributos de floats de 16 bits durante a importação.
Os transformações importadas são aplicadas automaticamente com um volume heterogêneo. Se as transformações tiverem sido criadas com o pivô na origem, que geralmente é um dos cantos do volume, você pode marcar a caixa para pivô no centroide para mover o pivô para o centro do volume. No entanto, saiba que forçar o pivô para o centro do volume pode acabar desfazendo as transformações.
Consulte mais informações específicas sobre como importar e usar texturas de volume esparso em Sparse Volume Textures.
Como configurar um material de SVT
Consulte informações detalhadas sobre a configuração de um material com uma SVT e seu uso dentro de um material em Sparse Volume Textures.
O volume heterogêneo exige um material baseado em volume que amostra uma textura de volume esparso. Esses materiais usam o nó Sparse Volume Texture Sample para amostrar uma SVT, que você pode usar em conjunto com volumes heterogêneos, neblina volumétrica e nuvens volumétricas ou qualquer material baseado em volume.
A Unreal Engine inclui um material vazio de SVT de amostra já configurado ao qual você pode aplicar seu ativo de SVT. Você pode encontrá-lo no Navegador de Conteúdo em Engine, Materiais da engine chamado SparseVolumeMaterial. Faça uma cópia desse material e crie uma instância dele.
Depois de abrir a instância de material, substitua o parâmetro SparseVolumeTexture e aplique o seu próprio ativo de SVT importado ao espaço de atribuição.
Configurando um volume heterogêneo
Para configurar um volume heterogêneo, siga estes passos:
- Usando o painel Posicionar atores, pesquise e adicione um ator de volume heterogêneo à cena.
- Com o ator selecionado, use o painel Detalhes para atribuir um material de SVT ao ator.
- [Opcional] Se você tiver importado uma VDB animada, deve marcar as caixas para Playing (Reproduzindo) e Looping na seção Animation (Animação).
As propriedade do ator de volume heterogêneo
Os atores de volume heterogêneo têm as seguintes propriedades:
| Propriedades | Descrição |
|---|---|
| Materiais | |
| Element [N] | O espaço de atribuição de material para um material baseado em volume que amostra de uma textura de volume esparso. |
| Volume | |
| Volume Resolution | A resolução do volume é determinada automaticamente e não pode ser modificada durante a renderização com uma SVT. |
| Pivot at Centroid | Move o pivô para o centro do volume. Observe que as transformações foram criadas com o pivô na origem, que geralmente é um dos cantos do volume, dependendo de como foi criado. Forçar o pivô para o centro do volume pode desfazer as transformações. |
| Animation | |
| Frame | Exibe o quadro atual da SVT sendo renderizada. Quando a caixa de seleção Playing não estiver definida, você pode especificar um quadro específico de uma SVT animada. |
| Frame Rate | A velocidade com que os quadros devem ser reproduzidos. |
| Start Frame | Com qual quadro a SVT animada deve começar. Está vinculado ao intervalo disponível da SVT importada. |
| End Frame | Com qual quadro a SVT animada deve terminar. Está vinculado ao intervalo disponível da SVT importada. |
| Playing | Quando habilitado, reproduz a SVT animada uma vez. |
| Looping | Quando habilitado, repete a SVT animada desde o início novamente, desde o quadro inicial até o quadro final. |
| Frame Transform | |
| Transmissão de textura de volume esparso | |
| Issue Blocking Requests | O sistema de transmissão é notificado para bloquear quando estiver atualizando os dados da textura de volume esparso por quadro. Não é recomendado para reprodução em tempo real, mas pode ser útil para renderização de cinematografia quando o sistema de transmissão paginaria em um nível de MIP superior para manter a taxa de quadros em tempo real. |
| Streaming Mip Bias | Define o nível de textura da SVT sendo renderizada. Um valor mais baixo equivale a uma maior densidade e qualidade do volume. Valores mais altos têm menos densidade e qualidade. |
| Iluminação | |
| Step Factor | Esse fator ajusta o tamanho do passo do integrador de marcha de raios para ocorrer em um múltiplo da resolução do volume. Ao aumentar esse fator, o marchador dá passos mais longos e sacrifica a qualidade em favor do desempenho. |
| Shadow Step Factor | Esse fator ajusta o tamanho do passo dos cálculos de sombra do ray marcher. Ao aumentar esse fator, o marchador dá passos mais longos e sacrifica a qualidade em favor do desempenho. |
| Shadow Bias Factor | Esse fator ajusta o desvio de voxel inicial aplicado no cálculo de sombras. Aumentar esse fator reduz o autossombreamento, mas pode introduzir vazamento de luz. |
| Lighting Downsample Factor | Esse fator ajusta a resolução do volume de um cache de iluminação interna. Aumentar o fator diminui efetivamente a resolução operacional, diminuindo a memória do sistema e aumentando o desempenho. Tem o efeito de reduzir a qualidade. Apesar de a SVT ser nativamente esparsa, o cache de iluminação interna é denso no momento. O cache de iluminação interna atualmente não alocará uma resolução de volume maior que 1024x1024 x512 voxels. |
Animação
As propriedades de Animation fornecem regras personalizadas para a reprodução. Por padrão, as propriedades Start Frame (Quadro inicial) e End Frame (Quadro final) estão vinculadas à taxa disponível da SVT importada, mas podem ser cortadas para reproduzir apenas parte da animação da SVT. Espera-se que a reprodução ocorra a uma taxa "cinematográfica" de 24 quadros por segundo, mas pode ser ajustada conforme necessário.
A SVT é reproduzida interativamente na cena quando a caixa de seleção Playing é marcada e se repete continuamente quando a caixa de seleção Looping é marcada. Quando a caixa de seleção "Playing" estiver desmarcada, você pode clicar com o botão esquerdo do mouse no campo de texto de Frame e arrastar para a esquerda ou direita para deslizar pela reprodução dos quadros disponíveis da SVT.
Iluminação
O modelo de renderização diferida usa marcha de raios ao renderizar ativos volumétricos de alta qualidade com o ator de volume heterogêneo. Cada propriedade ajustável do fator é relativa à propriedade Volume Resolution (Resolução do volume). A resolução da SVT importada tem uma correlação direta com o desempenho do tempo de execução.
Blueprints
Nos Blueprints, você pode usar os nós Play e Set Playing para acionar o início e a parada dos dados de animação.
Como usar o volume heterogêneo com o rastreador de caminho
Você pode criar um volume heterogêneo com o plugin Niagara Fluids ou instanciando um ator de volume heterogêneo nas suas cenas. Esses volumes começam a ser renderizados quando o rastreador de caminho é habilitado.
Exemplo de um volume heterogêneo do Niagara Fluid renderizado com o rastreador de caminho.
Para renderizar um volume heterogêneo com o rastreador de caminho, habilite o seguinte:
- Configurações do Projeto
- Defina o RHI padrão como DirectX 12.
- Habilite Support Hardware Ray Tracing (Suporte ao traçado de raios por hardware).
- Habilite Path Tracing (Traçado de raios)
- Plugins
- [Opcional] Niagara Fluids
Consulte uma lista concluída de especificações em Path Tracer.
Volume heterogêneo com o Niagara Fluids
O plugin Niagara Fluids deve estar habilitado para que essa funcionalidade possa ser usada. Consulte mais informações em Niagara Fluids.
Para renderizar com o Niagara Fluids, siga estes passos:
- Crie um novo Niagara Fluid no Navegador de Conteúdo.
- Na janela do seletor do Niagara, selecione New system from a template or behavior example (Novo sistema a partir de exemplo de modelo ou comportamento) e clique em Next (Avançar).
- Escolha um dos exemplos na lista 3D Gas da janela.
- Clique duas vezes no ativo do Niagara Fluid para abrir o Editor Niagara.
- Selecione o nó do sistema Niagara Fluid no gráfico.
- No painel Detalhes, defina o seguinte:
- Loop Behavior (Comportamento de loop) como Infinite (Infinito).
- Loop Duration (Duração do loop) deve ser menor que 5 segundos.
- Compile e salve o ativo do Niagara Fluid.
- Coloque o Niagara Fluid na sua cena.
- Abra a janela do console e a entrada
r.PathTracing.HeterogeneousVolumes 1para habilitar o suporte do rastreador de caminho para renderização de volume heterogêneo.
Volumes heterogêneos com textura de volume esparso
Para renderizar com Sparse Volume Textures, siga estes passos:
- Importe um arquivo VDB e configure um material de textura de volume esparso para exibi-lo.
- No Editor de Níveis, use o painel Posicionar atores para adicionar um ator de volume heterogêneo à cena.
- Atribua o material de textura de volume esparso ao seu slot de material.
- Abra a janela do console e a entrada
r.PathTracing.HeterogeneousVolumes 1para habilitar o suporte do rastreador de caminho para renderização de volume heterogêneo.
Variáveis de console úteis
| Variável de console | Descrição | Valor padrão |
|---|---|---|
r.PathTracing.HeterogeneousVolumes |
Habilita o traçado de caminho de volumes heterogêneos. | 0 |
r.HeterogeneousVolumes.IndirectLighting |
Habilita a iluminação indireta para volumes heterogêneos. Fica desabilitada por padrão. | 0 |
r.HeterogeneousVolumes.OrthoGrid |
Habilita a grade de voxels do espaço do mundo. | 1 |
r.HeterogeneousVolumes.OrthoGrid.MaxBottomLevelMemoryInMegabytes |
Determina o limite de memória (em megabytes) para cada grade de voxels de nível inferior usada para voxelização (emissão, extinção e albedo). O padrão de cinematografia recomendado é 512. | 128 |
r.HeterogeneousVolumes.OrthoGridShadingRate |
Determina a taxa de sombreamento ativo da grade de voxels do espaço do mundo, onde o valor corresponde aproximadamente à largura do pixel. Taxas de sombreamento mais baixas criam uma tesselação de maior qualidade, mas exigem mais memória. O padrão de cinematografia recomendado é 1. | 4 |
r.HeterogeneousVolumes.FrustumGrid |
Habilita a grade de voxels alinhada ao frustum. | 1 |
r.HeterogeneousVolumes.FrustumGrid.MaxBottomLevelMemoryInMegabytes |
Determina o limite de memória (em megabytes) para cada grade de voxels de nível inferior usada para voxelização (emissão, extinção e albedo). O padrão de cinematografia recomendado é 512. | 128 |
r.HeterogeneousVolumes.FrustumGrid.ShadingRate |
Determina a taxa de sombreamento ativo da grade de voxels alinhada ao frustum, onde o valor corresponde aproximadamente à largura do pixel. Taxas de sombreamento mais baixas criam uma tesselação de maior qualidade, mas exigem mais memória. O padrão de cinematografia recomendado é 1. | 4 |
r.HeterogeneousVolumes.FrustumGrid.DepthSliceCount |
Determina o número de fatias de profundidade da grade de voxels alinhada ao frustum quando renderizada com uma taxa de sombreamento de 1. A renderização com uma taxa de sombreamento de 2 corresponde à emissão de uma contagem de fatias de profundidade de 256. O padrão para cinematografia recomendado é 512 ou 1024. | 512 |
r.HeterogeneousVolumes.Tessellation.FarPlaneAutoTransition |
Trunca o plano distante da grade alinhada ao frustum quando o tamanho do voxel da grade de voxels alinhada ao frustum corresponde ao tamanho do voxel da grade de voxels do espaço do mundo. | 1 |
| Variáveis de escalabilidade | ||
r.HeterogeneousVolumes.DownsampleFactor |
Reduz a amostra da janela de visualização renderizada. | 1.0 |
r.HeterogeneousVolumes.MaxStepCount |
A contagem máxima de etapas de marcha de raios usada para renderizar o volume heterogêneo. | 512 |
r.HeterogeneousVolumes.Shadows.Resolution |
defina a resolução ao construir o mapa de sombra volumétrica. | 512 |
Configurações de Projeto com volume heterogêneo
O ator de volume heterogêneo tem as seguintes Configurações de Projeto. Eles são encontrados na seção Engine, Renderização na categoria Volume heterogêneo.
| Propriedade | Descrição |
|---|---|
| Volumes heterogêneos | Habilita a renderização com os subsistema de volumes heterogêneos. |
| Projeção de sombra | Habilite o volume heterogêneo para projetar sombras no ambiente. |
| Composto com translucidez | Habilite a composição com volume heterogêneo ao renderizar translucidez. |
Observações adicionais
Tempo real:
- Renderização em tempo real e rastreador de caminho
- O suporte mais completo para o volume de renderização agora está disponível no rastreador de caminho, que pode simular com precisão a iluminação global.
- Projeção de sombras no ambiente
- Essa funcionalidade é experimental.
- Você pode habilitar a projeção de sombras de volume heterogêneo nas Configurações de Projeto.
Rastreador de caminho:
Essa funcionalidade é experimental.
- Volume heterogêneo em quadrado ou borrado
- A taxa de sombreamento padrão para a renderização de volume heterogêneo é 4, para oferecer suporte ao traçado de caminho interativo. Reduzir a taxa de sombreamento para 1 remove artefatos perceptíveis, mas exige mais memória para a renderização correta. A taxa de sombreamento padrão de cinematografia recomendada é 1, e o limite de memória padrão recomendado é 512. Recomendamos defini-los nas configurações de Movie Render Queue (Fila de renderização de filme) ao renderizar.
- Voxels ausentes nas renderizações
- Diminuir a taxa de sombreamento do espaço do mundo e das grades de voxels alinhadas ao frustum pode tentar alocar mais voxels de nível inferior do que pelo limite de memória imposto. Nessas instâncias, os voxels não serão alocados e partes do volume ficarão faltando. Neste momento, você deve usar a memória de nível inferior ou aumentar a taxa de sombreamento.
- Sobreposição de volumes heterogêneo aparece quadrada
- Os dados de voxels de nível inferior na grade de voxels no espaço do mundo são agregados se a região for determinada como homogênea. A detecção homogênea é realizada dentro dos limites de um único volume e pode ser agregada incorretamente na presença de volumes sobrepostos dentro da mesma região. Você pode impedir a agregação definindo
r.HeterogeneousVolumes.Tessellation.BottomLevelGrid.HomogeneousAggregationcomo0para desabilitá-la.
- Os dados de voxels de nível inferior na grade de voxels no espaço do mundo são agregados se a região for determinada como homogênea. A detecção homogênea é realizada dentro dos limites de um único volume e pode ser agregada incorretamente na presença de volumes sobrepostos dentro da mesma região. Você pode impedir a agregação definindo
- Efeito de porta de tela com o Niagara Fluid
- Os Sistemas Niagara apenas acionam os eventos de invalidação de traçado de caminho quando o Editor Niagara está aberto. Deixar o editor aberto permite que a animação seja visualizada corretamente no rastreador de caminho. Quando o editor é fechado, o rastreador de caminho continua a acumular amostras ao longo da animação.
- Efeito de porta de tela com ator de volume heterogêneo
- O ator de volume heterogêneo atualmente não aciona eventos de invalidação de traçado de caminho. Desmarque a propriedade Animar no ator para suspender a animação.
Iluminação indireta com volumes heterogêneos
Você pode habilitar o suporte para iluminação indireta com volumes heterogêneos com a variável de console r.HeterogeneousVolumes.IndirectLighting 1. Esse recurso é melhor usado com PCs de última geração e configurações de escalabilidade Cinematografia.
![]() |
![]() |
| Sem iluminação indireta | Com iluminação indireta |
Recursos adicionais
- Plugin Niagara Fluids
- O plugin Niagara Fluids inclui exemplos que podem ser usados com renderização de volume heterogêneo. Habilite o plugin no seu projeto e crie um novo Sistema Niagara a partir dos modelos fornecidos. Consulte mais informações em Niagara Fluids.
- O arquivo VDB usado nos exemplos desta página são do conjunto VDB gratuito do JangaFX, criado com EmberGen.
- Baixe seus exemplos gratuitos aqui.

