์‰์ด๋”์—์„œ ํ…์Šค์ฒ˜ ๋งตํ•‘์„ ๊ทน์ขŒํ‘œ๊ณ„๋กœ ํ•˜๊ฒŒ ๋˜๋ฉดย 

180๋„ํ•˜๊ณ  -180๋„๊ฐ€ ๋งŒ๋‚˜๋Š” ๋ถ€๋ถ„์— ์ด์ƒํ•œ ์„ ์ด ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ์— ddx ํ•˜๊ณ  ddy๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š”๊ฑธ ๋ดฃ๋Š”๋ฐ

์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋ผ์„œ ์งˆ๋ฌธ์ 



a17d2cad2f1b782a99595a48fa9f3433f728bd6f6b8abd3c635aadfc


ddx ํ•˜๊ณ  ddy ์„ค๋ช…์„ ๋ณด๊ณ  ๋ฐ‰๋งต ์ ์šฉ ์›๋ฆฌ ์ด๋Ÿฐ๊ฑฐ ๋ณด๊ณ  ๋‚˜๋ฆ„๋Œ€๋กœ ์ดํ•ดํ•ด๋ฐง๋Š”๋ฐ

๊ทธ๋ฆผ์—์„œ ๋นจ๊ฐ„ ์„  ๋ถ€๋ถ„์ด 180๋„ํ•˜๊ณ  -180๊ฐ€ ๋งŒ๋‚˜๋Š” ๋ถ€๋ถ„์ด์—ฌ์„œ ์ €๊ธฐ์— ์ด์ƒํ•œ ์„ ์ด ์ƒ๊ธด๋‹ค๋Š”๊ฑฐ๊ฑฐ๋“ ?

์ปดํ„ฐ๊ฐ€ ํ”ฝ์…€์„ 4๊ฐœ์”ฉ ๋–ผ์„œ 1๋ฒˆ์— ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋Š”๋ฐ ์ € ๋นจ๊ฐ„ ์„  ๋ถ€๋ถ„์€ย ฯ€์—์„œ -ฯ€๋กœ ํฌ๊ฒŒ ์ ํ”„๋ฅผ ๋›ฐ๊ธฐ ๋•Œ๋ฌธ์— (์ฆ‰ uv ์ขŒํ‘œ๊ฐ€ ๊ฐ€๊นŒ์šด ํ”ฝ์…€ ๋‚ด์—์„œ ํฌ๊ฒŒ ๋ณ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์—)

์ด ํ”ฝ์…€์ด ์นด๋ฉ”๋ผ์—์„œ ์—„์ฒญ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๋ฌผ์ฒด๊ตฌ๋‚˜ ํ•˜๊ณ  ์ œ์ผ ๊พธ์ง„ ํ•ด์ƒ๋„์˜ ํ…์Šค์ฒ˜๋ฅผ ๋งตํ•‘ํ•ด์„œ ์„ ์ด ์ƒ๊ธด๋‹ค๋Š”๊ฑธ๋กœ ์ดํ•ดํ–‡์‚ผ. ์ผ๋‹จ ์ด๊ฒŒ ๋งž๋…ธ?


๊ทธ๋ฆฌ๊ณ  2๋ฒˆ์งธ ์ € ์„ ์„ ์•ˆ๋ณด์ด๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ


fixed4 frag (v2f i) : SV_Target
ย  ย  ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  ย  ย  float angle = atan2(i.uv.y, i.uv.x)/(2.0f * UNITY_PI);

ย  ย  ย  ย  ย  ย  ย  ย  //https://bgolus.medium.com/distinctive-derivative-differences-cce38d36797b
ย  ย  ย  ย  ย  ย  ย  ย  float angle_frac = frac(angle);

ย  ย  ย  ย  ย  ย  ย  ย  angle = fwidth(angle) - 0.0001 < fwidth(angle_frac) ? angle : angle_frac;
ย  ย  ย  ย  ย  ย  ย  ย 
ย  ย  ย  ย  ย  ย  ย  ย  float2 polarcoord = float2(angle
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ,log(dot(i.uv, i.uv)) * 0.5f
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  );ย 
ย  ย  ย  ย  ย  ย  ย  ย 

ย  ย  ย  ย  ย  ย  ย  ย  polarcoord = polarcoord * _MainTex_ST.xy + _MainTex_ST.zw;

ย  ย  ย  ย  ย  ย  ย  ย  polarcoord = polarcoord + (_ScrollingSpeed.xy * _Time.x);

ย  ย  ย  ย  ย  ย  ย  ย  // sample the texture
ย  ย  ย  ย  ย  ย  ย  ย  fixed4 col = tex2D(_MainTex, polarcoord);
ย  ย  ย  ย  ย  ย  ย  ย 
ย  ย  ย  ย  ย  ย  ย  ย 
ย  ย  ย  ย  ย  ย  ย  ย  return col;
ย  ย  ย  ย  ย  ย  }


์ฝ”๋“œ๊ฐ€ ์ด๊ฑฐ๋‹ค?

์—ฌ๊ธฐ์„œ ๋งจ ์ฒจ์— ๊ฐ๋„ ๊ตฌํ•˜๊ณ  ์ด ๊ฐ๋„๋Š” -0.5์—์„œ 0.5 ๋ฒ”์œ„์— ์ž‡๊ณ 

๊ทธ๋ฆฌ๊ณ  frac ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๊ฒŒ ์Œ์ˆ˜์˜ ๊ฐ’๋„ ์–‘์ˆ˜๋กœ ๋งŒ๋“ค๋ผ๊ณ  ํ•˜๋Š”๊ฑฐ ๊ฐ™์€๋ฐ


๊ทธ ๋‹ค์Œ ์‚ผํ•ญ์—ฐ์‚ฐ์ž ๋ถ€๋ถ„์ด

๋งŒ์•ฝ -0.5~0.5 ๋ฒ”์œ„์˜ ๊ฐ’์„ ddx, ddy ์ฒ˜๋ฆฌํ–‡๋Š”๋ฐ ๊ทธ ๊ฐ’์ด 0~0.5 ๋ฒ”์œ„์˜ ๊ฐ’์„ ddx, ddy ์ฒ˜๋ฆฌํ•œ ๊ฐ’ ๋ณด๋‹ค ํฌ๋ฉด 0~0.5 ์‚ฌ์ด์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋œป์ด์•ผ?

uv ๊ฐ’์ด ํฌ๊ฒŒ ์ ํ”„ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ž‡์œผ๋ฉด ์ ํ”„ ์ ๊ฒŒ ํ•˜๋Š” ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŸ๋‹ค ์ด ๋ง์ธ๊ฑฐ์ž„?


์”จ๋ฐœ ์กด๋‚˜ ์–ด๋ ค์›Œ์„œ ๋„์›€ ์•™๋งํ•œ๋‹ค ์ด๊ธฐ์•ผ