์ด๊ฑฐ ๋ณด๊ณ ๋ฐ๋ผํ๋๋ฐ
๊ธฐ๋ฆฐ ์ฌ์ง์ด ์ํ์ผ๋ก ๋น๊ธ๋น๊ธ ๋๋ฉด์ ์ธ๋ถ๋ก ์์ง์ด๋ ์์ด๋์
fixed4 frag (v2f i) : SV_Target
{
ย ย // Convert our texture coordinates to polar form:
ย ย float2 polar = float2(
ย ย ย ย ย ย atan2(i.uv.y, i.uv.x)/(2.0f * 3.141592653589f), // angle
ย ย ย ย ย ย length(i.uv)ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย // radius
ย ย ย ย );
ย ย // Apply texture scale
ย ย polar *= _MainTex_ST.xy;
ย ย // Scroll the texture over time.
ย ย polar += _ScrollSpeeds.xy * _Time.x;
ย ย // Sample using the polar coordinates, instead of the original uvs.
ย ย // Here I multiply by MainTex
ย ย fixed4 col = tex2D(_MainTex, polar);
ย ย // apply fog
ย ย UNITY_APPLY_FOG(i.fogCoord, col);
ย ย return col;ย
}
๊ทผ๋ ์๋ ์ด๋ฏธ์ง์ฒ๋ผ

์ค์์์๋ ๊ธฐ๋ฆฐ์ด ํ์ญํด์ง๊ณ ๋ฐ์ ๊ฐ์๋ก ๋ฉ์ํด์ง๋ ํจ๊ณผ๊ฐ ์์ด์ ์ด๊ฑธ ๋ฐ๋ก์ก๊ธฐ ์ํด์ ๋ก๊ทธ ํจ์๋ฅผ ์ด๋ค๋๊ฑฐ์ผ
๊ทธ๋์ย
ย float2 polar = float2(
ย ย ย ย ย ย atan2(i.uv.y, i.uv.x)/(2.0f * 3.141592653589f), // angle
ย ย ย ย ย ย length(i.uv)ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย // radius
์ ๊ธธ์ด ๋ถ๋ถ์
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
ย ย ย ย );
๋ก๊ทธ ํจ์ ์ฌ์ฉํ๊ฒ ๋ฐ๊ป๋๋ ๊ธฐ๋ฆฐ์ด ์ ํ์ ์ผ๋ก ์ ์ปค์ง๊ฒ ๋ฐ๊ผ์
๊ทผ๋ ๋ก๊ทธ ํจ์๊ฐ ๋ญ ํ๊ธธ๋ ๊ธฐ๋ฆฐ์ด ๊ท ์ผํ๊ฒ ์ ์ปค์ง๊ฒ ๋ฐ๊ผ๋์ง ๋ชจ๋ฅด๊ฒ๋ค
์ง๋ฌธ์ ์์ฝํ๋ฉด
log(dot(i.uv, i.uv)) ์ด๊ฒ ๋ญ ๋ง์ธ์ง ์๋ ๊ฒ์ด ์๊ฒ๋ ธ
๋ก๊ทธ ํจ์๊ฐ ๋ญ ๋ฆฌํดํ๋์ง๋ hlsl ๋ฌธ์ ๋ด์ ์๊ฒ๋๋ฐ ์ ๊ธฐ๋ฆฐ์ด ๊ท ์ผํ๊ฒ ์ปค์ง๋์ง๋ ๋ชจ๋ฅด๊ฒ์
ย
AIํํ ๋ฌผ์ด๋ดค๋๋ฐ ๋ต์ '๊ทธ๋ฅ'์ด๋
https://chat.openai.com/share/80765755-234b-4e6e-af02-12271ede1fad
ai ์๋ผ ๋ชจ๋ฅด๋๊ฑฐ ์๋ ?
๋๋ผ๋ฉด ์ผ๊ฐํจ์๋ฅผ ์ผ์๊ฑฐ๊ฐ์๋ฐ ๊ทธ๊ฑฐ๋ณด๋ค ๋ก๊ทธ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์์ด ์ ํํ์ง ์๋๋ผ๋ ํจ์ฌ ์ ๋ ดํ๋๋ด ์์ธํ๊ฑด ๊ณ ์๋์ด ๋ ๋๊ธ ๋ฌ์์ค๊ฑฐ์