From cc54dca9cd98ca7020ccc8768a51d78ab117da79 Mon Sep 17 00:00:00 2001 From: yum Date: Wed, 6 Aug 2025 16:50:12 -0700 Subject: more cleanup; add mesh normals --- 3ner.cginc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to '3ner.cginc') diff --git a/3ner.cginc b/3ner.cginc index bfaeded..00d98a0 100644 --- a/3ner.cginc +++ b/3ner.cginc @@ -29,6 +29,9 @@ v2f vert(appdata v) { o.objPos = v.vertex; o.worldPos = mul(unity_ObjectToWorld, v.vertex); o.eyeVec.xyz = o.worldPos.xyz - _WorldSpaceCameraPos; + o.normal = UnityObjectToWorldNormal(v.normal); + o.tangent.xyz = UnityObjectToWorldNormal(v.tangent.xyz); + o.tangent.w = v.tangent.w; UNITY_TRANSFER_LIGHTING(o, v.uv1); UNITY_TRANSFER_FOG_COMBINED_WITH_EYE_VEC(o, o.pos); @@ -146,6 +149,9 @@ v2f domain( o.objPos = DOMAIN_INTERP(objPos); #endif + o.normal = DOMAIN_INTERP(normal); + o.tangent = DOMAIN_INTERP(tangent); + o.worldPos = mul(unity_ObjectToWorld, float4(o.objPos, 1)); o.pos = UnityObjectToClipPos(o.objPos); o.eyeVec.xyz = o.worldPos - _WorldSpaceCameraPos; @@ -155,7 +161,8 @@ v2f domain( return o; } -float4 frag(v2f i) : SV_Target { +float4 frag(v2f i, uint facing : SV_IsFrontFace) : SV_Target { + i.normal *= facing ? 1 : -1; Pbr pbr = getPbr(i); LightData light_data; GetLighting(i, pbr, light_data); -- cgit v1.2.3