summaryrefslogtreecommitdiffstats
path: root/lighting.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-08-08 19:14:38 -0700
committeryum <yum.food.vr@gmail.com>2025-08-08 19:14:38 -0700
commit7cdf39f51b47553af89c3de5b86d33ded4b5cdd2 (patch)
tree47fdf40b13ada0ea52b545b941b0acc29066e448 /lighting.cginc
parent310dbc3a5393635e08faf78ddf47c57a37524d4b (diff)
Add cloth lobe & IBL DFG LUTs
- add monte carlo integrator to produce the luts - fix layer energy integration; should be multiplicative, not additive
Diffstat (limited to 'lighting.cginc')
-rw-r--r--lighting.cginc22
1 files changed, 11 insertions, 11 deletions
diff --git a/lighting.cginc b/lighting.cginc
index 5055798..48d95a1 100644
--- a/lighting.cginc
+++ b/lighting.cginc
@@ -99,13 +99,13 @@ float3 getIndirectSpecular(v2f i, float roughness, float3 view_dir, float3 refle
float3 yumSH9(float4 n, float3 worldPos, inout LightIndirect light) {
[branch]
- if (_UdonLightVolumeEnabled) {
- LightVolumeSH(worldPos, light.L00, light.L01r, light.L01g, light.L01b);
- return light.L00 + float3(
- dot(light.L01r, n.xyz),
- dot(light.L01g, n.xyz),
- dot(light.L01b, n.xyz));
- }
+ if (_UdonLightVolumeEnabled) {
+ LightVolumeSH(worldPos, light.L00, light.L01r, light.L01g, light.L01b);
+ return light.L00 + float3(
+ dot(light.L01r, n.xyz),
+ dot(light.L01g, n.xyz),
+ dot(light.L01b, n.xyz));
+ }
// No light volumes - use SH9
// Unity gives us the first three bands (L0-L2) of SH coefficients as follows:
@@ -175,7 +175,7 @@ float4 getIndirectDiffuse(v2f i, Pbr pbr, inout LightIndirect light) {
void GetLighting(v2f i, Pbr pbr, out LightData data) {
data = (LightData) 0;
-
+
float3 view_dir = normalize(i.eyeVec.xyz);
data.common.V = -view_dir;
@@ -184,7 +184,7 @@ void GetLighting(v2f i, Pbr pbr, out LightData data) {
#if defined(_CLEARCOAT)
data.common.NoV_cc = saturate(dot(i.normal, data.common.V));
#endif
-
+
// Direct lighting
data.direct.dir = getDirectLightDirection(i);
data.direct.H = normalize(data.common.V + data.direct.dir);
@@ -198,10 +198,10 @@ void GetLighting(v2f i, Pbr pbr, out LightData data) {
float direct_LoV = dot(data.direct.dir, data.common.V);
data.direct.LoV = saturate(direct_LoV);
data.direct.double_LoV = saturate(2.0f * direct_LoV * direct_LoV - 1.0f);
-
+
float4 lightColorIntensity = getDirectLightColorIntensity();
data.direct.color = lightColorIntensity.rgb * lightColorIntensity.w;
-
+
// Indirect lighting
data.indirect.dir = -reflect(data.common.V, pbr.normal);
data.indirect.H = normalize(data.common.V + data.indirect.dir);