どうも、篠島です。前回はRATファイルの作り方について説明しましたが、今回はRATファイルを使うことによって本当にレンダリングが早くなるのかを検証します。
まずはテクスチャを用意します。自分の家の汚いフロアの写真を取り、フォトショップで0.5Kから16Kまでの解像度のテクスチャをそれぞれJPGとRAT形式で作りました。そしてGridオブジェクトを適当に歪めて、Principled シェーダーを使ってテクスチャを割り当てています。テキスチャのサイズを変えながら、1920*1080でレンダリングした時のレンダリング速度とメモリ使用量を見てみます。
結果がこちら。JPGだと解像度が大きくなるにつれてレンダリング時間とメモリの使用量が増えています。それに対して、RATファイルを使った場合はレンダリング時間は解像度にかかわらず一定、メモリもほぼ一定、もしくは緩やかな上昇に留まりました。
テクスチャ解像度 | JPG レンダリング時間 | JPG メモリ使用量 | RAT レンダリング時間 | RAT メモリ使用量 |
0.5K | 00:31 | 290.44MB | 00:30 | 297.52MB |
1K | 00:30 | 284.63MB | 00:30 | 298.09MB |
2K | 00:32 | 298.64MB | 00:30 | 310.05MB |
4K | 00:33 | 383.45MB | 00:30 | 309.53MB |
8K | 00:33 | 640.67MB | 00:29 | 301.77MB |
16K | 00:39 | 1.61GB | 00:30 | 325.54MB |
テストしてみてわかったのですが、レンダリング時間の長さはテクスチャの読み込みのもので、一旦テクスチャが読み込まれた後のレンダリング時間はほぼ同じように感じました。16KのJPGはレンダリング始まる前にちょっと待たされますが、16KのRATファイルだとすぐレンダリングが始まりました。これがRATの必要な部分だけテクスチャからデータを読み込むランダムアクセスの恩恵という事でしょうか。今回はテクスチャ1枚しか使ってないですが、ちょっとしたシーンでオブジェクトがいっぱいある場合はテクスチャが100枚とか行くと思うので、塵も積もって結構な時間のレンダリング時間の短縮になるのではないでしょうか。さらにメモリも大幅に節約できるので、メモリ少ないPCでレンダリングした際に、スワップファイル使ってレンダリングが物凄く遅くなる事態を防げると思います。
テクスチャをRAT形式に変換するとファイルサイズは増えてしまいますが、レンダリング時間は多少早くなるので是非ともRATファイルを活用しましょう!!