うにてぃブログ

主にUnityとC#に関する記事を書いていきます

URP

【Unity】URPにおける背景画像の取得方法:Shader GraphのSceneColorノードの活用

以前は背景画像を描画する際にGrabtextureを使用していましたが、 URP(Universal Render Pipeline)ではその機能が削除されたため、代替手段が必要です。 今回は、その代替手段の1つであるShader GraphのSceneColorノードを使用した方法を説明します。 Scen…

【Unity】Texture2DArray は SRP Batcher が有効なのか

通常 URP Lit を利用した際には SRP Batcher が有効な Shader なので、Frame Debugger で確認したところちゃんと SRP Batcher が有効となっていることが分かる では Texture2DArray を利用した Shader では SRP Batcher が有効なのか確認してみます 追加項目…

【Unity】URP12.1.8 のカスタマイズ用 Shader メモ

Shader を作成する際に、URPの中を探してコピーしてくるのが面倒だったので、基本的な Shader だけ抜き出して github にあげておきます 必要な際にご利用ください UnityURPShaderSample/URP12.1.8 at main · yayorozu/UnityURPShaderSample · GitHub

【Unity】GBuffer に書き込む内容を変更する

環境: Unity2021.3.16f1 URP12.0.8 hacchi-man.hatenablog.com こちらはすでにURPのカスタマイズができる状態にしてることを前提に話を進めます Unity の GBuffer の内容は以下のようになっており GBuffer0、ARGB32 フォーマット: ディフューズ色 (RGB)、オ…

【Unity】FullScreenShaderGraph で GBuffer を参照する

環境: Unity2022.2.b16, URP14.0.3 Exposed を false にした _GBuffer0, _GBuffer1, _GBuffer2 を Properties に定義する ことにより ShaderGraph で GBuffer を参照できるようになります Texture を参照する際も SampleTexture2D ノードを利用するだけで問…

【Unity】RendererFeature の Shader で GBuffer を利用する

環境: Unity2021.3.16f1, URP12.1.8 Shader 側で GBuffer + Depth を利用するためには、特にスクリプト側で設定する必要は無く、 _CameraDepthTexture _GBuffer0 _GBuffer1 _GBuffer2 を定義するだけで参照することができる Shader "Hidden/GBufferFullScree…

【Unity】ライトが強いと白飛びするのをなんとかしてみる【Deferred】

【環境】 Unity2021.3.16f1, URP12.1.8, Deferred 以前 は Forward で確認をしましたが、今回は Deferred でライトの白飛びをなんとかしてみます Deferred では Forward とはライトの処理箇所が異なっており、com.unity.render-pipelines.universal/Shaders/…

【Unity】ライトが強いと白飛びするのをなんとかしてみる【Forward】

【環境】 Unity2021.3.16f1, URP12.1.8, Forward 通常 Light の Intensity を大きくすれば遠くまで明るくできるが、近い部分がライトの色が強く反映されてしまう これを URP をカスタマイズすればなんとかできるんじゃないかと思ったのでやってみる URP のカ…

【Unity】RendererFeature を利用した PostProcess 用のテンプレート

Unity2021.3.15f1. URP 12.1.8 ※URP14の場合はこちら PostProcess 用のスクリプトをたまに忘れるのでこちらにメモしておきます using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; [Serializable] public class Sampl…

【Unity】Decal の ShaderGraph を編集する

Decal の Shader の Edit を押すと Universal RP/Shaders/Decal を開くことができる そこから Save As... を押すことで、同じ ShaderGraph を作成することができる 例えば BaseColor を追加したい場合は、Property を追加してテクスチャの色と乗算するように…

【Unity】URP で デカールを試す

のテンプレートを利用して手軽にデカールを試します Decal を有効にする デフォルトでは Decal が有効になっていないため、Assets/Settings/UniversalRenderer.asset の Renderer Futures に Decal を追加します マテリアルの作成 マテリアルを作成し、Shade…

【Unity】URP 利用時に SceneView カメラ の Rendering Renderer を変更する

Universal Render Pipeline Asset の Rendering / Renderer List が複数ある場合 Camera の Rendering / Renderer を変更しても GameView は変更されるが、SceneView は変更されない SceneView のカメラの設定は、Universal Render Pipeline Asset の Render…

【Unity】URP (Universal Render Pipeline) の 2D Light を試す

最新のUnity で 2D Light を試してみたくて、やり方を調べたのでここにメモしておきます 環境 Unity - 2022.1.0b16 Universal RP - 13.1.7 導入 Universal RP の追加 PackageManager より Universal RP をインストール Universal Render Pipeline Asset の作…

【Unity】URP で PostProcess を利用する

URP で PostEffect を利用するには ForwardRendererData を作成して UniversalRenderPipeline に登録する必要がある この手順を記述する ScriptableRendererFeature の作成 ScriptableRendererFeature は レンダラーにレンダリングパスを追加するためのクラ…