Gnomonic Projection & FOV
๋ณธ ๊ธ์ 360 ์ด๋ฏธ์ง๋ฅผ 2์ฐจ์์ ๋งคํํ๋ ๋ฐฉ์์ธ Gnomonic Projection(์ฌ์ฌ๋๋ฒ)์ ๋ํด ์ ๋ฆฌํ ๊ธ ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
ํ๊ธฐ: longitude๋ $\theta \in [-\pi, \pi]$๋ก, latitude๋ $\phi \in [-\pi/2, \pi/2]$๋ก ํ๊ธฐํ๊ฒ ์ต๋๋ค.
Gnomonic Projection
360 ์ด๋ฏธ์ง๋ฅผ 2์ฐจ์์ ๋งคํํ๋ ๋ํ์ ์ธ ๊ธฐ๋ฒ์ธ Gnomonic Projection์ ๋ํด ์ดํด๋ณด์. Gnomonic Projection์ ๋ฒ์ญํ๋ฉด ์ฌ์ฌ๋๋ฒ(ๅฟๅฐๅๆณ)์ด๋ผ๊ณ ํ๋ค. ๋๋๋ก Gnomonic Projection์ Rectilinear Projection์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
Gnomonic Projection์์ ์ฃผ์ํ ์ ์ ๋ฐ๊ตฌ ํ๋์ ๋ฒ์๋ง์ ๋งคํํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ฆ, ๋ฐ๊ตฌ ์ด์์ ๋ฒ์๋ Gnomonic Projection์ผ๋ก ๋งคํํ ์ ์๋ค.
Azimuthal projection
surface์ ๊ธฐ์ค์ ์ tangentํ ํ๋ฉด์ ์ก์ projection ํ๋ ๋ฐฉ๋ฒ์ Azimuthal projection์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋์ Gonomonic projection์ Azimuthal projection์ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค.
๋๋ค๋ฅธ Azimuthal projection์ ์๋ก๋ Stereographic projection๊ณผ Fisheye projection์ด ์๋ค.
How to map with Gnomonic Projection?
์ด์ Gnomonic Projection์ ์ด๋ป๊ฒ ์ํํ๋์ง ์ดํด๋ณด์.
๋จผ์ ๋งคํ์ ์ค์์ ์์นํ ์ $S=(\theta_0, \phi_0)$๋ฅผ ์ ํ๋ค.
์ด์ ์ $S$๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๊ตฌ ์์ ์ ๋ค์ ๋งคํํด๋ณด์.
์์ ๊ณต์์์ $x$์ $y$์ ๋ถ๋ชจ์ ๊ณตํต์ ์ธ ๋ถ๋ถ์ด ๋ฑ์ฅํ๋ค ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ํํํด๋ณด์.
$\cos{c}$์์ $c$๋ ๋งคํ๋ ํ๋ฉด์์ ์์ ๊ณผ $(x, y)$์ด ์ด๋ฃจ๋ ๊ฐ์ ๋งํ๋ค.
๊ณต์์์ ๋ณผ ์ ์๋ฏ longitude๋ $\theta - \theta_0$๋ฅผ ํตํด ๊ทธ ๊ฐ์ ๋ณด์ ํ๋ ๋ฐ๋ฉด, latitude $\phi$์๋ longitude ๊ฐ์ ๋ณด์ ์ด ์๋ค. ๋ํ ๋งคํ์ผ๋ก ์ป์ $x$์ $y$๋ $x^2 + y^2 \le 1$์ unit disk ๋ด๋ถ์ ์ ์ด๋ค.
Inverse mapping
Gnomonic map์ ๋ค์ equirectangular์ ์ขํ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ณต์์์ $(\theta_0, \phi_0) = (0, 0)$์ผ๋ก ์ค์ ํ๋ค๋ฉด, gnomonic map์ equirectangular์ ์ค์ฌ ๋ถ๋ถ์ ์์นํ๊ฒ ๋๋ค.
Field of View(FOV) & Rectilinear projection
Field of View, ์ค์ฌ์ FOV2๋ ๊ตฌ์ ํ๋ฉด์ Gnomonic projection์ผ๋ก ๋งคํํ ๋ฒ์๋ฅผ ๋งํ๋ค. ํต์ FOV๋ radian ๋จ์๊ฐ ์๋ degree ๋จ์๋ก ํ๊ธฐํ๋ค.
Gnomonic projection์์ FOV๋ ์ต๋ 180ยฐ์ ๋ฒ์๋ฅผ ๊ฐ์ง ์ ์๋ค. ์๋ํ๋ฉด Gnomonic projection์ ๋ฐ๊ตฌ ํ๋ ๋งํผ์ ์์ญ๋ง ๋งคํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ช๋ช ๊ฒฝ์ฐ์์๋ FOV ๋ฐฉ์์ผ๋ก Gnomonic projection์ ํ ๋, Rectilinear projection์ด๋ผ๋ ํํ์ ์ด๋ค. ๊ทธ๋ฌ๋ ๋งคํ์ด ์ด๋ฃจ์ด์ง๋ ์๋ฆฌ ์์ฒด๋ ๋์ผํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ ์ฒด๊ฐ ์๋ 120ยฐ ์ดํ์ FOV๋ฅผ ๊ฐ์ง ๋ Rectilinear projeection์ด๋ผ๋ ํํ์ ์ ํธํ๋ ๊ฒ ๊ฐ๋ค. ๋ณธ ๊ธ์์๋ FOV<=120ยฐ
์ธ ๊ฒฝ์ฐ๋ฅผ ํน๋ณํ Rectilinear projection์ผ๋ก ์ง์นญํ๊ฒ ๋ค!
Rectilinear projection์ผ๋ก ๋งคํํ ๊ฒฐ๊ณผ๋ ์ผ๋ฐ ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ ๊ฒ๊ณผ ๊ฐ์ ์๊ณก ์๋(undisorted) ์ด๋ฏธ์ง๋ฅผ ์ป๊ฒ ๋๋ค. ์ด๊ฒ์ FOV๋ฅผ 120ยฐ ์ดํ๋ก ์ ํํ๊ธฐ ๋๋ฌธ์ ์ง์ ์ด ์ง์ ์ผ๋ก ๋จ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํ๋ค.
์์ Gnomonic projection์ ๋ฐ๊ตฌ๋ฅผ ์ํ์ผ๋ก ๋งคํํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์คฌ๋ค๋ฉด, Rectilinear projection์ ์ฃผ๋ก ์ฌ๊ฐํ์ ์ด๋ฏธ์ง๋ก ๊ตฌ์ ํ๋ฉด์ ๋งคํํ๋ค.
์ด๋ฅผ ์ํด Rectilinear projection์ hFOV
์ vFOV
3 ๊ฐ์ด ํ์ํ๋ค. ์ด๋ hFOV๋ longitude $\theta$์ ๋ฒ์๋ฅผ vFOV๋ latitude $\phi$์ ๋ฒ์๋ฅผ ์ ์ํ๋ค. ๊ทธ๋์ ์์ Gnomonic projection ๊ณต์์ ๋ฒ์์ ํจ๊ป ์๋์ ๊ฐ์ด ๋ค์ ์ธ ์ ์๋ค.
์ด๋์ $x$, $y$์ ๋ฒ์๋ $x \in [-\tan{\left(\textrm{hFOV}/2\right)}, \tan{\left(\textrm{hFOV}/2\right)}]$, $y \in [-\tan{\left(\textrm{vFOV}/2\right)}, \tan{\left(\textrm{vFOV}/2\right)}]$๊ฐ ๋๋ค.
inverse mapping์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก $x$, $y$์ ๋ฒ์๋ฅผ ์ ํํ ํ ๋งคํํ๋ฉด equirectangular ์์ ์์ญ์ ๋ค์ ์ป์ ์ ์๋ค.
Cubmap mapping
Cubmap mapping์ ๊ตฌ๋ฅผ 6๊ฐ์ 90ยฐ FOV ์ด๋ฏธ์ง๋ก ๋งคํํ๋ ๋ฐฉ์์ด๋ค.
๋งคํ์ ๋ฐฉ์์ Rectilinear projection์ FOV=90ยฐ
์ผ๋ก ๋๊ณ 6๋ฒ์ ์งํํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ธํ ์ค๋ช
์ ์๋ตํ๊ฒ ๋ค.
๋งบ์๋ง
๊ตฌ์ ํ๋ฉด์ 2D๋ก ๋งคํํ๋ ๋ฐฉ์์ ์๊ฐํ Gnomonic projection ์ธ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. ํ์ง๋ง Gnomonic projection์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ฉด์ ๋๋ฆฌ ์ฐ์ด๋ ๋งคํ ๋ฐฉ์์ด๋ฏ๋ก ๋ฐ๋์ ์์งํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค.
์ฐธ๊ณ ๋ฌธํ
- Wolfram MathWorld - Gnomonic Projection
- wiki.panotools - Projections
- wiki.panotools - Rectilinear Projection
- nitishmutha - How to map Equirectangular projection to Rectilinear projection
-
์์ Gnomonic projection์ ๊ตฌ ํ๋ฉด์ ์ธ๋ถ์ tangent ํ๋ฉด์ ๋งคํ์ ํ๋ค. ์ด ๊ทธ๋ฆผ์์ ์์ ๋ด๋ถ์์ ๊ตฌ ํ๋ฉด์ ๋ฐ๋ผ๋ณธ๋ค. ๊ทธ๋ฌ๋ ๊ตฌ ํ๋ฉด์ ์ธ๋ถ์ ๋งคํํ๋ ๊ฒ๊ณผ ๋ด๋ถ์์ ๋ฐ๋ผ๋ณด๋ ๊ฒ์ ์์ ํ ๋์น์ธ ์ํฉ์ด๋ค!ย ↩
-
Normal FOV(NFOV)๋ก ํํํ๋ ์๋ฃ๋ ์๋ค.ย ↩
-
wFOV์ hFOV๋ก ํํํ๋ ๊ณณ๋ ์์ด ํผ๋ํ๊ธฐ ์ฝ๋ค. ์ด๋์ ์ ์๋ width FOV, height FOV๊ฐ ๋๋ฏ๋ก ์ฃผ์ํ์!ย ↩