티스토리 뷰

Unity/Shader Graph

Polar Coordinates

연홍 2021. 1. 13. 13:34
728x90

일반적인 UV는 데카르트좌표계를 사용하여 표현을 합니다. 

  • X(또는 U)축은 0에서 시작해서 수평으로 1까지 증가합니다.
  • Y(또는 V)축은 0에서 시작해서 수직으로 1까지 증가합니다.

하지만 극좌표계에서는

  • R(X,U)출력은 기준점으로부터의 거리를 알 수 있습니다. (0~1, 0은 검은색, 1로갈수록 하얀색)
  • G(Y,V)출력은 기준점으로부터의 각도를 알 수 있습니다. (-0.5~0.5,음수를 표현할 수 없어 0.5를 add해서 표현)

Polar Coordinates

void Unity_PolarCoordinates_float(float2 UV, float2 Center,
float RadialScale, float LengthScale, out float2 Out) {
    float2 delta = UV - Center;
    float radius = length(delta) * 2 * RadialScale;
    float angle = atan2(delta.x, delta.y) * 1.0/6.28 * LengthScale;
    Out = float2(radius, angle);
}

 

 

 

'Unity > Shader Graph' 카테고리의 다른 글

Voronoi  (0) 2021.01.15
Render Texture  (0) 2021.01.14
Vertex Displacement  (0) 2021.01.14
Fresnel Effect  (0) 2021.01.13
Scene Color & Scene Depth  (0) 2021.01.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31