【Unity】デカールレイヤーでデカールを無効にする

投稿者: | 2021-06-22

デカールプロジェクターやデカールメッシュが特定のマテリアルで無効になるようにしてみました。

デカールレイヤーを有効にする

デカールレイヤーを使って、デカールプロジェクターが影響を与えるメッシュレンダラーを制限することができます。

デカールレイヤーを使えるようにするには、まずHDRPアセットの、Decals > Layersのチェックを入れます。

すると、Project Settingsで、Frame Settingsの「Decal Layers」のチェックを入れられるようになります。

チェックボックスが操作できない場合は、他のクオリティのHDRPアセットでも Decals > Layersのチェックを入れると良いかもしれません。

デカールプロジェクター

デカールプロジェクターには、「Decal Layer」という項目がありますが、デカールレイヤーを有効にするまでグレーアウトしていて、デカールレイヤーが機能しません。

有効化するとドロップダウンから他のレイヤーを選択することもできます。

メッシュレンダラーのレンダリングレイヤーマスク

デカールプロジェクターを、壁と床のオブジェクトに投影されるように配置して、インスペクタで床のPlaneオブジェクトのメッシュレンダラーを見ます。

「Rendering Layer Mask」のドロップダウンを開くと、デカールプロジェクターと同じ「Decal Layer default」のチェックが入っているので、これを切ってみました。

すると、床にデカールが投影されなくなりました。

デカールメッシュはデカールレイヤーが使えないので、床でも有効になっています。

パフォーマンス

デカールを使うには、デカールプレパスで深度をレンダリングする必要があり、これにはCPU負荷がかかります。デカールレイヤーでデカールを無効にしてもこれは変わりません。

デカールプレパスにレンダリングされないようにするには、マテリアルのReceive Decalsのチェックを切ります。

コメントを残す

メールアドレスが公開されることはありません。