Unity Shader #2.5 URPアップグレード
このノートでは、Built-in RPのシェーダーファイルをURPにアップグレードする方法について説明します。
構造
SubShader
Tags に新しいレンダリングパイプラインのTagを追加します。
Plain TextSubShader {
Tags {
"RenderPipeline" = "UniversalPipeline"
}
}
CGマクロ
CGPROGRAM / ENDCG を HLSLPROGRAM / ENDHLSL に変更します。
CGINCLUDE を HLSLINCLUDE に変更します。
#includeファイルの変更
よく使う4つの#includeは以下のように変更します。
Plain Text#include "Unity.cginc"
=> #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "AutoLight.cginc"
=> #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "AutoLight.cginc"
=> #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
#include "Lighting.cginc"
=> NOT SUPPORTED
組み込みヘルパー関数の置き換え
頂点座標変換
Built-In:
Plain Textfloat4 UnityObjectToClipPos(float3 pos)
URP:
Plain Textfloat4 TransformObjectToHClip(float3 positionOS)
Built-In:
Plain Textfloat3 UnityObjectToViewPos(float3 pos)
URP:
Plain TextTransformWorldToView(TransformObjectToWorld(positionOS))