这篇笔记主要写一下怎么将 Built-in RP 的 shader 文件升级成 URP 文件。
结构
SubShader{}
在 Tags {} 中 添加新的渲染管线 Tag。
SubShader {
Tags {
"RenderPipeline" = "UniversalPipeline"
}
}
CG Macro
将 CGPROGRAM / ENDCG 改为 HLSLPROGRAM / ENDHLSL。
将 CGINCLUDE 改为 HLSLINCLUDE。
#include 文件的改动
常用的四个 #include 现在做如下改动。
#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 | URP |
float4 UnityObjectToClipPos(float3 pos) | float4 TransformObjectToHClip(float3 positionOS)
|
float3 UnityObjectToViewPos(float3 pos) | TransformWorldToView(TransformObjectToWorld(positionOS)) |
Comments