diff options
| author | yum <yum.food.vr@gmail.com> | 2026-03-30 19:04:05 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2026-03-30 19:04:05 -0700 |
| commit | ec217afada3913129d6ca038b1bf8539a4adb9c0 (patch) | |
| tree | 3de7a2b20c138169367b720f0b47b42a2a7ecfca /lighting.cginc | |
| parent | c7c1f7733eac8d28faed999ee0dc4796d16a6ade (diff) | |
Add burley tiling AO; make LUTS gradient editable
Diffstat (limited to 'lighting.cginc')
| -rwxr-xr-x | lighting.cginc | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lighting.cginc b/lighting.cginc index c1073d1..f4d210c 100755 --- a/lighting.cginc +++ b/lighting.cginc @@ -7,11 +7,12 @@ #include "UnityLightingCommon.cginc" #include "UnityStandardCoreMinimal.cginc" +#include "burley.cginc" +#include "data.cginc" #include "features.cginc" #include "filamented.cginc" #include "interpolators.cginc" #include "LightVolumes.cginc" -#include "pbr.cginc" #include "glitter.cginc" #include "poi.cginc" @@ -178,7 +179,14 @@ float4 getIndirectDiffuse(v2f i, Pbr pbr, inout LightData light) { float getAO(v2f i) { float ao = 1; -#if defined(_AMBIENT_OCCLUSION) +#if defined(_BURLEY_TILING) && defined(_BURLEY_TILING_AMBIENT_OCCLUSION) + ao = saturate(lerp( + 1.0, + burley_sample_scalar( + _Burley_Tiling_Ambient_Occlusion_Map, + _Burley_Tiling_Ambient_Occlusion_Map_LUT), + _OcclusionStrength)); +#elif defined(_AMBIENT_OCCLUSION) ao = saturate(lerp(1.0, _OcclusionMap.Sample(bilinear_repeat_s, i.uv01.xy).r, _OcclusionStrength)); #endif return ao; @@ -211,12 +219,15 @@ float getSpecularAO(v2f i, Pbr pbr, LightData data, float3 reflect_dir) { void GetLighting(v2f i, Pbr pbr, out LightData data) { data = (LightData) 0; + data.common.ao = 1.0f; + data.common.spec_ao = 1.0f; float3 view_dir = normalize(i.eyeVec.xyz); data.common.V = -view_dir; data.common.N = pbr.normal; data.common.NoV = max(1e-4, dot(pbr.normal, data.common.V)); + data.common.ao = getAO(i); #if defined(_CLEARCOAT) data.common.NoV_cc = max(1e-4, dot(pbr.cc_normal, data.common.V)); #endif @@ -274,7 +285,6 @@ void GetLighting(v2f i, Pbr pbr, out LightData data) { pbr.normal, data.common.V, data.direct.H, glitter_indirect_dir); #endif - data.common.ao = getAO(i); data.common.spec_ao = getSpecularAO(i, pbr, data, reflect_dir); #if defined(_CLEARCOAT) |
