diff options
| author | yum <yum.food.vr@gmail.com> | 2024-07-12 23:59:52 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-07-12 23:59:58 -0700 |
| commit | d0032ecf7d258ac52ef572e26f64e18190bf9215 (patch) | |
| tree | 82a07957dfa626ccd76767b067caeb7f01615433 /tooner_lighting.cginc | |
| parent | 1ff08a3055f98f08164ac93d32798e448039a7ff (diff) | |
Add audiolink to vertex location quantization gimmick
Diffstat (limited to 'tooner_lighting.cginc')
| -rw-r--r-- | tooner_lighting.cginc | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/tooner_lighting.cginc b/tooner_lighting.cginc index 136fdeb..3c033bc 100644 --- a/tooner_lighting.cginc +++ b/tooner_lighting.cginc @@ -64,13 +64,27 @@ v2f vert(appdata v) #if defined(_GIMMICK_QUANTIZE_LOCATION) if (_Gimmick_Quantize_Location_Enable_Dynamic) { - float q = _Gimmick_Quantize_Location_Precision / _Gimmick_Quantize_Location_Multiplier; + float q = _Gimmick_Quantize_Location_Precision / + _Gimmick_Quantize_Location_Multiplier; +#if defined(_GIMMICK_QUANTIZE_LOCATION_AUDIOLINK) + // christ what a fucking variable name + if (_Gimmick_Quantize_Location_Audiolink_Enable_Dynamic && + AudioLinkIsAvailable()) { + // x is lowest frequency, w is highest + float4 bands = AudioLinkData(ALPASS_AUDIOLINK).xyzw; + + float e = q *= 1 + (bands.x + bands.y * 0.5) * + _Gimmick_Quantize_Location_Audiolink_Strength * 0.1; + } +#endif float3 v_new0 = floor(v.vertex * q) / q; float3 d = v_new0 - v.vertex; float3 v_new1 = v.vertex - d; - bool flip_dir = (sign(dot(d, v.normal)) != sign(_Gimmick_Quantize_Location_Direction)); + bool flip_dir = (sign(dot(d, v.normal)) != + sign(_Gimmick_Quantize_Location_Direction)); float3 v_q = lerp(v_new0, v_new1, flip_dir); - float mask = _Gimmick_Quantize_Location_Mask.SampleLevel(linear_repeat_s, v.uv0.xy, /*lod=*/0); + float mask = _Gimmick_Quantize_Location_Mask.SampleLevel(linear_repeat_s, + v.uv0.xy, /*lod=*/0); v.vertex.xyz = lerp(v.vertex.xyz, v_q, mask); } #endif |
