Blenderは特にCyclesでレンダリングした画像にノイズが多い場合があります。ノイズ除去のためのデノイズ機能や、コンポジットでデノイズする方法について解説します。他にも何点かノイズ除去の小技を書いています。
ただ設定するだけで、初心者の方でも簡単にできるのでやってみてください。
この記事は、Blenderのデノイズ方法について書いた初心者向けの記事です。
難易度
なぜノイズが起こるのか
Cyclesのパストレーシングは、
ランダムにレイを飛ばして色や明るさを測る方法です。
明るい場所(ハイライト)を運良く見つければOK。でも、見落としたら「そこは暗い」と勘違いしてしまう。
この「当たり外れ」によって、ピクセルごとに結果がバラバラになり、明るさにばらつきができ、ノイズが生まれるのです。
パストレーシングについて詳しくは以下の記事に書いています↓

レイが何回もバウンスするほど光を探すのが難しくなりノイズが増える
ノイズを減らす工夫
- 方法1:サンプル数を増やす
- たくさんの光線を飛ばせば、ハイライトに当たる確率が上がるので、ノイズが減ります。
- 方法2:ハイライトをぼかす
- ハイライトを少し大きく、柔らかくすれば見つけやすくなり、ノイズが減ります。(たとえば、Glossy Filter や Light Falloff を使う)
- 方法3:レイのバウンス数を減らす
- 方法4:デノイズする
方法2,3などは初心者には難しいため、方法1と4を先に解説します。
ちなみにサンプル数を増やすのはEEVEEもできる対策ですが、後のものはほぼCyclesでしか設定できません。EEVEEのノイズ除去については以下の記事で少し触れています。
❶サンプル数を増やす
レンダープロパティ > Sampling > Render > Max Samples
Max Samples
最終レンダリングでピクセルごとにトレースするパスの数。数値を大きくすると、レンダリング時間が長くなる代わりに、画像がきれいになります。
ビューポートでもサンプル数を上げたものを見たいときはView port > Max Samples数を上げてください。通常ビューポートはプレビューとして使うのでレンダリング時のサンプル数より少なく設定されています。

サンプル数を変えて比較。

Max Samples2048でもよく見ると細部はぽつぽつしてノイズが出ています。サンプル数を上げても細部にノイズが出ることはあるので、最終的にデノイズ作業はした方がいいですね。
❹デノイズする
- レンダープロパティでチェックを入れるだけでできるデノイズ
- コンポジットでデノイズ
の二種類があります。結果はほぼ同じなので、他にもコンポジットでエフェクトを使うという方はコンポジットを使って、そうでない方はレンダープロパティで設定すればいいと思います。
レンダープロパティでデノイズ
コンポジットを使わずにデノイズする方法です。
レンダープロパティ > Sampling > Render > Denoise
Denoiseにチェックをするだけです。レンダリング時に自動でデノイズしてくれます。(ビューポートでもデノイズした画像を見たい場合はViewport > Dnoiseにもチェックします。)

コンポジットでデノイズ
準備
コンポジットでデノイズをするために、まずレンダープロパティでRenderのDenoiseにチェック。
ビューレイヤープロパティでpasses > Denoising Dataにチェックを入れてください。


Compositingのエディタに移動します。
- Use Nodesにチェック
- Shift + AでViewerノードを追加
- Shift + AでDenoiseノードを追加
- Render Layersから出てるNoisy ImageをImageへ。Denoising NormalをNormalへ。Denoising AlbedoをAlbedoへつなぎます。
- Render Layersノードの一番下ViewLayer横のアイコンをクリックして現在のシーンをレンダリングします。(カメラを良い位置にセットしてください。)

これでノイズが除去されました。
後ろのプレビューを拡大縮小したい方は右側Viewのタブを開いてZoomの値を調整してください。
一応コンポジットを使うメリットとして、Noisy Image出力があるのでデノイズ前とデノイズ後の画像と見比べることができます。
Render LayersノードのImageから出ているのはレンダープロパティで設定したデノイズ機能でノイズ除去された画像です。むしろNoisy Imageの方が元の情報を劣化させずに保持しているので、デノイズするときはNoisy Image出力を使った方がいいと思います。(違いはあんまりわからなかったけど)
レンダープロパティ設定で、ほぼ同様の設定が行われているため、コンポジットのデノイズノードでノイズ除去された画像と、レンダープロパティでノイズ除去された画像の違いはほぼ違いがわかりませんでした。

初心者のうちは、以上のノイズ軽減対策をすれば十分だと思います。以下2や3の手法は少し中級、上級者向けです。
❷ハイライトをぼかす
Use nodesにチェックでライトにマテリアルシェーダーを使うことができます。
Light Falloffノードを追加し、QuadraticをEmissionのStrengthにつなげます。Smoothを上げていくことでノイズが軽減されます。

左図:ファイアフライと呼ばれる、ぽつぽつ白い光点のノイズが出来ている

Light Falloffのスムーズ値を調整し、光が近くに当たったときの強さをほどよく抑えることで、(明るさは減少しますが)ノイズを軽減できます。
なぜファイアフライができるの?
- 現実世界では、光は距離の2乗に反比例して弱くなる。
- でも距離が 0 に近づくと、数式的には光の強さが無限大になってしまう(=すごくまぶしい点になる)。これがファイアフライ(白いノイズ)の原因になりやすい。
- 特に間接照明(反射光)で、まれにだけ強い光が当たると、ランダムな白い点になる。
❸レイのバウンス数を減らす
レンダープロパティ > Light Paths の右のアイコンから、バウンス数設定のプリセットがあります。Limited Global Illuminationにセットするとバウンス数が低くなり、ノイズが軽減されます。
が、画像の精度が落ちるのとシーンが暗くなりがちなため、どうしても他の手段でノイズが軽減されなかったときとかに設定した方がいいんじゃないかと個人的には思います…。

まとめ
他にもBlenderのマニュアルにノイズ軽減の設定方法などが書いてあります。あまり聞いたことないような手法がまだまだあるみたいです。
英語だし、わりと内容が難しいんですよね。
そもそも相当クオリティを求められる作品じゃなかったら、この記事内で触れたノイズ除去法とかで十分綺麗になると思います。どんなに完全にノイズ除去しても、結局Youtube動画として見ると全然わからなかったり、むしろノイズがある動画の方がくっきりして見えたりするんですよね…。
結局細かいところまで見るといっても、持ってるPCとかネット環境に依存してしまうところがありますね。趣味だったり練習のうちはあまり気にしないでいいんじゃないかと思います。