์ฐ์ ์ง๊ธ ํ๊ณ ์ถ์๊ฑด ์ด๋ฐ๊ฑฐ์
3D๊ฒ์์ด์ง๋ง
์ ๋ฐ 2D์ด๋ฏธ์ง๊ฐ ์นด๋ฉ๋ผ๋ฅผ ๋ญ ์ด์บ ๋๋ฆฌ๋ ๋ฐฐ๊ฒฝ์ ๊น๋ฆฌ๋๋ก ํ ๊ฑฐ์
์ด ๋ถ๋ถ ๊ตฌํ์ ํ์
void vert(float4 pos : POSITION, out float4 outUV : TEXCOORD0, out float4 outPos : SV_POSITION)
{
outPos = UnityObjectToClipPos(pos ) ;
outUV = ComputeScreenPos(outPos );
}
float4 _MainTex_TexelSize;
fixed4 frag(float4 uv : TEXCOORD0) : SV_Target
{
fixed4 col = tex2Dproj(_MainTex, uv);
return col;
}
๊ตฌ๊ธ๋งํด์ ์ฐพ์ย ์ค์นด์ด๋ฐ์ค์์ด๋์ธ๋ฐ 2D์ด๋ฏธ์ง๋ฅผ ๊ณ ๋๋ก ์ค์นด์ด๋ฐ์ค์ ๋์์ค
์ด๋ฐ์์ผ๋ก ์นด๋ฉ๋ผ๋ฅผ ์ด๋ป๊ฒ ๋๋ ค๋ ๊ณ์ ์ด ๋ฐฐ๊ฒฝ์ผ๋ก ๊ณ ์
๋ง์นย ์นด๋ฉ๋ผ ์ต๋๊ฑฐ๋ฆฌ์ ์๋ย 2d ์คํ๋ผ์ดํธ ์ด๋ฏธ์ง๊ฐ ์นด๋ฉ๋ผ๊ฐ ์์ง์ฌ๋ ๊ณ์ ๋ฐ๋ผ์ค๋๊ฑฐ๋ ๊ฐ์ ๊ฑฐ๋ผ๊ณ ๋ณด๋ฉด๋จ
๊ทผ๋ฐ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋๋ฐย
์นด๋ฉ๋ผ viewport rect๋ฅผ ๊ฑด๋๋ ค์ผํ๋๋ฐ ์ด๋ฌ๋ฉด ๋ฑ rect์ ๋ง๊ฒ ์๋ฆฌ๋๊ฒ ์๋๋ผ
๊ทธ ๋น์จ๋ก ์ด๋ฏธ์ง๊ฐ ์ถ์๋จ
์ ๋ ๊ฒ ๊ฒ์ ๋ฐ์ค ์ ๋๋ก viewport๋ฅผ ์ค์์ผ๋ฉด ์ ์์ ์๋ ๊ฑฐ๋ง ๋์ค๋ฉด ์ข๊ฒ ๋๋ฐ ์ฌ์ง์ด ์ ์ฌ์ด์ฆ๋ก ์ถ์๋์ ๋์ด
๊ทธ๋์ ์์ด๋์์ ๋ฒกํฐ๋ฅผ ๋ฐ์์ ์ ์ด๋ฏธ์ง๋ฅผ ์๋ฅด๋ฉด ๋์ง ์์๊นํด์ ์ฐพ์๋ณด๋๋ฐ ์ ๋ชป์ฐพ๊ฒ ๋ค๋ผ๊ณ
ํน์ ๋ฐฉ๋ฒ์ ์์๋ ๋ถ?
outUV = outUv * _Scale + _Offset;
์ํ๋ ๋ถ๋ถ์ด ๋์ค๋๊ฒ ์๋๋ผ ๋ญ๊ฐ ์ฐข์ด์ง๋ฏ์ด ๋์ค๋๋ฐ ์ญ๋๋ฆฐ๋ฏํ - dc App