ShaderGraphでUGUIのマテリアルを作成しScreen Space - Overlayで表示したい(LWRP/HDRP)
はじめに
UnityのShaderGraph便利ですよね。 これをUGUIの要素にも使いたいのですが、 現時点では「Screen Space - Overlay」のCanvasとともに使うと 不具合が生じています。 この不具合を回避する方法をHDRPとLWRPの両方で見つけたのでメモします。
- Unity: 2019.2.6f1
UnityのShaderGraph便利ですよね。 これをUGUIの要素にも使いたいのですが、 現時点では「Screen Space - Overlay」のCanvasとともに使うと 不具合が生じています。 この不具合を回避する方法をHDRPとLWRPの両方で見つけたのでメモします。
Unityの従来のレンダーパイプラインではGrabPassという特殊なパスが存在しました。
このパスを利用することで、それまでにレンダリングした絵をテクスチャとして利用できました。
このパスを利用することで屈折表現やその他特殊な表現を実装することもありました。
このパスは便利だったのですが、
LWRPやHDRPなどのSRPではGrabPassが廃止されてしまいました。
今回はHDRPでのGrabPassの代替表現について軽く調べたのでまとめます。
現時点でのShader Graphではライトの情報を取得するノードがありません。 ライトの情報を取得するカスタムノードを作成している方がいたので、 そのカスタムノードについて紹介します。
Unityの従来のレンダーパイプラインではGrabPassという特殊なパスを利用して
それまでにレンダリングした絵をテクスチャとして利用できました。
LWRPを含むSRPではGrabPassが使えなくなります。
LWRPではGrabPassの代替として_CameraOpaqueTextureというものが用意されています。
このテクスチャをShader Graphから利用してみます。
