Blender3.3でレンダリング(Cycles X 編)
Blender3.0からCycles Xという新しいレンダリングエンジンが搭載されました。そこでCycles Xについて調べてみました。
Cycles Xについて
● レンダリングについて
レンダリングは、Blenderで3D空間上に制作したデータを静止画に変換する作業工程です。Blender3.3にはCyclesとEevee、Workbenchの3種類のレンダリングエンジンが用意されています。
Cyclesは、オブジェトや光源に向かって光線を発射し、さまざまな情報を収集することで、現実世界の光をシミュレーションする「レイトレーシング(光線追跡法)」というレンダリング方法を採用しています。レイトレーシングは、光をシミュレーションするためレンダリング結果が綺麗になる一方で、大量の光の跳ね返りを計算する必要がありレンダリング時間が長く、明暗差が大きいシーンではノイズが出やすいという特徴があります。
● Cycles Xについて
従来のCyclesは、2011年に登場して以来10年間でコードが複雑化し、そのままでは性能改善が難しくなりました。そこで、アーキテクチャを根本的に見直し、最新のレンダリングアルゴリズムやハードウェアへ対応した、新しいCycles Xが開発され、Blende3.0から搭載されました。
Cycles Xは、GPUレンダリングの高速化、デノイズ品質の向上、AMDやAppleデバイスへの対応などさまざまな点が改善されました。また、Blender 3.1からはApple製のGPUでもCycles Xがサポートされ、MacでもGPUレンダリングが使えるようになりました。
Blender3.3でレンダリング(Cycles X 編)
レンダリング用に、Youtubeのチュートリアル動画を参考に温泉街を制作しました。それでは、Cycles Xで温泉街をレンダリングします。
● GPUレンダリングの有効化
使用できるグラフィックボードがある場合は、グラフィックボードを選択します。
トップバーの「編集」の「プリファレンス」でユーザー設定画面を開き、「システム」で使用したいグラフィックボードにチェックを入れます。NVIDIA製のGPUを使用している場合は、CUDAよりもOptiXの方が高速にレンダリングできます。
● Cyclesを選択
初期設定ではレンダリングエンジンはEeveeになっているので、プロパティでレンダーのレンダーエンジンをCyclesに変更します。
※Cycles Xは開発時の名称なので、Cyclesで大丈夫です。
また、デバイスをGPU演算に変更します。
● サンプル数とノイズしきい値
Cyclesは、「サンプル数(カメラに入ってくる光線を集める回数)」によってレンダリング結果が変わります。レンダリング開始直後はサンプル数が少なくノイズが多い状態ですが、時間が経つにつれてサンプル数が増えてノイズが減り、レンダリング結果も綺麗になります。従来のCyclesでは、サンプル数を調整して、残りはデノイズすることで、レンダリング結果とレンダリング時間のバランスを調整しました。
Cycles Xではサンプル数の代わりに「ノイズしきい値」を調整します。ノイズしきい値はサンプリングを止めるノイズレベルの値で、0.1〜0.001で設定します。0に設定するとサンプル数をもとに自動で調整されます。
初期設定では、サンプル数は4096、ノイズしきい値は0.01に設定されています。
● デノイズ
デノイズは、Blender2.79から搭載されたノイズを除去してくれる機能です。デノイズにチェックを入れます。
● タイル分割について
従来のCyclesでは、メモリ使用量の調整のために、レンダリング時にタイルの分割数を調整していましたが、Cycles Xはそれが自動化され、タイル分割なしのレンダリングになりました。
● レンダリング
レンダリングします。
「F12」か、トップバーの「レンダー」の「画像をレンダリング」をクリックすると、新規ウィンドウが立ち上がってレンダリングが始まります。
iMac Proで温泉街を初期設定(サンプル数:4096 / ノイズしきい値:0.01)でレンダリングしたさいの所要時間は20分でした。サンプル数を変えずにノイズしきい値を0.02にした場合、レンダリング結果はほぼ変わらず所要時間は10分にりました。最終レンダリング以外は、ノイズしきい値を調整してレンダリング時間を短縮しても良さそうです。
レンダリングが終わったら、画像の保存でファイルに保存することができます。