diff options
Diffstat (limited to '3ner.cginc')
| -rwxr-xr-x[-rw-r--r--] | 3ner.cginc | 10 |
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) |
