๊ฐ์ ๊ฐ์ฒด๊ฐ ํ์ค ์ธ๊ณ์ ์ฌ์ค์ ์ผ๋ก ์ํธ์์ฉํ๊ฒ ํ๋ ๊ธฐ์ , WebXR ๊ฐ์ฒด ๊ฐ๋ฆผ์ ํ์ํด ๋ณด์ธ์. ์๋ ์๋ฆฌ, ๊ณผ์ , ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋ ์ ์ฌ๋ ฅ์ ๋ํด ์์๋ณด์ธ์.
ํ๋ฉด์ ๋์ด์: ํ์ค๊ฐ ์๋ AR ์ํธ์์ฉ์ ์ํ WebXR ๊ฐ์ฒด ๊ฐ๋ฆผ(Object Occlusion) ์ฌ์ธต ๋ถ์
๊นจ์ง์ง ์๋ ํ์: ๊ฐ๋จํ ํธ๋ฆญ์ด AR์ ๋ชจ๋ ๊ฒ์ ๋ฐ๊พธ๋ ์ด์
์ค๋งํธํฐ์ ์ฌ์ฉํด ๊ฑฐ์ค์ ์๋ก์ด ์ํ์ ์ค๋ฌผ ํฌ๊ธฐ ๊ฐ์ ๋ชจ๋ธ์ ๋ฐฐ์นํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ์ํ ์ฃผ์๋ฅผ ๊ฑธ์ผ๋ฉฐ ์ง๊ฐ๊ณผ ๋์์ธ์ ๊ฐ์ํฉ๋๋ค. ํ์ง๋ง ์์ง์ผ ๋๋ง๋ค ๋ญ๊ฐ... ์ด์ํ๊ฒ ๋๊ปด์ง๋๋ค. ์ํ๋ ์คํฐ์ปค์ฒ๋ผ ํ์ค ์์ ๋ถ์์ฐ์ค๋ฝ๊ฒ ๋ ์์ต๋๋ค. ์ค์ ์ปคํผ ํ ์ด๋ธ ๋ค์์ ์ํ๋ฅผ ๋ณด๋ฉด, ๊ฐ์ ์ํ๊ฐ ํ ์ด๋ธ ์์ ๋ ๋๋ง๋์ด, ๊ทธ๊ฒ์ด ๊ณต๊ฐ์ ์๋ ๋ฌผ๋ฆฌ์ ๊ฐ์ฒด๋ผ๋ ํ์์ ๊นจ๋จ๋ฆฝ๋๋ค. ์ด ํํ ์ฆ๊ฐํ์ค(AR)์ ์คํจ๋ ๊ฐ๋ฆผ(occlusion)์ ๋ฌธ์ ์ ๋๋ค.
์๋ ๋์, ์ด๊ฒ์ AR์ด ์ง์ ์ผ๋ก ํ์ค์ฒ๋ผ ๋๊ปด์ง๋ ๊ฒ์ ๋ง๋ ๊ฐ์ฅ ํฐ ์ฅ์ ๋ฌผ ์ค ํ๋์์ต๋๋ค. ์ฐ๋ฆฌ ์ธ๊ณ์ ๋ฌผ๋ฆฌ์ ๊ฒฝ๊ณ๋ฅผ ์กด์คํ์ง ์๋ ๊ฐ์ ๊ฐ์ฒด๋ ์ฐ๋ฆฌ ํ๊ฒฝ์ ํตํฉ๋ ๋ถ๋ถ์ด ์๋, ํฅ๋ฏธ๋ก์ด ์ ๊ธฐํจ์ ๋ถ๊ณผํ ๋์งํธ ์ ๋ น์ผ๋ก ๋จ์์์ต๋๋ค. ํ์ง๋ง ์ด์ ๊ฐ๋ฐฉํ ์น์ผ๋ก ์ง์ถํ๊ณ ์๋ ๊ฐ๋ ฅํ ๊ธฐ์ ์ด ์ด ํ๋๋ฅผ ๋ฐ๊พธ๊ณ ์์ต๋๋ค: ๋ฐ๋ก ๊ฐ์ฒด ๊ฐ๋ฆผ(Object Occlusion)์ ๋๋ค.
์ด ํฌ์คํธ๋ ์น์์ ๋ชฐ์ ํ ๊ฐ์ ๋ฐ ์ฆ๊ฐํ์ค ๊ฒฝํ์ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ฐฉํ ํ์ค์ธ WebXR์ ๋งฅ๋ฝ์์ ๊ฐ์ฒด ๊ฐ๋ฆผ์ ์ข ํฉ์ ์ผ๋ก ํ๊ตฌํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๋ฆผ์ด ๋ฌด์์ธ์ง, ์ ๊ทธ๊ฒ์ด AR ํ์ค๊ฐ์ ์ด์์ธ์ง, ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฅผ ์๋์ํค๋ ๊ธฐ์ ์ ๋ง๋ฒ, ์ฐ์ ์ ๋ฐ์ ๊ฑธ์น ๋ณํ์ ์์ฉ, ๊ทธ๋ฆฌ๊ณ ์ด ๊ธฐ๋ฐ ๊ธฐ์ ์ ๋ฏธ๋๊ฐ ์ด๋ป๊ฒ ๋ ๊ฒ์ธ์ง์ ๋ํด ์์ธํ ์์๋ณผ ๊ฒ์ ๋๋ค. ํ๋ฉด์ ๋์ด AR์ด ๋ง์นจ๋ด ํ์ค ์ธ๊ณ์ ๊ท์น์ ๋ฐ๋ผ ์๋ํ๋ ๋ฒ์ ์ด๋ป๊ฒ ๋ฐฐ์ฐ๊ณ ์๋์ง ์ดํดํ ์ค๋น๋ฅผ ํ์ญ์์ค.
์ฆ๊ฐํ์ค์์์ ๊ฐ์ฒด ๊ฐ๋ฆผ(Object Occlusion)์ด๋ ๋ฌด์์ธ๊ฐ?
WebXR์ ๊ธฐ์ ์ ์ธ๋ถ ์ฌํญ์ผ๋ก ๋ค์ด๊ฐ๊ธฐ ์ ์, ๊ฐ๋ฆผ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ํ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํต์ฌ์ ์ผ๋ก, ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋งค ์๊ฐ ์๋ฌด ์๊ฐ ์์ด ๊ฒฝํํ๋ ์์ด๋์ด์ ๋๋ค.
๊ฐ๋จํ ๋น์ : ๋ ์ด์ด๋ก ๋ ์ธ์
ํฐ ๊ธฐ๋ฅ ๋ค์ ์ ์๋ ์ฌ๋์ ๋ณธ๋ค๊ณ ์๊ฐํด ๋ณด์ธ์. ๋น์ ์ ๋๋ ๊ธฐ๋ฅ์ด ์ฌ๋ ์์ ์๋ค๋ ๊ฒ์ ์์์ ์ผ๋ก ์ฒ๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค. ๋น์ ์ ๋จ์ํ ๊ธฐ๋ฅ์ ์ํด ๊ฐ๋ ค์ง ์ฌ๋์ ๋ถ๋ถ์ ๋ณด์ง ๋ชปํ ๋ฟ์ ๋๋ค. ๊ธฐ๋ฅ์ด ์ฌ๋์ ๋ณด๋ ๋น์ ์ ์์ผ๋ฅผ ๊ฐ๋ฆฌ๊ณ (occluding) ์๋ ๊ฒ์ ๋๋ค. ๋น์ ์ผ๋ก๋ถํฐ์ ๊ฑฐ๋ฆฌ์ ๋ฐ๋ผ ๊ฐ์ฒด๋ฅผ ์ธต์ธต์ด ์๋ ์ด ๋ฐฉ์์ ์ฐ๋ฆฌ๊ฐ 3์ฐจ์ ๊ณต๊ฐ์ ์ธ์ํ๋ ๋ฐฉ์์ ๊ธฐ๋ณธ์ ๋๋ค. ์ฐ๋ฆฌ์ ์๊ฐ ์์คํ ์ ๊น์ด ์ธ์๊ณผ ์ด๋ค ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด ์์ ์๋์ง ์ดํดํ๋ ๋ฐ ์ ๋ฌธ๊ฐ์ ๋๋ค.
์ฆ๊ฐํ์ค์์์ ๊ณผ์ ๋ ๊ฐ์ฒด ์ค ํ๋(๊ฐ์ ๊ฐ์ฒด)๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์กด์ฌํ์ง ์์ ๋ ์ด ์์ฐ์ค๋ฌ์ด ํ์์ ๋ณต์ ํ๋ ๊ฒ์ ๋๋ค.
๊ธฐ์ ์ ์ ์
์ปดํจํฐ ๊ทธ๋ํฝ์ค์ AR์ ๋งฅ๋ฝ์์, ๊ฐ์ฒด ๊ฐ๋ฆผ์ ํน์ ์์ ์์ ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํด ๊ฐ๋ ค์ ธ ๋ณด์ด์ง ์๋ ๊ฐ์ฒด ๋๋ ๊ฐ์ฒด์ ์ผ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๊ณผ์ ์ ๋๋ค. AR์์๋ ํนํ ํ์ค ์ธ๊ณ์ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๊ฐ์ฒด์ ์์ผ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฐ๋ฆฌ๋ ๋ฅ๋ ฅ์ ์๋ฏธํฉ๋๋ค.
๊ฐ์ AR ์บ๋ฆญํฐ๊ฐ ํ์ค ์ธ๊ณ์ ๋๋ฌด ๋ค๋ก ๊ฑธ์ด๊ฐ ๋, ๊ฐ๋ฆผ ๊ธฐ์ ์ ๋๋ฌด ๊ธฐ๋ฅ์ ์ํด ์จ๊ฒจ์ง ์บ๋ฆญํฐ์ ๋ถ๋ถ์ด ๋ ๋๋ง๋์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด ๋จ์ผ ํจ๊ณผ๋ ๊ฒฝํ์ "ํ๋ฉด ์์ ๊ฐ์ ๊ฐ์ฒด"์์ "๋น์ ์ ์ธ๊ณ ์ ๊ฐ์ ๊ฐ์ฒด"๋ก ๊ฒฉ์์ํต๋๋ค.
๊ฐ๋ฆผ(Occlusion)์ด ๋ชฐ์ ๊ฐ์ ์ด์์ธ ์ด์
์ ์ ํ ๊ฐ๋ฆผ ์์ด๋ ์ฌ์ฉ์์ ๋๋ ์ฆ์ AR ๊ฒฝํ์ ๊ฐ์ง๋ก ์ธ์ํฉ๋๋ค. ์ด ์ธ์ง ๋ถ์กฐํ๋ ํ์กด๊ฐ๊ณผ ๋ชฐ์ ๊ฐ์ ๊นจ๋จ๋ฆฝ๋๋ค. ์ด๋ฅผ ์ ๋๋ก ๊ตฌํํ๋ ๊ฒ์ด ์ ๊ทธํ ๋ก ์ค์ํ์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํ์ค๊ฐ๊ณผ ์ ๋ขฐ๋ ํฅ์: ๊ฐ๋ฆผ์ ๋์งํธ ์ฝํ ์ธ ๋ฅผ ๋ฌผ๋ฆฌ์ ๊ณต๊ฐ์ ํตํฉํ๊ธฐ ์ํ ๊ฐ์ฅ ์ค์ํ ์๊ฐ์ ๋จ์๋ผ๊ณ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ์ ๊ฐ์ฒด๊ฐ ๋ถํผ๋ฅผ ๊ฐ์ง๊ณ ๊ณต๊ฐ์ ์ฐจ์งํ๋ฉฐ ์ค์ ๊ฐ์ฒด์ ๊ณต์กดํ๋ค๋ ํ์์ ๊ณต๊ณ ํ ํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ฒฝํ(UX) ๊ฐ์ : ์ํธ์์ฉ์ ๋ ์ง๊ด์ ์ผ๋ก ๋ง๋ญ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฑ ์ ์ ์ค์ ์ฑ ๋ค์ ๊ฐ์ ๊ฝ๋ณ์ ๋์ ์ ์๋ค๋ฉด, ๊ทธ ์ํธ์์ฉ์ ๋ ํ์ค๊ฐ ์๊ณ ์์ธก ๊ฐ๋ฅํ๊ฒ ๋๊ปด์ง๋๋ค. ๊ฐ์ ์ฝํ ์ธ ๊ฐ ๋ชจ๋ ๊ฒ ์์ ๋ถ์์ฐ์ค๋ฝ๊ฒ ๋ ๋ค๋๋ ์ด์ํ ํจ๊ณผ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- ๋ณต์กํ ์ํธ์์ฉ ๊ฐ๋ฅ: ๊ณ ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฆผ์ ์์กดํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ฐ์ ๋ฐธ๋ธ์ ์ํธ์์ฉํ๊ธฐ ์ํด ์ค์ ํ์ดํ ๋ค๋ก ์์ ๋ป์ด์ผ ํ๋ AR ํ๋ จ ์๋ฎฌ๋ ์ด์ ์ ์์ํด ๋ณด์ธ์. ๊ฐ๋ฆผ์ด ์๋ค๋ฉด ์ด ์ํธ์์ฉ์ ์๊ฐ์ ์ผ๋ก ํผ๋์ค๋ฝ๊ณ ์ํํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
- ๊ณต๊ฐ์ ๋งฅ๋ฝ ์ ๊ณต: ๊ฐ๋ฆผ์ ์ฌ์ฉ์๊ฐ ํ๊ฒฝ์ ๋ํ ๊ฐ์ ๊ฐ์ฒด์ ํฌ๊ธฐ, ๊ท๋ชจ ๋ฐ ์์น๋ฅผ ๋ ์ ์ดํดํ๋๋ก ๋์ต๋๋ค. ์ด๋ ๋์์ธ, ๊ฑด์ถ ๋ฐ ์๋งค์ ๋ถ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
WebXR์ ์ฅ์ : ๋ธ๋ผ์ฐ์ ๋ก ๊ฐ์ ธ์จ ๊ฐ๋ฆผ(Occlusion) ๊ธฐ์
์ค๋ซ๋์, ์ ๋ขฐ๋ ๋์ ๊ฐ๋ฆผ ๊ธฐ๋ฅ์ ํฌํจํ ๊ณ ํ์ง AR ๊ฒฝํ์ ํน์ ์ด์ ์ฒด์ (์: ARKit์ ์ฌ์ฉํ๋ iOS, ARCore๋ฅผ ์ฌ์ฉํ๋ Android)๋ฅผ ์ํด ๋ง๋ค์ด์ง ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ ๋ฌผ์ด์์ต๋๋ค. ์ด๋ ๋์ ์ง์ ์ฅ๋ฒฝ์ ๋ง๋ค์์ต๋๋ค: ์ฌ์ฉ์๋ ๊ฐ ๊ฒฝํ์ ์ํด ์ ์ฉ ์ฑ์ ์ฐพ์ ๋ค์ด๋ก๋ํ๊ณ ์ค์นํด์ผ ํ์ต๋๋ค. WebXR์ ๊ทธ ์ฅ๋ฒฝ์ ํ๋ฌผ๊ณ ์์ต๋๋ค.
WebXR์ด๋? ๊ฐ๋จํ ๋ณต์ต
WebXR Device API๋ ๊ฐ๋ฐ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ์์ ์ง์ ์คํ๋๋ ๋งค๋ ฅ์ ์ธ AR ๋ฐ VR ๊ฒฝํ์ ๋ง๋ค ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ฐฉํ ํ์ค์ ๋๋ค. ์ฑ ์คํ ์ด๋, ์ค์น๋ ํ์ ์์ด ๋จ์ง URL๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ์ด "๋๋ฌ ๋ฒ์"๊ฐ WebXR์ ์ด๋ฅ๋ ฅ์ ๋๋ค. ์ด๋ ๋ชฐ์ ํ ์ฝํ ์ธ ์ ๋ํ ์ ๊ทผ์ ๋ฏผ์ฃผํํ์ฌ ์ค๋งํธํฐ๊ณผ ํ๋ธ๋ฆฟ์์๋ถํฐ ์ ์ฉ AR/VR ํค๋์ ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ด๋ฒ์ํ ์ฅ์น์์ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
์น์์์ ๊ฐ๋ฆผ ๊ธฐ์ ๊ตฌํ์ ์ด๋ ค์
๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ๊ฒฌ๊ณ ํ ๊ฐ๋ฆผ ๊ธฐ์ ์ ๊ตฌํํ๋ ๊ฒ์ ์๋นํ ๊ธฐ์ ์ ์์ ์ ๋๋ค. ๊ฐ๋ฐ์๋ค์ ๋ค์ดํฐ๋ธ ์ฑ ๊ฐ๋ฐ์๋ค๊ณผ ๋น๊ตํ์ ๋ ๋ ํนํ ์ผ๋ จ์ ๊ณผ์ ์ ์ง๋ฉดํฉ๋๋ค:
- ์ฑ๋ฅ ์ ์ฝ: ์น ๋ธ๋ผ์ฐ์ ๋ ๋ค์ดํฐ๋ธ ์ฑ๋ณด๋ค ๋ ์ ํ๋ ์ฑ๋ฅ ๋ฒ์ ๋ด์์ ์๋ํฉ๋๋ค. ์ค์๊ฐ ๊น์ด ์ฒ๋ฆฌ ๋ฐ ์ ฐ์ด๋ ์์ ์ ์ฅ์น ๋ฐฐํฐ๋ฆฌ๋ฅผ ์๋ชจํ์ง ์๊ณ ์ํํ๊ฒ ์คํ๋๋๋ก ๊ณ ๋๋ก ์ต์ ํ๋์ด์ผ ํฉ๋๋ค.
- ํ๋์จ์ด ํํธํ: ์น์ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง ๊ฑฐ๋ํ ์ฅ์น ์ํ๊ณ๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค. ์ผ๋ถ ํด๋ํฐ์๋ ๊น์ด ๊ฐ์ง์ ์๋ฒฝํ ๊ณ ๊ธ LiDAR ์ค์บ๋์ ToF(Time-of-Flight) ์ผ์๊ฐ ์์ง๋ง, ๋ค๋ฅธ ํด๋ํฐ์ ํ์ค RGB ์นด๋ฉ๋ผ์๋ง ์์กดํฉ๋๋ค. WebXR ์๋ฃจ์ ์ ์ด๋ฌํ ๋ค์์ฑ์ ์ฒ๋ฆฌํ ์ ์์ ๋งํผ ๊ฒฌ๊ณ ํด์ผ ํฉ๋๋ค.
- ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๋ฐ ๋ณด์: ์ค์๊ฐ ๊น์ด ๋งต์ ํฌํจํ์ฌ ์ฌ์ฉ์์ ํ๊ฒฝ์ ๋ํ ์์ธ ์ ๋ณด์ ์ ๊ทผํ๋ ๊ฒ์ ์๋นํ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํฉ๋๋ค. WebXR ํ์ค์ "๊ฐ์ธ์ ๋ณด ์ฐ์ " ์ฌ๊ณ ๋ฐฉ์์ผ๋ก ์ค๊ณ๋์ด ์นด๋ฉ๋ผ ๋ฐ ์ผ์ ์ ๊ทผ์ ๋ํ ๋ช ์์ ์ธ ์ฌ์ฉ์ ํ๊ฐ๋ฅผ ์๊ตฌํฉ๋๋ค.
๊ฐ๋ฆผ ๊ธฐ์ ์ ์ํ ํต์ฌ WebXR API ๋ฐ ๋ชจ๋
์ด๋ฌํ ๊ณผ์ ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด, ์๋ ์์ด๋ ์น ์ปจ์์์(W3C)๊ณผ ๋ธ๋ผ์ฐ์ ๊ณต๊ธ์ ์ฒด๋ค์ WebXR API๋ฅผ ์ํ ์๋ก์ด ๋ชจ๋์ ๊ฐ๋ฐํด ์์ต๋๋ค. ์ฐ๋ฆฌ ์ด์ผ๊ธฐ์ ์ฃผ์ธ๊ณต์ `depth-sensing` ๋ชจ๋์ ๋๋ค.
- `depth-sensing` ๋ชจ๋๊ณผ `XRDepthInformation`: ์ด๊ฒ์ด ๊ฐ๋ฆผ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ฌ์ฉ์๊ฐ ํ๊ฐ๋ฅผ ํ๋ฉด, ์ด ๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฅ์น ์ผ์๋ก๋ถํฐ ์ค์๊ฐ ๊น์ด ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๋ฐ์ดํฐ๋ ๊น์ด ๋งต(depth map)์ ํฌํจํ๋ `XRDepthInformation` ๊ฐ์ฒด๋ก ์ ๋ฌ๋ฉ๋๋ค. ๊น์ด ๋งต์ ๋ณธ์ง์ ์ผ๋ก ๊ฐ ํฝ์ ์ ๋ฐ๊ธฐ๊ฐ ์นด๋ฉ๋ผ๋ก๋ถํฐ์ ๊ฑฐ๋ฆฌ์ ํด๋นํ๋ ๊ทธ๋ ์ด์ค์ผ์ผ ์ด๋ฏธ์ง์ ๋๋ค. ๋ฐ์ ํฝ์ ์ ๋ ๊ฐ๊น๊ณ , ์ด๋์ด ํฝ์ ์ ๋ ๋ฉ๋๋ค(๋๋ ๊ตฌํ์ ๋ฐ๋ผ ๊ทธ ๋ฐ๋์ผ ์ ์์ต๋๋ค).
- `hit-test` ๋ชจ๋: ๊ฐ๋ฆผ์ ์ง์ ์ ์ผ๋ก ์ฑ ์์ด ์๋ ๊ฒ์ ์๋์ง๋ง, `hit-test` ๋ชจ๋์ ํ์์ ์ธ ์ ๊ตฌ์ฒด์ ๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ค ์ธ๊ณ๋ก ๊ด์ ์ ์์ ํ์ค ์ธ๊ณ ํ๋ฉด๊ณผ ๊ต์ฐจํ๋ ์ง์ ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ฅ, ํ ์ด๋ธ, ๋ฒฝ์ ๋ฐฐ์นํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ธฐ AR๋ ๊ธฐ๋ณธ์ ์ธ ํ๊ฒฝ ์ดํด๋ฅผ ์ํด ์ด๊ฒ์ ํฌ๊ฒ ์์กดํ์ง๋ง, `depth-sensing` ๋ชจ๋์ ์ ์ฒด ์ฅ๋ฉด์ ๋ํ ํจ์ฌ ๋ ํ๋ถํ ํฝ์ ๋จ์์ ์ดํด๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋จ์ํ ํ๋ฉด ๊ฐ์ง(๋ฐ๋ฅ๊ณผ ๋ฒฝ ์ฐพ๊ธฐ)์์ ์์ ํ๊ณ ์กฐ๋ฐํ ๊น์ด ๋งต์ผ๋ก์ ์งํ๋ WebXR์์ ๊ณ ํ์ง์ ์ค์๊ฐ ๊ฐ๋ฆผ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธฐ์ ์ ๋์ฝ์ ๋๋ค.
WebXR ๊ฐ์ฒด ๊ฐ๋ฆผ์ ์๋ ์๋ฆฌ: ๊ธฐ์ ์ ๋ถ์
์ด์ , ๋ง์ ๊ฑท๊ณ ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด๋ป๊ฒ ๊น์ด ๋งต์ ๊ฐ์ ธ์ ๊ฐ์ ๊ฐ์ฒด์ ์ผ๋ถ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ธฐ๋ ๋ฐ ์ฌ์ฉํ ๊น์? ์ด ๊ณผ์ ์ ์ผ๋ฐ์ ์ผ๋ก ์ธ ๊ฐ์ง ์ฃผ์ ๋จ๊ณ๋ฅผ ํฌํจํ๋ฉฐ, ์ ๋์ ์ธ ๊ฒฝํ์ ๋ง๋ค๊ธฐ ์ํด ์ด๋น ์ฌ๋ฌ ๋ฒ ๋ฐ์ํฉ๋๋ค.
1๋จ๊ณ: ๊น์ด ๋ฐ์ดํฐ ํ๋
๋จผ์ , ์ ํ๋ฆฌ์ผ์ด์ ์ WebXR ์ธ์ ์ ์ด๊ธฐํํ ๋ ๊น์ด ์ ๋ณด์ ๋ํ ์ ๊ทผ์ ์์ฒญํด์ผ ํฉ๋๋ค.
depth-sensing ๊ธฐ๋ฅ์ ํฌํจํ ์ธ์ ์์ฒญ ์์:
const session = await navigator.xr.requestSession('immersive-ar', {
requiredFeatures: ['hit-test'],
optionalFeatures: ['dom-overlay', 'depth-sensing'],
depthSensing: {
usagePreference: ['cpu-optimized', 'gpu-optimized'],
dataFormatPreference: ['luminance-alpha', 'float32']
}
});
์ธ์ ์ด ํ์ฑํ๋๋ฉด, ๋ ๋๋ง๋๋ ๊ฐ ํ๋ ์์ ๋ํด ์ ํ๋ฆฌ์ผ์ด์ ์ `XRFrame`์ ์ต์ ๊น์ด ์ ๋ณด๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
๋ ๋ ๋ฃจํ ๋ด๋ถ์์ ๊น์ด ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ ์์:
const depthInfo = xrFrame.getDepthInformation(xrViewerPose.views[0]);
if (depthInfo) {
// ๊น์ด ๋งต์ ํ๋ณดํ์ต๋๋ค!
// depthInfo.texture๋ GPU ์์ ๊น์ด ๋ฐ์ดํฐ๋ฅผ ํฌํจํฉ๋๋ค
// depthInfo.width์ depthInfo.height๋ ๊ทธ ์ฐจ์์ ์ ๊ณตํฉ๋๋ค
// depthInfo.normDepthFromNormView๋ ํ
์ค์ฒ ์ขํ๋ฅผ ๋ทฐ์ ๋งคํํฉ๋๋ค
}
`depthInfo` ๊ฐ์ฒด๋ ๊น์ด ๋งต์ GPU ํ ์ค์ฒ๋ก ์ ๊ณตํ๋๋ฐ, ์ด๋ ์ฑ๋ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ํ ๊น์ด ๊ฐ์ ์นด๋ฉ๋ผ ๋ทฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋งคํํ๋ ๋ฐ ํ์ํ ํ๋ ฌ๋ ์ ๊ณตํฉ๋๋ค.
2๋จ๊ณ: ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ๊น์ด ์ ๋ณด ํตํฉ
์ฌ๊ธฐ์ ์ง์ง ๋ง๋ฒ์ด ์ผ์ด๋๋ฉฐ, ์ด๋ ๊ฑฐ์ ํญ์ ํ๋๊ทธ๋จผํธ ์ ฐ์ด๋(ํฝ์ ์ ฐ์ด๋๋ผ๊ณ ๋ ํจ)์์ ์ํ๋ฉ๋๋ค. ํ๋๊ทธ๋จผํธ ์ ฐ์ด๋๋ ํ๋ฉด์ ๊ทธ๋ ค์ง๋ 3D ๋ชจ๋ธ์ ๋ชจ๋ ๋จ์ผ ํฝ์ ์ ๋ํด GPU์์ ์คํ๋๋ ์์ ํ๋ก๊ทธ๋จ์ ๋๋ค.
๋ชฉํ๋ ๊ฐ์ ๊ฐ์ฒด์ ์ ฐ์ด๋๋ฅผ ์์ ํ์ฌ, ๊ทธ๋ฆฌ๋ ค๊ณ ํ๋ ๋ชจ๋ ํฝ์ ์ ๋ํด "๋ด๊ฐ ํ์ค ์ธ๊ณ์ ๊ฐ์ฒด ๋ค์ ์๋๊ฐ?"๋ฅผ ํ์ธํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
์ ฐ์ด๋ ๋ก์ง์ ๊ฐ๋ ์ ๋ถ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํฝ์ ์ ์์น ๊ฐ์ ธ์ค๊ธฐ: ์ ฐ์ด๋๋ ๋จผ์ ๊ทธ๋ฆฌ๋ ค๋ ๊ฐ์ ๊ฐ์ฒด์ ํ์ฌ ํฝ์ ์ ํ๋ฉด ๊ณต๊ฐ ์์น๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- ์ค์ ์ธ๊ณ์ ๊น์ด ์ํ๋ง: ์ด ํ๋ฉด ๊ณต๊ฐ ์์น๋ฅผ ์ฌ์ฉํ์ฌ WebXR API๊ฐ ์ ๊ณตํ๋ ๊น์ด ๋งต ํ ์ค์ฒ์์ ํด๋น ๊ฐ์ ์กฐํํฉ๋๋ค. ์ด ๊ฐ์ ํด๋น ํฝ์ ์ ์๋ ์ค์ ์ธ๊ณ ๊ฐ์ฒด์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ํ๋ ๋๋ค.
- ๊ฐ์ ๊ฐ์ฒด์ ๊น์ด ๊ฐ์ ธ์ค๊ธฐ: ์ ฐ์ด๋๋ ํ์ฌ ์ฒ๋ฆฌ ์ค์ธ ๊ฐ์ ๊ฐ์ฒด ํฝ์ ์ ๊น์ด๋ฅผ ์ด๋ฏธ ์๊ณ ์์ต๋๋ค. ์ด ๊ฐ์ GPU์ z-๋ฒํผ์์ ๊ฐ์ ธ์ต๋๋ค.
- ๋น๊ต ๋ฐ ํ๊ธฐ: ์
ฐ์ด๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ ๋น๊ต๋ฅผ ์ํํฉ๋๋ค:
์ค์ ์ธ๊ณ์ ๊น์ด ๊ฐ์ด ๊ฐ์ ๊ฐ์ฒด์ ๊น์ด ๊ฐ๋ณด๋ค ์์๊ฐ?
๋ง์ฝ ๋ต์ด ์๋ผ๋ฉด, ์ค์ ๊ฐ์ฒด๊ฐ ์์ ์๋ค๋ ์๋ฏธ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ฐ์ด๋๋ ํด๋น ํฝ์ ์ ํ๊ธฐ(discard)ํ์ฌ GPU์ ๊ทธ๋ฆฌ์ง ๋ง๋ผ๊ณ ํจ๊ณผ์ ์ผ๋ก ์ง์ํฉ๋๋ค. ๋ง์ฝ ๋ต์ด ์๋์๋ผ๋ฉด, ๊ฐ์ ๊ฐ์ฒด๊ฐ ์์ ์์ผ๋ฏ๋ก ์ ฐ์ด๋๋ ํ์์ ๊ฐ์ด ํฝ์ ์ ๊ทธ๋ฆฝ๋๋ค.
๋งค ํ๋ ์๋ง๋ค ์๋ฐฑ๋ง ๊ฐ์ ํฝ์ ์ ๋ํด ๋ณ๋ ฌ๋ก ์คํ๋๋ ์ด ํฝ์ ๋จ์ ๊น์ด ํ ์คํธ๊ฐ ๋ฐ๋ก ๋งค๋๋ฌ์ด ๊ฐ๋ฆผ ํจ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ์ ๋๋ค.
3๋จ๊ณ: ๊ณผ์ ์ฒ๋ฆฌ ๋ฐ ์ต์ ํ
๋ฌผ๋ก , ํ์ค ์ธ๊ณ๋ ๋ณต์กํ๊ณ ๋ฐ์ดํฐ๋ ๊ฒฐ์ฝ ์๋ฒฝํ์ง ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค:
- ๊น์ด ๋งต ํ์ง: ์๋น์์ฉ ์ฅ์น์ ๊น์ด ๋งต์ ์๋ฒฝํ๊ฒ ๊นจ๋ํ์ง ์์ต๋๋ค. ํนํ ๊ฐ์ฒด์ ๊ฐ์ฅ์๋ฆฌ ์ฃผ๋ณ์๋ ๋ ธ์ด์ฆ, ๊ตฌ๋ฉ(๋๋ฝ๋ ๋ฐ์ดํฐ) ๋ฐ ๋ฎ์ ํด์๋๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๊ฐ๋ฆผ ๊ฒฝ๊ณ์์ "๋ฐ์ง๊ฑฐ๋ฆผ" ๋๋ "์ํฐํฉํธ" ํจ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ณ ๊ธ ๊ธฐ์ ์๋ ์ด๋ฌํ ํจ๊ณผ๋ฅผ ์ํํ๊ธฐ ์ํด ๊น์ด ๋งต์ ํ๋ฆฌ๊ฒ ํ๊ฑฐ๋ ๋ถ๋๋ฝ๊ฒ ํ๋ ๊ฒ์ด ํฌํจ๋์ง๋ง, ์ด๋ ์ฑ๋ฅ ๋น์ฉ์ ์๋ฐํฉ๋๋ค.
- ๋๊ธฐํ ๋ฐ ์ ๋ ฌ: RGB ์นด๋ฉ๋ผ ์ด๋ฏธ์ง์ ๊น์ด ๋งต์ ์๋ก ๋ค๋ฅธ ์ผ์์ ์ํด ์บก์ฒ๋๋ฏ๋ก ์๊ฐ๊ณผ ๊ณต๊ฐ์์ ์๋ฒฝํ๊ฒ ์ ๋ ฌ๋์ด์ผ ํฉ๋๋ค. ์ ๋ ฌ์ด ์ด๊ธ๋๋ฉด ๊ฐ๋ฆผ์ด ์คํ์ ๋์ด ๋ํ๋, ๊ฐ์ ๊ฐ์ฒด๊ฐ ์ค์ ๊ฐ์ฒด์ "์ ๋ น"์ ์ํด ๊ฐ๋ ค์ง๋ ํ์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. WebXR API๋ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ณด์ ๋ฐ์ดํฐ์ ํ๋ ฌ์ ์ ๊ณตํ์ง๋ง, ์ ํํ๊ฒ ์ ์ฉํด์ผ ํฉ๋๋ค.
- ์ฑ๋ฅ: ์ธ๊ธํ๋ฏ์ด, ์ด๋ ๊น๋ค๋ก์ด ํ๋ก์ธ์ค์ ๋๋ค. ๋์ ํ๋ ์ ์๋๋ฅผ ์ ์งํ๊ธฐ ์ํด ๊ฐ๋ฐ์๋ ์ ํด์๋ ๋ฒ์ ์ ๊น์ด ๋งต์ ์ฌ์ฉํ๊ฑฐ๋, ์ ฐ์ด๋์์ ๋ณต์กํ ๊ณ์ฐ์ ํผํ๊ฑฐ๋, ์ ์ฌ์ ์ผ๋ก ๊ฐ๋ฆด ์ ์๋ ํ๋ฉด์ ๊ฐ๊น์ด ๊ฐ์ฒด์๋ง ๊ฐ๋ฆผ์ ์ ์ฉํ ์ ์์ต๋๋ค.
์ฐ์ ์ ๋ฐ์ ์ค์ ์ ์ฉ ์ฌ๋ก ๋ฐ ์ฌ์ฉ ์ฌ๋ก
๊ธฐ์ ์ ๊ธฐ๋ฐ์ด ๋ง๋ จ๋จ์ ๋ฐ๋ผ, ์ง์ ํ ํฅ๋ถ์ WebXR ๊ฐ๋ฆผ ๊ธฐ์ ์ด ๋ฌด์์ ๊ฐ๋ฅํ๊ฒ ํ๋์ง์ ์์ต๋๋ค. ์ด๊ฒ์ ๋จ์ํ ์๊ฐ์ ๊ธฐ๋ฏน์ด ์๋๋ผ, ์ ์ธ๊ณ ๊ด๊ฐ์ ์ํ ์ค์ฉ์ ์ด๊ณ ๊ฐ๋ ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ ๊ธฐ๋ฐ ๊ธฐ์ ์ ๋๋ค.
์ ์์๊ฑฐ๋ ๋ฐ ์๋งค
"๊ตฌ๋งค ์ ์ฒดํ" ๊ธฐ๋ฅ์ ๊ฐ์ ์ฉํ, ๊ฐ๊ตฌ ๋ฐ ์ ์์ ํ ์จ๋ผ์ธ ์๋งค์ ์ ์ฑ๋ฐฐ์ ๋๋ค. ๊ฐ๋ฆผ ๊ธฐ์ ์ ์ด๋ฌํ ๊ฒฝํ์ ๊ทน์ ์ผ๋ก ๋ ์ค๋๋ ฅ ์๊ฒ ๋ง๋ญ๋๋ค.
- ๊ธ๋ก๋ฒ ๊ฐ๊ตฌ ์๋งค์ ์ฒด: ๋์ฟ์ ํ ๊ณ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ์ ๊ฐ์ ์ํ๋ฅผ ๋ฐฐ์นํ ์ ์์ต๋๋ค. ๊ฐ๋ฆผ ๊ธฐ์ ์ ํตํด, ๊ธฐ์กด์ ์ค์ ์๋ฝ์์ ๋ค์ ๋ถ๋ถ์ ์ผ๋ก ๊ฐ๋ ค์ง ๋ชจ์ต์ ์ ํํ๊ฒ ๋ณผ ์ ์์ด, ๊ณต๊ฐ์ ์ด๋ป๊ฒ ์ด์ธ๋ฆฌ๋์ง ์ง์ ํ ๊ฐ๊ฐ์ ์ป์ ์ ์์ต๋๋ค.
- ์๋น์ ๊ฐ์ : ๋ธ๋ผ์ง์ ํ ์ผํ๊ฐ์ ๋ฒฝ์ ์๋ก์ด 85์ธ์น ํ ๋ ๋น์ ์ ์๊ฐํํ ์ ์์ต๋๋ค. ๊ฐ๋ฆผ ๊ธฐ์ ์ ๊ทธ ์ ๋ฏธ๋์ด ์ฝ์ ์์ ํ๋ถ์ด ๊ฐ์ ํ๋ฉด์ ์ผ๋ถ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฐ๋ฆฌ๋๋ก ๋ณด์ฅํ์ฌ, TV๊ฐ ์ ์ ํ ํฌ๊ธฐ์ด๋ฉฐ ๋ฐฉํด๋ฐ์ง ์์ ๊ฒ์์ ํ์ธ์์ผ ์ค๋๋ค.
๊ฑด์ถ, ์์ง๋์ด๋ง ๋ฐ ๊ฑด์ค(AEC)
AEC ์ฐ์ ์ ์ํด, WebXR์ ํ์ฅ์์ ์ง์ ํ๋ก์ ํธ๋ฅผ ์๊ฐํํ๊ณ ํ์ ํ ์ ์๋ ๊ฐ๋ ฅํ๊ณ ์ฑ์ด ํ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
- ํ์ฅ ์๊ฐํ: ๋๋ฐ์ด์ ํ ๊ฑด์ถ๊ฐ๋ ๊ฑด์ค ์ค์ธ ๊ฑด๋ฌผ์ ๊ฑธ์ด ๋ค๋๋ฉฐ ํ๋ธ๋ฆฟ์ ๋ค๊ณ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์์ฑ๋ ๋์งํธ ์ฒญ์ฌ์ง์ WebXR ์ค๋ฒ๋ ์ด๋ฅผ ๋ด ๋๋ค. ๊ฐ๋ฆผ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด, ๊ธฐ์กด์ ์ฝํฌ๋ฆฌํธ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ฒ ๋น์ด ๊ฐ์์ ๋ฐฐ๊ด ๋ฐ ์ ๊ธฐ ์์คํ ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฐ๋ฆฌ๋ฏ๋ก, ์ถฉ๋๊ณผ ์ค๋ฅ๋ฅผ ๋๋ผ์ด ์ ํ๋๋ก ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
- ๊ณ ๊ฐ ์ํฌ์ค๋ฃจ: ๋ ์ผ์ ํ ๊ฑด์ค ํ์ฌ๋ ํด์ธ ๊ณ ๊ฐ์๊ฒ ๊ฐ๋จํ URL์ ๋ณด๋ผ ์ ์์ต๋๋ค. ๊ณ ๊ฐ์ ์์ ์ ํด๋ํฐ์ ์ฌ์ฉํ์ฌ ๋ฏธ๋ ์ฌ๋ฌด์ค์ ๊ฐ์ ๋ชจ๋ธ์ "๊ฑธ์ด" ๋ค๋ ์ ์์ผ๋ฉฐ, ๊ฐ์ ๊ฐ๊ตฌ๋ ์ค์ ๊ตฌ์กฐ์ ์ง์ง๋ ๋ค์ ์ฌ์ค์ ์ผ๋ก ๋ํ๋ฉ๋๋ค.
๊ต์ก ๋ฐ ํ๋ จ
๋์งํธ ์ ๋ณด๊ฐ ๋ฌผ๋ฆฌ์ ์ธ๊ณ์ ๋งฅ๋ฝ์ ์ผ๋ก ํตํฉ๋ ๋ ๋ชฐ์ ํ ํ์ต์ ํจ์ฌ ๋ ํจ๊ณผ์ ์ด ๋ฉ๋๋ค.
- ์๋ฃ ํ๋ จ: ์บ๋๋ค์ ํ ์๋์์ ํ๋ จ์ฉ ๋ง๋คํน์ ์ฅ์น๋ฅผ ๊ฒจ๋๊ณ ๋ด๋ถ์ ์๋ ๊ฐ์์ ํด๋ถํ์ ์ผ๋ก ์ ํํ ๊ณจ๊ฒฉ์ ๋ณผ ์ ์์ต๋๋ค. ์์ง์ด๋ฉด ๋ง๋คํน์ ํ๋ผ์คํฑ "ํผ๋ถ"๊ฐ ๊ณจ๊ฒฉ์ ๊ฐ๋ฆฌ์ง๋ง, ํ๋ฉด์ "ํตํด ๋ค์ฌ๋ค๋ณด๊ธฐ" ์ํด ๋ ๊ฐ๊น์ด ์ด๋ํ์ฌ ๋ด๋ถ์ ์ธ๋ถ ๊ตฌ์กฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.
- ์ญ์ฌ์ ์ฌํ: ์ด์งํธ์ ํ ๋ฐ๋ฌผ๊ด ๋ฐฉ๋ฌธ๊ฐ์ ํด๋ํฐ์ ํตํด ๊ณ ๋ ์ฌ์ ์ ์ ์ ๋ณด๋ฉฐ ์๋ ๊ตฌ์กฐ์ WebXR ์ฌ๊ตฌ์ฑ์ ๋ณผ ์ ์์ต๋๋ค. ๊ธฐ์กด์ ๋ถ์์ง ๊ธฐ๋ฅ๋ค์ ํ๋ ๊ทธ ๋ค์ ์ ์๋ ๊ฐ์์ ๋ฒฝ๊ณผ ์ง๋ถ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฐ๋ฆฌ๋ฉฐ, ๊ฐ๋ ฅํ "๊ทธ๋์ ์ง๊ธ" ๋น๊ต๋ฅผ ๋ง๋ค์ด๋ ๋๋ค.
๊ฒ์ ๋ฐ ์ํฐํ ์ธ๋จผํธ
์ํฐํ ์ธ๋จผํธ์์ ๋ชฐ์ ๊ฐ์ ๋ชจ๋ ๊ฒ์ ๋๋ค. ๊ฐ๋ฆผ ๊ธฐ์ ์ ๊ฒ์ ์บ๋ฆญํฐ์ ํจ๊ณผ๊ฐ ์๋ก์ด ์ฐจ์์ ์ ๋ขฐ์ฑ์ ๊ฐ์ง๊ณ ์ฐ๋ฆฌ ์ธ๊ณ์ ๊ฑฐ์ฃผํ ์ ์๊ฒ ํฉ๋๋ค.
- ์์น ๊ธฐ๋ฐ ๊ฒ์: ๋์ ๊ณต์์ ํ๋ ์ด์ด๋ค์ ์ค์ ๋๋ฌด, ๋ฒค์น, ๊ฑด๋ฌผ ๋ค์์ ํ์ค์ ์ผ๋ก ๋ฐ์ด๋ค๋๊ณ ์จ๋ ๊ฐ์ ์๋ฌผ์ ์ฌ๋ฅํ ์ ์์ต๋๋ค. ์ด๋ ๋จ์ํ ๊ณต์ค์ ๋ ์๋ ์๋ฌผ๋ณด๋ค ํจ์ฌ ๋ ์ญ๋์ ์ด๊ณ ๋์ ์ ์ธ ๊ฒ์ํ๋ ์ด ๊ฒฝํ์ ๋ง๋ค์ด๋ ๋๋ค.
- ์ธํฐ๋ํฐ๋ธ ์คํ ๋ฆฌํ ๋ง: AR ๋ด๋ฌํฐ๋ธ ๊ฒฝํ์ ๊ฐ์ ์บ๋ฆญํฐ๊ฐ ์ฌ์ฉ์๋ฅผ ์์ ์ ์ง์ ํตํด ์๋ดํ๊ฒ ํ ์ ์์ต๋๋ค. ์บ๋ฆญํฐ๋ ์ค์ ๋ฌธ ๋ค์์ ์ฟ๋ณด๊ฑฐ๋ ์ค์ ์์์ ์์ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฆผ ๊ธฐ์ ์ ์ด๋ฌํ ์ํธ์์ฉ์ ๊ฐ์ธ์ ์ด๊ณ ํ์ค๊ฐ ์๊ฒ ๋ง๋ญ๋๋ค.
์ฐ์ ์ ์ง๋ณด์ ๋ฐ ์ ์กฐ
๊ฐ๋ฆผ ๊ธฐ์ ์ ๋ณต์กํ ๊ธฐ๊ณ๋ก ์์ ํ๋ ๊ธฐ์ ์์ ์์ง๋์ด์๊ฒ ์ค์ํ ๊ณต๊ฐ์ ๋งฅ๋ฝ์ ์ ๊ณตํฉ๋๋ค.
- ์๋ด ์๋ฆฌ: ์ค์ฝํ๋๋์ ์ธ๋ด ํ๋ ฅ ๋ฐ์ ์์ ์๋ ํ์ฅ ๊ธฐ์ ์๋ ํฐ๋น ์๋ฆฌ ์ง์นจ์ ์ป๊ธฐ ์ํด WebXR ๊ฒฝํ์ ์์ํ ์ ์์ต๋๋ค. ๋์งํธ ์ค๋ฒ๋ ์ด๋ ํน์ ๋ด๋ถ ๋ถํ์ ๊ฐ์กฐ ํ์ํ์ง๋ง, ๊ธฐ์ ์๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๊ทผ ํจ๋์ ์ด ๋๊น์ง ํฐ๋น์ ์ธ๋ถ ์ผ์ด์ฑ์ด ์ค๋ฒ๋ ์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฐ๋ ค, ๊ทธ๋ค์ด ์ฌ๋ฐ๋ฅธ ์๊ฐ์ ์ฌ๋ฐ๋ฅธ ๋ถํ์ ๋ณด๊ณ ์์์ ๋ณด์ฅํฉ๋๋ค.
WebXR ๊ฐ๋ฆผ ๊ธฐ์ ์ ๋ฏธ๋: ๋ค์ ๋จ๊ณ๋?
WebXR ๊ฐ์ฒด ๊ฐ๋ฆผ์ ์ด๋ฏธ ๋งค์ฐ ๊ฐ๋ ฅํ์ง๋ง, ๊ธฐ์ ์ ์ฌ์ ํ ์งํํ๊ณ ์์ต๋๋ค. ๊ธ๋ก๋ฒ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ํ์ค ๊ธฐ๊ตฌ๋ ๋ธ๋ผ์ฐ์ ์์ ๊ฐ๋ฅํ ๊ฒ์ ๊ฒฝ๊ณ๋ฅผ ๋ํ๊ณ ์์ต๋๋ค. ์์ผ๋ก ํผ์ณ์ง ํฅ๋ฏธ๋ก์ด ๊ธธ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ค์๊ฐ ๋์ ๊ฐ๋ฆผ
ํ์ฌ ๋๋ถ๋ถ์ ๊ตฌํ์ ํ๊ฒฝ์ ์ ์ ์ด๊ณ ์์ง์ด์ง ์๋ ๋ถ๋ถ์ผ๋ก ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌ๋ ๋ฐ ๋ฐ์ด๋ฉ๋๋ค. ๋ค์ ์ฃผ์ ๊ฐ์ฒ ๋ถ์ผ๋ ๋์ ๊ฐ๋ฆผ(dynamic occlusion)์ ๋๋ค. ์ฆ, ์ฌ๋์ด๋ ์ ์๋๋ฌผ๊ณผ ๊ฐ์ ์์ง์ด๋ ์ค์ ๊ฐ์ฒด๊ฐ ๊ฐ์ ์ฝํ ์ธ ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ฐ๋ฆฌ๋ ๋ฅ๋ ฅ์ ๋๋ค. ์น๊ตฌ๊ฐ ๋น์ ์์ ๊ฑธ์ด๊ฐ ๋ ๋ฐฉ ์์ AR ์บ๋ฆญํฐ๊ฐ ์ฌ์ค์ ์ผ๋ก ๊ฐ๋ ค์ง๋ ๊ฒ์ ์์ํด ๋ณด์ธ์. ์ด๋ ์์ฒญ๋๊ฒ ๋น ๋ฅด๊ณ ์ ํํ ๊น์ด ๊ฐ์ง ๋ฐ ์ฒ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ฉฐ, ํ๋ฐํ ์ฐ๊ตฌ ๊ฐ๋ฐ์ ํต์ฌ ๋ถ์ผ์ ๋๋ค.
์๋ฏธ๋ก ์ ์ฅ๋ฉด ์ดํด
๋จ์ํ ํฝ์ ์ ๊น์ด๋ฅผ ์๋ ๊ฒ์ ๋์ด, ๋ฏธ๋ ์์คํ ์ ๊ทธ ํฝ์ ์ด ๋ฌด์์ ๋ํ๋ด๋์ง ์ดํดํ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์๋ฏธ๋ก ์ ์ดํด(semantic understanding)๋ผ๊ณ ํฉ๋๋ค.
- ์ฌ๋ ์ธ์: ์์คํ ์ ์ฌ๋์ด ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌ๊ณ ์์์ ์๋ณํ๊ณ ๋ ๋ถ๋๋ฝ๊ณ ์ฌ์ค์ ์ธ ๊ฐ๋ฆผ ๊ฐ์ฅ์๋ฆฌ๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
- ์ฌ๋ฃ ์ดํด: ์ ๋ฆฌ์ฐฝ์ ์ธ์ํ๊ณ , ๊ทธ ๋ค์ ๋์ธ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ ํ๊ฐ ์๋๋ผ ๋ถ๋ถ์ ์ผ๋ก ๊ฐ๋ ค์ผ ํ๋ค๋ ๊ฒ์ ์์, ์ฌ์ค์ ์ธ ํฌ๋ช ๋์ ๋ฐ์ฌ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ ๋ ํ๋์จ์ด ๋ฐ AI ๊ธฐ๋ฐ ๊น์ด
๊ฐ๋ฆผ์ ํ์ง์ ๊น์ด ๋ฐ์ดํฐ์ ํ์ง๊ณผ ์ง์ ์ ์ผ๋ก ๊ด๋ จ์ด ์์ต๋๋ค.
- ๋ ๋์ ์ผ์: ๋ ๋ง์ ์๋น์์ฉ ์ฅ์น๊ฐ ํตํฉ๋ ๊ณ ํด์๋ LiDAR ๋ฐ ToF ์ผ์๋ฅผ ํ์ฌํ์ฌ ์ถ์๋ ๊ฒ์ผ๋ก ์์๋๋ฉฐ, ์ด๋ WebXR์ด ํ์ฉํ ์ ์๋ ๋ ๊นจ๋ํ๊ณ ์ ํํ ๊น์ด ๋งต์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
- AI ์ถ๋ก ๊น์ด: ํน์ ๊น์ด ์ผ์๊ฐ ์๋ ์์ญ์ต ๊ฐ์ ์ฅ์น๋ฅผ ์ํด, ๊ฐ์ฅ ์ ๋งํ ๊ธธ์ ์ธ๊ณต์ง๋ฅ(AI)๊ณผ ๋จธ์ ๋ฌ๋(ML)์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๊ณ ๊ธ ์ ๊ฒฝ๋ง์ ๋จ์ผ ํ์ค RGB ์นด๋ฉ๋ผ ํผ๋์์ ๋๋ผ์ธ ์ ๋๋ก ์ ํํ ๊น์ด ๋งต์ ์ถ๋ก ํ๋๋ก ํ๋ จ๋๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ด ๋ ํจ์จ์ ์ด ๋๋ฉด, ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ํจ์ฌ ๋ ๋์ ๋ฒ์์ ์ฅ์น์ ๊ณ ํ์ง ๊ฐ๋ฆผ ๊ธฐ์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
ํ์คํ ๋ฐ ๋ธ๋ผ์ฐ์ ์ง์
WebXR ๊ฐ๋ฆผ ๊ธฐ์ ์ด ๋ณดํธํ๋๋ ค๋ฉด `webxr-depth-sensing` ๋ชจ๋์ด ์ ํ์ ๊ธฐ๋ฅ์์ ์์ ํ ๋น์ค๋๊ณ ๋ณดํธ์ ์ผ๋ก ์ง์๋๋ ์น ํ์ค์ผ๋ก ๋์๊ฐ์ผ ํฉ๋๋ค. ๋ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋งค๋ ฅ์ ์ธ ๊ฒฝํ์ ๊ตฌ์ถํจ์ ๋ฐ๋ผ, ๋ธ๋ผ์ฐ์ ๊ณต๊ธ์ ์ฒด๋ ๋ชจ๋ ํ๋ซํผ์์ ๊ฒฌ๊ณ ํ๊ณ ์ต์ ํ๋์์ผ๋ฉฐ ์ผ๊ด๋ ๊ตฌํ์ ์ ๊ณตํ๋ ค๋ ๋๊ธฐ๋ฅผ ๋์ฑ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์์ํ๊ธฐ: ๊ฐ๋ฐ์๋ฅผ ์ํ ํ๋ ์ด๊ตฌ
ํ์ค๊ฐ ์๋ ์น ๊ธฐ๋ฐ ์ฆ๊ฐํ์ค์ ์๋๊ฐ ๋๋ํ์ต๋๋ค. ๋น์ ์ด ์น ๊ฐ๋ฐ์, 3D ์ํฐ์คํธ ๋๋ ํฌ๋ฆฌ์์ดํฐ๋ธ ๊ธฐ์ ์๋ผ๋ฉด, ์ง๊ธ๋ณด๋ค ์คํ์ ์์ํ๊ธฐ์ ๋ ์ข์ ๋๋ ์์์ต๋๋ค.
- ํ๋ ์์ํฌ ํ์: Three.js ๋ฐ Babylon.js์ ๊ฐ์ ์ฃผ์ WebGL ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ธ์ ํ๋ ์์ํฌ์ธ A-Frame์ WebXR `depth-sensing` ๋ชจ๋์ ๋ํ ์ง์์ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. ์์ ํ๋ก์ ํธ๋ฅผ ์ํด ๊ณต์ ๋ฌธ์์ ์์ ๋ฅผ ํ์ธํ์ญ์์ค.
- ์ํ ์ฐธ์กฐ: ๋ชฐ์ ํ ์น ์ํน ๊ทธ๋ฃน(Immersive Web Working Group)์ GitHub์ ๊ณต์ WebXR ์ํ ์ธํธ๋ฅผ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ ์์ API ํธ์ถ์ ์ดํดํ๊ณ ๊ฐ๋ฆผ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฐธ์กฐ ๊ตฌํ์ ๋ณด๋ ๋ฐ ๊ท์คํ ์๋ฃ์ ๋๋ค.
- ๊ฐ๋ฅํ ์ฅ์น์์ ํ ์คํธ: ๊ฐ๋ฆผ์ด ์๋ํ๋ ๊ฒ์ ๋ณด๋ ค๋ฉด ํธํ๋๋ ์ฅ์น์ ๋ธ๋ผ์ฐ์ ๊ฐ ํ์ํฉ๋๋ค. Google์ ARCore๋ฅผ ์ง์ํ๋ ์ต์ Android ํด๋ํฐ๊ณผ ์ต์ ๋ฒ์ ์ Chrome์ด ์์ํ๊ธฐ์ ์ข์ ๊ณณ์ ๋๋ค. ๊ธฐ์ ์ด ์ฑ์ํจ์ ๋ฐ๋ผ ์ง์์ ๊ณ์ ํ๋๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก : ํ์ค์ ๊ตฌ์กฐ ์์ ๋์งํธ์ ์ฎ์ด ๋ฃ๊ธฐ
๊ฐ์ฒด ๊ฐ๋ฆผ์ ๊ธฐ์ ์ ๊ธฐ๋ฅ์ ๋์ด์ ๋ค๋ฆฌ์ ๋๋ค. ์ด๋ ๋์งํธ๊ณผ ๋ฌผ๋ฆฌ์ ์ธ๊ณ ์ฌ์ด์ ๊ฒฉ์ฐจ๋ฅผ ๋ฉ์ฐ๊ณ , ์ฆ๊ฐํ์ค์ ์ ๊ธฐํ ๊ฒ์์ ์ง์ ์ผ๋ก ์ ์ฉํ๊ณ , ๋ฏฟ์ ์ ์์ผ๋ฉฐ, ํตํฉ๋ ๋งค์ฒด๋ก ๋ณํ์ํต๋๋ค. ์ด๋ ๊ฐ์ ์ฝํ ์ธ ๊ฐ ์ฐ๋ฆฌ ์ธ๊ณ์ ๊ท์น์ ์กด์คํ๊ฒ ํ๊ณ , ๊ทธ๋ ๊ฒ ํจ์ผ๋ก์จ ๊ทธ ์์์ ์์ ์ ์๋ฆฌ๋ฅผ ์ป๊ฒ ํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐฉํ ์น์ผ๋ก ๊ฐ์ ธ์ด์ผ๋ก์จ, WebXR์ ๋จ์ง AR์ ๋ ํ์ค์ ์ผ๋ก ๋ง๋๋ ๊ฒ์ด ์๋๋ผ, ์ ์ธ๊ณ์ ์ผ๋ก ๋ ์ ๊ทผํ๊ธฐ ์ฝ๊ณ , ๋ ๊ณตํํ๋ฉฐ, ๋ ์ํฅ๋ ฅ ์๊ฒ ๋ง๋ค๊ณ ์์ต๋๋ค. ๊ฐ์ ๊ฐ์ฒด๊ฐ ๊ณต๊ฐ์ ์ด์ํ๊ฒ ๋ ๋ค๋๋ ์๋๋ ์ผ๋ง ๋จ์ง ์์์ต๋๋ค. AR์ ๋ฏธ๋๋ ๋์งํธ ๊ฒฝํ์ด ์ฐ๋ฆฌ ํ์ค์ ๊ตฌ์กฐ ์์ ๋งค๋๋ฝ๊ฒ ์ง์ฌ ๋ค์ด๊ฐ, ์ฐ๋ฆฌ ๊ฐ๊ตฌ ๋ค์ ์จ๊ณ , ๋ฌธํ์ผ๋ก ์ฟ๋ณด๋ฉฐ, ํ ๋ฒ์ ํ๋์ฉ ๊ฐ๋ ค์ง ํฝ์ ๋ก ๋ฐ๊ฒฌ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ๋๋ค. ์ด์ ๊ทธ ๋๊ตฌ๋ ์ ์ธ๊ณ ์น ํฌ๋ฆฌ์์ดํฐ ์ปค๋ฎค๋ํฐ์ ์์ ์ฅ์ด์ก์ต๋๋ค. ์ง๋ฌธ์, ์ฐ๋ฆฌ๋ ์ด๋ค ์๋ก์ด ํ์ค์ ๊ตฌ์ถํ ๊ฒ์ธ๊ฐ? ์ ๋๋ค.