- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > IT¿¡¼¼ÀÌ > WebXR·Î ¸¸µå´Â AR/VR[¿¡ÀÌÄÜÃâÆÇ]
VR(°¡»ó Çö½Ç)À̳ª AR(Áõ° Çö½Ç)À̶ó´Â ¿ë¾î¸¦ µéÀ¸¸é º¹ÀâÇÏ°í ¾î·Á¿î °³³äÀ» ÀÌÇØÇÏ°í ±×°ÍÀ» ¹ÙÅÁÀ¸·Î ±¸ÇöÇØ¾ß ÇÏ´Â ±â¼úÀ̶ó°í »ý°¢ÇÏ°Ô µÈ´Ù. ÇÏÁö¸¸ ÀÌ Ã¥Àº ±âÃÊ Áö½Ä ¹× °í°¡ÀÇ Àåºñ°¡ ¾ø¾îµµ °¡»ó/Áõ° Çö½ÇÀ» À¥¿¡¼ ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Â °ÍÀ» º¸¿©ÁØ´Ù. ±âÁ¸ÀÇ 3D ±×·¡ÇÈ Çʼö °³³ä ¼³¸í°ú ´Ü°èº° ½Ç½ÀÀ» WebXR API·Î ¾ó¸¶³ª °£´ÜÇÏ°í ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´ÂÁö °æÇèÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀúÀÚ: ¶óÄɽ¬ ¹Ù·ç¾Æ
1Àå. ½ÃÀÛÇϱâ
__WebGL
____ºê¶ó¿ìÀú
____·»´õ¸µ ¿£Áø
__¹öÆÛ
__GPU
__ÇöÀç ±×¸®°í ¹Ì·¡
__¼³Ä¡Çϱâ
__ÄÚµå ÆíÁý±â
____Çϵå¿þ¾î
____Ç÷§Æû
__·ÎÄà À¥ ¼¹ö °³¹ß
____Visual Studio Code ¶óÀÌºê ¼¹ö ¼³Á¤Çϱâ
____³ëµåJS http-server ÆÐÅ°Áö
____ÆÄÀ̽ã HTTP ¼¹ö ¸ðµâ
____Serverz - ·ÎÄà À¥ °³¹ßÀ» À§ÇÑ ÃÊ°£´Ü À¥ ¼¹ö
__WebXR API¿Í ȣȯµÇ´Â À¥ ºê¶ó¿ìÀú
____XR µð¹ÙÀ̽º
____WebXR ¿¡¹Ä·¹ÀÌÅÍ
__Á¤¸®
2Àå. WebGLÀÇ ½ÃÀÛ°ú ½ÇÇà
__HTMLÀÇ Çü¼º°ú ±â´É
__ĵ¹ö½º
__½Ç½À 2-1: ù ¹ø° WebGL ¾ÖÇø®ÄÉÀ̼Ç
__ĵ¹ö½º¿¡ ´ëÇÑ ÂüÁ¶
__WebGL ÄÜÅؽºÆ®
____WebGL ÄÜÅؽºÆ® ±×¸®±â
____ĵ¹ö½º Å©±â Á¶Á¤
__¼ÎÀÌ´õ
____¼Ò½º
____ÄÄÆÄÀϸµ
____¿¬°á
__¹öÆÛ
____Á¤Á¡ À§Ä¡ ¼³Á¤
____¼ÎÀÌ´õ¿Í ¹öÆÛ ¿¬°á
__±×¸®±â
____ÇØ»óµµ
____±×¸®±â ¸ðµå
__Á¤¸®
3Àå. WebGLÀÇ 3Â÷¿øÀ» ÇâÇØ
__XYZÀÇ ±âÃÊ
__½Ç½À 3-1: 3Â÷¿øÀÇ ±×¸² ±×¸®±â
____WebGL ÆÄÀÌÇÁ¶óÀÎ
____½ÃÀÛÇϱâ
____°ü½É»ç ºÐ¸®
____¿©·¯ °¡Áö °¡´É¼º
____¹®ÀÚ ±×´ë·Î Çؼ®Çϱâ
____Æ÷ÀÎÅÍ À̵¿
____±×¸®±â ¸ðµå È£Ãâ
__½Ç½À 3-2: Á¤»ç°¢Çü Á¦°ö
____Z Ÿ¿î
____µÎ ¹ø° »ö
__½Ç½À 3-3: 3Â÷¿øÀÇ 3¸é
____´õ ¸¹Àº ¸ð¾ç, ´õ ¸¹Àº Á¤Á¡, ´õ ¸¹Àº ÁÂÇ¥
____¼öÇÐ ¸¶¼ú
__Á¤¸®
4Àå. WebGLÀÇ Çà·Ä, º¯È¯, °üÁ¡
__Áöµµ »óÀÚ
__´ë¼öÇÐ 2¿¡¼ ³õÄ£ ³»¿ë
____º¯È¯
____È®Àå
____ȸÀü
__¿©·¯ °³¿¡¼ Çϳª·Î
__Æ®¸®¿¡ ÀÖ´Â GPU¿Í Çà·Ä
__½Ç½À 4-1: Çà·Ä Çõ¸í
____GLMatrixjs °¡Á®¿À±â
____¼ÎÀÌ´õÀÇ À¯´ÏÆû
____½ÇÆÐÀÇ ¼ø¼
____Çà·ÄÀÇ ¸Þ¸ð¸® ¸¸µé±â
____°¡Á®¿À±â ¼ø¼
____³ª´Â ´©±¸Àΰ¡?
____Çà·Ä·Î ¿òÁ÷À̱â
____¾Ö´Ï¸ÞÀ̼Ç
____¾Ö´Ï¸ÅÀÌ¼Ç ·çÇÁ
____ÆÄÆ®1 ¿ä¾à
__Á¤Çü ¹× Åõ½Ã Çà·Ä Åõ¿µ¹ý
____ÀýµÎü º¸±â
____½Ç½À 3, ÆÄÆ® 2: ¿ø±Ù°¨ÀÇ º¯È
____ÆÄÆ® 2 ÀçÁ¡°Ë
__Á¤¸®
5Àå. Three.js »ìÆ캸±â
__Three.js ¶õ?
____3D ±×·¡ÇÈÀ» À§ÇÑ ½Åµð»çÀÌÀú
____WebGL º¸´Ù ´õ ½±°Ô
__½Ç½À 5- 1 : ¸ÅÆ®¸¯½º ¸®¹Í½º
____Three.js ¼Ò½º ÄÚµå ´Ù¿î·Îµå
____ÀÚ¹Ù½ºÅ©¸³Æ® ¸ðµâ ½Ã½ºÅÛ È°¿ë
____ÄÜÅؽºÆ® ¸¸µé±â
____Ä«¸Þ¶ó ¸¸µé±â
____Àå¸é ¸¸µé±â
____Áö¿À¸ÞÆ®¸®
____ÀçÁú
____¸Þ½Ã
____¾Ö´Ï¸ÞÀÌ¼Ç ·»´õ¸µ
____°ËÁ¤»ö ȸé
____Á¶¸í
____¿Ïº®ÇÑ Çȼ¿
____¿ä¾à
__½Ç½À 5-2: ÀçÁú, ÅؽºÃ³
____±¸ Áö¿À¸ÞÆ®¸®
____Lambert ÀçÁú
____ÅؽºÃ³
____Three.jsÀÇ TextureLoader
____Á¶¸í¸ðµ¨
____¿ä¾à
__½Ç½À 5-3: ¾È°³, ¹è°æ, ÁÖº¯ Á¶¸í, ³ë¸Ö ¸Ê
____Àå¸é ¹è°æ
____¾È°³
____³ë¸Ö ¸Ê Àû¿ë
____¹Ó¸ÅÇÎ
____À̹漺
____Æò¸éÀÇ ³ë¸Ö ¸ÅÇÎ
____ÁÖº¯Á¶¸í
____ÆĶó¸ÞÆ®¸¯ ¹æÁ¤½ÄÀ» »ç¿ëÇÑ ¾Ö´Ï¸ÞÀ̼Ç
____¿ä¾à
__Á¤¸®
6Àå. WebXRÀ» ÅëÇÑ VR ÁøÀÔ
__µð¹ö±× ȯ°æ ¼³Á¤
____¿Àŧ·¯½º Äù½ºÆ®¿¡¼ WebXR µð¹ö±ë
__½Ç°¨Çü À¥¿¡¼ µ¥¸ð ½ÇÇà
__½Ç°¨Çü VR ȸé Áغñ
____WebXR ¾ÖÇø®ÄÉÀ̼ÇÀÇ »ý¸í ÁÖ±â
__½Ç½À 6 ÆÄÆ®1: WebXR API¸¦ ÅëÇÑ XR ¼¼¼Ç »ý¼º
____1´Ü°è: WebXRÀÌ Áö¿øµÇ´Â°¡?
____2´Ü°è: »ç¿ëÀÚ¿¡°Ô XR ±â´É ¾Ë¸®±â
____3´Ü°è: »ç¿ëÀÚ È°¼ºÈ À̺¥Æ® »ç¿ë
____4´Ü°è: XR ¼¼¼Ç ¿äû
____ÆÄÆ® 1 ¿ä¾à
____½Ç½À 6 ÆÄÆ® 2: ½ºÄÚÇÁ, Ŭ·ÎÀú, ¸ðµâ, ½Ì±ÛÅæ
____Three.jsÀÇ WebXRManager
____½ºÄÚÇÁ
____Ŭ·ÎÀú
____ÆÄÆ®2 ¿ä¾à
__½Ç½À 6, ÆÄÆ® 3: Ȩ½ºÆ®·¹Ä¡
____·ÎÄà °³¹ß ¼¹ö¿¡¼ VR ÀåÄ¡·Î Æ÷Æ® Æ÷¿öµù È°¼ºÈ
____ÆÄÆ® 3 ¿ä¾à
__Á¤¸®
7Àå. Three.js¿Í WebXR API¸¦ »ç¿ëÇØ Áõ° Çö½Ç À¥»çÀÌÆ® ¸¸µé±â
____½Ç½À 7, ÆÄÆ® 1: ¶° ÀÖ´Â Á¤À°¸éü
____WebXRÀÇ °ø°£ ÃßÀû
____³ëµå¿Í ³ëµå ÆÐÅ°Áö °ü¸®ÀÚ·Î Three.js ¼³Ä¡
____¾ÖÇø®ÄÉÀ̼ÇÀÇ »ý¸í Áֱ⠰³¿ä
____Àå¸é ±¸¼º ¿ä¼Ò ·Îµå
____ÃʱâÈ ÇÔ¼öÀÇ º»¹® ÀÛ¼º
____¹öÆ°ÀÇ À̺¥Æ® ¸®½º³Ê º»¹® ÀÛ¼º
____AR ¼¼¼Ç ½ÃÀÛ
____¹öÆ° ¿ä¼ÒÀÇ »óÅ º¯°æ
____XR ¼¼¼Ç¿¡ ÂüÁ¶ ÀúÀå
____XR ¼¼¼ÇÀÇ XR WebGL °èÃþ ¼Ó¼ºÀ» Three.js ·»´õ¸µ ÄÜÅؽºÆ®·Î ¼³Á¤
____ARÀ» À§ÇÑ XR ¼¼¼ÇÀÇ ÂüÁ¶ °ø°£ ¼³Á¤
____Three.js XR ¸Å´ÏÀúÀÇ XR ¼¼¼Ç ¼Ó¼ºÀ» ÇöÀç XR ¼¼¼ÇÀ¸·Î ¼³Á¤
____animate( ) ÇÔ¼ö È£Ãâ
____render( ) ÇÔ¼ö ÁýÇÕÀ» ÄݹéÀ¸·Î »ç¿ëÇØ Three.jsÀÇ SetAnimationLoop( ) È£Ãâ
____¼¼¼Ç Á¾·á¿¡ ´ëÇÑ À̺¥Æ® ó¸® ÇÔ¼ö »ý¼º
____¾ÖÇø®ÄÉÀÌ¼Ç »óŸ¦ Àç¼³Á¤ÇÏ´Â ÇÔ¼ö »ý¼º
____ÆÄÆ® 1 ¿ä¾à
__½Ç½À 7 ÆÄÆ® 2: È÷Æ® Å×½ºÆ®
____ÄÁÆ®·Ñ·¯¿Í À̺¥Æ®
____·¹Æ¼Å¬ »ý¼º
____XR Äõ¸® ÇÔ¼ö À̵¿
____WebXR °ø°£ ¾ÞÄ¿ ¸ðµâ
____Àå¸é ½ÇÇà
____ÆÄÆ® 2 ¿ä¾à
__Á¤¸®
8Àå. A- FrameÀ¸·Î À¥¿ë VR ±¸Ãà
__º¹½À
__A- Frame ¹«¾ùÀΰ¡?
__½Ç½À 8-1: A- FrameÀÇ ±âº» »À´ë
____¼³Ä¡Çϱâ
____´õ ³ªÀº Á¦Ç°À¸·Î
____Ãß»óÈ·Î ÀÎÇÑ ¼Õ½Çµµ °¨¼ÒÇØ¾ß ÇÑ´Ù
____¿£Æ¼Æ¼ ÄÄÆ÷³ÍÆ® ½Ã½ºÅÛ
____A-Frame: Three.js¸¦ À§ÇÑ ¿£Æ¼Æ¼ ÄÄÆ÷³ÍÆ® ½Ã½ºÅÛ ±â¹Ý ÇÁ·¹ÀÓ¿öÅ©
____¿£Æ¼Æ¼
____ÄÄÆ÷³ÍÆ®
____±âº» ¿ä¼Ò
____½Ã½ºÅÛ
____¿ä¾à
__Using Three.js in A-Frame
__½Ç½À 8-2: Three.js ¹× A-Frame ¿£Æ¼Æ¼
____À©µµ¿ì °´Ã¼·Î¼
____A-Frame ¾È¿¡ ÀÖ´Â Three.js ¼Ó¼º
____DOM API Á¢±ÙÇϱâ
____Three.js ±×·ì°ú getObject3D( )
____Àå¸é ½ÇÇà
____¿ä¾à
__A-Frame¿¡¼ Ä¿½ºÅÒ ÄÄÆ÷³ÍÆ®
__½Ç½À 8-3: Ä¿½ºÅÒ A-Frame ÄÄÆ÷³ÍÆ® ºôµå
____½ÃÀÛÇϱâ
____registerComponent( )
____ÄÄÆ÷³ÍÆ® ³»ºÎ¿¡¼ ÄÄÆ÷³ÍÆ® µ¥ÀÌÅÍ ÂüÁ¶
____¿£Æ¼Æ¼¿¡ Ä¿½ºÅÒ ÄÄÆ÷³ÍÆ® Ãß°¡
____Ä¿½ºÅÒ ÄÄÆ÷³ÍÆ®¸¦ ÅëÇÑ Three.js ¼Ó¼º
____¡®this.el¡¯
____Àå¸é ½ÇÇà
____¿ä¾à
__µÎ ¸¶¸®ÀÇ »õ, ÇϳªÀÇ ÄÄÆ÷³ÍÆ®
__½Ç½À 8-4: Àܵð Áö¸é
____Æò¸é ¿£Æ¼Æ¼¿¡ »ç¿ëÀÚ ÁöÁ¤ ÄÄÆ÷³ÍÆ® Ãß°¡
____»ç¿ëÀÚ ÁöÁ¤ ÄÄÆ÷³ÍÆ® ¼Ó¼º Ãß°¡
____Á¶°ÇºÎ ·ÎÁ÷À» ÅëÇÑ ÄÄÆ÷³ÍÆ® ´Ù¾ç¼º
____Á¶¸í ¸ðµ¨ÀÌ À¯ÁöµÊ
____ÄÄÆ÷³ÍÆ®·Î¼ÀÇ ¾È°³
____¿ä¾à
__Á¤¸®
9Àå. A- FrameÀÇ ¹°¸® ¿£Áø°ú UI
__°ÔÀÓ ¿£ÁøÀº ¾îµð¿¡ ÀÖ³ª¿ä?
__½Ç½À 9-1: A-Frame¿¡¼ ¹°¸® ½Ã½ºÅÛ °¡Á®¿À±â
____A-Frame°ú ½Ã½ºÅÛ ¼³Ä¡Çϱâ
____A-Frame °³¹ßÀÚ ¿¡ÄڽýºÅÛ
____A-Frame ¹°¸® ½Ã½ºÅÛ
____Àå¸é ¿£Æ¼Æ¼¿¡ ½Ã½ºÅÛ ·Îµå
____¿£Æ¼Æ¼¿¡ ¹°¸® ¼Ó¼º Ãß°¡
____HTTP vs. HTTPS
____¿ä¾à
__½Ç½À 9-2
____½´ÆÛÇÚµå
____ÅÍÄ¡ ÄÁÆ®·Ñ·¯ ÄÄÆ÷³ÍÆ®
____A-Frame Physics Extra ½Ã½ºÅÛ
____Àå¸é ½ÇÇà
____¿ä¾à
__Á¤¸®
10Àå. A-Frame ¹× ±êÇãºê ÆäÀÌÁö¸¦ »ç¿ëÇØ AR¿¡¼ 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¸ðµ¨ ¹èÆ÷
__HTTPS ¹× XR Å×½ºÆ®
____GitHub
__½Ç½À 10-1: GLTF ¸ðµ¨À» A-Frame¿¡ ¾÷·ÎµåÇÏ°í
__±êÇãºê ÆäÀÌÁö¿¡ ÆÛºí¸®½ÌÇϱâ
____±êÇãºê ¼Â¾÷
____GLTF ¿¡¼Â
____GLTF-Model ¿£Æ¼Æ¼ ÄÄÆ÷³ÍÆ®
____Àå¸é ½ÇÇà
____¿ä¾à
__½Ç½À 10-2: A-Frame¿¡¼ GLTF ¸ðµ¨ ¾Ö´Ï¸ÞÀ̼Ç
____A-Frame ¿¢½ºÆ®¶ó
____¾Ö´Ï¸ÞÀÌ¼Ç ¹Í¼ ÄÄÆ÷³ÍÆ®
____»ó´ëÀû À§Ä¡ º¯È¯
____Àå¸é ½ÇÇà
____¿ä¾à
__Á¤¸®
__°á·Ð
ã¾Æº¸±â
__WebGL
____ºê¶ó¿ìÀú
____·»´õ¸µ ¿£Áø
__¹öÆÛ
__GPU
__ÇöÀç ±×¸®°í ¹Ì·¡
__¼³Ä¡Çϱâ
__ÄÚµå ÆíÁý±â
____Çϵå¿þ¾î
____Ç÷§Æû
__·ÎÄà À¥ ¼¹ö °³¹ß
____Visual Studio Code ¶óÀÌºê ¼¹ö ¼³Á¤Çϱâ
____³ëµåJS http-server ÆÐÅ°Áö
____ÆÄÀ̽ã HTTP ¼¹ö ¸ðµâ
____Serverz - ·ÎÄà À¥ °³¹ßÀ» À§ÇÑ ÃÊ°£´Ü À¥ ¼¹ö
__WebXR API¿Í ȣȯµÇ´Â À¥ ºê¶ó¿ìÀú
____XR µð¹ÙÀ̽º
____WebXR ¿¡¹Ä·¹ÀÌÅÍ
__Á¤¸®
2Àå. WebGLÀÇ ½ÃÀÛ°ú ½ÇÇà
__HTMLÀÇ Çü¼º°ú ±â´É
__ĵ¹ö½º
__½Ç½À 2-1: ù ¹ø° WebGL ¾ÖÇø®ÄÉÀ̼Ç
__ĵ¹ö½º¿¡ ´ëÇÑ ÂüÁ¶
__WebGL ÄÜÅؽºÆ®
____WebGL ÄÜÅؽºÆ® ±×¸®±â
____ĵ¹ö½º Å©±â Á¶Á¤
__¼ÎÀÌ´õ
____¼Ò½º
____ÄÄÆÄÀϸµ
____¿¬°á
__¹öÆÛ
____Á¤Á¡ À§Ä¡ ¼³Á¤
____¼ÎÀÌ´õ¿Í ¹öÆÛ ¿¬°á
__±×¸®±â
____ÇØ»óµµ
____±×¸®±â ¸ðµå
__Á¤¸®
3Àå. WebGLÀÇ 3Â÷¿øÀ» ÇâÇØ
__XYZÀÇ ±âÃÊ
__½Ç½À 3-1: 3Â÷¿øÀÇ ±×¸² ±×¸®±â
____WebGL ÆÄÀÌÇÁ¶óÀÎ
____½ÃÀÛÇϱâ
____°ü½É»ç ºÐ¸®
____¿©·¯ °¡Áö °¡´É¼º
____¹®ÀÚ ±×´ë·Î Çؼ®Çϱâ
____Æ÷ÀÎÅÍ À̵¿
____±×¸®±â ¸ðµå È£Ãâ
__½Ç½À 3-2: Á¤»ç°¢Çü Á¦°ö
____Z Ÿ¿î
____µÎ ¹ø° »ö
__½Ç½À 3-3: 3Â÷¿øÀÇ 3¸é
____´õ ¸¹Àº ¸ð¾ç, ´õ ¸¹Àº Á¤Á¡, ´õ ¸¹Àº ÁÂÇ¥
____¼öÇÐ ¸¶¼ú
__Á¤¸®
4Àå. WebGLÀÇ Çà·Ä, º¯È¯, °üÁ¡
__Áöµµ »óÀÚ
__´ë¼öÇÐ 2¿¡¼ ³õÄ£ ³»¿ë
____º¯È¯
____È®Àå
____ȸÀü
__¿©·¯ °³¿¡¼ Çϳª·Î
__Æ®¸®¿¡ ÀÖ´Â GPU¿Í Çà·Ä
__½Ç½À 4-1: Çà·Ä Çõ¸í
____GLMatrixjs °¡Á®¿À±â
____¼ÎÀÌ´õÀÇ À¯´ÏÆû
____½ÇÆÐÀÇ ¼ø¼
____Çà·ÄÀÇ ¸Þ¸ð¸® ¸¸µé±â
____°¡Á®¿À±â ¼ø¼
____³ª´Â ´©±¸Àΰ¡?
____Çà·Ä·Î ¿òÁ÷À̱â
____¾Ö´Ï¸ÞÀ̼Ç
____¾Ö´Ï¸ÅÀÌ¼Ç ·çÇÁ
____ÆÄÆ®1 ¿ä¾à
__Á¤Çü ¹× Åõ½Ã Çà·Ä Åõ¿µ¹ý
____ÀýµÎü º¸±â
____½Ç½À 3, ÆÄÆ® 2: ¿ø±Ù°¨ÀÇ º¯È
____ÆÄÆ® 2 ÀçÁ¡°Ë
__Á¤¸®
5Àå. Three.js »ìÆ캸±â
__Three.js ¶õ?
____3D ±×·¡ÇÈÀ» À§ÇÑ ½Åµð»çÀÌÀú
____WebGL º¸´Ù ´õ ½±°Ô
__½Ç½À 5- 1 : ¸ÅÆ®¸¯½º ¸®¹Í½º
____Three.js ¼Ò½º ÄÚµå ´Ù¿î·Îµå
____ÀÚ¹Ù½ºÅ©¸³Æ® ¸ðµâ ½Ã½ºÅÛ È°¿ë
____ÄÜÅؽºÆ® ¸¸µé±â
____Ä«¸Þ¶ó ¸¸µé±â
____Àå¸é ¸¸µé±â
____Áö¿À¸ÞÆ®¸®
____ÀçÁú
____¸Þ½Ã
____¾Ö´Ï¸ÞÀÌ¼Ç ·»´õ¸µ
____°ËÁ¤»ö ȸé
____Á¶¸í
____¿Ïº®ÇÑ Çȼ¿
____¿ä¾à
__½Ç½À 5-2: ÀçÁú, ÅؽºÃ³
____±¸ Áö¿À¸ÞÆ®¸®
____Lambert ÀçÁú
____ÅؽºÃ³
____Three.jsÀÇ TextureLoader
____Á¶¸í¸ðµ¨
____¿ä¾à
__½Ç½À 5-3: ¾È°³, ¹è°æ, ÁÖº¯ Á¶¸í, ³ë¸Ö ¸Ê
____Àå¸é ¹è°æ
____¾È°³
____³ë¸Ö ¸Ê Àû¿ë
____¹Ó¸ÅÇÎ
____À̹漺
____Æò¸éÀÇ ³ë¸Ö ¸ÅÇÎ
____ÁÖº¯Á¶¸í
____ÆĶó¸ÞÆ®¸¯ ¹æÁ¤½ÄÀ» »ç¿ëÇÑ ¾Ö´Ï¸ÞÀ̼Ç
____¿ä¾à
__Á¤¸®
6Àå. WebXRÀ» ÅëÇÑ VR ÁøÀÔ
__µð¹ö±× ȯ°æ ¼³Á¤
____¿Àŧ·¯½º Äù½ºÆ®¿¡¼ WebXR µð¹ö±ë
__½Ç°¨Çü À¥¿¡¼ µ¥¸ð ½ÇÇà
__½Ç°¨Çü VR ȸé Áغñ
____WebXR ¾ÖÇø®ÄÉÀ̼ÇÀÇ »ý¸í ÁÖ±â
__½Ç½À 6 ÆÄÆ®1: WebXR API¸¦ ÅëÇÑ XR ¼¼¼Ç »ý¼º
____1´Ü°è: WebXRÀÌ Áö¿øµÇ´Â°¡?
____2´Ü°è: »ç¿ëÀÚ¿¡°Ô XR ±â´É ¾Ë¸®±â
____3´Ü°è: »ç¿ëÀÚ È°¼ºÈ À̺¥Æ® »ç¿ë
____4´Ü°è: XR ¼¼¼Ç ¿äû
____ÆÄÆ® 1 ¿ä¾à
____½Ç½À 6 ÆÄÆ® 2: ½ºÄÚÇÁ, Ŭ·ÎÀú, ¸ðµâ, ½Ì±ÛÅæ
____Three.jsÀÇ WebXRManager
____½ºÄÚÇÁ
____Ŭ·ÎÀú
____ÆÄÆ®2 ¿ä¾à
__½Ç½À 6, ÆÄÆ® 3: Ȩ½ºÆ®·¹Ä¡
____·ÎÄà °³¹ß ¼¹ö¿¡¼ VR ÀåÄ¡·Î Æ÷Æ® Æ÷¿öµù È°¼ºÈ
____ÆÄÆ® 3 ¿ä¾à
__Á¤¸®
7Àå. Three.js¿Í WebXR API¸¦ »ç¿ëÇØ Áõ° Çö½Ç À¥»çÀÌÆ® ¸¸µé±â
____½Ç½À 7, ÆÄÆ® 1: ¶° ÀÖ´Â Á¤À°¸éü
____WebXRÀÇ °ø°£ ÃßÀû
____³ëµå¿Í ³ëµå ÆÐÅ°Áö °ü¸®ÀÚ·Î Three.js ¼³Ä¡
____¾ÖÇø®ÄÉÀ̼ÇÀÇ »ý¸í Áֱ⠰³¿ä
____Àå¸é ±¸¼º ¿ä¼Ò ·Îµå
____ÃʱâÈ ÇÔ¼öÀÇ º»¹® ÀÛ¼º
____¹öÆ°ÀÇ À̺¥Æ® ¸®½º³Ê º»¹® ÀÛ¼º
____AR ¼¼¼Ç ½ÃÀÛ
____¹öÆ° ¿ä¼ÒÀÇ »óÅ º¯°æ
____XR ¼¼¼Ç¿¡ ÂüÁ¶ ÀúÀå
____XR ¼¼¼ÇÀÇ XR WebGL °èÃþ ¼Ó¼ºÀ» Three.js ·»´õ¸µ ÄÜÅؽºÆ®·Î ¼³Á¤
____ARÀ» À§ÇÑ XR ¼¼¼ÇÀÇ ÂüÁ¶ °ø°£ ¼³Á¤
____Three.js XR ¸Å´ÏÀúÀÇ XR ¼¼¼Ç ¼Ó¼ºÀ» ÇöÀç XR ¼¼¼ÇÀ¸·Î ¼³Á¤
____animate( ) ÇÔ¼ö È£Ãâ
____render( ) ÇÔ¼ö ÁýÇÕÀ» ÄݹéÀ¸·Î »ç¿ëÇØ Three.jsÀÇ SetAnimationLoop( ) È£Ãâ
____¼¼¼Ç Á¾·á¿¡ ´ëÇÑ À̺¥Æ® ó¸® ÇÔ¼ö »ý¼º
____¾ÖÇø®ÄÉÀÌ¼Ç »óŸ¦ Àç¼³Á¤ÇÏ´Â ÇÔ¼ö »ý¼º
____ÆÄÆ® 1 ¿ä¾à
__½Ç½À 7 ÆÄÆ® 2: È÷Æ® Å×½ºÆ®
____ÄÁÆ®·Ñ·¯¿Í À̺¥Æ®
____·¹Æ¼Å¬ »ý¼º
____XR Äõ¸® ÇÔ¼ö À̵¿
____WebXR °ø°£ ¾ÞÄ¿ ¸ðµâ
____Àå¸é ½ÇÇà
____ÆÄÆ® 2 ¿ä¾à
__Á¤¸®
8Àå. A- FrameÀ¸·Î À¥¿ë VR ±¸Ãà
__º¹½À
__A- Frame ¹«¾ùÀΰ¡?
__½Ç½À 8-1: A- FrameÀÇ ±âº» »À´ë
____¼³Ä¡Çϱâ
____´õ ³ªÀº Á¦Ç°À¸·Î
____Ãß»óÈ·Î ÀÎÇÑ ¼Õ½Çµµ °¨¼ÒÇØ¾ß ÇÑ´Ù
____¿£Æ¼Æ¼ ÄÄÆ÷³ÍÆ® ½Ã½ºÅÛ
____A-Frame: Three.js¸¦ À§ÇÑ ¿£Æ¼Æ¼ ÄÄÆ÷³ÍÆ® ½Ã½ºÅÛ ±â¹Ý ÇÁ·¹ÀÓ¿öÅ©
____¿£Æ¼Æ¼
____ÄÄÆ÷³ÍÆ®
____±âº» ¿ä¼Ò
____½Ã½ºÅÛ
____¿ä¾à
__Using Three.js in A-Frame
__½Ç½À 8-2: Three.js ¹× A-Frame ¿£Æ¼Æ¼
____À©µµ¿ì °´Ã¼·Î¼
____A-Frame ¾È¿¡ ÀÖ´Â Three.js ¼Ó¼º
____DOM API Á¢±ÙÇϱâ
____Three.js ±×·ì°ú getObject3D( )
____Àå¸é ½ÇÇà
____¿ä¾à
__A-Frame¿¡¼ Ä¿½ºÅÒ ÄÄÆ÷³ÍÆ®
__½Ç½À 8-3: Ä¿½ºÅÒ A-Frame ÄÄÆ÷³ÍÆ® ºôµå
____½ÃÀÛÇϱâ
____registerComponent( )
____ÄÄÆ÷³ÍÆ® ³»ºÎ¿¡¼ ÄÄÆ÷³ÍÆ® µ¥ÀÌÅÍ ÂüÁ¶
____¿£Æ¼Æ¼¿¡ Ä¿½ºÅÒ ÄÄÆ÷³ÍÆ® Ãß°¡
____Ä¿½ºÅÒ ÄÄÆ÷³ÍÆ®¸¦ ÅëÇÑ Three.js ¼Ó¼º
____¡®this.el¡¯
____Àå¸é ½ÇÇà
____¿ä¾à
__µÎ ¸¶¸®ÀÇ »õ, ÇϳªÀÇ ÄÄÆ÷³ÍÆ®
__½Ç½À 8-4: Àܵð Áö¸é
____Æò¸é ¿£Æ¼Æ¼¿¡ »ç¿ëÀÚ ÁöÁ¤ ÄÄÆ÷³ÍÆ® Ãß°¡
____»ç¿ëÀÚ ÁöÁ¤ ÄÄÆ÷³ÍÆ® ¼Ó¼º Ãß°¡
____Á¶°ÇºÎ ·ÎÁ÷À» ÅëÇÑ ÄÄÆ÷³ÍÆ® ´Ù¾ç¼º
____Á¶¸í ¸ðµ¨ÀÌ À¯ÁöµÊ
____ÄÄÆ÷³ÍÆ®·Î¼ÀÇ ¾È°³
____¿ä¾à
__Á¤¸®
9Àå. A- FrameÀÇ ¹°¸® ¿£Áø°ú UI
__°ÔÀÓ ¿£ÁøÀº ¾îµð¿¡ ÀÖ³ª¿ä?
__½Ç½À 9-1: A-Frame¿¡¼ ¹°¸® ½Ã½ºÅÛ °¡Á®¿À±â
____A-Frame°ú ½Ã½ºÅÛ ¼³Ä¡Çϱâ
____A-Frame °³¹ßÀÚ ¿¡ÄڽýºÅÛ
____A-Frame ¹°¸® ½Ã½ºÅÛ
____Àå¸é ¿£Æ¼Æ¼¿¡ ½Ã½ºÅÛ ·Îµå
____¿£Æ¼Æ¼¿¡ ¹°¸® ¼Ó¼º Ãß°¡
____HTTP vs. HTTPS
____¿ä¾à
__½Ç½À 9-2
____½´ÆÛÇÚµå
____ÅÍÄ¡ ÄÁÆ®·Ñ·¯ ÄÄÆ÷³ÍÆ®
____A-Frame Physics Extra ½Ã½ºÅÛ
____Àå¸é ½ÇÇà
____¿ä¾à
__Á¤¸®
10Àå. A-Frame ¹× ±êÇãºê ÆäÀÌÁö¸¦ »ç¿ëÇØ AR¿¡¼ 3D ¾Ö´Ï¸ÞÀÌ¼Ç ¸ðµ¨ ¹èÆ÷
__HTTPS ¹× XR Å×½ºÆ®
____GitHub
__½Ç½À 10-1: GLTF ¸ðµ¨À» A-Frame¿¡ ¾÷·ÎµåÇÏ°í
__±êÇãºê ÆäÀÌÁö¿¡ ÆÛºí¸®½ÌÇϱâ
____±êÇãºê ¼Â¾÷
____GLTF ¿¡¼Â
____GLTF-Model ¿£Æ¼Æ¼ ÄÄÆ÷³ÍÆ®
____Àå¸é ½ÇÇà
____¿ä¾à
__½Ç½À 10-2: A-Frame¿¡¼ GLTF ¸ðµ¨ ¾Ö´Ï¸ÞÀ̼Ç
____A-Frame ¿¢½ºÆ®¶ó
____¾Ö´Ï¸ÞÀÌ¼Ç ¹Í¼ ÄÄÆ÷³ÍÆ®
____»ó´ëÀû À§Ä¡ º¯È¯
____Àå¸é ½ÇÇà
____¿ä¾à
__Á¤¸®
__°á·Ð
ã¾Æº¸±â
¢Â ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¢Â
¡ß À¥ ÆäÀÌÁö¸¦ À§ÇÑ °¡»ó Çö½Ç ¹× Áõ° Çö½Ç ±â´É »ý¼º
¡ß Àαâ ÀÖ´Â ±â¼úÀÇ ÇÁ·ÎÁ§Æ® Æ÷Æ®Æú¸®¿À¸¦ ÅëÇØ ½Ç°¨Çü À¥ °³¹ßÀÚ·Î ÀÏÇÒ Áغñ
¡ß WebGL¿¡¼ ¼ÎÀÌ´õ ÀÛ¼ºÀÇ ±âº» »çÇ×
¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â
WebXR API¿¡´Â À¥ °³¹ßÀÚ¿Í XRÀ» ´Ù·ç·Á´Â »ç¶÷¿¡°Ô À¯¿ëÇÑ µµ±¸°¡ Áغñ°¡ µÅ ÀÖ´Ù. ¸ð¹ÙÀÏ°ú ³×ÀÌƼºê, Áõ° ¹× °¡»ó °£ÀÇ ±¸ºÐÀÌ Èå·ÁÁö¸é¼ 2D ±â¼ú°ú ½Ç°¨Çü ±â¼úÀ» »ç¿ëÇÏ´Â ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¡Á¡ ´õ º¸Æí鵃 °ÍÀÌ´Ù. ½Ç°¨Çü À¥ °æÇèÀ» ¼³°èÇÏ´Â °³¹ßÀÚ Ä¿¹Â´ÏƼ¿¡ Âü¿©ÇÒ ¼ö ÀÖµµ·Ï µ½°íÀÚ ÀÌ Ã¥À» ¸¸µé¾ú´Ù. À¥ °³¹ß ¶Ç´Â 3D ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ »çÀü Áö½ÄÀÌ ¾ø´Ù°í °¡Á¤Çß´Ù. WebXR API´Â »õ·Î¿î ±â¼úÀ̱⠶§¹®¿¡ ¼÷·ÃµÈ °³¹ßÀڵ鵵 Âü°íÇÒ ¼ö ÀÖ´Ù.
¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â
µµ±¸¿¡´Â Visual Studio Code, WebGL, Three.js, A-FrameÀÌ Æ÷ÇԵŠÀÖ´Ù. HTML, CSS, ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ Àͼ÷ÇÏÁö ¾Ê¾Æµµ ÀÌ Ã¥ÀÇ ³»¿ëÀ» È°¿ëÇÒ ¼ö ÀÖ´Ù. ±¸¼ºÀ» »ìÆ캸ÀÚ¸é 1Àå¿¡¼´Â WebXR APIÀÇ °³³ä°ú ½Ç°¨ ¸ð¹ÙÀÏ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» ½ÃÀÛÇÏ´Â µ¥ ÇÊ¿äÇÑ µµ±¸¸¦ ¼Ò°³ÇÑ´Ù. 2Àå¿¡¼´Â À¥, WebGLÀÇ 3D ±×·¡ÇÈ ¿ø¸®¸¦ ¼³¸íÇÑ´Ù. WebGL, HTML, ÀÚ¹Ù½ºÅ©¸³Æ®·Î °£´ÜÇÑ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾î¼ WebXR API°¡ ºê¶ó¿ìÀú ¾È¿¡¼ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¿¡ ´ëÇÑ ±âº» °³³äÀ» ºü¸£°Ô »ìÆ캻´Ù. 3Àå¿¡¼´Â ±âº» ±¸¹®ÀÌ ¼¹ö, Ŭ¶óÀ̾ðÆ®, GPU¸¦ ¿¬°áÇÏ´Â ±×·¡ÇÈ ·»´õ¸µ ÆÄÀÌÇÁ ¶óÀÎÀÇ ¾ÈÆÆÀ» ¸íÈ®È÷ ¼³¸íÇϱ⠶§¹®¿¡ WebGLÀ» °è¼Ó »ç¿ëÇÑ´Ù. 4ÀåÀº 2Àå°ú 3ÀåÀ» ±â¹ÝÀ¸·Î WebGLÀ» ÅëÇÑ ¼±Çü´ë¼ö¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. 4Àå¿¡¼ ´Ù·ç´Â °£´ÜÇÏÁö¸¸ Áß¿äÇÑ ¼±Çü´ë¼öÀÇ ¿øÄ¢Àº 5Àå¿¡¼ 3D ÀÚ¹Ù½ºÅ©¸³Æ® ¶óÀ̺귯¸®ÀÎ Three.js¸¦ ÅëÇØ ½Ç°¨Çü À¥ °³¹ß ½ÉÃþ ºÐ¼®À» À§ÇÑ ±â¹ÝÀ¸·Î Á¦°øÇÑ´Ù. WebGL ÆÄÀÌÇÁ¶óÀÎÀÇ Ã¶ÀúÇÑ ÀÌÇØ¿Í Three.js ¶óÀ̺귯¸®·Î »ý¼ºµÈ Æí¸®ÇÔÀ» ÅëÇØ ·ÎÄà ¸Ó½Å¿¡ °¡»ó Çö½Ç ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ°í 6ÀåÀÇ WebXR API¸¦ ÅëÇØ VR Áö¿ø ÀåÄ¡¿¡ ·Îµå¸¦ ÇÑ´Ù. 7Àå¿¡¼´Â °¡»ó Çö½Ç¿¡¼ Three.js¸¦ ÀÌ¿ëÇÑ Áõ° Çö½Ç ÇÁ·Î±×·¡¹ÖÀ¸·Î ÃÊÁ¡À» À̵¿ÇÑ´Ù. WebXR APIÀÇ Áõ° Çö½Ç ¸ðµâ ±â´ÉÀ» »ç¿ëÇؼ 7Àå¿¡¼´Â ¾Ö´Ï¸ÞÀÌ¼Ç ¹× »ç¿ëÀÚ »óÈ£ÀÛ¿ëÀ» Æ÷ÇÔÇÏ´Â ¸ð¹ÙÀÏ AR ȯ°æÀ» ¸¸µé±â À§ÇÑ ´Ü°è¸¦ Á¦°øÇÑ´Ù. 8Àå¿¡¼´Â Three.js¸¦ »ç¿ëÇؼ ¸ð¹ÙÀÏ XR °æÇèÀ» ¸¸µå´Â ÇÁ·¹ÀÓ¿öÅ© A-FrameÀÇ »ç¿ëÀ» ¼Ò°³ÇÏ°íÀÚ °¡»ó Çö½Ç ÁÖÁ¦·Î µ¹¾Æ°£´Ù. 9Àå°ú 10Àå ¸ðµÎ A-Frame¿¡ °üÇÑ ÀåÀ¸·Î 9ÀåÀº ¸¹Àº ºê¶ó¿ìÀú¿¡ ³»ÀåµÈ WebXR APIÀÇ Gamepad API ±¸ÇöÀ» ÅëÇØ VR Àå¸é¿¡¼ ½ÇÁ¦ ¹°¸®Çаú »ç¿ëÀÚ »óÈ£ÀÛ¿ëÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ¸¶Áö¸·À¸·Î 10Àå¿¡¼´Â ±êÇãºê(Github) ÆäÀÌÁö¸¦ ÅëÇØ 3D ¸ðµ¨À» A-FrameÀ¸·Î ºÒ·¯¿Í ¾Ö´Ï¸ÞÀ̼ÇÀ» Á¦ÀÛÇÏ°í Áõ° Çö½Ç ¼Ó¿¡¼ º¸´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
¡ß À¥ ÆäÀÌÁö¸¦ À§ÇÑ °¡»ó Çö½Ç ¹× Áõ° Çö½Ç ±â´É »ý¼º
¡ß Àαâ ÀÖ´Â ±â¼úÀÇ ÇÁ·ÎÁ§Æ® Æ÷Æ®Æú¸®¿À¸¦ ÅëÇØ ½Ç°¨Çü À¥ °³¹ßÀÚ·Î ÀÏÇÒ Áغñ
¡ß WebGL¿¡¼ ¼ÎÀÌ´õ ÀÛ¼ºÀÇ ±âº» »çÇ×
¢Â ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¢Â
WebXR API¿¡´Â À¥ °³¹ßÀÚ¿Í XRÀ» ´Ù·ç·Á´Â »ç¶÷¿¡°Ô À¯¿ëÇÑ µµ±¸°¡ Áغñ°¡ µÅ ÀÖ´Ù. ¸ð¹ÙÀÏ°ú ³×ÀÌƼºê, Áõ° ¹× °¡»ó °£ÀÇ ±¸ºÐÀÌ Èå·ÁÁö¸é¼ 2D ±â¼ú°ú ½Ç°¨Çü ±â¼úÀ» »ç¿ëÇÏ´Â ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¡Á¡ ´õ º¸Æí鵃 °ÍÀÌ´Ù. ½Ç°¨Çü À¥ °æÇèÀ» ¼³°èÇÏ´Â °³¹ßÀÚ Ä¿¹Â´ÏƼ¿¡ Âü¿©ÇÒ ¼ö ÀÖµµ·Ï µ½°íÀÚ ÀÌ Ã¥À» ¸¸µé¾ú´Ù. À¥ °³¹ß ¶Ç´Â 3D ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ »çÀü Áö½ÄÀÌ ¾ø´Ù°í °¡Á¤Çß´Ù. WebXR API´Â »õ·Î¿î ±â¼úÀ̱⠶§¹®¿¡ ¼÷·ÃµÈ °³¹ßÀڵ鵵 Âü°íÇÒ ¼ö ÀÖ´Ù.
¢Â ÀÌ Ã¥ÀÇ ±¸¼º ¢Â
µµ±¸¿¡´Â Visual Studio Code, WebGL, Three.js, A-FrameÀÌ Æ÷ÇԵŠÀÖ´Ù. HTML, CSS, ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ Àͼ÷ÇÏÁö ¾Ê¾Æµµ ÀÌ Ã¥ÀÇ ³»¿ëÀ» È°¿ëÇÒ ¼ö ÀÖ´Ù. ±¸¼ºÀ» »ìÆ캸ÀÚ¸é 1Àå¿¡¼´Â WebXR APIÀÇ °³³ä°ú ½Ç°¨ ¸ð¹ÙÀÏ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» ½ÃÀÛÇÏ´Â µ¥ ÇÊ¿äÇÑ µµ±¸¸¦ ¼Ò°³ÇÑ´Ù. 2Àå¿¡¼´Â À¥, WebGLÀÇ 3D ±×·¡ÇÈ ¿ø¸®¸¦ ¼³¸íÇÑ´Ù. WebGL, HTML, ÀÚ¹Ù½ºÅ©¸³Æ®·Î °£´ÜÇÑ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾î¼ WebXR API°¡ ºê¶ó¿ìÀú ¾È¿¡¼ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¿¡ ´ëÇÑ ±âº» °³³äÀ» ºü¸£°Ô »ìÆ캻´Ù. 3Àå¿¡¼´Â ±âº» ±¸¹®ÀÌ ¼¹ö, Ŭ¶óÀ̾ðÆ®, GPU¸¦ ¿¬°áÇÏ´Â ±×·¡ÇÈ ·»´õ¸µ ÆÄÀÌÇÁ ¶óÀÎÀÇ ¾ÈÆÆÀ» ¸íÈ®È÷ ¼³¸íÇϱ⠶§¹®¿¡ WebGLÀ» °è¼Ó »ç¿ëÇÑ´Ù. 4ÀåÀº 2Àå°ú 3ÀåÀ» ±â¹ÝÀ¸·Î WebGLÀ» ÅëÇÑ ¼±Çü´ë¼ö¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. 4Àå¿¡¼ ´Ù·ç´Â °£´ÜÇÏÁö¸¸ Áß¿äÇÑ ¼±Çü´ë¼öÀÇ ¿øÄ¢Àº 5Àå¿¡¼ 3D ÀÚ¹Ù½ºÅ©¸³Æ® ¶óÀ̺귯¸®ÀÎ Three.js¸¦ ÅëÇØ ½Ç°¨Çü À¥ °³¹ß ½ÉÃþ ºÐ¼®À» À§ÇÑ ±â¹ÝÀ¸·Î Á¦°øÇÑ´Ù. WebGL ÆÄÀÌÇÁ¶óÀÎÀÇ Ã¶ÀúÇÑ ÀÌÇØ¿Í Three.js ¶óÀ̺귯¸®·Î »ý¼ºµÈ Æí¸®ÇÔÀ» ÅëÇØ ·ÎÄà ¸Ó½Å¿¡ °¡»ó Çö½Ç ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ°í 6ÀåÀÇ WebXR API¸¦ ÅëÇØ VR Áö¿ø ÀåÄ¡¿¡ ·Îµå¸¦ ÇÑ´Ù. 7Àå¿¡¼´Â °¡»ó Çö½Ç¿¡¼ Three.js¸¦ ÀÌ¿ëÇÑ Áõ° Çö½Ç ÇÁ·Î±×·¡¹ÖÀ¸·Î ÃÊÁ¡À» À̵¿ÇÑ´Ù. WebXR APIÀÇ Áõ° Çö½Ç ¸ðµâ ±â´ÉÀ» »ç¿ëÇؼ 7Àå¿¡¼´Â ¾Ö´Ï¸ÞÀÌ¼Ç ¹× »ç¿ëÀÚ »óÈ£ÀÛ¿ëÀ» Æ÷ÇÔÇÏ´Â ¸ð¹ÙÀÏ AR ȯ°æÀ» ¸¸µé±â À§ÇÑ ´Ü°è¸¦ Á¦°øÇÑ´Ù. 8Àå¿¡¼´Â Three.js¸¦ »ç¿ëÇؼ ¸ð¹ÙÀÏ XR °æÇèÀ» ¸¸µå´Â ÇÁ·¹ÀÓ¿öÅ© A-FrameÀÇ »ç¿ëÀ» ¼Ò°³ÇÏ°íÀÚ °¡»ó Çö½Ç ÁÖÁ¦·Î µ¹¾Æ°£´Ù. 9Àå°ú 10Àå ¸ðµÎ A-Frame¿¡ °üÇÑ ÀåÀ¸·Î 9ÀåÀº ¸¹Àº ºê¶ó¿ìÀú¿¡ ³»ÀåµÈ WebXR APIÀÇ Gamepad API ±¸ÇöÀ» ÅëÇØ VR Àå¸é¿¡¼ ½ÇÁ¦ ¹°¸®Çаú »ç¿ëÀÚ »óÈ£ÀÛ¿ëÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ¸¶Áö¸·À¸·Î 10Àå¿¡¼´Â ±êÇãºê(Github) ÆäÀÌÁö¸¦ ÅëÇØ 3D ¸ðµ¨À» A-FrameÀ¸·Î ºÒ·¯¿Í ¾Ö´Ï¸ÞÀ̼ÇÀ» Á¦ÀÛÇÏ°í Áõ° Çö½Ç ¼Ó¿¡¼ º¸´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.