summaryrefslogtreecommitdiffstats
path: root/3ner.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2026-01-18 08:52:18 -0800
committeryum <yum.food.vr@gmail.com>2026-01-18 08:52:18 -0800
commit50e451441f628aa3a28241af118700ae12147583 (patch)
tree8a815e419b1f1d8667a5323e7fec289c8be60cfa /3ner.cginc
parentb925b4b1bf79e3d6f930a4d799a7194673b62bde (diff)
Impostors: begin optimization work
Diffstat (limited to '3ner.cginc')
-rwxr-xr-x[-rw-r--r--]3ner.cginc10
1 files changed, 7 insertions, 3 deletions
diff --git a/3ner.cginc b/3ner.cginc
index 18c23ee..02081a9 100644..100755
--- a/3ner.cginc
+++ b/3ner.cginc
@@ -253,12 +253,12 @@ void geom(triangle v2f tri_in[3],
//endex
float4 frag(v2f i, uint facing : SV_IsFrontFace
-#if defined(_IMPOSTORS)
+#if defined(_IMPOSTORS_DEPTH)
, out float depth : SV_DepthLessEqual
#endif
) : SV_Target {
UNITY_SETUP_INSTANCE_ID(i);
-#if defined(SHADOW_CASTER_PASS) && !(_IMPOSTORS)
+#if defined(SHADOW_CASTER_PASS) && !defined(_IMPOSTORS_DEPTH)
return 0;
#endif
@@ -279,17 +279,21 @@ float4 frag(v2f i, uint facing : SV_IsFrontFace
#if defined(_IMPOSTORS)
i.normal = pbr.normal;
+#if defined(_IMPOSTORS_DEPTH)
i.objPos = pbr.objPos;
propagateObjPos(i);
-
float4 imp_clip_pos = UnityObjectToClipPos(i.objPos);
depth = imp_clip_pos.z / imp_clip_pos.w;
#endif
+#endif
#if defined(_DEBUG_VIEW_UNLIT)
return pbr.albedo;
#elif defined(_DEBUG_VIEW_WORLD_SPACE_NORMALS)
return float4((pbr.normal + 1.0f) * 0.5f, 1);
+#elif defined(_DEBUG_VIEW_OBJECT_SPACE_NORMALS)
+ float3 normalOS = normalize(mul((float3x3)unity_WorldToObject, pbr.normal));
+ return float4((normalOS + 1.0f) * 0.5f, 1);
#elif defined(_DEBUG_VIEW_METALLIC_GLOSS)
return float4(pbr.metallic, pbr.smoothness, 0, 1);
#elif defined(_DEBUG_VIEW_DEPTH)