World normal calculate in Unity Shader by 김윤정

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


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);
 
   }


덧글

  • 다음lmc 2011/12/02 01:04 #

    http://www.unifycommunity.com

    http://forum.unity3d.com/forums/16-ShaderLab?s=253e24de7a7e4f6b4353dcde7a7f2fa7

    이곳으로 들어가면 모... 더이상 쉐이더개발에 문제점은 없을것 같습니다.
    하여간 유니티앤진이 개발시간 단축에는 최고인듯. 개발인력감소에.ㅎㅎ

    저는 다음lmc 에서 마케팅을 하고있습니다. 다음의 주력 컨텐츠!!! 스토어뷰!!! 회사에서 다음광고 사용이 필요하다면 댓글부탁드려요^^
  • 김윤정 2011/12/02 04:30 #

    네 이곳에서 많이 도움받고 있습니다. 근데 여기서도 없는 내용이 꽤 있어서...
※ 로그인 사용자만 덧글을 남길 수 있습니다.


MyADD

<script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>