diff options
| author | yum <yum.food.vr@gmail.com> | 2025-08-06 16:50:12 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-08-06 16:50:16 -0700 |
| commit | cc54dca9cd98ca7020ccc8768a51d78ab117da79 (patch) | |
| tree | a71ded2e9c17105aaa972e1296c5b07d6b5b9c2a /3ner.cginc | |
| parent | 99d161288bfe2d10c331c97e6b7571f9c884e912 (diff) | |
more cleanup; add mesh normals
Diffstat (limited to '3ner.cginc')
| -rw-r--r-- | 3ner.cginc | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -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); |
