๋‚ด ์งˆ๋ฌธ์€ https://gall.dcinside.com/m/game_dev/155287 ์ด๊ฑฐ์—ฟ์Œ



์Šคํƒ์ต์Šค์ฒด์ธ์ง€์— ๋ฌผ์–ด๋ฐง๋”๋‹ˆ ๋‹ต๋ณ€ ์™€์„œ ์—ฌ๋”ฐ๊ฐ€๋„ ๊ณต์œ ํ•œ๋‹ค.

์ €๋ฒˆ์— ๋‚˜ ๋Œ€์‹  ์ฑ—์ง€ํ”ผํ‹ฐ์— ๋ฌผ์–ด๋ด์ค€ ๊ฒŒ์ดํ•œํ…Œ๋„ ๊ณ ๋ง™๋‹ค.


y0hS7.png


๊ทธ๋ฆผ์—์„œ ๋…ธ๋ž€ ์›์„ ๋ฐ˜๊ฒฝ์ด 1์ธ ์›์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

h๊ฐ€ ๋ฐ˜๊ฒฝ์˜ 1/X๋ฐฐ๋ผ๊ณ  ํ•˜๋ฉด h = 1/X ร— 1 ์ด๋Ÿฐ์‹์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‚˜๋Š” ๊ธฐ๋ฆฐ ๊ทธ๋ฆผ์ด ์™œ๊ณก๋˜์ง€ ์•Š๊ณ  ์ผ์ •ํ•˜๊ฒŒ ์ปค์ง€๊ฑฐ๋‚˜ ์ž‘์•„์ง€๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค.

์ž‘์•„์ง€๊ฒŒ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด 2๋ฒˆ์งธ ๊ธฐ๋ฆฐ(์นผ๋ผ ๋ถ€๋ถ„ ๋ฐ”๋กœ ์•„๋ž˜)์˜ ํฌ๊ธฐ๋Š” 1๋ฒˆ์งธ(์นผ๋ผ ๋ถ€๋ถ„)์—๋‹ค๊ฐ€ 1/X๋ฐฐ๋ฅผ ๋˜ ํ•˜๋ฉด ๋œ๋‹ค.

๋น„์œจ์—๋งŒ ์ง‘์ค‘ํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ 2๋ฒˆ์งธ ๊ธฐ๋ฆฐ๊ณผ 1๋ฒˆ์งธ ๊ธฐ๋ฆฐ์˜ ๊ด€๊ณ„๋Š” 1/X ร— 1/X : 1/X ์ด๋ ‡๊ฒŒ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

2๋ฒˆ์งธ ๊ธฐ๋ฆฐ์€ 1๋ฒˆ์งธ ๊ธฐ๋ฆฐ์˜ 1/X^2๋ฐฐ, 3๋ฒˆ์งธ ๊ธฐ๋ฆฐ์€ 1๋ฒˆ์งธ ๊ธฐ๋ฆฐ์˜ 1/X^3๋ฐฐ .......

๊ทธ๋Ÿฌ๋ฉด n๋ฒˆ์งธ ๊ธฐ๋ฆฐ์˜ ์‚ฌ์ด์ฆˆ๋Š” 1๋ฒˆ์งธ ๊ธฐ๋ฆฐ์˜ 1/X^n ๋ฐฐ๊ฐ€ ๋˜๊ฒŸ๋‹ค.

๋ณด๊ธฐ ํŽธํ•˜๊ฒŒ 1/X = a ๋ผ๊ณ  ํ•˜๋ฉด h(n) = a^n ์ด๋‹ค.


๊ทผ๋Œ€ ๋‚˜๋Š” ๋ฐ˜๋Œ€๋กœ ํ•œ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ์ด๋ฏธ์ง€๋ฅผ ์กฐ์ž‘ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ณ  uv๊ฐ’์„ ์กฐ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋กœ๊ทธ ํ•จ์ˆ˜์— h์˜ ๊ธธ์ด๋ฅผ ๋„ฃ์œผ๋ฉด ์ด๊ฒŒ ๋ช‡ ๋ฒˆ์งธ ๊ธฐ๋ฆฐ์ธ์ง€ ์•Œ๋ ค์ค€๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ log(a^8) ํ•˜๋ฉด 8์ด ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๊ณ  ์ด๊ฒƒ์„ ํ†ตํ•ด ๋‚˜๋Š” ๊ธฐ๋ฆฐ์ด 8๋ฒˆ์งธ ๊ธฐ๋ฆฐ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์ž‡๋‹ค.


float2 polar = float2(

atan2(i.uv.y, i.uv.x) / (2.0f * 3.141592653589f), // angle

log(dot(i.uv, i.uv)) * 0.5f // log-radius

);


์ด ์‰์ด๋” ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ทน ์ขŒํ‘œ๋Š” (๊ฐ๋„, ๊ธธ์ด)์ธ๋ฐ

์›์  (0, 0)์—์„œ ์–ด๋А ์ž„์˜์˜ ์  (u, v) ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋Š” โˆš((u-0)^2 + (v-0)^2) = โˆš(u^2 + v^2)์ด๋‹ค.

๊ทผ๋Œ€ (u, v)ํ•˜๊ณ  (u, v)๋ฅผ ๋‚ด์ ํ•˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ (u^2 + v^2)์ž„์œผ๋กœ dot() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ฐฉ๊ธˆ ๊ตฌํ•œ (u^2 + v^2)๋ฅผ d๋ผ๊ณ  ํ•˜๋ฉด โˆš(u^2 + v^2) = โˆšd = d^1/2 ์ด๋‹ค.

log(d^1/2) = log(sqrt(d))์˜ ๊ฒฐ๊ณผ๋Š” 1/2 ์ด๋‹ค

๊ทผ๋Œ€ ์ด ๊ฒฐ๊ณผ๋Š” log(d) ร— 1/2 ์ด๋ ‡๊ฒŒ ํ•ด๋„ ๋™์ผํ•˜๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์ž‡๋‹ค.

log(d) = 1 ์ด๊ณ  1ร— 1/2 = 1/2 ์ด๋‹ค.

ํ›„์ž๋Š” sqrt() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋” ํšจ์œจ์ ์ด๋‹ค.


๋—