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 est un shader volume basé sur la physique qui peut être utilisé pour créer une large gamme de matériaux de volume. Il prend en charge la dispersion, l’absorption et l’émission dans un seul node facile à utiliser. Le Feu peut être rendu avec une émission de corps noirs.

../../../_images/render_materials_components_volume_principled.jpg

Fumée et feu rendus avec le shader Principled Volume.

Composants de volume

Pour plus de contrôle, les composants d’ombrage de volume peuvent être manuellement combinés dans une configuration de shaders personnalisée.

  • Volume Absorption va absorber une partie de la lumière quand elle passe à travers le volume. Ceci peut être utilisé pour ombrer par exemple de la fumée noire ou des objets de verre colorée, ou mélangé avec le node volume scatter. Ce node est semblable au node transparent BSDF, il bloque une partie de la lumière et laisse d’autres lumières passer directement à travers.

  • Volume Scatter laisse la lumière se disperser dans d’autres directions quand il frappe des particules dans le volume. L’anisotropie définit la direction dans laquelle la lumière a le plus de chances de se disperser. Une valeur de 0 laissera la lumière uniformément dans toutes les directions (semblable au node BSDF diffuse), des valeurs négatives laissent la lumière se disperser en grande partie vers l’arrière, et des valeurs positives laissent la lumière se disperser en grande partie vers l’avant. Ceci peut être utilisé pour ombrer de la fumée blanche ou des nuages par exemple.

  • Emission va émettre de la lumière depuis le volume, par exemple pour le feu.

../../../_images/render_materials_components_volume_node.jpg

Volume Absorption, Scatter and Emission

Attributes

Dans le rendu de la fumée et du feu, Les attributs de volume sont utilisés pour définir la forme et l’ombrage du volume. Le shader Principled Volume va les utiliser par défaut, alors que les shaders de volume personnalisés peuvent utiliser le node Attribute pour obtenir des attributs tels que la densité, la couleur et la température.

Density

Tous les shaders de volume ont une entrée density. La densité définit la quantité de lumière qui va interagir avec le volume, absorbé ou dispersée, et la quantité qui va passer directement à travers. Pour des effets tels que la fumée, vous spécifieriez un champ density pour indiquer où dans le volume il y a de la fumée et sa quantité (density supèrieur à 0), et où il n’y a pas de fumée (density égal à 0).

Les volumes dans le monde réel consistent en particules, une densité plus grande signifie qu’il y a plus de particules par unité de volume. Plus de particules signifie qu’il y a une chance plus grande que la lumière entre en collision avec une particule et soit absorbée ou dispersée, plutôt que de passer directement à travers.

Mesh Volumes

Les maillages utilisés pour le rendu de volume devraient être fermés et manifold. Ceci signifie qu’il ne devrait y avoir aucun trou dans le maillage. Chaque arête doit être connectée à deux faces exactement de sorte qu’il n’y ait aucun trou ou des faces en forme de T où trois faces ou plus sont connectées à une arête.

Les normales doivent pointer vers l’extérieur pour des résultats corrects. Les normales sont utilisées pour déterminer si un rayon entre ou sort d’un volume, et si elles pointent dans une mauvaise direction, ou qu’il y a un trou dans la maillage, alors le moteur de rendu est incapable de déterminer ce qui est l’intérieur ou l’extérieur du volume.

Ces règles sont les mêmes que celles pour faire un rendu correct de la réfraction du verre.

World Volume

Un shader de volume peut également être appliqué au monde (world), en remplissant tout l’espace.

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.

Multiple Scattering

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 ».

Pour faire le rendu de matériaux tels que la peau ou le lait qui exigent le multiple scattering, le subsurface scattering est plus efficace et plus facile à contrôler. En particulier la méthode random walk peut faire un rendu précis de ces matériaux.

Pour des matériaux tels que les nuages ou la fumée qui n’ont pas de surface bien définie, le rendu de volume est requis. Ceux-ci ont meilleur aspect avec un grand nombre de rebonds, mais en pratique il se peut qu’on doive limiter le nombre de rebonds pour garder les temps de rendu acceptables.