top of page
作家相片Lingheng Tao

Unity Shader #3 URP Upgrade


这篇笔记主要写一下怎么将 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))


9 次查看0 則留言

Comments


bottom of page