// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Conversion/CubemapToEquirectangular" { Properties{ _MainTex("Cubemap (RGB)", CUBE) = "" {} } 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; v2f vert(appdata_img v) { v2f o; o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord.xy * float2(TWOPI, PI); return o; } fixed4 frag(v2f i) : COLOR { float3 unit = float3(1.0, 1.0, 0.0); float theta = i.uv.y; float phi = i.uv.x; unit.x = sin(phi) * sin(theta) * -1; unit.y = cos(theta) * -1; unit.z = cos(phi) * sin(theta) * -1; // Exclude the top and bottom regions based on UV coordinates if (i.uv.y > PI/3.5 && i.uv.y < PI - PI/3.5) { return texCUBE(_MainTex, unit); } else { return texCUBE(_MainTex, unit); //return fixed4(0, 0, 0, 1); } } ENDCG } } Fallback Off }