summaryrefslogtreecommitdiffstats
path: root/lighting.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2026-03-30 19:04:05 -0700
committeryum <yum.food.vr@gmail.com>2026-03-30 19:04:05 -0700
commitec217afada3913129d6ca038b1bf8539a4adb9c0 (patch)
tree3de7a2b20c138169367b720f0b47b42a2a7ecfca /lighting.cginc
parentc7c1f7733eac8d28faed999ee0dc4796d16a6ade (diff)
Add burley tiling AO; make LUTS gradient editable
Diffstat (limited to 'lighting.cginc')
-rwxr-xr-xlighting.cginc16
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)