Blender ウォッチング

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

 本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。

 12月3日、Blender 3.0が公式リリースされました

 Blenderのメジャーリリースとなるこのバージョンには、多数の改善や新機能が追加されています。今回はその中から、「インターフェイス」と「Cycles」レンダーについてご紹介していきたいと思います。

新しい「Blender 3.0」のスクリーンショット

UIの変化

 まずは「2.93」と「3.0」の画面を比較してみましょう。そんなに違いはないように思えます。メジャーアップデートとはいえ、UIに大きな違いはありません。

一見同じような画面に見えますが…

 しかし、全体的に細かい調整がなされています。例えば「ツールの設定」バー。従来は一番上に表示されていましたが、現在はメニューバーと入れ替わり、下に移動してアクセスしやすくなりました。

位置が下がったツールの設定バー

 [プロパティエディター]のパネルを見てみましょう。マージンが広くなり、パネルが「移動」できることが判りやすくなっています。パネルを開くアイコンも三角から下向きの「>」に変わっています。こちらは賛否両論あり、「2.93」と並べて使うことがある筆者にとっては、判別しやすいという利点はあります。

パネルの開閉アイコンの変化

 他にもエリア(エディター)の分割・統合がより柔軟になっていたり、細かい変更点や改良がありますが、キリがありませんので、3.0のリリースノート翻訳を参照してみてください。

新しい「Cycles」レンダー

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

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

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

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

  • レンダリングの高速化
  • デノイザーとワークフローの変化
  • OpenCLの対応中止と、HIP APIによるAMD GPUへの対応

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

レンダリングの高速化

 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」でのレンダリング時間の比較

 「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対応の打ち切りとHIPによるAMD対応

 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レンダリングが可能になるまでには、もう少し時間が必要なようです。

終わりに

 今回はひとまずここまでです。次回も新機能をご紹介する予定です。お楽しみに!