*์ธํ๋ฐ <๊ฒ์ ์์ง์ ์งํฑํ๋ ๊ฒ์์ํ, ์ด๋์ฐ ๊ต์๋> ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๊ธ์ ๋๋ค.
1. ๋ฒกํฐ์ ์ธ์ (Cross Product)
๋ฒกํฐ์ ์ธ์ ์ฐ์ฐ์ 3์ฐจ์ ๊ณต๊ฐ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ผ๋ก, ์ค์นผ๋ผ ๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋ด๋ฑ์๋ ๋ด์ ๊ณผ ๋ฌ๋ฆฌ, ์ธ์ ์ 3์ฐจ์ ๋ฒกํฐ๋ฅผ ๊ฒฐ๊ณผ๋ก ๋ฐฐ์ถํฉ๋๋ค. ์ด๋ฌํ ๋ฒกํฐ์ ์ธ์ ์ฐ์ฐ์ ๋ค๋ฅธ ์ถ ์์๋ค๋ก๋ง ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง๋ค๋ ํน์ง์ด ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด 3์ฐจ์ ๋ฒกํฐ \(u, \ v\) ๊ฐ ์๋ค๊ณ ํ๋ฉด,
$$ u = (u_x, \ u_y, \ u_z), \ \ v = (v_x, \ v_y, \ v_z) $$
์ด ๋ ๋ฒกํฐ์ ๋ํ ์ธ์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$ u \times v = (u_y v_z - v_y u_z, \ u_z v_x - v_z u_x, \ u_x v_y - v_x u_y)$$
์ ์์ ๋ณด๋ฉด, \( (x, \ y, \ z)\) ์์ ๊ฐ ์ถ๋ง๋ค ์๊ธฐ ์์ ์ ์ ์ธํ ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. \(x\) ์ถ ์๋ฆฌ์ ๋ํ ๊ฐ์ ๋ณด๋ฉด \(u_y v_z - v_y u_z\) ๋ก, \(u_x\) ๋ถ๋ถ์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์๊ธฐ ์์ ์ ๋ํ ์ถ ๋ถ๋ถ๋ง ์ฐ์ฐ์ ์ฌ์ฉํ๋ ๋ด์ ๊ณผ์ ์ฐจ์ด์ ์ด๋ผ๊ณ ๋ณผ ์ ์์ฃ .
์ด๋ฐ ํน์ง ๋๋ฌธ์, ์ธ์ ์ ๋ด์ ์ด ๊ฐ์ง๋ ์ฐ์ฐ์ ๋ถ์กฑํ ๋ถ๋ถ์ ๋ณด์ถฉํด์ฃผ๋ ์ฐ์ฐ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
2. ์ธ์ ์ ์ฑ์ง
1) ๊ตํ ๋ฒ์น ๐๐ป ์ฑ๋ฆฝํ์ง ์์
๊ตํ ๋ฒ์น์ด ์ฑ๋ฆฝํ๋ ๋ด์ ๊ณผ ๋ฌ๋ฆฌ, ์ธ์ ์ ๊ตํ ๋ฒ์น์ด ์ฑ๋ฆฝํ์ง ์์ต๋๋ค. ์ธ์ ์ฐ์ฐ์๋ ์์์ ์์ ๋ดค๋ค์ํผ, ๋บ์ ์ฐ์ฐ์๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด์ฃ . ๋บ์ ์ ์์๊ฐ ๋ฐ๋๋ฉด ๊ฒฐ๊ณผ๋ ๋ฌ๋ผ์ง๋๋ค.
$$ u \times v \ne v \times u $$
ํ์ง๋ง ๋บ์ ์ฐ์ฐ์ด ์๋ค๋ ๊ฒ์ ๊ณ ๋ คํด, ๋ค์๊ณผ ๊ฐ์ด ๋ง์ด๋์ค(\(-\)) ๋ถํธ๋ฅผ ๋ถ์ธ ์ฑ๋ก ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
$$ u \times v = -v \times u $$
2) ๊ฒฐํฉ ๋ฒ์น ๐๐ป ์ฑ๋ฆฝํ์ง ์์
์ธ์ ์ญ์, ๋ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฒฐํฉ ๋ฒ์น์ด ์ฑ๋ฆฝํ์ง ์์ต๋๋ค.
$$ (a \times b) \times c \ne a \times (b \times c) $$
3) ๋ถ๋ฐฐ ๋ฒ์น ๐๐ป ์ฑ๋ฆฝ
๋ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ธ์ ๋ ๋ง์ ์ฐ์ฐ์ ๋ํด ๋ถ๋ฐฐ ๋ฒ์น์ด ์ฑ๋ฆฝํฉ๋๋ค.
$$ a \times (b + c) = a \times b \times c $$
4) ์๋ฒกํฐ
ํํํ ๋ฒกํฐ(๊ฐ์ ๋ฐฉํฅ ํน์ ๋ฐ๋ ๋ฐฉํฅ)์ ์ธ์ ํ๋ฉด ์๋ฒกํฐ(Zero vector)๊ฐ ๋์ต๋๋ค.
$$ u\times u=\left(u_yu_z-u_yu_z,u_zu_x-u_zu_x,u_xu_y-u_xu_y\right)=(0, \ 0, \ 0) $$
$$ u\times -u=\left(-u_yu_z+u_yu_z,-u_zu_x+u_zu_x,-u_xu_y+u_xu_y\right)=(0, \ 0, \ 0) $$
์ด๋ฌํ ์ฑ์ง์ ํ์ฉํด, ์์์ ๋ฒกํฐ \(u\) ๋ฅผ ์ํ ์ฑ๋ถ(\(u_{||}\))๊ณผ ์์ง ์ฑ๋ถ(\( u_{\perp}\))์ผ๋ก ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
$$ u = u_{||} + u_{\perp} $$
์ด๋ ์ธ์ ์ ๋ถ๋ฐฐ ๋ฒ์น์ด ์ฑ๋ฆฝํ๊ธฐ ๋๋ฌธ์, ํํํ ๋ถ๋ถ์ ์๋ฒกํฐ๋ก ๋ ์๊ฐ๊ณ ์์ง์ธ ๋ถ๋ถ๋ง ๋จ๊ฒ ๋ฉ๋๋ค.
$$ v \times u = v(u_{||} + u_{\perp}) $$
$$ = v \times u_{||} + v \times u_{\perp} $$
$$ = (0, \ 0, \ 0) + v \times u_{\perp} $$
$$ = v \times u_{\perp} $$
๊ฒฐ๊ตญ ๋ ๋ฒกํฐ์ ์ธ์ ๊ฒฐ๊ณผ๋ ๋ ๋ฒกํฐ๊ฐ ์๋ก ์ผ๋ง๋ ์์ง์ด๋์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ค๋ ๊ฒ์ธ๋ฐ์.
์ด๋ ์ธ์ ํ ๋ฒกํฐ์ ํฌ๊ธฐ๊ฐ ์ฌ์๊ฐ์ \(sin\) ํจ์์ ๋น๋กํ๋ค๊ณ ์ด์ผ๊ธฐ ํ ์ ์์ต๋๋ค.
$$ |u_{\perp}| = sin\theta |u| $$
5) ์์์ ๋ ๋ฒกํฐ์ ๋ํ ์ธ์
์์์ ๋ ๋ฒกํฐ \( u = (u_x, \ u_y, \ u_z), \ v = (v_x, \ v_y, \ v_z) \) ์ ๋ํด, ์ธ์ ํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค.
$$ u \times v = (u_y v_z - v_yu_z, \ u_z v_x - v_z u_x, \ u_x v_y - v_x u_y) $$
์ด๋, ์ด ์ธ์ ํ ๊ฒฐ๊ณผ ๋ฒกํฐ์ \(u\) ๋๋ \(v\) ๋ฅผ ๋ด์ ํ๋ฉด ํญ์ 0์ด ๋์ค๋ ํน์ง์ด ์์ต๋๋ค.
$$ u\cdot\left(u\times v\right)=u_xu_yv_z-u_xv_yu_z+\ u_yu_zv_x-u_yv_zu_x+u_zu_xv_y-u_zv_xu_y=0 $$
$$ v\cdot\left(u\times v\right)=v_xu_yv_z-v_xv_yu_z+\ v_yu_zv_x-v_yv_zu_x+v_zu_xv_y-v_zv_xu_y=0 $$
๋ด์ ๊ฒฐ๊ณผ๊ฐ 0์ด๋ผ๋ ๊ฒ์ ๋ ๋ฒกํฐ๊ฐ ์๋ก ์ง๊ตํ๋ค๋ ์๋ฏธ์ ๋๋ค. ๋ด์ ์ \(cos\) ํจ์์ ๋น๋กํ๊ณ , \(cos (90) = 0\) ์ด๊ธฐ ๋๋ฌธ์ด์ฃ . ๊ทธ๋ผ ๋ค์ ์ ์์ ์๋ฏธ๋ฅผ ํด์ํด ๋ด ์๋ค.
"\(u \times v \) ๋ฒกํฐ์ \(u\) ํน์ \(v\) ์์ ๋ด์ ๊ฒฐ๊ณผ๋ 0์ด๋ค."
๐๐ป "\(u \times v\) ๋ \(u\) ์ \(v\) ์ ์ง๊ตํ๋ค."
๋ง์ฝ \(u, \ v\) ๊ฐ ์๋ก ๋ค๋ฅธ ๊ธฐ์ธ๊ธฐ์ ๋ฒกํฐ์๋ค๋ฉด, ์ด ๋ ๋ฒกํฐ๋ฅผ ํตํด ํ๋ฉด์ ์์ฑ๋ ๊ฒ๋๋ค. ์ฌ๊ธฐ์์ \(u \times v\) ๋ฅผ ์งํํ๋ฉด ์ด ํ๋ฉด์ ์ง๊ตํ๋ ๋ฒกํฐ๊ฐ ์์ฑ๋๋ค๋ ์๋ฏธ์ฃ .
์ด๋ฅผ ํตํด, ์ธ์ ์ผ๋ก ์์ฑ๋ ๋ฒกํฐ๋ ๋ ๋ฒกํฐ๊ฐ ๋ง๋ ํ๋ฉด์ ํญ์ ์ง๊ตํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ, ๋ ๋ฒกํฐ์ ์ธ์ ์ผ๋ก ๋ง๋ค์ด์ง๋ ๋ฒกํฐ๋ฅผ ๋ฒ์ ๋ฒกํฐ(Normal vector)๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
๊ทธ๋ฐ๋ฐ, ํ๋ฉด์๋ ์๊ณผ ๋ค ์ด๋ ๊ฒ 2๊ฐ์ ๋ฉด์ด ์กด์ฌํ์์์? ์ฆ, ๋ฒ์ ๋ฒกํฐ๋ 2๊ฐ๊ฐ ์กด์ฌํ๋ค๋ ๊ฑฐ์ฃ .
๋ฒ์ ๋ฒกํฐ์ ๋ฐฉํฅ์ ์ค๋ฅธ์ ๋ฒ์น์ ๋ฐ๋ผ ๋ง๋ค์ด์ง๋๋ค. ์ค๋ฅธ์์ ๋ค๊ณ , ๋ค ์๊ฐ๋ฝ์ ๊ฐ์ ๋ ํฅํ๋ ์์ง ์๊ฐ๋ฝ ๋ฐฉํฅ์ด ๋ฐ๋ก ๋ฒ์ ๋ฒกํฐ์ ๋ฐฉํฅ์ธ ๊ฒ์ด์ฃ .
์์ ๊ทธ๋ฆผ์ ์ดํด๋ณด๋ฉด \(u \rightarrow v\) ๋ก ๋ค ์๊ฐ๋ฝ์ ๊ฐ์ ๋, ์์ง๋ ์์ชฝ์ ํฅํฉ๋๋ค. ๐๐ป \( u \times v \)
๋ฐ๋๋ก, \(v \rightarrow u\) ๋ก ๋ค ์๊ฐ๋ฝ์ ๊ฐ์ ๋, ์์ง๋ ์๋๋ฅผ ํฅํฉ๋๋ค. ๐๐ป \(v \times u \)
์ด์ ๊ฐ์ ์์๋ก ์ธ์ ํ์ฌ ํ๋ฉด์์ ์์ฑ๋ 2๊ฐ์ ๋ฒ์ ๋ฒกํฐ๋ฅผ ๊ตฌ๋ถํ ์ ์๊ณ , ์ด๊ฒ์ด ๊ณง ํ๋ฉด์ ๋ฐฉํฅ์ด ๋ฉ๋๋ค.
๋ด์ ๊ณผ ์ธ์ ๋น๊ต
์ธ์ ์ \(sin\) ํจ์์, ๋ด์ ์ \(cos\) ํจ์์ ๋น๋กํ๋ค๊ณ ํ์์ต๋๋ค. ์ด์ ๋ฐ๋ผ, ์์์ ์์์ ์์ญ์ผ๋ก ๋๋ ์ ์๋๋ฐ์.
- ์ธ์ ์ \(sin\) ํจ์์ ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ 180๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฅธ์ชฝ์ด ์์, ์ผ์ชฝ์ ์์์ ์์ญ
- ๋ด์ ์ \(cos\) ํจ์์ ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ 90๋, 270(-90)๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ด ์์, ๋ค๊ฐ ์์์ ์์ญ
์ด์ ๊ฐ์ ๋ด์ฉ๋ค, ๊ทธ๋ฆฌ๊ณ ๋ด์ ์ ๊ฐ์ด 0์ผ ๋๋ ๋ ๋ฒกํฐ๊ฐ ์๋ก ์ง๊ตํ๋ค๋ ์ฌ์ค๊ณผ ํํํ ๋ค๋ฅธ ๋ฒกํฐ์ ์ธ์ ํ ๊ฒฐ๊ณผ๊ฐ ์๋ฒกํฐ๊ฐ ๋๋ค๋ ์ ์์ ๋น๋กฏํ์ฌ, ๋ด์ ๊ณผ ์ธ์ ์ ๋ค์๊ณผ ๊ฐ์ด ํ์ฉํ ์ ์์ต๋๋ค.
- ๊ฒ์์์ ์ ์ด ์์ ์๋์ง, ๋ค์ ์๋์ง ํ๋ณํ๋ ๋ก์ง์์ ๋ด์ ํ์ฉ
- ๊ฒ์์์ ์ ์ด ์ผ์ชฝ์ ์๋์ง, ์ค๋ฅธ์ชฝ์ ์๋์ง ํ๋ณํ๋ ๋ก์ง์์ ์ธ์ ํ์ฉ
- ๋ด์ ์ ์ง๊ต ํ๋ณ, ์ธ์ ์ ํํ ํ๋ณ์ ํ์ฉ
- ๋ด์ ์ ํฌ์ ๋ฒกํฐ ์์ฑ์ ํ์ฉ, ์ธ์ ์ ๋ฒ์ ๋ฒกํฐ ์์ฑ์ ํ์ฉ
3. ์ธ์ ์ ์์ฉ
1) ์ข์ฐ ํ๋ณ
๊ฒ์ ๊ณต๊ฐ์ ์บ๋ฆญํฐ์ ์ด๋ ํ ์ฌ๋ฌผ์ด ์๋ค๊ณ ๊ฐ์ ํฉ์๋ค. ์ด๋, ์บ๋ฆญํฐ์ ์ ๋ฉด ์์ ๋ฒกํฐ๋ฅผ \(f\) ๋ผ๊ณ ํ๊ณ , ์บ๋ฆญํฐ์์ ์ฌ๋ฌผ๋ก ํฅํ๋ ๋ฒกํฐ๋ฅผ \(v\) ๋ผ๊ณ ํ ๋, ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ์ฌ๊ธฐ์, ๋ฒกํฐ \(f\) ์ ๋ฒกํฐ \(v\) ๋ฅผ ์ธ์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์๋ฐฉํฅ ํน์ ์๋ซ๋ฐฉํฅ์ ๋ฒ์ ๋ฒกํฐ๊ฐ ์์ฑ๋ ๊ฒ๋๋ค.
์ฌ๋ฌผ์ด ์บ๋ฆญํฐ๋ณด๋ค ์ค๋ฅธ์ชฝ์ ์๋ค๋ฉด(\(f \rightarrow v \)) ์ค๋ฅธ์ ๋ฒ์น์ ์ํด ์๋๋ก ํฅํ๋ ๋ฒ์ ๋ฒกํฐ๊ฐ ๋ง๋ค์ด์ง ๊ฒ์ด๊ณ , ์ฌ๋ฌผ์ด ์บ๋ฆญํฐ๋ณด๋ค ์ผ์ชฝ์ ์๋ค๋ฉด(\(f \rightarrow v'\)) ์๋ก ํฅํ๋ ๋ฒ์ ๋ฒกํฐ๊ฐ ๋ง๋ค์ด ์ง ๊ฒ๋๋ค.
ํ์ง๋ง ์ธ์ ์ ๊ฒฐ๊ณผ๋ ๋ฒกํฐ์ด๋ฏ๋ก, ์ด๊ฒ๋ง์ผ๋ก๋ ์ข์ฐ ํ๋ณ์ด ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด ๋ฒ์ ๋ฒกํฐ๋ฅผ ๊ฐ์ง๊ณ ์ฌ๋ฌผ์ด ์บ๋ฆญํฐ์ ์ผ์ชฝ์ ์๋์ง ์ค๋ฅธ์ชฝ์ ์๋์ง ์ด๋ป๊ฒ ๊ตฌ๋ถํ ์ ์์๊น์?
ํด๋ต์ ๋ด์ ์ ๋๋ค. ์๋ ๊ณต๊ฐ์ up ๋ฒกํฐ(\( Y = (0, \ 1, \ 0)\)) ์ ํด๋น ๋ฒ์ ๋ฒกํฐ๋ฅผ ๋ด์ ํ๋ ๊ฒ์ด์ฃ .
- up ๋ฒกํฐ์ ๋ฒ์ ๋ฒกํฐ๊ฐ ๋์ผํ ๋ฐฉํฅ ๐๐ป ๋ ๋ฒกํฐ ์ฌ์ด์ ๊ฐ์ด 0๋์ด๋ฏ๋ก ๊ฒฐ๊ณผ๋ ์์ ๐๐ป ์ฌ๋ฌผ์ด ์ผ์ชฝ์ ์์
- up ๋ฒกํฐ์ ๋ฒ์ ๋ฒกํฐ๊ฐ ๋ฐ๋ ๋ฐฉํฅ ๐๐ป ๋ ๋ฒกํฐ ์ฌ์ด์ ๊ฐ์ด 180๋์ด๋ฏ๋ก ๊ฒฐ๊ณผ๋ ์์ ๐๐ป ์ฌ๋ฌผ์ด ์ค๋ฅธ์ชฝ์ ์์
์ด๋ ๊ฒ ๋ด์ ๊น์ง ์ถ๊ฐ๋ก ์งํํ ์ด๋ฅผ ์ค์นผ๋ผ ์ผ์ค๊ณฑ์ด๋ผ๊ณ ๋ ํํํฉ๋๋ค.
- [์ผ์ชฝ์ ์๋ ๊ฒฝ์ฐ] \((f \times v) \cdot Y > 0 \)
- [์ค๋ฅธ์ชฝ์ ์๋ ๊ฒฝ์ฐ] \((f \times v) \cdot Y < 0 \)
2) ๋ฒกํฐ๋ก๋ถํฐ ํ์ ํ๋ ฌ ์์ฑ
์ด๋ค ๋ฌผ์ฒด์ ์์ ๋ฐฉํฅ์ด๋ ์นด๋ฉ๋ผ์ ์์ ๋ฐฉํฅ์ด ์ฃผ์ด์ก์ ๋, ํด๋น ์์ ๋ฐฉํฅ์ผ๋ก๋ถํฐ ํ์ ํ๋ ฌ์ ๊ตฌํ๋ ๋ฐ์๋ ์ธ์ ์ด ํ์ฉ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์นด๋ฉ๋ผ๊ฐ ๋ฌผ์ฒด๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์๋ ์ํฉ์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์ฃ .
์ฌ๊ธฐ์ ์นด๋ฉ๋ผ์ \(z\) ๋ก์ปฌ ์ถ์ "์ฌ๋ฌผ์ ์์น" - "์นด๋ฉ๋ผ์ ์์น"๋ฅผ ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ด๋ ๊ฒ ๊ตฌํ ๋ฒกํฐ์ ํฌ๊ธฐ๊ฐ 1์ด ์๋ ์ ์์ผ๋, ์ ๊ทํํ๋ ๊ณผ์ ์ ์งํํด์ค๋๋ค.
์นด๋ฉ๋ผ์ \(x\) ๋ก์ปฌ์ถ์ ๋ฐฉ๊ธ ๊ตฌํ ์นด๋ฉ๋ผ์ \(z\) ๋ก์ปฌ์ถ๊ณผ ์๋ ๊ณต๊ฐ์ up ๋ฒกํฐ(\(Y_{world}\))๋ฅผ ์ธ์ ํ์ฌ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ๊ตฌํ \(x\) ๋ก์ปฌ์ถ๊ณผ \(Y_{world}\) ๊ฐ ์๋ก ์ง๊ตํ๋ค๊ณ ๋ณด์ฅ์ ํ ์ ์๊ธฐ์ ์ ๊ทํํ์ฌ ํฌ๊ธฐ๋ฅผ 1๋ก ๋ง๋ค์ด์ค๋๋ค.
๋ง์ง๋ง์ผ๋ก ์นด๋ฉ๋ผ์ \(y\) ๋ก์ปฌ์ถ์ ์์์ ๊ตฌํ \(z\) ๋ก์ปฌ์ถ๊ณผ \(x\) ๋ก์ปฌ์ถ์ ์ธ์ ํจ์ผ๋ก์จ ๊ตฌํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง \(y\) ๋ก์ปฌ์ถ์ \(z\) ๋ก์ปฌ์ถ๊ณผ \(x\) ๋ก์ปฌ์ถ์ ์๋ก ์ง๊ตํ๋ค๋ ๊ฒ์ ๋ณด์ฅ๋ฐ์ ์ ์์ด, ๋ณ๋์ ์ ๊ทํ๋ ํ์ง ์์๋ ๋ฉ๋๋ค.
์ด ๋๊น์ง์ ๊ณผ์ ์ ์์์ผ๋ก ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$ x_{local}=\frac{Y \times z_{local} }{|Y \times z_{local}|} $$
$$ y_{local}=z_{local} \times x_{local} $$
$$ z_{local}=\frac{v}{|v|} $$
์ด๋ก๋ถํฐ ํ์ ํ๋ ฌ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ ์ ์์ต๋๋ค.
$$ R=\left[\begin{matrix}x_x&y_x&z_x&0\\x_y&y_y&z_y&0\\x_z&y_z&z_z&0\\0&0&0&1\\\end{matrix}\right] $$
์ฃผ์์ฌํญ
๋ค์๊ณผ ๊ฐ์ ํน์ ์์ธ ์ํฉ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ์กด์ฌํฉ๋๋ค.
- ์นด๋ฉ๋ผ๊ฐ ๊ฑฐ๊พธ๋ก ๋ค์ง์ด์ ธ ์๋ ๊ฒฝ์ฐ
- ์นด๋ฉ๋ผ์ ์๋ up ๋ฒกํฐ(\(Y_{world}\))๊ฐ ํํํ ๊ฒฝ์ฐ
1๋ฒ ๊ฐ์ ๊ฒฝ์ฐ์๋ up ๋ฒกํฐ๊ฐ ์ด๋ ๋ฐฉํฅ์ ํฅํ๋์ง ์ง์ ํ๋ ์ต์ ์ด ํ์(์ฌ์ค ๋ฌด์จ ์๋ฆฌ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์)ํ๊ณ , 2๋ฒ ๊ฐ์ ๊ฒฝ์ฐ์๋ up ๋ฒกํฐ๋ก ์ฌ์ฉํ ์์ ๋ฐฉํฅ๊ณผ ์ง๊ตํ๋ ํ๋์ ๋ฒกํฐ๋ฅผ ์์๋ก ์ง์ ํด์ค์ผ ํฉ๋๋ค.
3) ๋ฐฑํ์ด์ค ์ปฌ๋ง(Backface culling)
์นด๋ฉ๋ผ์์ ๋ณด์ด์ง ์๋ ๋ท๋ฉด์ ์ผ๊ฐํ์ ๊ทธ๋ฆฌ์ง ์๋ ๊ธฐ๋ฒ์ ๋๋ค. ์ผ๊ฐํ๋ ๊ฒฐ๊ตญ์๋ ๋ ๊ฐ์ ๋ฉด์ ๊ฐ์ง๊ณ ์๊ธฐ์, ์นด๋ฉ๋ผ์ ๋ณด์ด๋ ๋ฉด๊ณผ ์ ๋ณด์ด๋ ๋ฉด์ด ์กด์ฌํ ๊ฒ๋๋ค. ์ด๋, ์ ๋ฉด์ ํฅํ๋ ์ผ๊ฐํ์ด ํ๋ฉด์ ํฅํ๋ ์ผ๊ฐํ์ ๊ฐ๋ฆฌ๊ณ ์๋ค๋ฉด, ์ด๋ ์ฐ๋ฆฌ ์ ์ฅ์์ ์ด์ฐจํผ ๋ณด์ด์ง ์๋ ์์ญ์ ๋๋ค. ์ด์ ๋ฐ๋ผ, ๊ฐ๋ ค์ง๋ ์ผ๊ฐํ์ ๊ทธ๋ฆฌ์ง ์์์ผ๋ก์จ ์ฑ๋ฅ ํฅ์์ ๋๋ชจํ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์ด์ผ๊ธฐ ํ ์ ์๊ฒ ์ต๋๋ค.
ํ์ง๋ง ๋ฐฑํ์ด์ค ์ปฌ๋ง์ ๊ตฌํํ๊ธฐ ์ํด, ๋ฉ์ ๊ตฌ์กฐ์ ๋ฉด ๋ฐฉํฅ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๊ณต๊ฐ ๋ญ๋น๊ฐ ์ฌํ ๊ฒ๋๋ค. ๋ฉ์ ๊ตฌ์กฐ์ ์ถ๊ฐ์ ์ธ ์ ๋ณด ์ ์ฅ์์ด, ๋ฐฑํ์ด์ค ์ปฌ๋ง์ ๊ตฌํํ ๋ฐฉ๋ฒ์ด ํ์ํ๋ฐ, ์ด๋์๋ ์ธ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ ์ด ๋ฐฐ์ด๋ ์์๋ฅผ ํ์ฉํ์ฌ ํด๋น ์ผ๊ฐํ์ ๋ฉด์ ๋ฐฉํฅ(์ธ์ ๊ฒฐ๊ณผ)๋ฅผ ๋ง๋ค ์ ์์ฃ .
์ค๋ฅธ์ ๋ฒ์น์ ๋ฐ๋ผ, ์๊ณ ๋ฐฉํฅ์ด๋ฉด ํ๋ฉด ๋ฒ์ ๋ฒกํฐ๊ฐ ์์ฑ๋ ๊ฑฐ๊ณ , ๋ฐ์๊ณ ๋ฐฉํฅ์ด๋ฉด ์ ๋ฉด ๋ฒ์ ๋ฒกํฐ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด๋ฌํ ํน์ฑ์ ํ์ฉํ์ฌ, ๋ฌผ์ฒด๋ฅผ ์ด๋ฃจ๋ ๊ฐ ์ผ๊ฐํ์ ๋ฉด์ ๋ฐฉํฅ ์ ๋ณด๋ฅผ ์์ ๊ฐ์ด ์ ์ ์ ๊ทธ๋ฆฌ๋ ์์๋ก ์ ์ฅํ ์ ์๊ฒ ๋์์ง์.
๊ทธ๋ผ ์ด์ ๊ฐ ์ผ๊ฐํ๋ง๋ค ๋ฒ์ ๋ฒกํฐ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ ์ด ๋์์ผ๋, ์ด ๋ฒ์ ๋ฒกํฐ์ ์นด๋ฉ๋ผ์ ์ ๋ฉด ์์ ๋ฒกํฐ๋ฅผ ๋ด์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๊ฐ์ ๋ฐฉํฅ์ ๋ฐ๋ผ๋ณด๊ณ ์๋ค๋ฉด ์์๊ฐ ๋์ฌ ๊ฑฐ๊ณ , ์๋ก ๋ง์ฃผ๋ณด๊ณ ์๋ค๋ฉด ์์๊ฐ ๋ด์ ๊ฒฐ๊ณผ๋ก ๋์ค๊ฒ ์ฃ .
์ด๋ฌํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐฑํ์ด์ค ์ปฌ๋ง์ ๊ตฌํํ ์ ์์ต๋๋ค.
'๐ฎGame Development > Game Mathemathics' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ฒ์ ์ํ] #21 | ๊น์ด ๋ฒํผ(Depth Buffer) (2) | 2023.12.07 |
---|---|
[๊ฒ์ ์ํ] #20 | ์๊ทผ ํฌ์(Perspective Projection) (2) | 2023.12.06 |
[๊ฒ์ ์ํ] #18 | ์ค์ผ๋ฌ ๊ฐ(Euler angle) (2) | 2023.12.04 |
[๊ฒ์ ์ํ] # 17 | 3์ฐจ์ ๊ณต๊ฐ (4) | 2023.11.30 |
[๊ฒ์ ์ํ] #16 | ๋ทฐ ๊ณต๊ฐ(View Space) (2) | 2023.11.29 |