ç©çã·ãã¥ã¬ãŒã·ã§ã³ã«ãããè¡çªæ€åºã®ã¢ã«ãŽãªãºã ãæé©åãå¿çšã解説ããªã¢ã«ã§ã€ã³ã¿ã©ã¯ãã£ããªä»®æ³ç°å¢ãæ§ç¯ããããã®ãäžå¿æŠå¿µãšèª²é¡ãæ·±ãæãäžããŸãã
ç©çã·ãã¥ã¬ãŒã·ã§ã³ïŒè¡çªæ€åºã®æ·±æã
è¡çªæ€åºã¯ç©çã·ãã¥ã¬ãŒã·ã§ã³ã®åºæ¬çãªåŽé¢ã§ãããã·ãã¥ã¬ãŒããããç°å¢å ã§ä»®æ³ãªããžã§ã¯ãããªã¢ã«ã«çžäºäœçšããããšãå¯èœã«ããŸãããããªã²ãŒã ãã³ã³ãã¥ãŒã¿ãŒã¢ãã¡ãŒã·ã§ã³ããããããã£ã¯ã¹ãç§åŠçã¢ããªã³ã°ã«è³ããŸã§ãæ°ãåããªãã»ã©ã®ã¢ããªã±ãŒã·ã§ã³ã®æ ¹å¹¹ãæããŠããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãè¡çªæ€åºã®èåŸã«ããäž»èŠãªæŠå¿µãã¢ã«ãŽãªãºã ãæé©åæè¡ãæ¢æ±ããå ç¢ã§å¹ççãªã·ãã¥ã¬ãŒã·ã§ã³ã·ã¹ãã ãçè§£ãå®è£ ããããã®åŒ·åºãªåºç€ãæäŸããŸãã
ãªãè¡çªæ€åºã¯éèŠãªã®ãïŒ
è¡çªæ€åºã¯ããã€ãã®çç±ã§éåžžã«éèŠã§ãïŒ
- ãªã¢ãªãºã ïŒ ãªããžã§ã¯ããæ¥è§Šããéã«ãªã¢ã«ã«æ¯ãèãããšãå¯èœã«ããäºãã«éãæããã®ãé²ããè·³ãè¿ããå€åœ¢ãšãã£ãé©åãªå¿çãå¯èœã«ããŸãã
- ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒ ãªããžã§ã¯ããšç°å¢ãšã®éã®ææçŸ©ãªçžäºäœçšãä¿é²ãããŠãŒã¶ãŒããªããžã§ã¯ããæäœããããã€ãã³ããããªã¬ãŒããããè€éãªã·ããªãªãäœæãããããããšãå¯èœã«ããŸãã
- å®å®æ§ïŒ æ£ç¢ºãªè¡çªæ€åºã¯ã·ãã¥ã¬ãŒã·ã§ã³ã®å®å®æ§ãç¶æããããã«äžå¯æ¬ ã§ããããªããžã§ã¯ããåããªããªã£ãããç°åžžãªæåã瀺ããããæ°å€çãªäžå®å®æ§ãåŒãèµ·ããããããã®ãé²ããŸãã
- å®å šæ§ïŒ ãããã£ã¯ã¹ãèªåé転ã®ãããªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãé害ç©ã人éãšã®è¡çªãé²ãããšã«ããããããããšãã®åšå²ã®å®å šã確ä¿ããããã«è¡çªæ€åºãäžå¯æ¬ ã§ãã
è¡çªæ€åºãã€ãã©ã€ã³ïŒãããŒããã§ãŒãºãšãããŒãã§ãŒãº
è¡çªæ€åºã¯éåžžã2段éã®ããã»ã¹ãšããŠå®è£ ãããŸãïŒ
- ãããŒããã§ãŒãºïŒ ãã®æ®µéã§ã¯ãè¡çªããå¯èœæ§ã®ãããªããžã§ã¯ãã®ãã¢ãè¿ éã«ç¹å®ããããšãç®æããŸãããªããžã§ã¯ãã®åçŽåããã衚çŸãšå¹ççãªã¢ã«ãŽãªãºã ã䜿çšããŠãç²ãç²åºŠã®è¡çªãã§ãã¯ãå®è¡ããŸããç®çã¯ãããé«ã³ã¹ããªãããŒãã§ãŒãºã§èæ ®ããå¿ èŠããããªããžã§ã¯ããã¢ã®æ°ãæžããããšã§ãã
- ãããŒãã§ãŒãºïŒ ãã®æ®µéã§ã¯ããããŒããã§ãŒãºã§ç¹å®ããããªããžã§ã¯ããã¢ã«å¯ŸããŠãããæ£ç¢ºã§è©³çްãªè¡çªãã§ãã¯ãå®è¡ããŸããããè€éãªã¢ã«ãŽãªãºã ãšå¹ŸäœåŠç衚çŸã䜿çšããŠãå®éã«è¡çªãçºçãããã©ããã倿ããæ¥è§Šç¹ãè²«éæ·±åºŠãè¡çªæ³ç·ãèšç®ããŸãã
è¡çªæ€åºãããã2ã€ã®ãã§ãŒãºã«åããããšã§ããããŒããã§ãŒãºã§è¡çªããŠããªãã»ãšãã©ã®ãªããžã§ã¯ããã¢ãé€å€ããããšã«ãããããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã
ãããŒããã§ãŒãºè¡çªæ€åºã¢ã«ãŽãªãºã
ãããŒããã§ãŒãºè¡çªæ€åºã«ã¯ãäžè¬çã«ããã€ãã®ã¢ã«ãŽãªãºã ã䜿çšãããŸãïŒ
1. ãã«ãŒããã©ãŒã¹æ³
ããã¯æãåçŽãªã¢ãããŒãã§ããããã¹ãŠã®å¯èœãªãªããžã§ã¯ãã®ãã¢ã«ã€ããŠè¡çªããã§ãã¯ããŸããå®è£ ã¯ç°¡åã§ãããæéèšç®éã¯O(n2)ïŒnã¯ãªããžã§ã¯ãã®æ°ïŒã§ããã倿°ã®ãªããžã§ã¯ããæã€ã·ãã¥ã¬ãŒã·ã§ã³ã«ã¯å®çšçã§ã¯ãããŸããã
2. 空éåå²
空éå岿è¡ã¯ãã·ãã¥ã¬ãŒã·ã§ã³ç©ºéãããå°ããªé åã«åå²ããç¹å®ã®é åå ã®ãªããžã§ã¯ããè¿ éã«ç¹å®ã§ããããã«ããŸããåãé åãŸãã¯é£æ¥ããé åå ã®ãªããžã§ã¯ãã®ã¿ãè¡çªãã§ãã¯ã®å¯Ÿè±¡ãšãªããŸãã
a. ã°ãªããããŒã¹åå²
ã·ãã¥ã¬ãŒã·ã§ã³ç©ºéã¯ãåäžãªã°ãªããç¶ã®ã»ã«ã«åå²ãããŸããåãªããžã§ã¯ãã¯ããããå ããã»ã«ã«å²ãåœãŠãããŸããè¡çªæ€åºã¯ãåãã»ã«ãŸãã¯é£æ¥ããã»ã«å ã®ãªããžã§ã¯ãéã§ã®ã¿å®è¡ãããŸããã°ãªããããŒã¹åå²ã®ããã©ãŒãã³ã¹ã¯ããªããžã§ã¯ãååžã®åäžæ§ã«äŸåããŸãããªããžã§ã¯ããç¹å®ã®é åã«éäžããŠããå Žåãäžéšã®ã»ã«ãéè² è·ã«ãªããã¢ã«ãŽãªãºã ã®å¹çãäœäžããå¯èœæ§ããããŸãã
b. ååæšãšå «åæš
ååæšïŒ2DïŒãšå «åæšïŒ3DïŒã¯ãã·ãã¥ã¬ãŒã·ã§ã³ç©ºéãååž°çã«å°ããªé åã«çްååããéå±€çãªããŒã¿æ§é ã§ãã现ååããã»ã¹ã¯ãåé åãå°æ°ã®ãªããžã§ã¯ããå«ããããŸãã¯æå®ã®è©³çްã¬ãã«ã«éãããŸã§ç¶ããŸããååæšãšå «åæšã¯ãç°ãªãé åã®ãªããžã§ã¯ãå¯åºŠã«å¿ããŠè©³çްã¬ãã«ãé©å¿ãããããšãã§ãããããäžåäžãªãªããžã§ã¯ãååžãæã€ã·ãã¥ã¬ãŒã·ã§ã³ã«é©ããŠããŸããäŸãã°ãéœåžã·ãã¥ã¬ãŒã·ã§ã³ã§ã¯ã建ç©ãå¯éããŠããäžå¿åžè¡å°ã¯ãéå€ãç°èã®å°åããã现ããåå²ãããŸãã
c. k-dæš
k-dæšã¯ããªããžã§ã¯ãã®åº§æšã«åºã¥ããŠç©ºéãåå²ããäºåæ¢çŽ¢æšã§ããããªãŒã®åããŒãã¯ç©ºéã®é åã衚ããããªãŒã®åã¬ãã«ã¯ç°ãªãè»žã«æ²¿ã£ãŠç©ºéãåå²ããŸããk-dæšã¯ç¯å²ã¯ãšãªãæè¿åæ¢çŽ¢ã«å¹ççã§ããããªããžã§ã¯ããçµ¶ããç§»åããåçãªç°å¢ã§ã®è¡çªæ€åºã«é©ããŠããŸãã
3. ããŠã³ãã£ã³ã°ããªã¥ãŒã éå±€ïŒBVHïŒ
BVHã¯ãçãããã¯ã¹ïŒè»žäžŠè¡å¢çããã¯ã¹ãAABBãããã³æåå¢çããã¯ã¹ãOBBïŒããŸãã¯ã«ãã»ã«ãªã©ã®ããŠã³ãã£ã³ã°ããªã¥ãŒã ïŒå¢çããªã¥ãŒã ïŒå ã«ãªããžã§ã¯ããå²ãéå±€çãªããŒã¿æ§é ã§ããéå±€ã¯ããªããžã§ã¯ããååž°çã«ã°ã«ãŒãåãããã倧ããªããŠã³ãã£ã³ã°ããªã¥ãŒã ã§å²ãããšã«ãã£ãŠæ§ç¯ãããŸããè¡çªæ€åºã¯ãã«ãŒãããŒãããéå§ããŠBVHãèµ°æ»ããããšã«ãã£ãŠå®è¡ãããŸãã2ã€ã®ããŒãã®ããŠã³ãã£ã³ã°ããªã¥ãŒã ãéãªããªãå Žåããããã®ããŒãå ã«å«ãŸãããªããžã§ã¯ãã¯è¡çªãåŸãŸãããããŠã³ãã£ã³ã°ããªã¥ãŒã ãéãªãå Žåãã¢ã«ãŽãªãºã ã¯å®éã®ãªããžã§ã¯ããå«ããªãŒãããŒãã«éãããŸã§ããããã®ããŒãã®åãååž°çã«ãã§ãã¯ããŸããBVHã¯ããã®å¹çæ§ãšæè»æ§ã«ãããè¡çªæ€åºã§åºã䜿çšãããŠããŸãããªããžã§ã¯ãã®åœ¢ç¶ãšè€éãã«å¿ããŠãããŸããŸãªçš®é¡ã®ããŠã³ãã£ã³ã°ããªã¥ãŒã ã䜿çšã§ããŸãã
äŸãã°ããããªã²ãŒã ã§ã¯ãèšç®ãšæŽæ°ãé«éã§ãããããAABBã䜿çšããBVHããã䜿çšãããŸãããããã£ã¯ã¹ã§ã¯ãè€éãªããããéšåã®åœ¢ç¶ã«ãããããã£ããããããæ£ç¢ºãªè¡çªæ€åºã«ã€ãªãããããOBBã奜ãŸããå ŽåããããŸããç§åŠã·ãã¥ã¬ãŒã·ã§ã³ã§ã¯ãã·ãã¥ã¬ãŒãããããªããžã§ã¯ããç²åã®ããã«ã»ãŒç圢ã§ããå Žåãçã®ããŠã³ãã£ã³ã°ããªã¥ãŒã ã§ååãªå ŽåããããŸãã
ãããŒãã§ãŒãºè¡çªæ€åºã¢ã«ãŽãªãºã
ãããŒãã§ãŒãºã§ã¯ããããŒããã§ãŒãºã§ç¹å®ããããªããžã§ã¯ããã¢ã«å¯ŸããŠããã粟å¯ãªè¡çªãã§ãã¯ãå®è¡ããŸããããã«ã¯éåžžãããèšç®éã®å€ãã¢ã«ãŽãªãºã ãšå¹ŸäœåŠç衚çŸãé¢ãããŸãã
1. 幟äœããªããã£ã
çãç®±ãåæ±ãåéãªã©ã®åçŽãªå¹Ÿäœããªããã£ããå«ãã·ãã¥ã¬ãŒã·ã§ã³ã§ã¯ãè§£æçãªè¡çªæ€åºã¢ã«ãŽãªãºã ã䜿çšã§ããŸãããããã®ã¢ã«ãŽãªãºã ã¯ã幟äœåŠçç¹æ§ã«åºã¥ããŠ2ã€ã®ããªããã£ãã亀差ãããã©ãããæ±ºå®ããæ¹çšåŒãå°åºããŸããäŸãã°ã2ã€ã®çã®éã®è¡çªæ€åºã¯ããããã®äžå¿éã®è·é¢ãèšç®ããååŸã®åèšãšæ¯èŒããããšã«ãã£ãŠæ±ºå®ã§ããŸããè·é¢ãååŸã®åèšä»¥äžã§ããã°ãçã¯è¡çªããŠããŸãã
2. ããªãŽã³ããŒã¹ã®è¡çªæ€åº
ããªãŽã³ã¡ãã·ã¥ãšããŠè¡šçŸãããããè€éãªãªããžã§ã¯ãã®å Žåãè¡çªæ€åºã¢ã«ãŽãªãºã ã¯ããªãŽã³ã®åã ã®é¢ããšããžãé ç¹ãèæ ®ããå¿ èŠããããŸããããªãŽã³ããŒã¹ã®è¡çªæ€åºã«ã¯ãäžè¬çã«ããã€ãã®ã¢ã«ãŽãªãºã ã䜿çšãããŸãïŒ
a. åé¢è»žã®å®çïŒSATïŒ
SATã¯ã2ã€ã®åžå€é¢äœãè¡çªããŠãããã©ããã倿ããããã®åŒ·åãªã¢ã«ãŽãªãºã ã§ãããã®å®çã¯ã2ã€ã®åžå€é¢äœã®å°åœ±ãéãªããªããããªç·ã§ããåé¢è»žãååšããå Žåã«éãã2ã€ã®åžå€é¢äœã¯éãªããªããšè¿°ã¹ãŠããŸããã¢ã«ãŽãªãºã ã¯ã2ã€ã®å€é¢äœã®ãã¹ãŠã®é¢æ³ç·ãšãšããžã®ã¯ãã¹ç©ã«æ²¿ã£ãŠåé¢è»žããã§ãã¯ããŸããåé¢è»žãèŠã€ããã°ãå€é¢äœã¯è¡çªããŠããŸãããåé¢è»žãèŠã€ãããªããã°ãå€é¢äœã¯è¡çªããŠããŸããSATã¯å¹ççã§æ£ç¢ºã§ãããåžå€é¢äœã«ããæ©èœããŸãããéåžãªããžã§ã¯ãã®å Žåããªããžã§ã¯ããåžæåã«åè§£ããå¿ èŠããããŸãã
b. GJKã¢ã«ãŽãªãºã
Gilbert-Johnson-KeerthiïŒGJKïŒã¢ã«ãŽãªãºã ã¯ãåžãªããžã§ã¯ãéã®è¡çªæ€åºã®ããã®ãã1ã€ã®äžè¬çãªã¢ã«ãŽãªãºã ã§ããããã¯ããã³ã³ãã¹ããŒå·®ã®æŠå¿µã䜿çšããŠã2ã€ã®ãªããžã§ã¯ããè¡çªããŠãããã©ããã倿ããŸãã2ã€ã®éåAãšBã®ãã³ã³ãã¹ããŒå·®ã¯ãA - B = {a - b | a â A, b â B}ãšããŠå®çŸ©ãããŸãããã³ã³ãã¹ããŒå·®ãåç¹ãå«ãå Žåã2ã€ã®ãªããžã§ã¯ãã¯è¡çªããŠããŸããGJKã¢ã«ãŽãªãºã ã¯ããã³ã³ãã¹ããŒå·®äžã§åç¹ã«æãè¿ãç¹ãç¹°ãè¿ãæ€çŽ¢ããŸããåç¹ãŸã§ã®è·é¢ããŒãã§ããã°ããªããžã§ã¯ãã¯è¡çªããŠããŸããGJKã¢ã«ãŽãªãºã ã¯å¹ççã§ãå€é¢äœãçãæ¥åäœãªã©ãããŸããŸãªåžåœ¢ç¶ãæ±ãããšãã§ããŸãã
c. EPAã¢ã«ãŽãªãºã
Expanding Polytope AlgorithmïŒEPAïŒã¯ãéåžžã2ã€ã®ãªããžã§ã¯ããè¡çªããŠããå Žåã«è²«é深床ãšè¡çªæ³ç·ãèšç®ããããã«GJKã¢ã«ãŽãªãºã ãšçµã¿åãããŠäœ¿çšãããŸããEPAã¢ã«ãŽãªãºã ã¯ãGJKã¢ã«ãŽãªãºã ã«ãã£ãŠèŠã€ããããåäœããå§ãŸãããã³ã³ãã¹ããŒå·®ã®è¡šé¢ã«éãããŸã§ç¹°ãè¿ãæ¡åŒµããŸããè²«éæ·±åºŠã¯ãåç¹ãããã³ã³ãã¹ããŒå·®ã®è¡šé¢äžã®æãè¿ãç¹ãŸã§ã®è·é¢ã§ãããè¡çªæ³ç·ã¯ãã®ç¹ãžã®åç¹ããã®æ¹åã§ããEPAã¢ã«ãŽãªãºã ã¯ããªã¢ã«ãªè¡çªå¿çãã·ãã¥ã¬ãŒãããããã«äžå¯æ¬ ãªãæ£ç¢ºã§ä¿¡é Œæ§ã®é«ãè¡çªæ å ±ãæäŸããŸãã
3. è·é¢ãã£ãŒã«ã
è·é¢ãã£ãŒã«ãã¯ã空éå ã®ä»»æã®ç¹ãããªããžã§ã¯ãã®è¡šé¢ãŸã§ã®è·é¢ã衚ããŸããè·é¢ãã£ãŒã«ãã䜿çšããè¡çªæ€åºã¯ããªããžã§ã¯ãã®å éšãå€éšãã倿ããããã«ãããŸããŸãªç¹ã§è·é¢ãã£ãŒã«ããã¯ãšãªããããšãå«ã¿ãŸããè·é¢ãã£ãŒã«ãã¯äºåèšç®ãŸãã¯ãªã³ã¶ãã©ã€ã§çæã§ããŸãããããã¯ãå€åœ¢å¯èœãªãªããžã§ã¯ããè€éãªåœ¢ç¶ã®ã·ãã¥ã¬ãŒã·ã§ã³ã«ç¹ã«åœ¹ç«ã¡ãŸãã笊å·ä»ãè·é¢ãã£ãŒã«ãïŒSDFïŒãäžè¬çã«äœ¿çšãããŸããæ£ã®å€ã¯ç¹ããªããžã§ã¯ãã®å€éšã«ããããšã瀺ããè² ã®å€ã¯å éšã«ããããšã瀺ãããŒãã®å€ã¯ç¹ã衚é¢äžã«ããããšã瀺ããŸãã
è¡çªå¿ç
è¡çªãæ€åºããããšãã·ãã¥ã¬ãŒã·ã§ã³ã¯è¡çªã«é©åã«å¿çããå¿ èŠããããŸããããã«ã¯éåžžãè¡çªã«ãã£ãŠçæãããåãšãã«ã¯ãèšç®ããé¢ä¿ãããªããžã§ã¯ãã«é©çšããããšãå«ãŸããŸããè¡çªå¿çã¯ãéåéãšãšãã«ã®ãŒãä¿åãããªããžã§ã¯ããçžäºã«è²«éããã®ãé²ãå¿ èŠããããŸãã
1. åç©ããŒã¹ã®è¡çªå¿ç
åç©ããŒã¹ã®è¡çªå¿çã¯ãè¡çªã«é¢äžãããªããžã§ã¯ãã®é床ã®å€åãèšç®ããŸããåç©ã¯ãè¡çªã®åŒŸæ§ã瀺ãåçºä¿æ°ã«ãã£ãŠæ±ºå®ãããŸããåçºä¿æ°ã1ã®å Žåã¯ããšãã«ã®ãŒã倱ãããªãå®å šåŒŸæ§è¡çªã瀺ããŸããåçºä¿æ°ã0ã®å Žåã¯ããã¹ãŠã®éåãšãã«ã®ãŒãç±ãå€åœ¢ãªã©ã®ä»ã®åœ¢æ ã®ãšãã«ã®ãŒã«å€æãããå®å šé匟æ§è¡çªã瀺ããŸããåç©ã¯æ¥è§Šç¹ã§ãªããžã§ã¯ãã«é©çšãããé床ã倿ŽãããŸããããã¯ã²ãŒã ã®ç©çãšã³ãžã³ã§äžè¬çãªæ¹æ³ã§ãã
2. ããã«ãã£ããŒã¹ã®è¡çªå¿ç
ããã«ãã£ããŒã¹ã®è¡çªå¿çã¯ãè²«éæ·±åºŠã«æ¯äŸããåãè¡çªã«é¢äžãããªããžã§ã¯ãã«é©çšããŸãããã®åã¯ãªããžã§ã¯ããæŒãé¢ããçžäºè²«éãé²ããŸããåã®å€§ããã¯ããªããžã§ã¯ãã®å€åœ¢ã«å¯Ÿããæµæã衚ãåæ§ãã©ã¡ãŒã¿ã«ãã£ãŠæ±ºå®ãããŸããããã«ãã£ããŒã¹ã®è¡çªå¿çã¯å®è£ ãç°¡åã§ãããåæ§ãã©ã¡ãŒã¿ãé«ãããããæéã¹ãããã倧ãããããšäžå®å®ã«ãªãå¯èœæ§ããããŸãã
3. å¶çŽããŒã¹ã®è¡çªå¿ç
å¶çŽããŒã¹ã®è¡çªå¿çã¯ãè¡çªãæºããã¹ãäžé£ã®å¶çŽãšããŠå®åŒåããŸããå¶çŽã¯éåžžããªããžã§ã¯ããçžäºã«è²«éã§ããªãããšãããã³æ¥è§Šç¹ã§ã®çžå¯Ÿé床ãç¹å®ã®æ¡ä»¶ãæºããå¿ èŠãããããšãæå®ããŸããå¶çŽã¯ãã©ã°ã©ã³ãžã¥ä¹æ°ãå°åœ±ã¬ãŠã¹ïŒã¶ã€ãã«æ³ãªã©ã®æ°å€æé©åæè¡ã䜿çšããŠè§£æ±ºãããŸããå¶çŽããŒã¹ã®è¡çªå¿çã¯ãåç©ããŒã¹ãããã«ãã£ããŒã¹ã®æ¹æ³ãããå®è£ ãè€éã§ãããããæ£ç¢ºã§å®å®ããçµæãæäŸã§ããŸãã
è¡çªæ€åºã®æé©åæè¡
è¡çªæ€åºã¯ãç¹ã«å€æ°ã®ãªããžã§ã¯ããè€éãªãžãªã¡ããªãæã€ã·ãã¥ã¬ãŒã·ã§ã³ã§ã¯ãèšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸããè¡çªæ€åºã¢ã«ãŽãªãºã ã®ããã©ãŒãã³ã¹ãåäžãããããã«ãããã€ãã®æé©åæè¡ã䜿çšã§ããŸãã
1. ããŠã³ãã£ã³ã°ããªã¥ãŒã éå±€ïŒBVHïŒã®ãã£ãã·ã³ã°
æ¯ãã¬ãŒã BVHãåæ§ç¯ããã®ã¯èšç®ã³ã¹ããé«ãå ŽåããããŸããã·ãã¥ã¬ãŒã·ã§ã³å ã®ãªããžã§ã¯ããå€§å¹ ã«ç§»åãŸãã¯å€åœ¢ããŠããªãå ŽåãBVHããã£ãã·ã¥ããŠè€æ°ã®ãã¬ãŒã ã§åå©çšã§ããŸããããã«ãããè¡çªæ€åºã®èšç®ã³ã¹ããå€§å¹ ã«åæžã§ããŸãããªããžã§ã¯ããç§»åããå ŽåãBVHã®åœ±é¿ãåããéšåã®ã¿ãæŽæ°ããå¿ èŠããããŸãã
2. SIMDïŒåäžåœä»€è€æ°ããŒã¿ïŒ
SIMDåœä»€ã䜿çšãããšãåäžã®åœä»€ã§è€æ°ã®ããŒã¿èŠçŽ ãåæã«åŠçã§ããŸããSIMDã¯ãè€æ°ã®ãªããžã§ã¯ãã®ãã¢ãŸãã¯ããªãŽã³ã®è€æ°ã®é ç¹ã䞊ååŠçããããšã«ãããè¡çªæ€åºã¢ã«ãŽãªãºã ãé«éåããããã«äœ¿çšã§ããŸããçŸä»£ã®CPUããã³GPUã¯ãè¡çªæ€åºã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããã«äœ¿çšã§ããSIMDåœä»€ãæäŸããŠããŸãã
3. 䞊åå
è¡çªæ€åºã¯ãã·ãã¥ã¬ãŒã·ã§ã³ç©ºéãè€æ°ã®é åã«åå²ããåé åãç°ãªãããã»ããµã³ã¢ã«å²ãåœãŠãããšã§äžŠååã§ããŸããåã³ã¢ã¯ããã®é åå ã®ãªããžã§ã¯ãã«å¯ŸããŠç¬ç«ããŠè¡çªæ€åºãå®è¡ã§ããŸãã䞊ååã¯ãç¹ã«å€æ°ã®ãªããžã§ã¯ããæã€ã·ãã¥ã¬ãŒã·ã§ã³ã®å Žåãå šäœã®èšç®æéãå€§å¹ ã«ççž®ã§ããŸãããã®ã¢ãããŒãã¯ãçŸä»£ã®ã³ã³ãã¥ãŒã¿ã§äžè¬çãªãã«ãã³ã¢ããã»ããµã掻çšããŸãã
4. 詳现床ïŒLODïŒ
詳现床ïŒLODïŒæè¡ã¯ããã¥ãŒã¢ããã®è·é¢ãã·ãã¥ã¬ãŒã·ã§ã³ã§ã®éèŠæ§ã«å¿ããŠããªããžã§ã¯ãã®å¹ŸäœåŠç衚çŸã«ç°ãªã詳现ã¬ãã«ã䜿çšããããšãå«ã¿ãŸãããã¥ãŒã¢ããé ããªããžã§ã¯ãã¯ãããåçŽãªãžãªã¡ããªã䜿çšããŠè¡šçŸã§ãããããè¡çªæ€åºã®èšç®ã³ã¹ããåæžãããŸããåæ§ã«ãéèŠåºŠã®äœããªããžã§ã¯ããããåçŽãªãžãªã¡ããªã䜿çšããŠè¡šçŸã§ããŸããããã¯ãé ãã®ãªããžã§ã¯ãã®ããªãŽã³æ°ãå€§å¹ ã«åæžããããããªã²ãŒã ã§äžè¬çã«äœ¿çšãããŸãã
5. ã«ãªã³ã°æè¡
ã«ãªã³ã°æè¡ã¯ãèŠããªãããŸãã¯è¡çªããå¯èœæ§ãäœããªããžã§ã¯ããé€å€ããããã«äœ¿çšãããŸããäŸãã°ãã«ã¡ã©ã®åŸãã«ãããªããžã§ã¯ãã¯è¡çªæ€åºããã»ã¹ããã«ãªã³ã°ã§ããŸããåæ§ã«ãé¢å¿é åããé ãé¢ãããªããžã§ã¯ããã«ãªã³ã°ã§ããŸããã«ãªã³ã°æè¡ã¯ãè¡çªæ€åºã§èæ ®ããå¿ èŠããããªããžã§ã¯ãã®æ°ãå€§å¹ ã«åæžã§ããŸãã
è¡çªæ€åºã®å®äžçã§ã®å¿çš
è¡çªæ€åºã¯ã以äžãå«ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããŠããŸãïŒ
- ãããªã²ãŒã ïŒ è¡çªæ€åºã¯ããªã¢ã«ã§ã€ã³ã¿ã©ã¯ãã£ããªã²ãŒã ç°å¢ãäœæããããã«äžå¯æ¬ ã§ãããã£ã©ã¯ã¿ãŒãç°å¢ãšçžäºäœçšããé害ç©ãšè¡çªããäºãã«æŠãããšãå¯èœã«ããŸãã
- ã³ã³ãã¥ãŒã¿ãŒã¢ãã¡ãŒã·ã§ã³ïŒ è¡çªæ€åºã¯ãã¢ãã¡ãŒã·ã§ã³æ ç»ããã¬ãçªçµã§ãªããžã§ã¯ãã®åããšçžäºäœçšãã·ãã¥ã¬ãŒãããããã«äœ¿çšãããŸããããã«ãããã¢ãã¡ãŒã¿ãŒã¯ãªã¢ã«ã§ä¿¡ææ§ã®ããã¢ãã¡ãŒã·ã§ã³ãäœæã§ããŸããäŸãã°ããã£ã©ã¯ã¿ãŒã®äžã«ãŸãšã£ãè¡£æã®ã·ãã¥ã¬ãŒã·ã§ã³ã«ã¯ã粟å¯ãªè¡çªæ€åºãå¿ èŠã§ãã
- ãããã£ã¯ã¹ïŒ è¡çªæ€åºã¯ããããããšãã®åšå²ã®å®å šã確ä¿ããããã«äžå¯æ¬ ã§ãããããããé害ç©ã人éãšã®è¡çªãåé¿ã§ããããã«ããè€éãªç°å¢ã§å®å šã«æäœã§ããããã«ããŸããäŸãã°ãèªååãããå庫ã§ã¯ãããããã¯åšåº«ãæå·ããªãããã«è¡çªæ€åºã«å€§ããäŸåããŠããŸãã
- ããŒãã£ã«ãªã¢ãªãã£ïŒVRïŒãšæ¡åŒµçŸå®ïŒARïŒïŒ è¡çªæ€åºã¯ããŠãŒã¶ãŒãä»®æ³ãªããžã§ã¯ããšãªã¢ã«ãªæ¹æ³ã§çžäºäœçšããããšãå¯èœã«ããŸãããŠãŒã¶ãŒãä»®æ³ãªããžã§ã¯ãã«æã䌞ã°ããŠè§Šããããæäœããããç©ççãªååšæãäœéšãããããããšãå¯èœã«ããŸãã
- ç§åŠçã¢ããªã³ã°ïŒ è¡çªæ€åºã¯ãç§åŠã·ãã¥ã¬ãŒã·ã§ã³ã§ç²åãååã®æåãã·ãã¥ã¬ãŒãããããã«äœ¿çšãããŸããããã«ãããç§åŠè ã¯ææã®ç¹æ§ãç°ãªãç©è³ªéã®çžäºäœçšãç ç©¶ã§ããŸããäŸãã°ãæµäœã®æåãååŠåå¿ã«ãããååã®è¡çªãã·ãã¥ã¬ãŒãããããšã¯ãè¡çªæ€åºã¢ã«ãŽãªãºã ã«äŸåããŠããŸãã
- èªåéè»¢ïŒ è¡çªæ€åºã¯ãèªåé転ã·ã¹ãã ã®éèŠãªæ§æèŠçŽ ã§ããè»äž¡ãé害ç©ãæ€åºããä»ã®è»äž¡ãæ©è¡è ãèªè»¢è»ãšã®è¡çªãåé¿ã§ããããã«ããŸãã
- å»çã·ãã¥ã¬ãŒã·ã§ã³ïŒ å€ç§å»ã¯ãè€éãªææãç·Žç¿ããæè¡ãèšç»ããããã«ã·ãã¥ã¬ãŒã·ã§ã³ã§è¡çªæ€åºã䜿çšããŸãã
è¡çªæ€åºã«ããã課é¡
è¡çªæ€åºã®ã¢ã«ãŽãªãºã ãšæè¡ã®é²æ©ã«ãããããããããã€ãã®èª²é¡ãæ®ã£ãŠããŸãïŒ
- èšç®ã³ã¹ãïŒ è¡çªæ€åºã¯ãç¹ã«å€æ°ã®ãªããžã§ã¯ããè€éãªãžãªã¡ããªãæã€ã·ãã¥ã¬ãŒã·ã§ã³ã§ã¯ãèšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸããè¡çªæ€åºã¢ã«ãŽãªãºã ãšæè¡ã®æé©åã¯ãç¶ç¶çãªèª²é¡ã§ãã
- ç²ŸåºŠïŒ ãªã¢ã«ãªçžäºäœçšãã·ãã¥ã¬ãŒãããããã«ã¯ãè¡çªæ€åºã§é«ã粟床ãéæããããšãäžå¯æ¬ ã§ããããããé«ã粟床ãéæããããšã¯èšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸãã
- å€åœ¢å¯èœãªãªããžã§ã¯ãïŒ å€åœ¢å¯èœãªãªããžã§ã¯ãã®è¡çªæ€åºã¯ããªããžã§ã¯ãã®åœ¢ç¶ãçµ¶ããå€åãããããç¹ã«å°é£ã§ãã
- è€éãªãžãªã¡ããªã®åŠçïŒ æšãæ€ç©ãªã©ã®è€éãªãžãªã¡ããªãæã€ãªããžã§ã¯ãã®è¡çªæ€åºã¯ãèšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸãã
- ãªã¢ã«ã¿ã€ã ããã©ãŒãã³ã¹ïŒ ãããªã²ãŒã ãVRãªã©ã®ã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãè¡çªæ€åºã§ãªã¢ã«ã¿ã€ã ããã©ãŒãã³ã¹ãéæããããšãéèŠã§ãã
- æ°å€çå®å®æ§ïŒ ã·ãã¥ã¬ãŒã·ã§ã³ãäžå®å®ã«ãªã£ãããç°åžžãªæåã瀺ãããããã®ãé²ãããã«ãè¡çªæ€åºã«ãããæ°å€çå®å®æ§ã確ä¿ããããšãäžå¯æ¬ ã§ãã
çµè«
è¡çªæ€åºã¯ãå¹ åºãå¿çšãæã€ç©çã·ãã¥ã¬ãŒã·ã§ã³ã®åºæ¬çãªåŽé¢ã§ããè¡çªæ€åºã®èåŸã«ããäžå¿çãªæŠå¿µãã¢ã«ãŽãªãºã ãæé©åæè¡ãçè§£ããããšã¯ããªã¢ã«ã§ã€ã³ã¿ã©ã¯ãã£ããªä»®æ³ç°å¢ãäœæããããã«äžå¯æ¬ ã§ãã課é¡ã¯æ®ã£ãŠããŸãããç¶ç¶çãªç ç©¶éçºã«ãããè¡çªæ€åºã¢ã«ãŽãªãºã ã®ããã©ãŒãã³ã¹ã粟床ãå ç¢æ§ãåäžãç¶ããããŸããŸãªåéã§æ°ãããšããµã€ãã£ã³ã°ãªã¢ããªã±ãŒã·ã§ã³ãå¯èœã«ãªã£ãŠããŸãã
ãããªã²ãŒã ã®ãã€ãããã¯ãªäžçããç§åŠã·ãã¥ã¬ãŒã·ã§ã³ã®ç²Ÿå¯ãªèšç®ãŸã§ãè¡çªæ€åºã¯ä»®æ³ç°å¢ã«åœãå¹ã蟌ãäžã§éèŠãªåœ¹å²ãæãããŸãããããã®æè¡ãæ¹è¯ãæé©åãç¶ããããšã§ãå°æ¥çã«ã¯ããã«é«ãã¬ãã«ã®ãªã¢ãªãºã ãšã€ã³ã¿ã©ã¯ãã£ããã£ãè§£ãæŸã€ããšãã§ããã§ãããã