This commit is contained in:
JA
2026-07-04 01:48:39 +08:00
parent 6e414a3022
commit aace7e68cc
10 changed files with 408 additions and 5 deletions
@@ -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
}