baobao
6/19/2018 - 9:15 AM

極座標

極座標

Shader "Test"
 {
     Properties{}
     CGINCLUDE
     #include "UnityCG.cginc"
     
     #define PI 3.14159265359
 
     float4 frag(v2f_img i) : SV_Target
     {
        // 原点オフセット
        float2 st = 0.5 - i.uv;
        // 0 - 180
        float angle = atan2(st.y, st.x);
        
        // 角度をオフセットしてアニメーションさせる  
        angle += _Time.y * PI;
        
        // 正規化された角度(0 - 1)
        float nAngle =  (angle + PI) / (2 * PI);
        // (-1 - 1)
        //float nAngle =  angle / PI; 
        
        // 極座標空間の半径
        float r = sin(nAngle * PI) * 0.5; 
        return r;
     }
 
     ENDCG
     SubShader
     {
         Pass
         {
             CGPROGRAM
             #pragma vertex vert_img
             #pragma fragment frag
             ENDCG
         }
     }
 }