Files
QuizzinMk5.1/Packages/red.sim.lightvolumes/Shaders/Editor/LV_UnityPreviewL1.shader
2025-11-27 01:27:15 +00:00

52 lines
1.5 KiB
Plaintext

Shader "Hidden/LV_DebugDisplayL1"
{
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
#include "Packages/red.sim.lightvolumes/Shaders/LightVolumes.cginc"
struct appdata
{
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f
{
float4 worldPos : TEXCOORD0;
float3 worldNormal : TEXCOORD1;
float4 vertex : SV_POSITION;
};
v2f vert (appdata v)
{
v2f o;
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
o.worldNormal = UnityObjectToWorldNormal(v.normal);
o.vertex = UnityObjectToClipPos(v.vertex);
return o;
}
float4 frag (v2f i) : SV_Target
{
float3 normalDir = normalize(i.worldNormal);
float3 L0 = 0; float3 L1r = 0; float3 L1g = 0; float3 L1b = 0;
LightVolumeSH(i.worldPos.xyz, L0, L1r, L1g, L1b);
float3 result;
result.r = dot(L1r, normalDir) + L0.r;
result.g = dot(L1g, normalDir) + L0.g;
result.b = dot(L1b, normalDir) + L0.b;
return float4(result, 1.0);
}
ENDCG
}
}
}