「Blender 3.0」の新機能に迫る!

書かれた 沿って notbook

新しい「Cycles」レンダー

CyclesレンダーはBlenderにバンドルされている物理ベースのレイトレーサーです。GPUを使用したリアルで光の挙動を活かした画像が作成でき、2011年の4月に登場して以来、Blenderユーザーに親しまれてきました。

しかしここ十年の間にコードが複雑化して新機能の追加や保守が難しくなってしまい、レンダリング速度もユーザーメイドの改造版Cyclesに大幅に差をつけられることになってしまいました。

そこでCyclesレンダーのリニューアルプロジェクト「Cycles-X」が立ち上げられ、今回の3.0とともにリリースされました。

このリニューアル版Cyclesでは、新しいハードウェアやAPIへの対応や、アルゴリズムの近代化が行われ、特に大きく変わったのは以下の3つです。

では実際に何が変わったのか見ていきましょう。

GPUレンダリングが全体的に高速化されており、さらに「OptiX」や「GPUレイトレーシング」といった最近の技術に対応することで、対応するNVIDIAのGPUでは大幅に高速になりました。

下の図では、同程度の画質が得られる設定でのレンダリング時間を比較しています(環境:Windows 10 Pro x64 2004、Intel Core i7-2600、16GB RAM、NVIDIA GeForce GTX 1060 6GB、CUDA使用)。「間接照明」や「透過・屈折」といった割と重い機能が使用されています。

「2.93」と「3.0」でのレンダリング時間の比較

「Blender 3.0」の新機能に迫る!

「3.0」の画像は若干暗いという違いはあるものの、「2.93」では「58.03秒」かかっていたのが「3.0」ではなんと「18.4秒」と、レンダリング時間が約「1/3」になっています。前述のCycles-Xブログ記事のグラフでは1/6にもなっている物もあります。

速度が向上した代わりに「3.0」ではメモリ消費量がかなり増えています。公式開発サイトのタスクのページを見ると、まだ最適化不足なようです。

また画像を複数の「タイル」に分割してレンダリングすることも可能ですが、現時点では上記の理由で、たとえタイルを使用してもあまり消費量は減りません。ただし、ギリギリメモリが足りなくてレンダリングに失敗する時に少しでも消費量を減らすには有効だと思われます。

話がそれましたが、他にも「3Dビューポート」でのプレビューも以前に比べて反応がよくなり、作業時のストレスが軽減されています。

Cyclesレンダーは[サンプル数]と呼ばれる、カメラ(画面内)に入ってくる光線(レイ)を集める回数によって、画像の品質が変わります。開始直後はサンプル数が少なくノイズだらけですが、時間が経つにつれサンプル数が増えるとノイズが減り、画像も綺麗になっていきます。

しかし時間は有限ですので、どこかで妥協しないといけません。以前は最終的な品質が確保できるサンプル数を人間が指定していました。

そして「2.79」で画面上のノイズを減らす「デノイザー」が登場し、以降はノイズがある程度減るレベルまでサンプル数を減らし、残りを「デノイザー」で処理して綺麗にする、という方法でレンダリング時間を短縮してきました。

新しくなった[サンプリング]パネルと[ノイズのしきい値]パラメーター

そして「3.0」ではサンプル数の代わりに[ノイズしきい値]というパラメーターを指定するようになりました。つまり「ノイズがこれぐらいならOK」だと指定してあげれば、適当に切り上げてくれるようになったわけです。

例えばデフォルトの立方体しかないような単純なシーンのレンダリングの場合では[ノイズしきい値]をもっと上げた方が(最大「1.0」)早く終わります。

執筆時点でのデフォルトの[サンプル数]はビュー用で「1,024」、レンダー用に「4,096」と多めに設定されており、もし[ノイズしきい値]が最大の場合はさらに[サンプル数]をもっと減らして速度を上げることもできます(品質は落ちますが)。

OpenCLとはGPUを制御するためのAPIの一つで、「2.93」以前ではAMDなどNVIDIA以外のビデオカードでも、OpenCLを通じたGPUレンダリングが可能でした。しかし、OpenCL規格のストール(処理の動作が停止すること)やドライバーのバグなどで保守がむずかしくなり、OpenCL対応自体を中止する代わり、AMDやIntel、Appleとの共同作業により、これらのGPU上でレンダリングできるよう開発が進められています。

そのおかげで「3.0」ではHIP(Heterogeneous-computing Interface for Portability。OpenCL同様のGPUを制御するAPIの一つ)によりAMD GPUでのレンダリングができるようになりました。ただし現時点ではWindows環境とAMD RDNA/RDNA2世代のグラフィックカード、最新のドライバーが必要です。詳しくはリリースノートをご覧ください。IntelやAppleのチップでGPUレンダリングが可能になるまでには、もう少し時間が必要なようです。