Gpu処理時間をブループリントで取得したい

描画負荷状況に応じて処理を変更したいケースがあります。(GPU負荷が厳しいケースで一部処理を止めたい)
そこで質問ですが、ブループリントでGPU時間を取得する方法はあるでしょうか?
stat unit で表示されているGPUの数字に関して、ブループリントで値を取得できる関数を作成することはできたのですが、
この数字はwaitがはいっているのか、GPUの負荷状況を示す値としては利用できなそうに見えます。
stat gpu の TOTAL の値をブループリント側で参照したいのですが、
方法などご存じの方はいらっしゃいますでしょうか?
この数字でなくても、目的に適した別のやり方などありましたら、教えていただけると助かります。

直接GPU負荷を数値で取得する方法ではないのですが、処理が重くなってくるとブループリントの

  • Tickイベントで取得できるDelta Secondsの値

または

  • Get World Delta Secondsノードで取得できる値

が大きく(時間だから長く?)なっていくので、これで判断してみるというのはどうでしょうか。

60FPSの時は0.016位ですが、例えば0.1以上になったら10FPS以下になったと判断して描画対象を切り替えるといった処理が考えられます。

最初に書いたように直接GPUの負荷を計測しているわけではないので、ご質問のケースではうまく働かないかもしれません。

1 Like