WebGL GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ã®ã¢ãŒããã¯ãã£ãæé©åæè¡ãããã³ã°ããŒãã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãæ¢ã詳现ãªè§£èª¬ã
WebGL GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ïŒã°ããŒãã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ã°ã©ãã£ãã¯ã¹ããã©ãŒãã³ã¹ãæé©åãã
WebGLïŒWeb Graphics LibraryïŒã¯ããŠã§ããã©ãŠã¶å ã§ã€ã³ã¿ã©ã¯ãã£ããª2Dããã³3Dã°ã©ãã£ãã¯ã¹ãã¬ã³ããªã³ã°ããããã®åºç€æè¡ãšãªããŸããããã®ã¯ãã¹ãã©ãããã©ãŒã äºææ§ãšã¢ã¯ã»ã·ããªãã£ã«ããããªã³ã©ã€ã³ã²ãŒã ãããŒã¿å¯èŠåãããè€éãªã·ãã¥ã¬ãŒã·ã§ã³ãã€ã³ã¿ã©ã¯ãã£ããªè£œåãã¢ãŸã§ãå¹ åºãã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠäžå¯æ¬ ãªãã®ãšãªã£ãŠããŸããããããç¹ã«äžçäžã®ãŠãŒã¶ãŒã«å¯ŸããŠã倿§ãªããŒããŠã§ã¢ããããã¯ãŒã¯æ¡ä»¶äžã§äžè²«ããŠé«ãããã©ãŒãã³ã¹ãéæããããšã¯ã倧ããªèª²é¡ãæç€ºããŸããæé©åã«ãããéèŠãªé åã®äžã€ããWebGL GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ã§ãã
GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ãçè§£ãã
GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ã¯ãGPUïŒGraphics Processing UnitïŒäžã§ã®ã°ã©ãã£ãã¯ã¹ã³ãã³ãã®å®è¡ã調æŽããåºæ¬çãªã³ã³ããŒãã³ãã§ããWebGLã¢ããªã±ãŒã·ã§ã³ããã³ãã³ãã®ã¹ããªãŒã ãåãåããåŠçã®ããã«ããããã¹ã±ãžã¥ãŒãªã³ã°ããŸãããããã®ã³ãã³ãã«ã¯ã以äžã®ãããªæ§ã ãªã¿ã¹ã¯ãå«ãŸããŸãïŒ
- é ç¹ããã³ã€ã³ããã¯ã¹ãããã¡ã®ã¢ããããŒãïŒ ãžãªã¡ããªããŒã¿ãGPUã®ã¡ã¢ãªã«è»¢éããŸãã
- ã·ã§ãŒããŒã®ã³ã³ãã€ã«ãšãªã³ã¯ïŒ ã·ã§ãŒããŒã³ãŒããGPUäžã§å®è¡å¯èœãªããã°ã©ã ã«å€æããŸãã
- ãã¯ã¹ãã£ã®ã¢ããããŒãïŒ ç»åããŒã¿ãã¬ã³ããªã³ã°ã®ããã«GPUã«éä¿¡ããŸãã
- ãããŒã³ãŒã«ïŒ æå®ãããã·ã§ãŒããŒãšããŒã¿ã䜿çšããŠããªããã£ãïŒäžè§åœ¢ãç·ãç¹ïŒãã¬ã³ããªã³ã°ããåœä»€ã§ãã
- ã¹ããŒã倿ŽïŒ ãã¬ã³ãã£ã³ã°ã¢ãŒããããã¹ãã¹ãããã¥ãŒããŒãèšå®ãªã©ã®ã¬ã³ããªã³ã°ãã©ã¡ãŒã¿ã®å€æŽã§ãã
ã³ãã³ãã¹ã±ãžã¥ãŒã©ã®å¹çã¯ãå šäœçãªã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã«çŽæ¥åœ±é¿ããŸããèšèšã®æªãã¹ã±ãžã¥ãŒã©ã¯ãããã«ããã¯ãé å»¶ã®å¢å ããã¬ãŒã ã¬ãŒãã®äœäžã«ã€ãªãããç¹ã«ã€ã³ã¿ãŒãããæ¥ç¶ãé ãå°åãæ§èœã®äœãããã€ã¹ã䜿çšããŠãããŠãŒã¶ãŒã®äœéšã«æªåœ±é¿ãåãŒããŸããäžæ¹ãååã«æé©åãããã¹ã±ãžã¥ãŒã©ã¯ãGPUã®äœ¿çšçãæå€§åãããªãŒããŒããããæå°éã«æããã¹ã ãŒãºã§å¿çæ§ã®é«ãèŠèŠäœéšãä¿èšŒããŸãã
ã°ã©ãã£ãã¯ã¹ãã€ãã©ã€ã³ãšã³ãã³ããããã¡
ã³ãã³ãã¹ã±ãžã¥ãŒã©ã®åœ¹å²ãå®å šã«çè§£ããããã«ã¯ãWebGLã®ã°ã©ãã£ãã¯ã¹ãã€ãã©ã€ã³ãçè§£ããããšãäžå¯æ¬ ã§ãããã®ãã€ãã©ã€ã³ã¯ãå ¥åããããžãªã¡ããªãåŠçããæçµçã«ã¬ã³ããªã³ã°ãããç»åãçæããäžé£ã®ã¹ããŒãžã§æ§æãããŠããŸããäž»èŠãªã¹ããŒãžã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- é ç¹ã·ã§ãŒããŒïŒ å ¥åããŒã¿ãšã·ã§ãŒããŒããžãã¯ã«åºã¥ããŠé ç¹ã®äœçœ®ã倿ããŸãã
- ã©ã¹ã¿ã©ã€ãŒãŒã·ã§ã³ïŒ ãã¯ã¿ãŒã°ã©ãã£ãã¯ã¹ããã¯ã»ã«ïŒãã©ã°ã¡ã³ãïŒã«å€æããŸãã
- ãã©ã°ã¡ã³ãã·ã§ãŒããŒïŒ ãã¯ã¹ãã£ãã©ã€ãã£ã³ã°ããã®ä»ã®ãšãã§ã¯ãã«åºã¥ããŠåãã©ã°ã¡ã³ãã®è²ãèšç®ããŸãã
- ãã¬ã³ãã£ã³ã°ãšããã¹ãã¹ãïŒ ãã©ã°ã¡ã³ãããã¬ãŒã ãããã¡å ã®æ¢åã®ãã¯ã»ã«ãšçµåããæ·±åºŠã®ç«¶åã解決ããŸãã
WebGLã¢ããªã±ãŒã·ã§ã³ã¯éåžžãã³ãã³ããã³ãã³ããããã¡ã«ãŸãšãããããåŠçã®ããã«GPUã«éä¿¡ããŸããã³ãã³ãã¹ã±ãžã¥ãŒã©ã¯ããããã®ãããã¡ã管çããå¹ççãã€ã¿ã€ã ãªãŒã«å®è¡ãããããã«ãã責任ããããŸããç®æšã¯ãCPUãšGPUã®åæãæå°éã«æããGPUã®äœ¿çšçãæå€§åããããšã§ããäŸãã°æ¥æ¬ã®æ±äº¬ã§ããŒãããã3Dã²ãŒã ãèããŠã¿ãŸããããã³ãã³ãã¹ã±ãžã¥ãŒã©ã¯ããŠãŒã¶ãŒã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã«è¿œãã€ãããã«ã¬ã³ããªã³ã°ã³ãã³ããå¹ççã«åªå é äœä»ãããå¿ èŠãããããµãŒããŒãžã®ãããã¯ãŒã¯é å»¶ãæœåšçã«é«ããŠãã¹ã ãŒãºãªã²ãŒã äœéšãä¿èšŒããŸãã
WebGLã³ãã³ãã¹ã±ãžã¥ãŒã©ã®æé©åæè¡
WebGL GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ãæé©åããã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãåäžãããããã«ãããã€ãã®æè¡ãå©çšã§ããŸãïŒ
1. ã³ãã³ããããã¡ã®ãããåŠçãšãœãŒã
ãããåŠçïŒ é¢é£ããã³ãã³ãããŸãšããŠå€§ããªã³ãã³ããããã¡ã«ã°ã«ãŒãåããããšã§ãåã ã®ã³ãã³ããéä¿¡ããéã®ãªãŒããŒããããåæžããŸããããã¯ãåãã·ã§ãŒããŒãšã¬ã³ããªã³ã°ã¹ããŒãã䜿çšãããããŒã³ãŒã«ã«ç¹ã«å¹æçã§ãã ãœãŒãïŒ ãããã¡å ã®ã³ãã³ããäžŠã¹æ¿ããããšã§ããã£ãã·ã¥ã®å±ææ§ãåäžãããã¹ããŒã倿Žãæžãããå®è¡ãé«éåã§ããŸããäŸãã°ãåããã¯ã¹ãã£ã䜿çšãããããŒã³ãŒã«ãã°ã«ãŒãåããããšã§ããã¯ã¹ãã£åãæ¿ãã®ãªãŒããŒããããæå°éã«æããããšãã§ããŸããé©çšããããœãŒãã¢ã«ãŽãªãºã ã®çš®é¡ã¯è€éããç°ãªããå šäœçãªããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããã€ã³ãã®ãã³ã¬ããŒã«ã®éçºè ã¯ããµãŒããŒäžã®ããŒã¿ã¬ã€ã¢ãŠãã«åãããŠã³ãã³ãã®é åºãæé©åããé å»¶ãæžããããšã§ããŒã¿è»¢éã³ã¹ããåæžããããšãåªå ãããããããŸãããäžæ¹ãç±³åœã®ã·ãªã³ã³ãã¬ãŒã®éçºè ã¯ãããé«ã垯åå¹ ã®ãããã¯ãŒã¯ã§é«éãªå®è¡ãå®çŸããããã«ãã³ãã³ãéä¿¡ã®äžŠååã«æ³šåãããããããŸããã
2. 䞊åã³ãã³ãéä¿¡
çŸä»£ã®GPUã¯é«åºŠã«äžŠååãããããã»ããµã§ãããã®äžŠåæ§ã掻çšããããã«ã³ãã³ãã¹ã±ãžã¥ãŒã©ãæé©åããããšã§ãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸããæè¡ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- éåæã³ãã³ãéä¿¡ïŒ ã³ãã³ããããã¡ãéåæã«éä¿¡ããããšã§ãGPUãåã®ã³ãã³ããå®è¡ããŠããéã«CPUãä»ã®ã¿ã¹ã¯ã®åŠçãç¶ããããšãã§ããŸãã
- ãã«ãã¹ã¬ããã£ã³ã°ïŒ ã³ãã³ããããã¡ã®äœæãšéä¿¡ãè€æ°ã®CPUã¹ã¬ããã«åæ£ãããããšã§ãCPUã®ããã«ããã¯ãæžãããå šäœã®ã¹ã«ãŒããããåäžãããããšãã§ããŸãã
3. CPU-GPUåæã®æå°å
CPUãšGPUéã®é床ãªåæã¯ãã¬ã³ããªã³ã°ãã€ãã©ã€ã³ãåæ»ãããããã©ãŒãã³ã¹ãäœäžãããå¯èœæ§ããããŸããåæãæå°éã«æããæè¡ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- ããã«ãŸãã¯ããªãã«ãããã¡ãªã³ã°ïŒ è€æ°ã®ãã¬ãŒã ãããã¡ã䜿çšããããšã§ãCPUãæ¬¡ã®ãã¬ãŒã ãæºåããŠããéã«GPUã1ã€ã®ãããã¡ã«ã¬ã³ããªã³ã°ããããšãã§ããŸãã
- ãã§ã³ã¹ãªããžã§ã¯ãïŒ ç¹å®ã®ã³ãã³ããããã¡ãGPUäžã§å®è¡å®äºããããšãéç¥ããããã«ãã§ã³ã¹ãªããžã§ã¯ãã䜿çšããŸããããã«ãããCPUãäžå¿ èŠã«ãããã¯ãããã®ãé²ãããšãã§ããŸãã
4. åé·ãªã¹ããŒã倿Žã®åæž
ã¬ã³ããªã³ã°ã¹ããŒãïŒäŸïŒãã¬ã³ãã£ã³ã°ã¢ãŒããããã¹ãã¹ãïŒãé »ç¹ã«å€æŽãããšã倧ããªãªãŒããŒããããçºçããå¯èœæ§ããããŸããã¹ããŒã倿Žãæžããæè¡ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- ã¹ããŒããœãŒãïŒ åãã¬ã³ããªã³ã°ã¹ããŒãã䜿çšãããããŒã³ãŒã«ãã°ã«ãŒãåããŠãã¹ããŒã倿Žãæå°éã«æããŸãã
- ã¹ããŒããã£ãã·ã³ã°ïŒ ã¬ã³ããªã³ã°ã¹ããŒãã®å€ããã£ãã·ã¥ããå¿ èŠãªå Žåã«ã®ã¿æŽæ°ããŸãã
5. ã·ã§ãŒããŒããã©ãŒãã³ã¹ã®æé©å
ã·ã§ãŒããŒã®ããã©ãŒãã³ã¹ã¯ãå šäœçãªã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã«ãšã£ãŠéåžžã«éèŠã§ããã·ã§ãŒããŒãæé©åããããšã§ãGPUãžã®è² è·ãå€§å¹ ã«åæžã§ããŸããæè¡ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- ã·ã§ãŒããŒã®è€éãã®è»œæžïŒ ã·ã§ãŒããŒã³ãŒããç°¡çŽ åããäžèŠãªèšç®ãé¿ããŸãã
- äœç²ŸåºŠããŒã¿åã®äœ¿çšïŒ äœç²ŸåºŠã®ããŒã¿åïŒäŸïŒ`float32`ã®ä»£ããã«`float16`ïŒã䜿çšãããšãç¹ã«ã¢ãã€ã«ããã€ã¹ã§ã¡ã¢ãªåž¯åå¹ ãåæžããããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- ã·ã§ãŒããŒã®äºåã³ã³ãã€ã«ïŒ ã·ã§ãŒããŒããªãã©ã€ã³ã§ã³ã³ãã€ã«ããã³ã³ãã€ã«æžã¿ã®ãã€ããªããã£ãã·ã¥ããããšã§ãèµ·åæéãççž®ããããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
6. ãããã¡ã€ãªã³ã°ãšããã©ãŒãã³ã¹åæ
ãããã¡ã€ãªã³ã°ããŒã«ã¯ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åã®åãçµã¿ãå°ãã®ã«åœ¹ç«ã¡ãŸããWebGLã¯ããããã¡ã€ãªã³ã°ãšããã©ãŒãã³ã¹åæã®ããã«ããã€ãã®ããŒã«ãæäŸããŠããŸããããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- Chrome DevToolsïŒ Chrome DevToolsã¯ãGPUãããã¡ã€ã©ãã¡ã¢ãªãããã¡ã€ã©ãªã©ãWebGLã¢ããªã±ãŒã·ã§ã³ã®ãããã¡ã€ãªã³ã°ãšãããã°ã®ããã®åŒ·åãªããŒã«ã¹ã€ãŒããæäŸããŸãã
- Spector.jsïŒ Spector.jsã¯ãWebGLã®ã¹ããŒããšã³ãã³ããæ€æ»ã§ããJavaScriptã©ã€ãã©ãªã§ãã¬ã³ããªã³ã°ãã€ãã©ã€ã³ã«é¢ãã貎éãªæŽå¯ãæäŸããŸãã
- ãµãŒãããŒãã£ã®ãããã¡ã€ã©ïŒ WebGLåãã«ã¯ããã€ãã®ãµãŒãããŒãã£è£œãããã¡ã€ã©ãå©çšå¯èœã§ãé«åºŠãªæ©èœãšåæèœåãæäŸããŸãã
æé©ãªæé©åæŠç¥ã¯ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãšã¿ãŒã²ããããŒããŠã§ã¢ã«å€§ããäŸåããããããããã¡ã€ãªã³ã°ã¯éåžžã«éèŠã§ããäŸãã°ãè±åœã®ãã³ãã³ã§äœ¿çšãããWebGLããŒã¹ã®å»ºç¯å¯èŠåããŒã«ã¯ãå€§èŠæš¡ãª3Dã¢ãã«ãæ±ãããã«ã¡ã¢ãªäœ¿çšéãæå°éã«æããããšãåªå ãããããããŸãããäžæ¹ãéåœã®ãœãŠã«ã§å®è¡ããããªã¢ã«ã¿ã€ã ã¹ãã©ããžãŒã²ãŒã ã¯ãè€éãªèŠèŠå¹æãåŠçããããã«ã·ã§ãŒããŒã®æé©åãåªå ãããããããŸããã
ã°ããŒãã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿
ååã«æé©åãããWebGL GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ã¯ãã°ããŒãã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããŸãã以äžã«ãã®æ¹æ³ã瀺ããŸãïŒ
- ãã¬ãŒã ã¬ãŒãã®åäžïŒ ãã¬ãŒã ã¬ãŒããé«ãã»ã©ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã¯ããã¹ã ãŒãºã§å¿çæ§ãé«ããªããŸãã
- ãžãã¿ãŒã®åæžïŒ ãžãã¿ãŒïŒäžåäžãªãã¬ãŒã æéïŒãæå°éã«æããããšã§ãããå®å®ããèŠèŠçã«é åçãªäœéšãçãŸããŸãã
- é å»¶ã®äœæžïŒ é å»¶ïŒãŠãŒã¶ãŒå ¥åããèŠèŠçãã£ãŒãããã¯ãŸã§ã®é ãïŒãæžããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãåäžãããšæããããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžïŒ ã¹ã ãŒãºã§å¿çæ§ã®é«ãèŠèŠäœéšã¯ããŠãŒã¶ãŒæºè¶³åºŠãšãšã³ã²ãŒãžã¡ã³ãã®åäžã«ã€ãªãããŸãã
- ããåºç¯ãªããã€ã¹äºææ§ïŒ ã³ãã³ãã¹ã±ãžã¥ãŒã©ãæé©åããããšã§ãããŒãšã³ãã®ã¢ãã€ã«ããã€ã¹ãå€ããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãå«ããããåºç¯ãªããã€ã¹ã§ã®ããã©ãŒãã³ã¹ãåäžãããäžçäžã®ããå€ãã®ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããäŸãã°ãç»åãã£ã«ã¿ã«WebGLã䜿çšãããœãŒã·ã£ã«ã¡ãã£ã¢ãã©ãããã©ãŒã ã¯ãç±³åœã®ãã¥ãŒãšãŒã¯åžã®ãã©ãã°ã·ãããã©ã³ãããã€ãžã§ãªã¢ã®ã©ãŽã¹ã®äœäŸ¡æ Œã¹ããŒããã©ã³ãŸã§ãããŸããŸãªããã€ã¹ã§ã·ãŒã ã¬ã¹ãªæäœãä¿èšŒããå¿ èŠããããŸãã
- æ¶è²»é»åã®åæžïŒ GPUã³ãã³ããå¹ççã«ã¹ã±ãžã¥ãŒãªã³ã°ããããšã§ãæ¶è²»é»åãåæžã§ããŸããããã¯ç¹ã«ã¢ãã€ã«ããã€ã¹ã«ãšã£ãŠéèŠã§ãã
å®çšçãªäŸãšãŠãŒã¹ã±ãŒã¹
GPUã³ãã³ãã¹ã±ãžã¥ãŒã©æé©åã®éèŠæ§ã説æããããã«ãããã€ãã®å®çšçãªäŸãšãŠãŒã¹ã±ãŒã¹ãèããŠã¿ãŸãããïŒ
1. ãªã³ã©ã€ã³ã²ãŒã
ãªã³ã©ã€ã³ã²ãŒã ã¯ãã€ã³ã¿ã©ã¯ãã£ããª3Dç°å¢ã®ã¬ã³ããªã³ã°ã«WebGLã倧ããäŸåããŠããŸããæé©åãäžååãªã³ãã³ãã¹ã±ãžã¥ãŒã©ã¯ãäœããã¬ãŒã ã¬ãŒãããžãã¿ãŒãé«ãé å»¶ã«ã€ãªãããã€ã©ã€ã©ããã²ãŒã äœéšããããããŸããã¹ã±ãžã¥ãŒã©ãæé©åããããšã§ãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããããªãŒã¹ãã©ãªã¢ã®å°æ¹ã®ãããªã€ã³ã¿ãŒãããæ¥ç¶ãé ãå°åã®ãã¬ã€ã€ãŒã«ãšã£ãŠããããã¹ã ãŒãºã§æ²¡å ¥æã®ããã²ãŒã äœéšãå¯èœã«ããŸãã
2. ããŒã¿å¯èŠå
WebGLã¯ããŒã¿å¯èŠåã«ãŸããŸã䜿çšãããŠããããŠãŒã¶ãŒã¯è€éãªããŒã¿ã»ããã3Dã§ã€ã³ã¿ã©ã¯ãã£ãã«æ¢çŽ¢ã§ããŸããååã«æé©åãããã³ãã³ãã¹ã±ãžã¥ãŒã©ã¯ãé«ããã¬ãŒã ã¬ãŒãã§å€§èŠæš¡ãªããŒã¿ã»ããã®ã¬ã³ããªã³ã°ãå¯èœã«ããã·ãŒã ã¬ã¹ã§çŽæçãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŸããäžçäžã®ååŒæããã®ãªã¢ã«ã¿ã€ã ã®æ ªåŒåžå ŽããŒã¿ã衚瀺ããéèããã·ã¥ããŒãã¯ãææ°ã®æ å ±ãæç¢ºã«æç€ºããããã«å¹ççãªã¬ã³ããªã³ã°ãå¿ èŠã§ãã
3. ã€ã³ã¿ã©ã¯ãã£ããªè£œåãã¢
å€ãã®äŒæ¥ã¯ã顧客ãè³Œå ¥åã«è£œåã3Dã§æ¢çŽ¢ã§ããã€ã³ã¿ã©ã¯ãã£ããªè£œåãã¢ãäœæããããã«WebGLã䜿çšããŠããŸããã¹ã ãŒãºã§å¿çæ§ã®é«ããã¢ã¯ã顧客ãšã³ã²ãŒãžã¡ã³ããå€§å¹ ã«é«ãã売äžãä¿é²ããããšãã§ããŸããWebGLç°å¢ã§èšå®å€æŽå¯èœãªãœãã¡ã衚瀺ããå®¶å ·å°å£²æ¥è ãèããŠã¿ãŠãã ãããããŸããŸãªçå°ã®ãªãã·ã§ã³ãæ§æãå¹ççã«ã¬ã³ããªã³ã°ããããšã¯ãããžãã£ããªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«ãšã£ãŠäžå¯æ¬ ã§ããããã¯ç¹ã«ãæ¶è²»è ãè³Œå ¥åã«ãªã³ã©ã€ã³ã§è£œåã®è©³çްãåºç¯å²ã«èª¿æ»ããããšãå€ããã€ãã®ãããªåžå Žã§éèŠã§ãã
4. ããŒãã£ã«ãªã¢ãªãã£ãšæ¡åŒµçŸå®
WebGLã¯ããŠã§ãããŒã¹ã®VRããã³ARäœéšãæ§ç¯ããããã®éèŠãªæè¡ã§ãããããã®ã¢ããªã±ãŒã·ã§ã³ã¯ãå¿«é©ã§æ²¡å ¥æã®ããäœéšãæäŸããããã«ãéåžžã«é«ããã¬ãŒã ã¬ãŒããšäœãé å»¶ãå¿ èŠãšããŸããã³ãã³ãã¹ã±ãžã¥ãŒã©ã®æé©åã¯ãèŠæ±ãããããã©ãŒãã³ã¹ã¬ãã«ãéæããããã«äžå¯æ¬ ã§ããäŸãã°ããšãžããã®éºç©ã®ããŒãã£ã«ãã¢ãŒãæäŸããåç©é€šã¯ããŠãŒã¶ãŒã®æ²¡å ¥æãç¶æããããã«ã©ã°ã®ãªãäœéšãæäŸããå¿ èŠããããŸãã
å®è·µçãªæŽå¯ãšãã¹ããã©ã¯ãã£ã¹
WebGL GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ãæé©åããããã®å®è·µçãªæŽå¯ãšãã¹ããã©ã¯ãã£ã¹ã以äžã«ç€ºããŸãïŒ
- ã¢ããªã±ãŒã·ã§ã³ããããã¡ã€ã«ããïŒ ãããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åã®åãçµã¿ãå°ããŸãã
- ã³ãã³ãããããåŠçããïŒ é¢é£ããã³ãã³ãããŸãšããŠå€§ããªã³ãã³ããããã¡ã«ã°ã«ãŒãåããŸãã
- ã³ãã³ãããœãŒãããïŒ ãããã¡å ã®ã³ãã³ããäžŠã¹æ¿ããŠããã£ãã·ã¥ã®å±ææ§ãåäžãããã¹ããŒã倿ŽãæžãããŸãã
- ã¹ããŒã倿Žãæå°éã«æããïŒ äžèŠãªã¹ããŒã倿Žãé¿ããã¹ããŒãã®å€ããã£ãã·ã¥ããŸãã
- ã·ã§ãŒããŒãæé©åããïŒ ã·ã§ãŒããŒã®è€éãã軜æžããäœç²ŸåºŠã®ããŒã¿åã䜿çšããŸãã
- éåæã³ãã³ãéä¿¡ã䜿çšããïŒ CPUãä»ã®ã¿ã¹ã¯ã®åŠçãç¶ããããããã«ãã³ãã³ããããã¡ãéåæã«éä¿¡ããŸãã
- ãã«ãã¹ã¬ããã£ã³ã°ã掻çšããïŒ ã³ãã³ããããã¡ã®äœæãšéä¿¡ãè€æ°ã®CPUã¹ã¬ããã«åæ£ãããŸãã
- ããã«ãŸãã¯ããªãã«ãããã¡ãªã³ã°ã䜿çšããïŒ è€æ°ã®ãã¬ãŒã ãããã¡ã䜿çšããŠãCPU-GPUã®åæãé¿ããŸãã
- ããŸããŸãªããã€ã¹ã§ãã¹ãããïŒ ã¢ãã€ã«ããã€ã¹ãå€ãã³ã³ãã¥ãŒã¿ãå«ããåºç¯ãªããã€ã¹ã§ã¢ããªã±ãŒã·ã§ã³ãè¯å¥œã«åäœããããšã確èªããŸãããã©ãžã«ãã€ã³ããã·ã¢ãªã©ã®æ°èåžå Žã§äžè¬çã«äœ¿çšãããŠããããã€ã¹ã§ã®ãã¹ããæ€èšããŠãã ããã
- ããŸããŸãªå°åã§ã®ããã©ãŒãã³ã¹ãç£èŠããïŒ åæããŒã«ã䜿çšããŠãããŸããŸãªå°ççå°åã§ã®ããã©ãŒãã³ã¹ãç£èŠããæ¹åã®äœå°ãããé åãç¹å®ããŸãã
çµè«
WebGL GPUã³ãã³ãã¹ã±ãžã¥ãŒã©ã¯ãã°ããŒãã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ã°ã©ãã£ãã¯ã¹ããã©ãŒãã³ã¹ãæé©åããäžã§éèŠãªåœ¹å²ãæãããŸããã¹ã±ãžã¥ãŒã©ã®ã¢ãŒããã¯ãã£ãçè§£ããé©åãªæé©åæè¡ãæ¡çšããç¶ç¶çã«ããã©ãŒãã³ã¹ããããã¡ã€ãªã³ã°ããã³ç£èŠããããšã§ãéçºè ã¯äžçäžã®ãŠãŒã¶ãŒã«å¯ŸããŠã¹ã ãŒãºã§å¿çæ§ãé«ããé åçãªèŠèŠäœéšãä¿èšŒã§ããŸããã³ãã³ãã¹ã±ãžã¥ãŒã©ã®æé©åã«æè³ããããšã¯ããŠãŒã¶ãŒæºè¶³åºŠããšã³ã²ãŒãžã¡ã³ãããããŠæçµçã«ã¯WebGLããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã®ã°ããŒãã«ãªæåã«ãããå€§å¹ ãªæ¹åã«ã€ãªãããŸãã