Preview_ComputeScreenPos.shader 858 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. Shader "Hidden/ComputeScreenPos"
  2. {
  3. Properties
  4. {
  5. _A ("_A", 2D) = "white" {}
  6. }
  7. SubShader
  8. {
  9. Pass
  10. {
  11. CGPROGRAM
  12. #include "UnityCG.cginc"
  13. #include "Preview.cginc"
  14. #pragma vertex vert_img
  15. #pragma fragment frag
  16. sampler2D _A;
  17. float4 frag( v2f_img i ) : SV_Target
  18. {
  19. float4 a = tex2D( _A, i.uv );
  20. float4 screenPos = ComputeScreenPos(a);
  21. return screenPos;
  22. }
  23. ENDCG
  24. }
  25. Pass
  26. {
  27. CGPROGRAM
  28. #include "UnityCG.cginc"
  29. #include "Preview.cginc"
  30. #pragma vertex vert_img
  31. #pragma fragment frag
  32. sampler2D _A;
  33. float4 frag (v2f_img i) : SV_Target
  34. {
  35. float4 a = tex2D(_A, i.uv);
  36. float4 screenPos = ComputeScreenPos(a);
  37. screenPos = screenPos / screenPos.w;
  38. screenPos.z = (UNITY_NEAR_CLIP_VALUE >= 0) ? screenPos.z : screenPos.z* 0.5 + 0.5;
  39. return screenPos;
  40. }
  41. ENDCG
  42. }
  43. }
  44. }