前の記事「Blenderのライティングの基礎とライトの置き方」で、コーヒーカップのライティングを設定しました。この記事では、3Dシーンを1枚の画像にする「レンダリング」を解説します。
レンダリングは、設定によってかかる時間や仕上がりが変わります。画像に出るざらついた粒(ノイズ)を減らすには、単に設定値を上げればいいわけではありません。どの設定がどれくらい効くのか、レンダリング時間と仕上がりを比べながら見ていきます。
※この記事はBlender 5.2 LTSで確認しています。レンダリングにかかった時間は、この記事を書いた環境での実測値です。
カメラの位置を決める
前の記事でカップを実物大に縮小しましたが、カメラは初期位置のままです。レンダリングでは、カメラに映っている範囲がそのまま画像になります。そのため、まずはカメラの位置を決めます。カメラは原点から約11m離れているのに対し、カップの高さは約8cmです。このままでは、カップが画面のごく一部にしか映りません。
カメラをカップに自動で合わせる
カップを選択し、3Dビューのヘッダーから「ビュー」→「視点を揃える」→「アクティブカメラを選択に合わせる」を実行します。
「視点を揃える」の中には、似た名前の項目が並んでいます。「アクティブに視点を揃える」は視点だけを動かすもので、カメラは動きません。カメラを動かすのは「アクティブカメラを選択に合わせる」です。
テンキーの0でカメラビューに入ると、カップが画面いっぱいに収まっています。
選択したものをカメラの枠に合わせる操作なので、選んでいないソーサーは下側が切れています。ここからカメラを引いていきます。
カメラを動かして構図を決める
カメラビューに入った状態でサイドバーの「ビュー」タブを開き、「ビューのロック」にある「カメラをビューに」にチェックを入れます。ふだんの視点操作でカメラが動くようになります。
テンキーの0で確認しながら、少しずつ構図を詰めていきます。一度で決まらないのがふつうです。
構図が決まったら、「カメラをビューに」のチェックを外します。入れたままだと、視点を動かすたびにカメラも動いてしまいます。
この記事と同じ構図にする場合は、Nでサイドバーを開いて次の値を入れます。
- 位置:X
0/ Y-0.527/ Z0.22516 - 回転:X
70.623°/ Y0°/ Z0°
原点からの距離は約0.57mで、初期状態の約20分の1まで近づいたことになります。レンズの焦点距離は、初期値の50mmのままです。
レンダリングして画像を保存する
カメラの位置が決まったら、F12を押すか、ヘッダーの「レンダー」メニューから「画像をレンダリング」を選びます。別のウィンドウが開き、レンダリングが始まります。
レンダー表示との違いは、補足コラム「レンダー表示とレンダリングの違い」にまとめています。
画像ファイルとして保存する
レンダリングした画像は、まだファイルとして保存されていません。レンダリングウィンドウの「画像」メニューから「保存」(Alt + S)を選び、保存先とファイル名を指定して保存します。
画像の解像度と形式は出力プロパティで決まります。初期値は、解像度が1920 × 1080ピクセル、形式がPNGです。
EEVEEとCyclesを切り替える
Blenderで主に使われるレンダーエンジンには、EEVEEとCyclesがあります。この2つは、レンダープロパティのいちばん上にある「レンダーエンジン」で切り替えます。
ここまでの記事では、初期設定のEEVEEを使ってきました。もう一方のCyclesは、現実の光の動きを再現するように、反射や屈折などを細かく計算するレンダーエンジンです。
このカップをEEVEEとCyclesの両方でレンダリングしてみると、仕上がりはほとんど変わりませんでした。
大きく違ったのは、レンダリングにかかる時間です。EEVEEは約1秒、Cyclesは約13秒でした。
仕上がりに大きな差が出なかったのは、カップ1つの単純なシーンだからです。ガラスの屈折や、光が何度も反射する室内など、光の動きが複雑なシーンでは、Cyclesのほうが現実に近い光の表現ができます。
「サンプリング」の中身は、レンダーエンジンで違う
レンダープロパティの「サンプリング」を開きます。同じ名前の項目ですが、レンダーエンジンによって中身が違います。
Cyclesは、1つの画素(ピクセル)に対して光の経路を何度も調べ、その平均で色を決めます。調べる回数が少ないうちは結果にばらつきがあり、それが粒状のノイズとして現れます。
「ノイズしきい値」は、「ノイズがこのくらいまで減ったら、その画素の計算を終える」という目標です。「最大サンプル数」は、何回まで計算するかを決める上限です。
一方、EEVEEの「サンプリング」にある基本的な設定は「サンプル数」です。Cyclesのような「ノイズしきい値」や「デノイズ」はありません。指定したサンプル数を使って描画するため、ノイズの量を見ながら画素ごとに計算を止めることはありません。
Cyclesで、十分にノイズが減った画素から計算を終えていく仕組みを「適応サンプリング」と呼びます。「ノイズしきい値」のチェックが最初から入っているので、設定を変えなくても適応サンプリングが使われています。
ノイズしきい値は、どこまで効くのか
ここからはCyclesに切り替えて進めます。ノイズが気になったとき、まず確認したいのが「ノイズしきい値」です。数値を下げるほど、ノイズが減るまで計算が続きます。
「ノイズしきい値」だけを変えた結果です(「デノイズ」はオフにしています)。
| ノイズしきい値 | かかった時間 | 見え方 |
|---|---|---|
0.1 |
約2秒 | カップの白い面にノイズが見える |
0.05 |
約2秒 | 0.1とほとんど同じ |
0.01(初期値) |
約9秒 | ノイズがほぼ消え、木目もなめらか |
0.001 |
約134秒 | 0.01と見分けがつかない |
結果を見ると、「ノイズしきい値」による変化は3段階に分かれました。0.1から0.05では、見た目はほとんど変わりませんでした。0.05から0.01ではノイズが大きく減り、時間をかけた分だけ画質が改善しました。ただ、0.01から0.001では、レンダリング時間だけが伸びて、見た目の違いはほとんど分かりませんでした。
初期値の0.01は、ちょうど画質の改善が落ち着く境目になっています。このカップでは、これより数値を下げても効果はほとんどなく、初期値のままが画質とレンダリング時間のバランスがよい結果でした。
ただし、これは不透明な陶器と木のテーブルにライトが当たる、比較的単純なシーンでの結果です。ガラスのように光が複雑に曲がる素材や、ライトが直接当たらない暗い部分が多いシーンでは、初期値のままでもノイズが残ることがあります。
最大サンプル数を下げても、時間はあまり減らない
次に確認したいのが「最大サンプル数」です。初期値は4096と、大きな値に設定されています。
「ノイズしきい値」を0.01のままにして「最大サンプル数」だけを下げた結果です。
| 最大サンプル数 | かかった時間 | 見え方 |
|---|---|---|
4096(初期値) |
約13秒 | 基準 |
512 |
約9秒 | 4096と同じ |
256 |
約8秒 | 4096と同じ |
128 |
約7秒 | 4096と同じ |
4096から128まで下げても、仕上がりはほとんど変わりませんでした。ただ、レンダリング時間の短縮は約6秒でした。
もしすべての画素を4096回まで計算しているなら、「最大サンプル数」を128にすれば、計算量もそれだけ減るはずです。ところが実際には、そこまで大きな差は出ません。これは、ノイズが十分に減った画素は、上限に達する前に計算を終えているためです。すべての画素が4096回まで計算されるわけではありません。
「最大サンプル数」を下げるほど、レンダリング時間の短縮幅が小さくなるのも同じ理由です。すでに途中で計算を終えている画素には、上限を下げてもほとんど影響しません。このカップでは、「最大サンプル数」も初期値のままで問題ありませんでした。
レンダリング時間を短くする3つの設定
ここまで見てきた2つの設定では、レンダリング時間はあまり短くなりませんでした。実際に短くできたのは、次の3つです。
デバイスをGPU演算にする
レンダープロパティのいちばん上、「レンダーエンジン」のすぐ下に「デバイス」があります。初期値はCPUです。
これをGPU演算に変えると、このカップではレンダリング時間が約59秒から約13秒になりました。
ただし、GPU演算を選んでもCPUのまま計算されることがあります。その場合は、「編集」→「プリファレンス」→「システム」を開き、「Cyclesレンダーデバイス」で方式を選んで、使うGPUにチェックを入れます。
並んでいるのは、Blenderが対応しているGPUの計算方式です。なしのままではGPUを使えないため、自分のGPUに合った方式を選びます。NVIDIAのGPUでは、OptiXまたはCUDAを選べます。この記事ではOptiXを使いました。
EEVEEで十分なら、EEVEEを使う
「EEVEEとCyclesを切り替える」で見たとおり、このカップではEEVEEとCyclesで仕上がりはほとんど変わりませんでした。一方、レンダリング時間はEEVEEが約1秒、Cyclesが約13秒でした。
作業中の確認はEEVEEで行い、最後の書き出しだけCyclesに切り替える方法もあります。
確認用のレンダリングは解像度を下げる
出力プロパティの「フォーマット」にある「%」で、書き出す画像の解像度を下げられます。
このカップでは、50%で約4秒、25%で約2秒でした。25%にすると画素数は100%の16分の1になり、レンダリング時間は約7分の1まで短くなりました。
ただし、書き出す画像自体も小さくなるため、確認用の設定として使います。仕上げるときは100%に戻します。
EEVEEの影にノイズが出るとき
ここで「レンダーエンジン」をEEVEEに切り替えます。EEVEEでは、ざらついたノイズが出ることがあります。
レンダープロパティの「サンプリング」→「レンダー」を開き、「影」の設定を確認します。ここには「レイ数」と「ステップ」があります。
「影」という項目はライトプロパティにもありますが、そちらはライトごとの設定です。今回調整するのは、レンダープロパティにある「影」です。
このざらつきは「サンプル数」を上げても減らせますが、「レイ数」を上げたほうが短いレンダリング時間で改善できました。
| 変えたもの | 設定 | かかった時間 |
|---|---|---|
| サンプル数 | 16→256(レイ数は1のまま) |
約2.1秒 |
| レイ数 | 1→4(サンプル数は16のまま) |
約0.7秒 |
このカップでは、どちらも同じくらいざらつきが減りましたが、レンダリング時間には約3倍の差がありました。「レイ数」は4が上限なので、それでもノイズが気になる場合は「サンプル数」を上げて調整します。
なお、「サンプル数」には「レンダー」と「ビューポート」の2つがあります。3Dビューの見え方に反映されるのは「ビューポート」で、「レンダー」はF12でレンダリングするときに使われます。数値を変えても3Dビューに変化がないときは、どちらの設定を変更したか確認してみてください。
うまくいかないときのチェックリスト
レンダリングがうまくいかないときは、次の4つを上から確認してみてください。
- 何も映らないカメラの中にカップが収まっているか確認します。実物大に縮小したあとは、カメラを近づける必要があります(「カメラの位置を決める」)
- 真っ暗になるアウトライナーで、ライトのカメラアイコンがオフになっていないか確認します。ここがオフになっているライトは、3Dビューでは光っていてもレンダリングには反映されません
- ノイズが残る「デノイズ」にチェックが入っているか確認します。それでもノイズが残る場合は、「ノイズしきい値」を下げて調整します
-
Cyclesが遅い「デバイス」が
CPUのままになっていないか確認します。GPU演算を選んでもCPUのまま計算される場合は、プリファレンスの「Cyclesレンダーデバイス」を見ます(「デバイスをGPU演算にする」)
真っ暗になる原因は、ライトの向きや強さにある場合もあります。光の当て方については、「Blenderのライティングの基礎とライトの置き方」で解説しています。
次にやること
カメラの位置を決めて1枚の画像に書き出し、ノイズが残ったときにどの設定を調整するのかを見てきました。設定の意味が分かると、どこに時間をかけるかを自分で判断できるようになります。
覚えることが多いと感じたら、次の5つを押さえておけばレンダリングはできます。
- レンダリングはカメラから見た画像なので、先にカメラの位置を決める
- 「ノイズしきい値」と「最大サンプル数」は、まず初期値のままで試す
- Cyclesが遅いときは、「デバイス」を
GPU演算にする - 確認用のレンダリングでは解像度の「%」を下げ、仕上げるときに
100%へ戻す - EEVEEの影がざらつくときは、「影」の「レイ数」を上げる
次は、ベイクです。ここまでは画像を書き出すたびに光を計算してきました。ベイクは、その計算結果をあらかじめ画像に焼き付けておく方法です。
よくある質問
Q. レンダリングは、どのくらい時間がかかりますか?
A. レンダリングにかかる時間は、シーンの内容や使っているパソコンによって変わります。この記事のコーヒーカップのような単純なシーンでは、EEVEEが約1秒、CyclesはGPU演算で約13秒、CPUでは約59秒でした。なお、同じ設定でも、書き出すたびに数%ほど時間が前後することがあります。
Q. サンプル数を変えたのに、3Dビューが変わりません。
A. 「サンプル数」には「レンダー」と「ビューポート」の2つがあります。3Dビューの見え方に反映されるのは「ビューポート」で、「レンダー」はF12でレンダリングするときに使われます。
Q. デノイズをオンにしたら、なめらかというよりぼやけました。
A. デノイズは、計算のばらつきによって生じたノイズをなめらかにする処理です。もとの画像にノイズが多いほど強く補正されるため、細かい模様まで一緒に消えてしまうことがあります。先に「ノイズしきい値」を下げてノイズを減らしておくと、デノイズをかけても細かい模様が残りやすくなります。詳しくは、補足コラム「デノイズに頼りすぎると、細かい模様まで消える」にまとめています。
Q. F12を押したのに、画像ファイルが見つかりません。
A. F12でレンダリングしただけでは、画像ファイルは作られません。レンダリングウィンドウの「画像」→「保存」(Alt+S)を選び、保存先とファイル名を指定して保存します。
Q. EEVEEとCycles、どちらを使えばいいですか?
A. この記事のコーヒーカップのような単純なシーンなら、EEVEEでも十分に仕上げられます。仕上がりはCyclesとほとんど変わらず、レンダリング時間は10分の1以下でした。一方、ガラスの屈折や、光が何度も反射する室内など、光の動きが複雑なシーンでは、Cyclesのほうが現実に近い光の表現ができます。
Q. 「Cycles X」という名前を探しているのですが、見つかりません。
A. 現在のBlenderに「Cycles X」という名前のレンダーエンジンはありません。Cycles Xは、2021年にCyclesの内部構造を大きく作り直したプロジェクトの名前です。その成果はBlender 3.0以降のCyclesに取り込まれています。「レンダーエンジン」で「Cycles」を選べば、Cycles Xの改良を含んだものが使われます。
補足コラム
デノイズに頼りすぎると、細かい模様まで消える
デノイズは、レンダリングで残ったノイズを減らす処理です。ただし、もとの画像にノイズが多いほど、細かい模様まで一緒になめらかになってしまうことがあります。
このカップでは、「ノイズしきい値」を変えてデノイズあり・なしの時間を比べると、次のようになりました。
| ノイズしきい値 | デノイズなし | デノイズあり |
|---|---|---|
0.1 |
約2秒 | 約9秒 |
0.01 |
約9秒 | 約13秒 |
0.1では短い時間でレンダリングできますが、その分ノイズが多く残ります。そこからデノイズをかけても、最終的には約9秒かかりました。
一方、初期値の0.01では、レンダリングの段階でノイズがかなり減っています。デノイズを加えた約13秒で、細かい模様を残しながらきれいに仕上げられました。
「ノイズしきい値」を上げて計算量を減らし、残ったノイズをすべてデノイズに任せるより、まずレンダリングである程度ノイズを減らしてからデノイズを使うほうが、細かい模様が残りやすくなります。
レンダー表示とレンダリングの違い
3Dビュー右上にある4つのアイコンのうち、いちばん右が「レンダー」です。ここまでの記事では、この表示で見え方を確認してきました。
レンダー表示は、いま見ている視点からの見え方を、その場で計算して表示します。視点を動かせば見えるものも変わり、画面の縦横比も3Dビューの大きさに合わせて変わります。
一方、F12のレンダリングでは、カメラから見た1枚の画像を、出力プロパティで決めた大きさで作ります。デノイズのように、レンダー表示では初期設定で使われない処理もあります。
そのため、レンダー表示できれいに見えていても、実際にレンダリングすると仕上がりの印象が変わることがあります。
設定の名前や場所は、バージョンによって変わる
Blenderの設定は、バージョンによって名前や場所が変わります。検索して見つけた手順が、いま使っている画面と合わないこともあります。
たとえば、「適応サンプリングにチェックを入れる」という説明を見かけることがあります。Blender 5.2では「適応サンプリング」という名前のチェック項目はなく、「ノイズしきい値」にチェックを入れると同じ仕組みが使われます。このチェックは、初期設定で入っています。
EEVEEも、Blender 4.2で大きく作り直されました。それ以前にあった「Bloom」はレンダープロパティからなくなり、現在はコンポジターで設定します。「Ambient Occlusion」も、現在のレンダープロパティには独立した項目としてはありません。
生成AIに聞く場合も、古いバージョンの情報が混ざることがあります。この記事を書くにあたって3つのAIに質問したところ、「影」の「レイ数」について「現在は統合されて別の名前になっている」という回答がありました。ただ、Blender 5.2では「サンプリング」の「影」の中に「レイ数」がそのまま残っています。
設定が見つからないときは、その設定がなくなったと考える前に、まず使っているBlenderのバージョンを確認します。同じバージョンの公式マニュアルを調べたり、レンダープロパティの項目を開いて探したりすると見つかることがあります。