基于Unity2021的URP的RenderFeature进行Outline的另一种方法里面使用的Shader是基于Shader Graph开发的。但是我一直想把这里面给的两个shader替换成手写代码的,经过两天断断续续的编写,算是走通了,希望以后能够对手写URP的shader越来越熟悉。
首先是ViewSpaceNormal这个shader的代码:
Shader "URP/ViewSpaceNormal"
{
SubShader
{
Pass
{
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct Attributes
{
float3 positionOS : POSITION;
float3 normal:NORMAL;
};
struct Varyings
{
float4 positionCS : SV_POSITION;
float3 normal:COLOR0;
};
Varyings vert(Attributes v)
{
Varyings o = (Varyings)0;
o.positionCS = TransformObjectToHClip(v.positionOS);
o.normal = (TransformWorldToViewDir(TransformObjectToWorldDir(v.normal)) + float3(1,1,1)) * 0.5;
//o.normal =


2560

被折叠的 条评论
为什么被折叠?



