Blender ウォッチング

無料の3DCG統合環境「Blender 5.0」は煙も髪も金属も大気もリアルにレンダリング!

最新版の新機能を徹底解説

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

「Blender 5.0」はヘアーカーブも金属もリアルに表現可能

 11月18日(中央ヨーロッパ夏時間)、「Blender 5.0」が公式リリースされました。

 本リリースはメジャーアップデートにあたり、新機能も変更も多数含まれています。以前の記事にも書いたように、廃止予定の機能が実際に削除されていますので、「Blender 4.5 LTS」を(必要ならもっと以前のバージョンも)データ変換用に併用することをお勧めします。

機能紹介動画

Blender 5.0の新機能!公式概要

 上はリリース毎に公開される公式動画です。今回はもう1時間弱にもなっています。

 今回から3回にわたるこの集中連載では重要と思われるものを独断と偏見でピックアップしてご紹介していきたいと思います。

本記事は12月16日に予定されている「Blender 5.0.1」リリース前に執筆された物であり、挙動が違う可能性があります。

EEVEEレンダーの新機能と変更

 「Blender」のデフォルトのリアルタイムレンダー、EEVEEには、影関連の修正と、起動時のパフォーマンスの改善が行われています。

円筒ヘアー表示

 ヘアーカーブレンダリング設定([レンダー]プロパティ→[カーブ])に、従来の[ストランド]と[ストリップ]に加え、[円筒]が追加されました。

 これはヘアーをその名の通り円筒で立体的にレンダリングします。ストランドは細い線、ストリップは平たいリボンで近似しているため、リアルになったといえます。とはいえ、根元を見る以外ではあまり気づくことはないかもしれません。

[ストリップ]と[円筒]ヘアーカーブタイプの比較。根元以外はあまり違いがない

 また、ヘアーのレンダリング時のアーティファクト(不自然な歪み)回避用に、内部的なシャドウバイアス(影と実体の距離)が追加されており、従来と見た目が変わる可能性があります。

Cyclesレンダーの新機能と変更

 レイトレーサーのCyclesレンダーでは、煙や霧などの「ボリューム」レンダリングの改善と、金属表面の薄膜表現などが行われています。

ボリュームレンダリングのNanoVDB対応

 「Blender」のボリュームレンダリングには、OpenVDBというライブラリが使用されていました。そしてv5.0では、そのGPU対応版であるNanoVDBを使用するようになりました。

 ボリュームレンダリングがGPUの支援を受けられるようになることで、高速化と省メモリ化が期待できます。その一方で少しノイズが増える可能性があります。

以前の記事で使用した海藻シーンのレンダリングの比較(v5.0はバイアス使用)。2分25秒から1分52秒と高速化したが、メモリ消費量は少し上がった

非バイアスのボリュームレンダリング

 ボリュームレンダリングがデフォルトで「非バイアス」になりました。

 従来の「Blender」のボリュームのレンダリングは「近似」で行われ、人が「バイアス」で調整していました。それが物理ベースの「非バイアス」のレンダリングになり、バイアスによる調整がなくなりました。

 メリットとしては、ボリュームが重なった時のブロック状のアーティファクトがでないこと、そして上記のように調整が不要になったことです(欲しい絵にするためにマテリアルを調整する必要はありますが)。

 一方、デメリットには、レンダリング時間が長くなること、ノイズが増加することがあります。そのため、従来のバイアスによる方法もオプションも残されています。

 実際に試した所では、上記のような「シーン全体を覆う薄いボリューム」の場合は、上記のNanoVDB対応による高速化で相殺されているのか、バイアスありとほぼ同じでしたが、一方で下図のように「ボリュームが複数存在する」画像の場合では、40秒弱から3分20秒と大幅に遅くなりました。アーティファクトの有無を含め、どちらを使用するかをあらかじめテストすることをお勧めします。

[メッシュのボリューム化]で作成したボリュームを薄いボリューム内に配置してレンダリング。非バイアスではボリュームが暗くなり、レンダリング時間が大幅に増えた

金属表面の薄膜

 チタンや銅などの金属表面にできる酸化膜により、虹色に反射する現象を表現できます。物理ベースの値の指定には、PHYSICALLY BASEDを参考に、[薄膜の厚さ]は200nmから300nmぐらいをお勧めします。

 ステンレススチールでの作例の比較。値はPHYSICALLY BASEDの物を使用、薄膜の厚さ:300nm、IOR:1.5

レンダリング時間の視覚化パスの追加

 ピクセル毎にかかったレンダリング時間を視覚化するパスが追加されました。レンダリング時にどこがボトルネックになっているかがわかります。

 注意として、CPUレンダリングのみ利用可能であること、シーンによっては[数式(乗算)]ノードで適当にスケーリングしないと真っ白になってしまうこと、デバッグ用なのでデノイズされていないことがあります。単位はミリ秒です。

アヒル画像での「レンダリング時間」パスのレンダリング例。明るくなるに従い時間がかかっている。そのままでは湯船部分が真っ白になるため、乗算ノードで調整している

サブサーフェス・スキャッタリングの改善

 ろうそくや大理石のような半透明の物質を表現する「サブサーフェス・スキャッタリング」機能使用時に一部分が暗くなってしまう問題が、[ランダムウォーク]メソッドで複数の内部反射(マルチバウンス)を行うことで解決されました。従来の挙動(シングルバウンス)に戻したい場合は、プルリクエストのログ(英文)をお読みください。

v4.5とv5.0のGif動画による比較。少し判りづらいが、目の周囲の暗い部分が消えている

リニア3Dカーブによるヘアーレンダリング

 Cyclesにも新しいカーブレンダリングタイプが追加されており、こちらは直線による近似で軽量化を行います。遠景でのヘアーの表現に便利です。

 EEVEEが正しい形状にするオプションを追加した一方で、こちらは軽量化のため簡略化するオプションなのがおもしろいですね。

レンダリング共通の変更

 EEVEEレンダーとCyclesレンダー共通の変更と新機能です。

放射タイリングノード

 画像やプロシージャルテクスチャノードの前に配置することで、放射状に並べることができます。

 [セグメント座標]や[セグメント幅]など、扇状の部分の情報が出力されており、うまく使えば複雑なタイルも作成できます。

画像を放射タイリングノードで並べた例(クリックで作業画面)

大気テクスチャのNishitaモードの変更

 ワールド用テクスチャを生成する、[大気テクスチャ]のモデルの1つである、「Nishita」がデフォルトになり、さらに[多重散乱](デフォルト)と[単一散乱]の2つに分かれました。

 [単一散乱]は従来のNishitaモードに相当し、[多重散乱]は精度が向上した改善版になります。Nishita氏の名前が消えるのは少し寂しいですね。

旧[Nishita]モードが[単一散乱]と[多重散乱]に分裂

ボロノイテクスチャの高速化と変更

 生物の皮膚など幅広い場面で利用されているボロノイテクスチャ(不規則なセル状のパターン)のハッシュアルゴリズムの改善により、大幅に高速化されました。特にCPUによるジオメトリノードやレンダリング、コンポジターで恩恵があります。

 その代わり以前のバージョンとノイズのパターンが変わります。既存のファイルの再利用時には注意が必要です。

同じ設定のマテリアルをv4.5とv5.0でレンダリングした例。パターンが完全に変わっている

終わりに

 次回は「Blender 5.0」のノード関連の新機能と変更についてご紹介する予定です。

 ではまた。