Volumes

Renderização de volumes pode ser usada para efeitos como fogo, fumaça, névoa, absorção em vidro, e muitos outros efeitos que não podem ser representados por superfícies de malhas apenas.

Para criar um volume, você cria uma malha que define os limites nos quais o volume existe. No material você tipicamente remove os nós de superfície e ao invés disso conecta nós de volume para definir o sombreamento dentro do volume. Para efeitos como absorção em vidro você pode usar tanto um sombreador de superfície como um sombreador de volume. O mundo também pode usar um sombreador de volume para criar efeitos como névoa.

Sombreamento

Principled Volume

Principled Volume é um sombreador fisicamente baseado que pode ser usado para criar uma ampla variedade de materiais volumétricos. Suporta espalhamento, absorção e emissão em um nó fácil de usar. Fogo pode ser renderizado com emissão de corpo negro (blackbody).

../../../_images/render_cycles_materials_volume_principled.jpg

Fumaça e fogo renderizados com o sombreador Principled Volume.

Componentes de Volume

Para maior controle, componentes de sombreadores de volume podem ser combinados manualmente em uma configuração de sombreador customizado.

  • Absorção de Volume irá absorver parte da luz a medida que ela passa através do volume. Isso pode ser usado para por exemplo sombrear fumaça preta ou objetos de vidro colorido, ou misturado com o nó de espalhamento de volume. Esse nó é similar ao nó BSDF Transparente, ele bloqueia parte da luz e deixa outra parte passar direto
  • Espalhamento de Volume faz a luz espalhar em outras direções a medida que ela atinge partículas no volume. A anisotropia define em qual direção a luz tem maior tendência para espalhar. Um valor de 0 irá deixar a luz espalhar uniformemente em todas as direções (simular ao nó BSDF Difuso), valores negativos fazem a maior parte da luz espalhar para trás, e valores positivos fazem a maior parte da luz espalhar para frente. Isso pode ser usado para sombrear fumaça branca ou nuvens por exemplo.
  • Emissão irá emitir luz do volume, para fogo por exemplo.
../../../_images/render_cycles_materials_volume_node.jpg

Absorção, Espalhamento e Emissão de Volume

Atributos

Quando renderizando fumaça e fogo, atributos de volume são usados para definir a forma e sombreamento do volume. Então o sombreador Principled Volume será usado por padrão, enquanto sombreadores de volume customizados podem usar o nó Atributo para obter atributos como densidade, cor e temperatura.

Densidade

Todos os sombreadores de volume têm entrada de densidade. A densidade define quanto da luz irá interagir com o volume, sendo absorvida ou espalhada, e quanto irá passar direto através. Para efeitos como fumaça você especificaria um campo de densidade para indicar onde no volume há fumaça e quanto (densidade maior que 0), e onde não há fumaça (densidade igual a 0).

Volumes no mundo real consistem de partículas, uma densidade maior significa que há mais partículas por unidade de volume. Mais partículas significa que há mais chance da luz colidir com uma partícula e ser absorvida ou espalhada, ao invés de passar direto através.

Volumes de Malha

Malhas usadas para renderização de volume devem ser fechadas e contíguo. Isso significa que não deve haver buracos na malha. Cada aresta deve estar conectada a exatamente duas faces de modo que não existam buracos ou faces em forma de T onde três ou mais faces estão conectadas a uma aresta.

Normais devem apontar para fora para resultados corretos. As normais são usadas para determinar se um raio entra ou sai de um volume, e se elas apontam na direção errada, ou há um buraco na malha, então o renderizador não é capaz de decidir que lado é dentro ou fora do volume.

Essas regras são as mesma para a renderização correta da refração em vidros.

Volume do Mundo

Um sombreador de volume também pode ser aplicado ao mundo, preenchendo todo espaço.

Atualmente, isso é mais útil para tempo noturno ou outras cenas escuras, já que sombreadores de superfície do mundo não terão efeito se um sombreador de volume é usado. Isso porquê assume-se que o plano de fundo do mundo está infinitamente distante, o que é preciso o bastante para o sol por exemplo. Entretanto, para modelar efeitos como neblina ou espalhamento da atmosfera, não é uma boa suposição que o volume preenche todo o espaço, já que a maior parte da distância entre o sol e a terra é espaço vazio. Para tais efeitos é melhor criar um objeto de volume ao redor da cena. O tamanho desse objeto irá determinar quanta luz é espalhada ou absorvida.

Espalhamento Múltiplo

Efeitos do mundo real como espalhamento em nuvens ou espalhamento de sub-superfície exigem muitos rebatimentos de espalhamento. Entretanto, a renderização imparcial (unbiased) de tais efeitos pode ser ruidosa, por isso por padrão o número de rebatimentos é zero. O efeito que você obtém quando renderizando rebatimentos de volume igual a zero é o que é conhecido como «espalhamento único», o efeito de mais rebatimentos é «espalhamento múltiplo».

Para renderizar materiais como pele ou leite que exigem espalhamento múltiplo, espalhamento sub-superfície é mais eficiente e fácil de controlar. Particularmente o método de caminhada aleatória pode renderizar precisamente tais materiais.

Para materiais como nuvens ou fumaça que não possuem uma superfície bem definida, renderização de volume é necessário. Esses ficam melhor com muitos rebatimentos de espalhamento, mas na prática pode ser necessário limitar o número de rebatimentos para manter o tempo de renderização aceitável.

Limitações

Não disponível na GPU

  • Amostragem de importância múltipla para luzes eficientes dentro de volumes.