前回は、ヘアーパーティクルシステムをつかって芝生を表現するモデルをつくりました。今回はそれを実際にレンダリングしてみたいと思います。

Blender_Lawn_Mat_Rendering

Contents

  1. パーティクルシステムのレンダリング
  2. 1m×1m芝生マットのレンダリング
  3. サッカーコートをレンダリングしたらどうなるか
  4. 子パーティクルの粗さ
  5. レンダリング時間

1. パーティクルシステムのレンダリング

芝生を表現するためにつかった「ヘアーパーティクルシステム」という機能ですが、設定をするだけで細かいたくさんの毛のようなものを表現することができます。

しかし、オブジェクトの表面全体に配置すると、オブジェクトのサイズによってはパーティクルの数がとても多くなってしまい、レンダリング時間が長くなってしまうというデメリットがあります。
そのため、本物に近い表現を維持しながら、できるだけパーティクルの数を減らす必要があります。

では、実際、本物に近い表現を維持するためにはどのくらいのパーティクルが必要で、そのときのレンダリング時間はどのくらいになるのでしょうか?

それを今回は芝生のモデルを使いながら確認してみたいと思います。

2. 1m×1m芝生マットのレンダリング

それでは前回つくった 1m×1m の芝生マットをレンダリングしてみたいと思います。

まず、親パーティクルだけの状態でレンダリングしてみます。


親パーティクル数 子パーティクル数 レンダリング時間
1000 0 32秒
5000 0 50秒
10000 0 52秒

パーティクル数が増えるとレンダリング時間も増えますが、パーティクル数に比例して増えるようではありません。実際に 5000 → 10000 では、パーティクル数は2倍になっていますがレンダリング時間はそれほど変化ありません。

Lawn_Mat_P1000
1000
Lawn_Mat_P5000
5000
Lawn_Mat_P10000
10000

レンダリング画像を見ると、このサイズのモデルで芝生の質感を表現するには「10000」程度のパーティクル数が必要なようなので、トータルのパーティクル数は「10000」として、子パーティクルをつかってレンダリング時間を比較してみます。

親パーティクル数 子パーティクル数 レンダリング時間
10000 0 52秒
100 100 54秒
10 1000 54秒

このモデルでは、親パーティクルと子パーティクルの割合を変化させても、レンダリング時間に大きな変化はありませんでした。


3. サッカーコートをレンダリングしたらどうなるか

それでは、フルサイズのサッカーコートをヘアーパーティクルをつかってレンダリングして、芝生の質感を再現したら、どのくらいのパーティクル数が必要で、レンダリング時間はどのくらいになるのでしょうか?
実際に確認してみたいと思います。


親パーティクル数 子パーティクル数 レンダリング時間
100 100 37秒
100 1000 40秒
100 10000 1分01秒
100 100000 2分55秒
1000 10000 2分56秒

Full_P100C100
親100-子100
Full_P100C1000
親100-子1000
Full_P100C10000
親100-子10000
Full_P100C100000
親100-子100000
Full_P1000C10000
親1000-子10000




さすがにモデルのサイズが大きいので、100万個以下のパーティクル数であれば表面が完全に覆われていません。

1000万個であれば、十分に芝生の質感を表現できます。レンダリング時間もこの程度であれば問題はないでしょう。

次に、1000万個のパーティクルに「粗さ」のプロパティを追加した場合のレンダリング時間を確認してみます。


粗さ レンダリング時間
なし 2分55秒
均一 3分05秒
終端 3分11秒
ランダム 3分16秒

Full_P100C100000
なし
Roughness_Unified
均一
Roughness_Endpoint
終端
Roughness_Random
ランダム


画像のサイズに対してヘアープロパティの長さが短いからか、「粗さ」のプロパティを追加してもレンダリング画像の変化はあまりなく、どの場合もそれなりに芝生を表現できています。

この結果からフルサイズのサッカーコートでも1000万個程度のパーティクルを設定すれば、レンダリング時間を考えても十分に対応できそうです。