VFXGraphでPCを温める

この記事はTUT Advent Calendar 2021 10日目の記事です。

はじめに

sh00tと申します。季節も冬になり、デスクトップPCが暖房器具として実用的になる時期になりました。 せっかくPCに負荷をかけて暖をとるので、手軽にGPUに負荷をかけることができるUnityのVFXGraphという機能で何か表示しながら部屋を暖めたいと思います。

VFXGraphについて

Visual Effect GraphはUnity上でノードを繋いでエフェクトを作成するツールです。 主な演算はGPU上で行われているので標準のパーティクルシステムよりCPUに負荷がかからない特徴があります。

結果

冬なので雪を降らせてみます。 (アップロード制限の10MB以内に抑える必要があるので画質とFPSを低下させてますが、実際はもっと綺麗に表示されています)

1秒間に10000個の雪を生成しています。さらに平面と球体の当たり判定を取っています。これを普通のGameObjectでやろうとしても重すぎておそらく無理なのでGPUの力すごい。

作成したグラフ。

今度は複雑な形状の物体(スザンヌ)に積もらせてみます。

秒間30000個の雪を生成しています。 よく見ると物体の影に落ちたパーティクルは暗くなっていて、それぞれの雪に影が落ちていることが分かると思います。 ちなみにそれぞれの雪の座標とカメラの座標の距離をとり、距離が近いほど雪が透明になる処理をしています。こうしないと視界がほとんど真っ白に(現実に近いのはこっちですが)。

こっちは影無しバージョン。物体の影に落ちている雪に、影が落ちていません。

雨。わかりにくいですが、きちんと雨が落ちた場所に水紋が表示されています。

スザンヌの形に生成。

そして実行中のGPU使用率。雪の例では100%に張り付いていましたが、それ以外は70%程度でした。明らかにPCの排熱が熱く感じられるくらいにはなります。暖房器具にするためにGPUを熱くするだけでは足りなかった感。

おわりに

久々にVFXGraphに触りましたが今まで使ってこなかった機能に触れることができたのでよかったです。 作成中の様子が分かりやすく、楽しく作成できる優秀ツールですのでUnity使う機会があれば是非使ってみましょう。 実行中でも普通に寒くなってきたのでエアコンつけてました