summaryrefslogtreecommitdiffstats
path: root/3ner.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-08-06 16:50:12 -0700
committeryum <yum.food.vr@gmail.com>2025-08-06 16:50:16 -0700
commitcc54dca9cd98ca7020ccc8768a51d78ab117da79 (patch)
treea71ded2e9c17105aaa972e1296c5b07d6b5b9c2a /3ner.cginc
parent99d161288bfe2d10c331c97e6b7571f9c884e912 (diff)
more cleanup; add mesh normals
Diffstat (limited to '3ner.cginc')
-rw-r--r--3ner.cginc9
1 files changed, 8 insertions, 1 deletions
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);