48 lines
802 B
Plaintext
48 lines
802 B
Plaintext
|
Shader "Hidden/ComputeScreenPos"
|
||
|
{
|
||
|
Properties
|
||
|
{
|
||
|
_A ("_A", 2D) = "white" {}
|
||
|
}
|
||
|
SubShader
|
||
|
{
|
||
|
Pass
|
||
|
{
|
||
|
CGPROGRAM
|
||
|
#include "UnityCG.cginc"
|
||
|
#pragma vertex vert_img
|
||
|
#pragma fragment frag
|
||
|
|
||
|
sampler2D _A;
|
||
|
|
||
|
float4 frag( v2f_img i ) : SV_Target
|
||
|
{
|
||
|
float4 a = tex2D( _A, i.uv );
|
||
|
float4 screenPos = ComputeScreenPos(a);
|
||
|
return screenPos;
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass
|
||
|
{
|
||
|
CGPROGRAM
|
||
|
#include "UnityCG.cginc"
|
||
|
#pragma vertex vert_img
|
||
|
#pragma fragment frag
|
||
|
|
||
|
sampler2D _A;
|
||
|
|
||
|
float4 frag (v2f_img i) : SV_Target
|
||
|
{
|
||
|
float4 a = tex2D(_A, i.uv);
|
||
|
float4 screenPos = ComputeScreenPos(a);
|
||
|
screenPos = screenPos / screenPos.w;
|
||
|
screenPos.z = (UNITY_NEAR_CLIP_VALUE >= 0) ? screenPos.z : screenPos.z* 0.5 + 0.5;
|
||
|
return screenPos;
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
}
|
||
|
}
|