//Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Conversion/CubemapToEquirectangularSqueeze" {

	Properties{
		  _MainTex("Cubemap (RGB)", CUBE) = "" {}
		  _EquiRotation("Value", Float) = 1.0
		  _EquiRotationY("Value", Float) = 1.0
		  _DivideY("Divide Y", Float) = 2
		  _DivideX("Divide X", Float) = 4
	}

		Subshader{
			Pass {
				ZTest Always Cull Off ZWrite Off
				Fog { Mode off }

				CGPROGRAM
					#pragma vertex vert
					#pragma fragment frag
					#pragma fragmentoption ARB_precision_hint_fastest
		//#pragma fragmentoption ARB_precision_hint_nicest
		#include "UnityCG.cginc"

		#define PI    3.141592653589793
		#define TWOPI 6.283185307179587

		struct v2f {
			float4 pos : POSITION;
			float2 uv : TEXCOORD0;
		};

		samplerCUBE _MainTex;
		float _EquiRotation;
		float _EquiRotationY;
		float _DivideY;
		float _DivideX;

		v2f vert(appdata_img v)
		{
			v2f o;
			o.pos = UnityObjectToClipPos(v.vertex);
			o.uv = v.texcoord.xy * float2(TWOPI/_DivideX, PI/_DivideY);
			return o;
		}

		fixed4 frag(v2f i) : COLOR
		{
			float theta = i.uv.y + ((_EquiRotationY * PI/2));
			float phi = i.uv.x + ((_EquiRotation * TWOPI/4));
			float3 unit = float3(0,0,0);

			unit.x = sin(phi) * sin(theta) * -1;
			unit.y = cos(theta) * -1;
			unit.z = cos(phi) * sin(theta) * -1;

			return texCUBE(_MainTex, unit);
		}
	ENDCG
}
	}
		Fallback Off
}