サンプリング設定によるレンダリングのちがいを検証
最大サンプルイテレーション値の設定によって、レンダリングの品質と所要時間にどの程度の差がでるのかを比べてみた。スレッシュホールド値は0.005として、最大サンプルイテレーションを128から1,024へと増やしていき、最少サンプルイテレーションは最大の半分の値に設定した。なお、レンダリングのハードウェアにはAMD Radeon VII 16GBを使用した。
▲最大サンプルイテレーション 128
▲最大サンプルイテレーション 256
▲最大サンプルイテレーション 512
▲最大サンプルイテレーション 1,024
各画像のレンダリング時間は以下のような結果であった。
■最大サンプルイテレーション 128/8秒
■最大サンプルイテレーション 256/14秒
■最大サンプルイテレーション 512/26秒
■最大サンプルイテレーション 1,024/49秒
用途にもよるが、512以上であればデノイズをかけなくてもそこそこの品質と言えるのではないだろうか。
次に、レンダリング時間を指定した場合の品質の変化を比べてみた。
▲レンダリング時間 1秒
▲レンダリング時間 5秒
▲レンダリング時間 10秒
▲レンダリング時間 20秒
レンダリング時間 1秒ではさすがにノイズだらけだが、プレイブラスト用途としては十分実用的だと思われる。
このように、レンダリング品質に関わる設定はとてもシンプルで、複数のレンダリングエンジンを切り替える必要はなく、パラメータについても簡潔に整理されており設定に時間をとられることもない。
CPU & GPU併用時のレンダリング時間を検証
Radeon ProRenderの特筆すべき特徴のひとつは、なんといってもGPUとCPUを両方使用できる点だろう。GPUを使うレンダラはほかにもあるが、たいていGPU専用レンダラとなりハードウェアの選定に制約がかかる。また、Radeon ProRenderはAMD製でありながらAMDのハードウェアに限定されていない。そこで、いくつかのCPUとGPUを使ってレンダリング時間を比べてみた。
▲検証に使用したハードウェアのひとつ。GPUはAMD Radeon Ⅶ 16GB、CPUはAMD Ryzen Threadripper 1950X 16コアを搭載している
▲テスト用画像のレンダリングサイズは1,920 × 1,080、最大サンプルイテレーションは512に設定した
▲検証結果
検証の結果、やはりGPUを使ったレンダリングスピードは圧倒的で、16コア32スレッドを誇るAMD Ryzen Threadripper 1950XをもってしてもハイエンドのGPUにはかなわなかった。
・GPUによるレンダリングの検証結果
■AMD Radeon Ⅶ 16GB/1m28s
■AMD Radeon RX580 8GB/3m28s
■Nvidia GTX1070 8GB/3m
・CPUによるレンダリングの検証結果
■AMD Ryzen Threadripper 1950X 16コア/4m12s
■Intel Core i9 9900K 8コア/6m
■Intel Core i7 3700HQ 4コア/30m28s
特筆すべきは、Radeon Ⅶはこの価格帯で16GBものオンボードメモリを搭載しているため、複雑なシーンにおいても安心して使用できるという点だ。Radeon ProRenderにはアウト・オブ・コア・テクスチャやアウト・オブ・コア・ジオメトリ機能があるため、GPUのメモリを超えた運用も可能ではあるが、速度を重視する場合はGPUのメモリが必須となってくる。
Radeon ProRenderはGPUとCPUの両方をレンダリングに使用することもできる。両方を同時に使用して検証してみたが、残念ながら明確なアドバンテージを得ることができなかったばかりか、GPU単体でレンダリングした場合よりも遅くなることがあった。
・CPU & GPUの併用によるレンダリングの検証結果
■AMD Radeon Ⅶ + AMD Ryzen Threadripper 1950X/2m34s
■AMD Radeon RX580 + Intel Core i9 9900K/5m28s
■Nvidia GTX1070 + Intel Core i7 3700HQ/6m2s
もっと反射屈折計算や拡散反射計算が多いシーンの方が相乗効果が出やすいのかと思って別のシーンでも試してみたが、GPU単体よりGPU+CPUの方が遅いという傾向は変わらなかった。これについては、アルゴリズムの改善による最適化が進められているらしい。
▲上のシーンのレンダリング時間
■AMD Radeon Ⅶ 16GB/2m53s
■AMD Radeon Ⅶ + AMD Ryzen Threadripper 1950X/3m
▲上のシーンのレンダリング時間
■AMD Radeon Ⅶ 16GB/1m12s
■AMD Radeon Ⅶ + AMD Ryzen Threadripper 1950X/2m19s