リアル影システムとふんわり影シェーダーの負荷比較検証結果
はじめに
VRChat向けアバターで使用できる影表現ギミックとして、リアル影システムとふんわり影シェーダーのパフォーマンス傾向を比較しました。
本レポートの元データはUnity関連技術に明るい春白猫氏(https://x.com/8Rshironeko)に計測してもらったもので、私nHarukaの手でデータの加工等は行っておりません。
なお、あくまで記載した条件の下での計測であり、条件が変わった場合やVRChat上の実運用で同様の結果が出ることを示すものではありません。
また本レポートは恣意的な判断をしないよう、計測したデータをAIに読み込ませて出力したものに、一部表現上の修正を加えたもので、考察内容に誤りを含む可能性があります。
このレポート作成の背景として、Xなどの投稿やVRChat上の会話でしばしば「リアル影システムとふんわり影シェーダーはどちらが軽いか」といったトピックが議論されることがあり、事実に基づいた判断材料を提供する必要があると感じたためです。
このレポートの結果によって、ふんわり影シェーダーを貶める意図はありません。
比較には Unity Profiler の CPU Usage および GPU Usage を使用し、あわせて平均FPSも確認しています。
ざっくり結論
今回の検証では、リアル影システムの方がふんわり影シェーダーより軽いという結果になりました。
検証アバターだけを表示した条件では、リアル影システムの方が処理負荷のグラフが低めに出ており、差がかなりはっきり出ています。平均FPSでも、リアル影システムは 92.96 FPS、ふんわり影シェーダーは 67.12 FPS でした。
モブ10体を追加した条件でも、リアル影システムの方が負荷のかかり方は比較的抑えられていました。ふんわり影シェーダーでは、負荷が一時的に大きく跳ねる場面が比較的多く見られました。平均FPSでも、リアル影システムは 44.47 FPS、ふんわり影シェーダーは 36.56 FPS でした。
以上から今回の検証条件では、リアル影システムの方がパフォーマンス面で有利な結果になりました。
検証環境
検証アバター:【オリジナル3Dモデル】エク v1.2.0
モブ用検証アバター:真冬 Mafuyu / オリジナル3Dモデル v1.0.7
GPU:NVIDIA GeForce RTX 4070 SUPER
CPU:AMD Ryzen 7 5700X 8-Core Processor
DirectX:DirectX 11
Unity:2022.3.22f1
lilToon:v2.3.2
Poiyomi:v9.3
ふんわり影シェーダー:v1.21
リアル影システム:v9.5.2(lilToon版)
真冬 Mafuyu 側のシェーダーには Poiyomi v9.3 を使用しています。
これは、ふんわり影シェーダーが lilToon を書き換える仕様のため、複数アバター条件での干渉を避ける目的です。
検証条件
以下の条件でUnity Profilerのグラフを確認しました。
なお、リアル影システムもふんわり影シェーダーも初期セットアップ直後の状態で比較しています。
①単体条件
レンダリング対象:検証アバターのみ
②モブ10体条件
レンダリング対象:検証アバター + 真冬 Mafuyu 10体
リアル影システム設定
ふんわり影シェーダー設定
それぞれの条件で、リアル影システムとふんわり影シェーダーを比較しています。
読み取り上の注意
今回使用したデータは Unity Profiler のスクリーンショットです。Profiler の生データではないため、厳密な中央値・パーセンタイルなどは算出していません。本記事では、主に以下の観点でグラフを読み取っています。
CPU Usage
10ms / 16ms / 33msラインへの接近・超過、継続的な帯、スパイク頻度
GPU Usage
1ms / 4ms / 5ms / 10ms / 16msラインへの接近・超過、Shadows/Depth の出方、スパイク傾向
負荷の出方
継続的に帯として出ているか、突発的なスパイクとして出ているか
主な成分
Rendering、Scripts、Shadows/Depth、Other の目立ち方
注意: Unity Editor上のProfilerであるため、VRChat実行環境とは負荷特性が異なる可能性があります。その点を踏まえたうえで、同一環境・同一条件下での傾向を比較しています。
単体条件の比較
CPU Usage
単体条件では、リアル影システムの方がCPU Usageの基準線が低く出ています。
ふんわり影シェーダーでは、CPU Usage が10ms〜16ms付近を中心に推移しており、複数の区間で16msラインに接近、または一部超過しています。Rendering と Scripts の積み上がりが継続的に見られ、CPU側の使用時間が比較的高めに出ています。
一方、リアル影システムでは、CPU Usage が主に5ms〜10ms台前半に収まる区間が多く、16msラインを超えるのは一部のスパイクに限られます。
同じ単体条件で比較すると、CPU Usage上はリアル影システムの方が低い傾向が明確です。
▼CPU Usageの比較まとめ
基準となる負荷(普段のグラフの帯)
ふんわり影:10ms〜16ms付近と高め
リアル影:5ms〜10ms台前半と低め
16msラインへの接近しやすさ
ふんわり影:多め
リアル影:少なめ
突発的なスパイク(負荷の跳ね上がり)
どちらも一部あり
主な違い
ふんわり影はCPU側の継続的な負荷(帯)が常に高めに出るのに対し、リアル影は継続的な負荷が低く抑えられているのが明確な差です。
GPU Usage
GPU Usageは、どちらも1ms台を基準にしつつ、細いスパイクが発生しています。
ふんわり影シェーダーでは、4ms前後まで到達するスパイクが複数あり、一部ではそれ以上に伸びる場面も確認できます。
リアル影システムでも4msライン付近、またはそれを超えるピークはありますが、広い高負荷帯として継続する場面は少なく見えます。
GPU Usageだけを見ると、CPU Usageほど大きな差ではありません。ただし、継続的な帯の低さという点では、リアル影システム側がやや低めに見えます。
▼ GPU Usageの比較まとめ
基準となる負荷
ふんわり影: 1ms台〜数ms
リアル影: 1ms台中心
スパイクの傾向
ふんわり影: 4ms前後のピークが複数
リアル影: 細いピークが複数
高負荷帯の継続
どちらも限定的
主な違い
ふんわり影はスパイクがやや目立ちますが、リアル影は継続的な帯がさらに低くまとまっています。
平均FPS
リアル影システム: 92.96039 FPS
ふんわり影シェーダー: 67.11803 FPS
平均FPSでも、リアル影システムの方が高い値になっています。Profiler上でリアル影システムのCPU Usageの基準線が低めに出ていたことと、平均FPSの結果は整合しています。
単体条件のまとめ
単体条件では、リアル影システムの方がCPU Usageの基準線が低く、平均FPSも高い結果でした。
特にCPU Usageでは、ふんわり影シェーダーが10ms〜16ms付近に推移する場面が多いのに対し、リアル影システムは5ms〜10ms台前半に収まる区間が多く、差がはっきり出ています。
GPU Usageについては、どちらも細いスパイクが発生しますが、継続的な帯はリアル影システム側の方が低めに見えます。
モブ10体条件の比較
CPU Usage
モブ10体条件では、ふんわり影シェーダーの方がCPU Usageの帯が高めに出る場面が多く見られます。
ふんわり影シェーダーでは、16msラインを超える区間が継続しており、33msライン付近またはそれ以上に到達するスパイクも複数確認できます。Rendering と Scripts の積み上がりが大きく、グラフ全体としてCPU Usageの帯が広めに見えます。
リアル影システムでも、16msラインを超える区間や大きなスパイクは確認できます。ただし、ふんわり影シェーダーと比較すると、CPU Usageの継続的な帯はやや低めに見える場面があり、一定の基準負荷にスパイクが乗る形に近く見えます。
CPU Usageでは、ふんわり影シェーダーの方が継続的な帯として上側に出る場面が多く、リアル影システムはスパイクを含みつつも、帯の厚みはやや抑えられているように見えます。
▼ CPU Usageの比較まとめ
基準となる負荷(帯の厚み)
ふんわり影: 高めに出る場面が多い(帯が厚め)
リアル影: やや低めに見える場面がある(帯は抑えめ)
16msラインの超過
ふんわり影: 継続的に発生
リアル影: 発生するが、継続的ではない
33ms付近への大きなスパイク
どちらも複数確認
負荷の出方(全体像)
ふんわり影: 継続的な帯が広く、厚みがある
リアル影: 一定の基準負荷(帯)にスパイクが乗る形に近い
GPU Usage
GPU Usageでは、両方式で負荷の出方に違いが見られます。
ふんわり影シェーダーでは、Shadows/Depth を中心とした山が比較的広く出る場面があります。通常時の帯に加えて、10ms前後、場合によっては16msを超えるようなピークも確認できます。
リアル影システムでは、通常時のGPU Usageの帯は数ms帯に収まる区間が多く見えます。一方で、突発的に大きく跳ねるスパイクも確認できます。ふんわり影シェーダーが比較的広い山として出る場面があるのに対し、リアル影システムは細いスパイクや突発的なピークとして出る傾向が強く見えます。
GPU Usageでは、ふんわり影シェーダーの方が広い山として負荷が出る場面があり、リアル影システムは突発スパイクが目立つものの、継続的な帯は比較的低めに見えます。
▼ GPU Usageの比較まとめ
基準となる負荷
ふんわり影: 数ms帯で推移
リアル影: 数ms帯だが、さらに低めに見える場面がある
Shadows/Depth由来の負荷の形
ふんわり影: 広い山として出る場面があり、高負荷帯が目立つ
リアル影: 細いピークとして出る場面が多い
突発的な大きなピーク
ふんわり影: 10ms〜16ms超のピークあり
リアル影: 突発的な大スパイクあり
負荷の出方(全体像)
ふんわり影: 継続的な山 + スパイク
リアル影: 細いスパイク・突発ピーク型
平均FPS
リアル影システム: 44.46516 FPS
ふんわり影シェーダー: 36.56317 FPS
モブ10体条件でも、平均FPSはリアル影システムの方が高い値になっています。Profiler上でふんわり影シェーダーのCPU/GPU Usageの帯が高めに出ていることと、平均FPSの差はおおむね整合しています。
モブ10体条件のまとめ
モブ10体条件では、CPU Usage・GPU Usageともに両方式でスパイクが確認できます。そのうえで比較すると、ふんわり影シェーダーはCPU Usage/GPU Usage双方で継続的な帯が上側に出る場面が多く見えます。特にGPU Usageでは、Shadows/Depth を中心とした山が比較的広く出る区間があります。
リアル影システムは、CPU Usage・GPU Usageともに突発的なスパイクはありますが、GPU Usageの継続的な帯はふんわり影シェーダーより低めに見える場面があります。負荷の出方としては、ふんわり影シェーダーが「広い山」として現れやすいのに対し、リアル影システムは「細いスパイク」として現れやすい傾向に見えます。平均FPSでも、リアル影システムの方が高い値でした。
全体の平均FPS
今回の平均FPSの総まとめは以下の通りです。
リアル影システム(単体): 92.96039 FPS
ふんわり影シェーダー(単体): 67.11803 FPS
リアル影システム(モブ10体): 44.46516 FPS
ふんわり影シェーダー(モブ10体): 36.56317 FPS
単体条件・モブ10体条件のどちらでも、リアル影システムの方が高い平均FPSを示しています。この結果は、Profiler上でリアル影システムのCPU Usage/GPU Usageの継続的な帯が低めに見えたことと整合しています。
データまとめ
今回のProfilerグラフを見る限り、単体条件ではリアル影システムの方がCPU Usageの基準線が低く出ています。ふんわり影シェーダー単体はCPU Usageが10ms〜16ms付近まで上がりやすいのに対し、リアル影システム単体は5ms〜10ms台前半に収まる区間が多く見られ、CPU Usage上の差が特に大きく出ています。
モブ10体条件では、ふんわり影シェーダーはCPU Usage/GPU Usage双方で継続的な帯が高めに出る場面が多く見えます。リアル影システムにも大きなスパイクはありますが、GPU Usageでは継続的な帯が比較的低めに見える区間があり、負荷の出方に違いが見られました。
全体として、リアル影システムはCPU/GPU Usageの継続的な帯が低めに出る傾向があり、ふんわり影シェーダーは特にモブ10体条件でGPU Usageの山が広く出る場面が目立ちました。平均FPSの結果もProfilerの傾向とおおむね同じ方向を示しています。
結論
Unity Profiler上では、今回の検証条件において、リアル影システムの方がふんわり影シェーダーよりCPU Usage/GPU Usageの継続的な帯が低めに出る傾向が確認できました。
単体条件では、リアル影システムのCPU Usageが5ms〜10ms台前半に収まる区間が多く、ふんわり影シェーダーより明確に低めに推移しています。平均FPSでも、リアル影システムが 92.96039 FPS、ふんわり影シェーダーが 67.11803 FPS となり、Profiler上の傾向と整合しています。
モブ10体条件では、ふんわり影シェーダーの方がCPU/GPU双方で継続的な帯が高めに出る場面が多く、特にGPU UsageではShadows/Depth由来と見られる広い山が確認できます。リアル影システムには突発的なスパイクがあるものの、GPU Usageの継続的な帯は比較的低めに見える場面があります。平均FPSでも、リアル影システムが 44.46516 FPS、ふんわり影シェーダーが 36.56317 FPS となりました。
以上から、今回の検証条件では、リアル影システムの方がパフォーマンス面で有利な傾向が確認できました。
補足: 本検証は、特定のPC環境・Unity Editor・検証アバター・検証条件における結果です。VRChat実環境、ワールド条件、同時表示アバター数、使用シェーダー、ライト設定、描画設定によって結果は変動する可能性があります。そのため、本記事の結果は、今回の検証条件における結果として参照してください。


コメント