夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLensで発光オブジェクトのGlow効果を出す。

本日はHoloLensの表現枠です。

UnityではShaderの機能が対応している場合[Emittion]を使用することができます。

この場合オブジェクト自身から発光するためライトの影響を受けなくなります。

f:id:Holomoto-Sumire:20210704182022j:plain

しかし実際の発光現象では発光体だけではなく周囲の空気に反射し、柔らかく光を放ちます。この効果は[グロー効果]と呼ばれ、光の表現の中で重要な効果を持ちます。

グローに関しては以下の記事がわかりやすかったです。

compojigoku.blog.fc2.com

今回はこの発光効果をHoloLensのオブジェクトで再現していきます。

〇環境

Windows 11 PC(Windows10でも同様の手順ですが、画像などスクリーンショットがWindows11になっています。)

・HoloLens 2

・Unity2021.1.10f1

・UnivarsalRenderPipeline(以下URP)

・MixedRealityToolkit v2.7(以下MRTK)

〇HoloLensで発光オブジェクトを見る。

UnityでEmission(発光)を行うためには使用しているマテリアルのShaderが対応している必要があります。

新規でHoloLens用のシーンを作成し、Cubeを配置しました。

f:id:Holomoto-Sumire:20210704182540j:plain

新規でマテリアルを作成します。URPを使用しているプロジェクトでは[Universal RenderPipeline /Lit]が適応されます。 今回はこのShaderを使用します。

f:id:Holomoto-Sumire:20210704182844j:plain

[Cube]にマテリアルをアタッチします。 インスペクターウィンドウから[Emission]にチェックを入れ色を指定することで発光が実装されます。

f:id:Holomoto-Sumire:20210704183220j:plain

ですが、冒頭で述べた通りグロー効果が反映されていないため光っているようには見えないです。

f:id:Holomoto-Sumire:20210704183355j:plain

〇ポストプロセッシングを使う

ポストプロセッシングとはレンダリング後に行われる追加の描画処理です。一般的に負荷が大きいためスタンドアロンxRではパフォーマンスと引き換えになる場合があります。

 空のゲームオブジェクトを作成し、[Postprocess]と名付けました。 インスペクターウィンドウから[Volume]コンポーネントを追加します。

f:id:Holomoto-Sumire:20210704183735j:plain

[Volume]コンポーネントの[Profile]から[New]をクリックし、新規のポストプロセスプロファイルを作成し、[Bloom]を追加します。

f:id:Holomoto-Sumire:20210704184106j:plain

[Bloom]の[Threshold]および[Intensity]にチェックを入れ有効化します。

f:id:Holomoto-Sumire:20210704184425j:plain

これによってグロー効果が表れるようになります。

f:id:Holomoto-Sumire:20210704184646j:plain

しかしこれはシーンウィンドウでのみで、実際にUnityエディタのゲームウィンドウではグロー効果が見られません。

f:id:Holomoto-Sumire:20210704184740j:plain

これはポストプロセッシングを行うためにはカメラなどの設定も必要であるためです。

[MixedRealityPlayspace]の子オブジェクトにある[MainCamera]を選択し、インスペクターウィンドウから[Post Processing]にチェックを入れ有効化します。

f:id:Holomoto-Sumire:20210704184918j:plain

これによってゲームウィンドウでもグロー効果が反映されます。

f:id:Holomoto-Sumire:20210704185057j:plain

このグロー効果を見るためには[URP]のプロファイルから[HDR]のチェックを入れて有効化している必要があります。

f:id:Holomoto-Sumire:20210704185350j:plain

実機で確認します。

youtu.be

実機でもグロー効果を確認できました。