World normal calculate in Unity Shader

유니티에서 월드 노말 구하기
정말 이 방법 뿐인가? 이녀석들은 노말맵을 자기들이 다 알아서 관리해서…

struct v2f
   {
    float4 color : COLOR;
    float4 vertex : POSITION;
    float4 uvgrab : TEXCOORD0;
    float2 uvmain : TEXCOORD1;
    float3 TtoW0 : TEXCOORD2;
    float3 TtoW1 : TEXCOORD3;
    float3 TtoW2 : TEXCOORD4;
    float3 viewDirWorld : TEXCOORD5;
    float2 uvbump : TEXCOORD6;
   }; //  어차피 appdata_full 썼으니까 이건 필요 없지않남.

v2f vert (appdata_full v)
   {
    v2f o;
    o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
        
    TANGENT_SPACE_ROTATION;
    o.TtoW0 = mul(rotation, _Object2World[0].xyz * unity_Scale.w);
    o.TtoW1 = mul(rotation, _Object2World[1].xyz * unity_Scale.w);
    o.TtoW2 = mul(rotation, _Object2World[2].xyz * unity_Scale.w); 
    
    return o;
   }

float4 frag( v2f i ) : COLOR
   {
    // calculate world normal
    float3 worldNormal;
    worldNormal.x = dot(i.TtoW0, bump.xyz);
    worldNormal.y = dot(i.TtoW1, bump.xyz);
    worldNormal.z = dot(i.TtoW2, bump.xyz);
    worldNormal = normalize(worldNormal);
 
   }

Hugo로 만듦
JimmyStack 테마 사용 중