본문 바로가기
유니티 엔진

Texture Rotation Shader 코드

by 대마왕J 2014. 9. 13.

함수로 깔끔하게 만들어져 있다는... shaderFX에서 가져옴.

예전에 쓴 글인데 다시 리마인드..

 

float2 rotateUVs(float2 Texcoords, float2 center, float theta) {
 
 // compute sin and cos for this angle
 float2 sc;
 sincos( (theta/180.0f*3.14159f), sc.x, sc.y );
// pi to dgree
//sincos(x,s,c) : sin(x)와 cos(x)를 동시에 s, c로 리턴한다. 여기서 s, c는 x와 동일한 차원의 타입이어야 한다.
  
 // move the rotation center to the origin : 중점이동 (center는 기초값을 0.5로 하면 중심이 되것지)
 float2 uv = Texcoords - center;  
  
 // rotate the uv : 기본 UV 좌표와의 dot연산 
 float2 rotateduv;
 rotateduv.x = dot( uv, float2( sc.y, -sc.x ) ); 
 rotateduv.y = dot( uv, sc.xy ); 
 
 // move the uv's back to the correct place
 rotateduv += center;
 
 return rotateduv;
}

반응형

댓글