修改
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
Shader "IndianOcean/AbyssEdgeGlow"
|
||||
{
|
||||
// 悬崖边缘发光线 Shader
|
||||
// 加法混合 + Queue 3200(在黑暗遮罩之后渲染)
|
||||
// UV.y = 1 在顶部(亮),UV.y = 0 在底部(暗)
|
||||
// 用于 CliffWallBuilder 生成的边缘条带,勾勒地面断开处的轮廓
|
||||
Properties
|
||||
{
|
||||
_Color ("发光颜色", Color) = (0.2, 0.6, 0.9, 1.0)
|
||||
_Intensity ("亮度", Range(0.1, 5.0)) = 1.5
|
||||
_Gradient ("渐变(越大边缘越硬)", Range(0.1, 3.0)) = 1.0
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags
|
||||
{
|
||||
"RenderType" = "Transparent"
|
||||
"Queue" = "Transparent+200"
|
||||
"RenderPipeline" = "UniversalPipeline"
|
||||
}
|
||||
Blend SrcAlpha One
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
Cull Off
|
||||
|
||||
Pass
|
||||
{
|
||||
Name "EdgeGlow"
|
||||
HLSLPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 positionOS : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct Varyings
|
||||
{
|
||||
float4 positionCS : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
float4 _Color;
|
||||
float _Intensity;
|
||||
float _Gradient;
|
||||
CBUFFER_END
|
||||
|
||||
Varyings vert(Attributes input)
|
||||
{
|
||||
Varyings output;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
|
||||
output.uv = input.uv;
|
||||
return output;
|
||||
}
|
||||
|
||||
half4 frag(Varyings input) : SV_Target
|
||||
{
|
||||
// UV.y: 1=顶部(亮), 0=底部(暗)
|
||||
float glow = pow(input.uv.y, _Gradient);
|
||||
float3 col = _Color.rgb * _Intensity;
|
||||
return half4(col, glow);
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
FallBack Off
|
||||
}
|
||||
Reference in New Issue
Block a user