Reducing Noise

Lors de l’exécution d’un rendu final, il est important de réduire le bruit autant que possible. Ici, nous allons discuter d’un certain nombre d’astuces qui, tout en enfreignant les lois de la physique, sont particulièrement importantes lors du rendu d’animations dans un délai raisonnable. Cliquez pour agrandir les exemples d’images pour bien voir les différences de bruit.

Path Tracing

Cycles utilise le chemin de traçage avec l’estimation de l’événement suivant, ce qui n’est pas bon pour le rendu de tous les types d’effets lumineux, comme les caustiques, mais a l’avantage de pouvoir rendre des scènes plus détaillées et plus grandes par rapport à d’autres algorithmes de rendu. C’est parce que nous n’avons pas besoin de stocker, par exemple, une carte de photons en mémoire, et parce que nous pouvons garder les rayons relativement cohérents pour utiliser un cache d’images à la demande, par rapport à par ex. chemin bidirectionnel de traçage.

../../../_images/render_cycles_render-settings_light-paths_rays.svg

Nous faisons l’inverse de ce que fait la réalité, en traçant les rayons lumineux de la caméra dans la scène et sur les lumières, plutôt que des sources lumineuses dans la scène puis dans la caméra. Cela a l’avantage de ne pas gaspiller de rayons lumineux qui ne se retrouveront pas dans l’appareil photo, mais cela signifie également qu’il est difficile de trouver des chemins lumineux qui peuvent y contribuer beaucoup. Les rayons lumineux seront envoyés soit selon la surface BRDF, soit en direction de sources lumineuses connues.

Voir aussi

Pour plus de détails, consultez la documentation Light Paths et Sampling.

La source du bruit

Pour comprendre d’où peut provenir le bruit, prenons par exemple la scène ci-dessous. Lorsque l’on trace un rayon lumineux à l’endroit marqué par le cercle blanc sur un point rouge, la deuxième image ci-dessous donne une impression de ce que le shader diffus “voit”.

Pour trouver la lumière réfléchie par cette surface, nous devons trouver la couleur moyenne de tous ces pixels. Notez le reflet brillant sur la sphère et le point lumineux que la lumière projette sur le mur voisin. Ces points chauds sont beaucoup plus lumineux que d’autres parties de l’image et contribueront de manière significative à l’éclairage de ce pixel.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-reference.jpg

La scène.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye.jpg

Irradiance au point d’ombrage.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-hotspot.jpg

Les surbrillances détectées.

La lumière est une source de lumière connue, donc son emplacement est déjà connu, mais le ou les reflets brillants qu’elle provoque sont une autre affaire. Le mieux que nous puissions faire avec le chemin de traçage est de répartir les rayons lumineux de manière aléatoire sur l’hémisphère, dans l’espoir de trouver tous les points lumineux importants. Si pour certains pixels nous manquons un point lumineux, mais que nous le trouvons pour un autre, cela se traduit par du bruit. Plus nous prélevons d’échantillons, plus la probabilité de couvrir toutes les sources de lumière importantes est élevée.

With some tricks we can reduce this noise. If we blur the bright spots, they become bigger and less intense, making them easier to find and less noisy. This will not give the same exact result, but often it’s close enough when viewed through a diffuse or soft glossy reflection. Below is an example of using Glossy Filter and Light Falloff.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-blur-reference.jpg

Utilisation de Glossy Filter & Light Falloff.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-blur.jpg

Irradiance au point d’ombrage.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-blur-hotspot.jpg

Les surbrillances détectées.

Les rebonds

En réalité, la lumière rebondira un grand nombre de fois en raison de la vitesse de la lumière très élevée. En pratique, plus de rebonds introduiront plus de bruit et il peut être bon d’utiliser quelque chose comme le préréglage d’illumination globale limitée dans la section Light Paths qui utilise moins de rebonds pour différents types de shaders. Les surfaces diffuses peuvent généralement s’en tirer avec moins de rebonds, tandis que les surfaces brillantes ont besoin d’un peu plus, et les shaders de transmission tels que le verre en ont généralement le plus besoin.

../../../_images/render_cycles_optimizations_reducing-noise_0bounce.jpg

Pas de rebonds.

../../../_images/render_cycles_optimizations_reducing-noise_2bounce.jpg

Deux rebonds au max.

../../../_images/render_cycles_optimizations_reducing-noise_4bounce.jpg

Quatre rebonds au max.

Il est également important d’utiliser des couleurs de shader qui n’ont pas de composants de valeur 1.0 ou de valeurs proches de cela; essayez de garder la valeur maximale à 0,8 ou moins et rendez vos lumières plus lumineuses. En réalité, les surfaces reflètent rarement parfaitement toute la lumière, mais il y a bien sûr des exceptions; généralement, le verre laisse passer la plupart de la lumière, c’est pourquoi nous avons besoin de plus de rebonds. Des valeurs élevées pour les composants de couleur ont tendance à introduire du bruit car l’intensité lumineuse ne diminue alors pas beaucoup lorsqu’elle rebondit sur chaque surface.

Caustiques et filtre Glossy

Caustics are a well-known source of noise, causing Fireflies. They happen because the renderer has difficulty finding specular highlights viewed through a soft glossy or diffuse reflection. There is a No Caustics option to disable glossy behind a diffuse reflection entirely. Many renderers will typically disable caustics by default.

../../../_images/render_cycles_optimizations_reducing-noise_reference.jpg

Paramètres par défaut.

../../../_images/render_cycles_optimizations_reducing-noise_no-caustics.jpg

Caustiques désactivés.

../../../_images/render_cycles_optimizations_reducing-noise_filter-glossy.jpg

Filtre Glossy supérieur à zéro.

However, using No Caustics will result in missing light, and it still does not cover the case where a sharp glossy reflection is viewed through a soft glossy reflection. There is a Filter Glossy option to reduce the noise from such cases at the cost of accuracy. This will blur the sharp glossy reflection to make it easier to find, by increasing the shader Roughness.

Les images ci-dessus montrent les paramètres par défaut, pas de caustiques et le filtre glossy défini sur 1.0.

Atténuation de la lumière

En réalité, la lumière dans le vide tombera toujours à un taux de 1/(distance^2). Cependant, lorsque la distance tend vers zéro, cette valeur tend vers l’infini et nous pouvons obtenir des points très lumineux dans l’image. Il s’agit principalement d’un problème pour l’éclairage indirect où la probabilité de toucher un point aussi petit mais extrêmement lumineux est faible et n’arrive donc que rarement. C’est une recette typique pour les Fireflies.

../../../_images/render_cycles_optimizations_reducing-noise_falloff-hard.jpg

Falloff dur.

../../../_images/render_cycles_optimizations_reducing-noise_falloff-soft.jpg

Falloff doux.

Pour réduire ce problème, le nœud Light Falloff a un facteur Smooth, qui peut être utilisé pour réduire l’intensité maximale qu’une lumière peut apporter aux surfaces voisines. Les images ci-dessus montrent l’atténuation par défaut et la valeur de lissage 1.0.

Multiple Importance Sampling (Échantillonnage d’importance multiple)

Les matériaux avec des shaders d’émission peuvent être configurés pour utiliser Multiple Importance Sampling (l’échantillonnage à importance multiple) (Paramètres de matériau). Cela signifie qu’ils recevront des rayons envoyés directement vers eux, plutôt que de s’y retrouver en fonction de rayons rebondissant de manière aléatoire. Pour les sources lumineuses à maillages très lumineux, cela peut réduire considérablement le bruit. Cependant, lorsque l’émission n’est pas particulièrement brillante, cela prélèvera des échantillons d’autres sources lumineuses plus brillantes pour lesquelles il est important de les trouver de cette manière.

Le réglage optimal ici est difficile à deviner; il peut s’agir d’une question d’essais et d’erreurs, mais il est souvent clair qu’un objet quelque peu brillant peut uniquement apporter de la lumière localement, alors qu’une lumière maillée utilisée comme lumière nécessiterait que cette option soit activée. Voici un exemple où les sphères émissives contribuent peu à l’éclairage, et l’image est rendue avec un peu moins de bruit en désactivant Multiple Importance sur elles.

../../../_images/render_cycles_optimizations_reducing-noise_sample-lamp.jpg

Multiple Importance désactivée.

../../../_images/render_cycles_optimizations_reducing-noise_no-sample-lamp.jpg

Multiple Importance activée.

L’arrière-plan du monde a également une option Multiple Importance (Réglages). C’est surtout utile pour les cartes d’environnement qui contiennent de petits points lumineux, plutôt que d’être lisses. Cette option déterminera ensuite, dans un pré-traitement, les points lumineux et enverra des rayons lumineux directement vers eux. Encore une fois, l’activation de cette option peut retirer des échantillons de sources lumineuses plus importantes si cela n’est pas nécessaire.

Verre et Ombres Transparentes

With caustics disabled, glass will miss shadows, and with filter glossy they might be too soft. We can make a glass shader that will use a Glass BSDF when viewed directly, and a Transparent BSDF when viewed indirectly. The Transparent BSDF can be used for transparent shadows to find light sources straight through surfaces, and will give properly-colored shadows, but without the caustics. The Light Path node is used to determine when to use which of the two shaders.

../../../_images/render_cycles_optimizations_reducing-noise_glass-group.png

Glass shader optimisé.

Above we can see the node setup used for the glass transparency trick; on the left the render has too much shadow due to missing caustics, and on the right the render with the trick.

../../../_images/render_cycles_optimizations_reducing-noise_glass-too-much-shadow.jpg

Glass BSDF par défaut.

../../../_images/render_cycles_optimizations_reducing-noise_glass-trick.jpg

Glass Shader optimisé.

Portails de lumière

Lors du rendu d’une scène d’intérieur à la lumière du jour où la majeure partie de la lumière entre par une ouverture de fenêtre ou de porte, il est difficile pour l’intégrateur de trouver son chemin. Pour résoudre ce problème, utilisez Light Portals. Vous devrez ensuite modifier sa forme pour qu’elle corresponde à celle de l’ouverture que vous essayez de remplir.

../../../_images/render_cycles_light-settings_portals2.jpg
../../../_images/render_cycles_light-settings_portals.jpg

Denoising (débruitage)

Even with all the settings described above there will always end up being some render noise no matter how many samples you use. To fix this there is a post-processing technique to cleanup the final bit of noise. To use this enable Denoising in the Render Layers tab of the Properties.

Ci-dessous un exemple de rendu par The Pixelary.

../../../_images/render_layers_denoising_example1.jpg

Exemple de rendu avant débruitage.

../../../_images/render_layers_denoising_example2.jpg

Exemple de rendu après débruitage.

Clamp Fireflies

Idéalement, avec toutes les astuces précédentes, les Fireflies seraient éliminées, mais elles pourraient toujours se produire. Pour cela, l’intensité que tout échantillon de rayon lumineux individuel contribuera à un pixel peut être limitée à une valeur maximale avec le paramètre Clamp setting de l’intégrateur.

Si réglé trop bas, cela peut entraîner des reflets manquants dans l’image, ce qui peut être utile pour préserver les effets de l’appareil photo tels que la floraison ou l’éblouissement. Pour atténuer cela, il est souvent utile de ne bloquer que les rebonds indirects, en laissant les hautes lumières directement visibles pour la caméra intactes.

../../../_images/render_cycles_optimizations_reducing-noise_no-clamp.jpg

Pas de Clamp (0).

../../../_images/render_cycles_optimizations_reducing-noise_clamp4.jpg

Avec Clamp réglé sur 4.