summaryrefslogtreecommitdiffstats
path: root/tooner_outline_pass.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2024-11-03 15:35:40 -0800
committeryum <yum.food.vr@gmail.com>2024-11-03 15:35:40 -0800
commit4adbc6dfbf2409f34e11e001db2b434feeeb435f (patch)
treece49b708f24bb0d3d6c76016393af5e7f0ec11a6 /tooner_outline_pass.cginc
parentb7d3cb5d759feab1e44f4cdb01a0c8922bf4f1cb (diff)
Add interleaved gradient noise cutout mode
Based on screen space uvs.
Diffstat (limited to 'tooner_outline_pass.cginc')
-rw-r--r--tooner_outline_pass.cginc12
1 files changed, 11 insertions, 1 deletions
diff --git a/tooner_outline_pass.cginc b/tooner_outline_pass.cginc
index 1d05763..a318c5f 100644
--- a/tooner_outline_pass.cginc
+++ b/tooner_outline_pass.cginc
@@ -276,6 +276,16 @@ void geom(triangle v2f tri_in[3],
fixed4 frag (v2f i) : SV_Target
{
+ ToonerData tdata;
+ {
+ float3 full_vec_eye_to_geometry = i.worldPos - _WorldSpaceCameraPos;
+ float3 world_dir = normalize(i.worldPos - _WorldSpaceCameraPos);
+ float perspective_divide = 1.0 / i.pos.w;
+ float perspective_factor = length(full_vec_eye_to_geometry * perspective_divide);
+ tdata.screen_uv = i.screenPos.xy * perspective_divide;
+ tdata.screen_uv_round = floor(tdata.screen_uv * _ScreenParams.xy);
+ }
+
i.normal = -normalize(i.normal);
#if defined(_OUTLINES)
@@ -331,7 +341,7 @@ fixed4 frag (v2f i) : SV_Target
albedo, i.worldPos, i.normal,
/*metallic=*/0, /*smoothness=*/0,
i.uv0, ao, /*enable_direct=*/false,
- /*diffuse_contrib=*/0, i);
+ /*diffuse_contrib=*/0, i, tdata);
result += albedo * _Outline_Emission_Strength;
#if defined(_GIMMICK_AL_CHROMA_00)