Volumes#

Volume rendering is used to render various effects that cannot be represented by hard surfaces alone.

  • Smoke, fire or clouds are set up using a volume object or fluid simulation, with only a volume shader.

  • Meshes can also be used to create such shapes by removing the default surface shader and using a volume shader with the mesh shape defining the volume bounds and textures defining the volume density.

  • Mist is created with a volume shader for the world, or with a large mesh object encompassing the scene.

  • Absorption in glass is simulated by combining a glass surface shader with refraction and a volume absorption shader for the interior of the object.

Shading#

Principled Volume#

Principled Volume is a physically-based volume shader that can be used to create a wide range of volume materials. It supports scattering, absorption and emission in one easy to use node. Fire can be rendered with blackbody emission.

../../../_images/render_materials_components_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.

  • Volume Absorption will absorb part of the light as it passes through the volume. This can be used to shade for example black smoke or colored glass objects, or mixed with the Volume Scatter node. This node is similar to the transparent BSDF node, it blocks part of the light and lets other light pass straight through.

  • Volume Scatter lets light scatter in other directions as it hits particles in the volume. The anisotropy defines in which direction the light is more likely to scatter. A value of 0 will let light scatter evenly in all directions (similar to the diffuse BSDF node), negative values let light scatter mostly backwards, and positive values let light scatter mostly forward. This can be used to shade white smoke or clouds for example.

  • Emission will emit light from the volume, for example for fire.

../../../_images/render_materials_components_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.

Density#

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#

Meshes used for volume render should be closed and Manifold. That means that there should be no holes in the mesh. Each edge must be connected to exactly two faces such that there are no holes or T-shaped faces where three or more faces are connected to an edge.

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.

Currently, this is most useful for night time or other dark scenes, as the world surface shader or sun lights will have no effect if a volume shader is used. This is because the world background is assumed to be infinitely far away, which is accurate enough for the sun for example. However, for modeling effects such as fog or atmospheric scattering, it is not a good assumption that the volume fills the entire space, as most of the distance between the sun and the earth is empty space. For such effects it is be better to create a volume object surrounding the scene. The size of this object will determine how much light is scattered or absorbed.

Espalhamento Múltiplo#

Real-world effects such as scattering in clouds or subsurface scattering require many scattering bounces. However, unbiased rendering of such effects can be noisy, so by default the number of bounces is zero in Cycles, and no support is available in EEVEE. The effect you get when rendering with zero volume bounces is what is known as «single scattering», the effect from more bounces is «multiple scattering».

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.

For materials such as clouds or smoke that do not have a well-defined surface, volume rendering is required. These look best with many scattering bounces, but in practice one might have to limit the number of bounces to keep render times acceptable.