T.TAO
Back to Blog
/1 min read/Others

Unity Shader #2.5 URP更新

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))