code直接書く方法とShaderGraphを使う方法があります。体感的にはLighting(BRDF)に依存しないadhocで使い捨てな見た目を作りたいときにいShaderGraphを使うと楽かなと思ってます。code書こうと思います。URP)と改名されました。S...tips.hecomi.com事前に↑こちらで勉強。"UnityEditor.Rendering.Universal.ShaderGUI.SimpleLitRimShader"}PropertiesはMToonからのコピペ、それ以外はSimpleLitを見ながら勘で書き換えました。.shaderはマテリアル画面で設定するテクスチャとかのプロパティを宣言、また描画パイプラインの一連のPassを全て記述する箇所みたいですね。SAMPLER(sampler_RimTexture);~略CBufferというのがポイントですね。SRPBatcherが有効になるための条件だった気がします。スクリプタブルレンダーパイプライン(SRP)というカスタマイズ性に優れたレンダリングテクノロジーを導入しました。Batcher」が用意されています。よるレンダリング処理の速度がシ...unity.comSimpleLitRimForwardPass.hlslcolor値を取得する処理をここに書きます。shader自体はShaderLitの関数そのまま使ってます。shaderであるLitPassFragmentSimple関数内で呼んでいたUniversalFragmentBlinnPhong関数ではなく自作のSimpleLitRimFragmentを呼ぶようにしてます。alpha);}書いてから思ったのですが、このBRDF部分は_RimColorといったシェーダー変数に依存すべきではないですね。他のshaderから呼び出されるかもしれないんですから。引数部分にrim系パラメータを渡す設計にすべきでした。SimpleLitRimShader.csカスタムインスペクタです。クールな見た目と入力ミスを防ぐという目的ではあった方がいいです。ここはSimpleLitShader.csをほぼ丸コピしたので省きますSimpleLitRimGUI.csカスタムインスペクタ、OnGUIで描画する部分です。}DoSpecularArea関数をコピペして描きました。compatibleなら理由書かれてるんで対応します。僕の場合はDepthOnlyとかのPassの#includeがSimpleLitInput.hlslのままでした。[VirtualCast]virtualcast.jpリムライティング計算部分はMToonを参考にしました。Batcherのおかげでほぼ無視できるくらいになりました。これからは異なるShaderが点在する方が問題になりそうですね。Litの方がピクセルシェーダー負荷の高い計算をしてますね。窓ガラスにつく水滴表現したいですね。ヒントとなりそうな情報をまとめてみました。基本的には全画面エフェクトが多いです。ゲームであればカメラに水滴が垂れるような演出ですね。