
深床ãããã¡
座æšç³»ã®ã¬ãã¹ã³ã§ã¯ã深床ãããã¡ã䜿çšããŠ3次å
ã®ã³ã³ãããã¬ã³ããªã³ã°ããŸãããããã«ãããä»ã®äººã®èåŸã«ããé¡ã®èª€ã£ã衚瀺ã鲿¢ãããŸããã ãã®ã¬ãã¹ã³ã§ã¯ãããã¹ãããã¡ãŒïŒãŸãã¯zãããã¡ãŒïŒãšããã«æ ŒçŽãããŠããå€ã詳ãã調ã¹ããã©ã°ã¡ã³ããä»ã®ãã©ã°ã¡ã³ããããé
ããŠããå Žåã«ãã§ãã¯ãã©ã®çšåºŠæ£ç¢ºã«ééãããã調ã¹ãŸãã
ããã¹ãããã¡ã¯ãã«ã©ãŒãããã¡ïŒãã¹ãŠã®ãã©ã°ã¡ã³ãã®è²âå¯èŠç»åãæ ŒçŽããïŒãšåæ§ã«ãåãã©ã°ã¡ã³ãã®ç¹å®ã®æ
å ±ãæ ŒçŽããéåžžã¯ã«ã©ãŒãããã¡ãšåããµã€ãºãæã¡ãŸãã æ·±åºŠãããã¡ã¯ãOSãŠã£ã³ããŠã·ã¹ãã ã«ãã£ãŠèªåçã«äœæããã16ãããã24ãããããŸãã¯32ãããã®æµ®åå°æ°ç¹æ°ã®åœ¢åŒã§å€ãæ ŒçŽããŸãã ã»ãšãã©ã®ã·ã¹ãã ã§ã¯ã24ãããã®ç²ŸåºŠã®ãããã¡ãŒãããã©ã«ãã§äœæãããŸãã
深床ãã¹ããæå¹ã«ãªã£ãŠããå ŽåãOpenGLã¯ãåŠçãããåãã©ã°ã¡ã³ãã®æ·±åºŠããããã¡ã«ä¿åãããŠããããŒã¿ãšç
§åããŸãã ãã¹ãã«åæ ŒãããšãåŠçããããã©ã°ã¡ã³ãã®æ·±ãå€ã§ãããã¡ã®å
å®¹ãæŽæ°ããããã¹ãã倱æããå Žåãä¿åãããå€ã¯åããŸãŸã«ãªãããã©ã°ã¡ã³ãã¯ç Žæ£ãããŸãã
深床ãã¹ãã¯ããã©ã°ã¡ã³ãã·ã§ãŒããŒãå®è¡ãããåŸïŒããã³æ¬¡ã®ã¬ãã¹ã³ã§èª¬æããã¹ãã³ã·ã«ãã¹ãã®åŸïŒãç»é¢ã¹ããŒã¹ã§å®è¡ãããŸãã ç»é¢åº§æšã¯
glViewport颿°ã§æå®ããããã¥ãŒããŒãã®ãã©ã¡ãŒã¿ãŒã«çŽæ¥é¢é£ããŠããããã©ã°ã¡ã³ãã·ã§ãŒããŒã³ãŒãã®GLSLçµã¿èŸŒã¿å€æ°
gl_FragCoordããã¢ã¯ã»ã¹ã§ããŸãã ãã®å€æ°ã®xããã³yã³ã³ããŒãã³ãã¯ããã¥ãŒããŒãå
ã®ãã©ã°ã¡ã³ãã®åº§æšã§ãïŒãŠã£ã³ããŠã®å·Šäžé
ã«ã¯åº§æšïŒ0ã0ïŒããããŸãïŒã
Gl_FragCoordã«ã¯3çªç®ã®ã³ã³ããŒãã³ãããããå®éã«ã¯ãã©ã°ã¡ã³ãã®æ·±ãã®å€ãå«ãŸããŠããŸãã ãã®zã³ã³ããŒãã³ãã¯ã深床ãããã¡ã®å€ãšæ¯èŒããããã«äœ¿çšãããŸãã
ææ°ã®GPUã¯ãã»ãšãã©ãã¹ãŠãåææ·±åºŠãã¹ããšåŒã°ããããªãã¯ã䜿çšããŠããŸãã ãã®ææ³ã«ããããã©ã°ã¡ã³ãã·ã§ãŒããŒãå®è¡ããåã«æ·±åºŠãã¹ããå®è¡ã§ããŸãã ãã®ãã©ã°ã¡ã³ããã©ã®ããã«ãèŠããªãïŒä»ã®ãªããžã§ã¯ãã«ãã£ãŠãããã¯ãããŠããïŒããšã«æ°ä»ããå Žåãã·ã§ãŒãã£ã³ã°ã¹ããŒãžãŸã§ãããç Žæ£ã§ããŸãã
ãã©ã°ã¡ã³ãã·ã§ãŒããŒã¯èšç®éãå€ããããæå³ã®ãªãå Žæã§ã¯å®è¡ããªãã§ãã ããã ãã®ãã¯ããã¯ã«ã¯1ã€ã®å¶éãããããŸããããã©ã°ã¡ã³ãã·ã§ãŒããŒã¯ãã©ã°ã¡ã³ã深床ã®å€ã倿Žããªãã§ãã ããã ãã®å ŽåãOpenGLã¯åŠçæžã¿ãã©ã°ã¡ã³ãã®æ·±åºŠå€ãäºåã«æ±ºå®ã§ããªããããããã¯æããã§ãã
ããã©ã«ãã§ã¯ã深床ãã¹ãã¯ç¡å¹ã«ãªã£ãŠããŸãã ãªã³ã«ããŸãïŒ
glEnable(GL_DEPTH_TEST);
深床ãã¹ãããªã³ã«ãããšãOpenGLã¯ãã¹ãã«åæ Œãããã¹ãŠã®ãã©ã°ã¡ã³ãã®æ·±åºŠå€ãèªåçã«ä¿åããåæ Œããªãã£ããã©ã°ã¡ã³ããç Žæ£ããŸãã
深床ãã¹ããæå¹ã«ããã«ã¯ãåãã¬ãŒã ã®å€ãå€ãããããã¡ãã¯ãªã¢ããå¿
èŠããããŸãã æ°ãããã©ã°
GL_DEPTH_BUFFER_BITãããªãã¿ã®
glClear颿°ã«è¿œå ãããŸãã
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
ç¹å®ã®ç¶æ³ã§ã¯ããããã¡èªäœã®å
å®¹ãæŽæ°ããã«ããã¹ãçµæã«åŸã£ãŠç Žæ£ããŠåŠçæžã¿ãã©ã°ã¡ã³ãã®æ·±åºŠãã¹ããå®è¡ããå¿
èŠãããå ŽåããããŸãã ããªãã¡ èªã¿åãå°çšã¢ãŒããããã¡ãžã®å²ãåœãŠã 深床ãã¹ã¯ã
GL_FALSEã«èšå®ãããšããããã¡ãžã®æžã蟌ã¿ãç¡å¹ã«ãªããŸãã
glDepthMask(GL_FALSE);
ããã¯ã深床ãã¹ãããªã³ã®å Žåã«ã®ã¿æå³ãããããšã«æ³šæããŠãã ããã
深床ãã¹ãæ©èœ
OpenGLã§ã¯ã深床ãã¹ãã§äœ¿çšãããæ¯èŒæŒç®åãåå®çŸ©ã§ããŸããããã«ãããåŠçãããã©ã°ã¡ã³ããç Žæ£ãããã©ã°ã¡ã³ããããã³æ·±åºŠãããã¡ãæŽæ°ããã±ãŒã¹ã现ããå¶åŸ¡ã§ããŸãã ãã®ã¹ããŒãã¡ã³ãã¯ã
glDepthFunc颿°ãåŒã³åºãããšã§èšå®ãããŸãã
glDepthFunc(GL_LESS);
ãã®é¢æ°ã¯ããã®ãªã¹ãããæ¯èŒæŒç®åã®èå¥åãåãå
¥ããŸãã
ããã©ã«ãã§ã¯
GL_LESSã䜿çšãããŸããããã¯ããããã¡ã«æ ŒçŽãããŠããæ·±åºŠå€ä»¥äžã®æ·±åºŠãæã€ãã¹ãŠã®ãã©ã°ã¡ã³ããç Žæ£ããããšãæå³ããŸãã
ããŸããŸãªæ¯èŒæŒç®åãã¢ããªã±ãŒã·ã§ã³ã®åºåã«ã©ã®ããã«åœ±é¿ãããã詊ããŠã¿ãŸãããã ç§ãã¡ã¯ãç
§æã䜿çšããã«ãåºã«ç«ã€2ã€ã®ãã¯ã¹ãã£ãã¥ãŒãã§ã·ãŒã³ãèšå®ããæ°ãããããžã§ã¯ãã䜿çšããŠããŸãã ãœãŒã¹ã³ãŒãã¯
ãã¡ãã§ãã ãŸããæŒç®åã
GL_ALWAYSã«å€æŽã
ãŸã ã
glEnable(GL_DEPTH_TEST); glDepthFunc(GL_ALWAYS);
ãã®èšå®ã¯ã深床ãã¹ããç¡å¹ã«ããããšãšåçã§ããæ·±åºŠãã¹ãã§ã¯ãããšã忝ã«ããã¯ãã§ãã£ããšããŠããå
ã«åŠçããããã©ã°ã¡ã³ãã®äžã«ãåŸã§åŠçããããã©ã°ã¡ã³ãã衚瀺ãããŸãã ãããŠæåŸã«åºãæãã®ã§ããã®æçã¯ä»¥åã«è¡šç€ºãããç«æ¹äœã®ãã¹ãŠã®æçãšéãªããŸããïŒ
GL_LESSæŒç®åãè¿ããšãæ£ããã·ãŒã³ãåŸãããŸãã
深床å€ã®ç²ŸåºŠã®åé¡
深床ãããã¡ã®å€ã¯éé[0.0ã1.0]ã«å¶éããããããã«å¯ŸããŠããã¹ãŠã®ã·ãŒã³ãªããžã§ã¯ãã®zã³ã³ããŒãã³ãã芳枬è
ã®èŠç¹ãããã§ãã¯ãããŸãã ãã®å Žåã皮空éå
ã®ãªããžã§ã¯ãã®zã³ã³ããŒãã³ãã¯ãéé[zNearãzFar]ã®ä»»æã®å€ãåãããšãã§ããŸããããã«ãããæåœ±ãã©ãããïŒ
æåœ±éå° ïŒã®è¿å¢çãšé å¢çãæ±ºãŸããŸãã ãã®ççŸãè§£æ¶ããã«ã¯ã皮空éã®zæåã®å€ãåºé[0.0ã1.0]ã«å€æããæ¹æ³ãå¿
èŠã§ãã æåã®åçŽãªæ¹æ³ã¯ãåçŽãªç·åœ¢å€æã§ãã
ããã§ãzNearãšzFarã¯ãå¯èŠæ§ãã©ããããå®çŸ©ããæåœ±è¡åã®äœæã«äœ¿çšããnearããã³farãã©ã¡ãŒã¿ãŒã®å€ã§ãïŒ
座æšç³»ãåç
§ïŒã ãã®äŸåé¢ä¿ã¯ãå¯èŠæ§ãã©ãããå
ã«ããzã®å€ããã©ã¡ãŒã¿ãŒãšããŠåãåãããããéé[0.0ã1.0]ã«å€æããŸãã zå€ãšçµæã®æ·±åºŠå€ãšã®é¢ä¿ã¯ãã°ã©ãã§ç¢ºèªã§ããŸãã
èæ
®ããããã¹ãŠã®äŸåé¢ä¿ã¯ãè¿ããªããžã§ã¯ãã§ã¯0.0ã«ãªããé ãã¯ãªããã³ã°å¹³é¢ã®è¿ãã«ãããªããžã§ã¯ãã§ã¯1.0ã«ãªãåŸåãããå€ã«ãªããŸãã
ãã ããå®éã«ã¯ãç·åœ¢æ·±åºŠãããã¡ã¯å®éã«ã¯äœ¿çšãããŸããã é«åè³ªã®æåœ±çµæãåŸãã«ã¯ã1 / zã«æ¯äŸããäŸåé¢ä¿ã䜿çšãããŸãã ãã®äŸåé¢ä¿ã䜿çšãããšãzãå°ããå Žåã¯æ·±åºŠå€ã®ç²ŸåºŠãé«ããªããzã倧ããå Žåã¯ç²ŸåºŠãã¯ããã«äœããªããŸãã ãã®åäœã®æå³ã«ã€ããŠèããŠãã ããããªãã¶ãŒããŒããæ°ååäœã®ãªããžã§ã¯ããããªãã¶ãŒããŒã®ããåã«ãã詳现ãªãªããžã§ã¯ãã®å Žåãæ·±åºŠå€ã®ç²ŸåºŠã¯æ¬åœã«éèŠã§ããïŒ ç·åœ¢å€æã䜿çšããå Žåããã®åé¡ã¯èæ
®ãããŸããã
éç·åœ¢å€æã¯1 / zã«æ¯äŸãããããåºé[1.0ã2.0]ã®zå€ã«å¯ŸããŠãåºé[1.0ã0.5]ã®æ·±åºŠå€ãååŸããŸããããã¯ãfloatåã®ååã®ç²ŸåºŠãæ¢ã«ã«ããŒããå°ããªzã«éåžžã«é«ã粟床ãæäŸããŸãã éé[50.0ã100.0]ããã®zå€ã¯ãfloatåã®äœ¿çšå¯èœãªç²ŸåºŠã®2ïŒ
ã ãã§æäŸãããŸãããããã¯ãŸãã«å¿
èŠãªãã®ã§ãã ãã®ãããå°åœ±è¡åã®ãã©ã¡ãŒã¿ãŒzNearãšzFarãèæ
®ããããšãå«ããæ°ããäŸåé¢ä¿ïŒ
ãã®è¡šçŸãå
·äœçã«äœãæå³ããã®ãããããªããŠãå¿é
ããªãã§ãã ããã äž»ãªããšã¯ã深床ãããã¡ã«æ ŒçŽãããŠããå€ãã¹ã¯ãªãŒã³ç©ºéã§éç·åœ¢ã§ããããšãèŠããŠããããšã§ãïŒãã¥ãŒç©ºéã§ã¯ãå°åœ±è¡åãé©çšããåã¯ç·åœ¢ã§ãïŒã ãããã¡ãŒã®å€0.5ã¯ããªããžã§ã¯ããå¯èŠæ§ã®ãã©ãããã®çãäžã«ããããšãæå³ãããã®ã§ã¯ãããŸããã å®éããã®æ·±åºŠã察å¿ãããã€ã³ãã¯ããã¢ã¯ãªããã³ã°ãã¬ãŒã³ã«ããªãè¿ãã§ãã 以äžã®ã°ã©ãã¯ãzæåã®åæå€ã«å¯Ÿããéç·åœ¢æ·±åºŠå€ã®äŸåé¢ä¿ã瀺ããŠããŸãã

ã芧ã®ãšãããå
¥åå€zãå°ãããšæ·±åºŠå€ã倧ããç°ãªããããã¯ãªããã³ã°ãã¬ãŒã³ã«è¿ãé åã®ç²ŸåºŠãåäžããŸãã ïŒèŠ³æž¬è
ã®èŠç¹ããã®ïŒzå€ã®å€æã®åŒã¯ãå°åœ±è¡åã®æ§é ã«åã蟌ãŸããŸãã ãããã£ãŠãé ç¹ã®åº§æšããã¥ãŒç©ºéããã¯ãªãã空éã«å€æããŠããã¹ã¯ãªãŒã³ç©ºéã«å€æãããšããzå€ã®éç·åœ¢å€æã䜿çšããŸãã æåœ±è¡åã®ã¡ã«ããºã ã詳现ã«çè§£ãããå Žåã¯ããã®
çŽ æŽãããèšäºããå§ãã
ãŸã ã
深床ãããã¡ãèŠèŠåããããšãããšãéç·åœ¢æ§ã®åœ±é¿ã«æ°ä»ãããããªããŸãã
深床ãããã¡å€ã®èŠèŠç衚çŸã
ãã®ãããé ç¹ã·ã§ãŒããŒã§ã¯ãçµã¿èŸŒã¿å€æ°
gl_FragCoordã®zã³ã³ããŒãã³ããä»ããŠãã©ã°ã¡ã³ã深床å€ã䜿çšã§ããŸãã ãã®å€ãè²ã®å€ãšããŠåºåãããšãçŸåšã®æ·±åºŠãããã¡ãŒã®å
容ãèŠèŠåã§ããŸãã
void main() { FragColor = vec4(vec3(gl_FragCoord.z), 1.0); }
ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããšãããšãã»ãšãã©ã®å Žåããã¹ãŠãçœã§ãã£ã±ãã«ãªãããã¹ãŠã®ãªããžã§ã¯ãã®æ·±ãã1.0ïŒå¯èœãªæå€§å€ïŒã§ãããšããå°è±¡ãäžããŸãã æ·±ãããŒãã«è¿ã¥ãæãé åã衚瀺ãããªãã®ã¯ãªãã§ããïŒ
åã®ã»ã¯ã·ã§ã³ãããç»é¢ã¹ããŒã¹ã§ã¯æ·±åºŠãããã¡ãŒã®å€ãéç·åœ¢ã§ãããã€ãŸã zãå°ããå Žåã¯ç²ŸåºŠãé«ããzã倧ããå Žåã¯å°ãããªããŸãã ã»ãšãã©ãã¹ãŠã®é ç¹ã1.0ã«è¿ã深床ã«ãã°ããå°éãããããæ·±åºŠå€ã¯ã·ãŒã³å
ã®è·é¢ãšãšãã«éåžžã«æ¥éã«å¢å ããŸãã ãªããžã§ã¯ãã®1ã€ã«æ³šææ·±ãè¿ã¥ããšãæçµçã«ã¯ãzã®å€ãæžå°ããããšã§ãè¿ãéšåãæããªãã®ãåºå¥ã§ããŸãã
ããã§ã¯ã深床å€ã®éç·åœ¢æ§ãã¯ã£ãããšèŠããŸãã è¿ãã®ãªããžã§ã¯ãã§ã¯ãæ·±ãã®å€ã¯é ãã®ãªããžã§ã¯ããããã¯ããã«éãå€åããŸãã ã«ã¡ã©ã®ããããªåãã«ãããè²ãã»ãŒé»ããçã£çœã«å€ãããŸãã
ãã ãããã©ã°ã¡ã³ã深床ã®éç·åœ¢å€ãç·åœ¢ååžå€ã«å€æããæ©äŒããããŸãã ãããè¡ãã«ã¯ãæåœ±ããã»ã¹ãæåéãéã«ããå¿
èŠããããŸãããæ·±ãã®å€ã«ã€ããŠã®ã¿ã§ãã æåã®ã¹ãããã¯ãæ·±ãã®å€ããå€ã®éé[0.0ã1.0]ãããã¯ãªããã³ã°ç©ºéã®æ£èŠåããã€ã¹åº§æšïŒ
NDCãæ£èŠåããã€ã¹åº§æš ïŒã«å¯Ÿå¿ããéé[-1.0ã1.0]ã«å€æãçŽãããšã§ãã æ¬¡ã«ãéç·åœ¢åŒ
ïŒ2ïŒã®éåŒãå°åºããååŸããæ·±åºŠå€ã«é©çšããŸãã çµæã¯ç·åœ¢ã®æ·±ãå€ã§ãã ç§ãã¡ã®èœåã¯éåžžã«é«ããšæããŸããïŒ
ãããã£ãŠããŸãæåã«ã深床å€ãNDCã«å€æããŸãã
float z = depth * 2.0 - 1.0;
次ã«ãéé¢ä¿
ïŒ2ïŒã䜿çšããŠãååŸããzã®å€ãç·åœ¢ã®å€ã«å€æããŸãã
float linearDepth = (2.0 * zNear * zFar) / (zFar + zNear - z * (zFar - zNear));
ãã®åŒã¯ã深床å€ã®éç·åœ¢å€æã®ããã«åŒïŒ2ïŒã䜿çšããŠå°åœ±è¡åã«å¯ŸããŠååŸãããããããåºé[zNearãzFar]ã«å¶éããããšãæãåºããŸãã åã³ãå°åœ±è¡åã®å
éšæ§é ã®æ°åŠçè©³çŽ°ã«æºã¡
ãèšäºãžã®ãªã³ã¯ãæäŸããŸãã äžèšã®è¡šçŸãç±æ¥ããèšäºãããçè§£ã§ããŸãã
ç»é¢ç©ºéã§éç·åœ¢æ·±åºŠãç·åœ¢å€ã«å€æãããã©ã°ã¡ã³ãã·ã§ãŒããŒã®å
šæïŒ
#version 330 core out vec4 FragColor; float zNear = 0.1; float zFar = 100.0; float LinearizeDepth(float depth) {
ç·åœ¢åãããæ·±åºŠã¯zNearå¢çãšzFarå¢çã®éã«ãããããã»ãšãã©ã®å€ã¯1.0ãã倧ãããªããçŽç²ãªçœã§è¡šç€ºãããŸãã ã¡ã€ã³é¢æ°ã³ãŒãã§ç·åœ¢æ·±åºŠå€ãzFarã§é€ç®ããŠããããã[ââ0.0ã1.0]ã®ééã«ããŸãã ããã«ãããæåœ±ãã©ãããã®é æ¹é¢ã«è¿ã¥ããšãã·ãŒã³ãªããžã§ã¯ãã®æããã®æ»ãããªå¢å ã芳å¯ã§ããŸãã
ä»åã¢ããªã±ãŒã·ã§ã³ãèµ·åããããšã«ãããè·é¢ã«ããæ·±ãã®å€åã®ç·åœ¢æ§ãæ€èšŒã§ããŸãã ã·ãŒã³ãããŸãããå€åã芳å¯ããŠã¿ãŠãã ããã
深床å€ã¯zNear = 0.1ããzFar = 100.0ãŸã§çŽç·çã«å€åãããããã·ãŒã³ã¯ã»ãŒå®å
šã«é»ã§å¡ãã€ã¶ãããŸãããã®å Žåãããã¯ããªãé ãã«ãããŸãã ãããŠãæåœ±ãã©ãããã®ãã¢ãã¬ãŒã³ã«è¿ããããæ·±åºŠãšããã«å¿ããèŒåºŠå€ã¯éåžžã«å°ãããªããŸãã
éããã粟床ã®ãããã¡æ·±åºŠã¢ãŒãã£ãã¡ã¯ã
2ã€ã®å¹³é¢ãŸãã¯2ã€ã®äžè§åœ¢ãéåžžã«æ¥è¿ããŠéãªãåã£ãŠãããããæ·±åºŠãããã¡ã®ç²ŸåºŠããããã®ãªããžã§ã¯ãã®é åºãæç¢ºã«è§£æ±ºããã«ã¯äžååã§ããå Žåãããªãäžè¬çãªèŠèŠã¢ãŒãã£ãã¡ã¯ãã衚瀺ãããŸãã ãã®ãããŸããã®çµæãšããŠããããã®ãªããžã§ã¯ãã®æçã¯åžžã«é
眮ã倿ŽããèŠèŠçãªãã€ãºãšãã¿ãŒã³ãäœæããŠããããã«èŠããŸãã ãã®çŸè±¡ã¯
zãã¡ã€ãã£ã³ã°ãšåŒã°ããŸããããã¯ã衚瀺ãããŠããæ°åãä»ã®æ°åãšéè€ããå¯èœæ§ãæ±ããŠæŠã£ãŠããããã«èŠããããã§ãã
䜿çšãããã·ãŒã³ã§ã¯ãZãã¡ã€ãã£ã³ã°ãé¡èã§ããååãªå ŽæããããŸããã³ã³ããã¯ç¹å¥ã«åºãšåãé«ãã«é
眮ãããã³ã³ãããšã³ã³ããã®åºé¢ãåãå¹³é¢ã«ããããšãä¿èšŒããŸãã ãŸããããã¯ãæ·±ãã®å€ãäž¡æ¹ã®ãã¬ãŒã³ã§çããããšãæå³ããŸããããã«ãããæ·±ããããã¡ãŒã䜿çšããŠãããã®ãã¬ãŒã³ã®ã·ãŒã±ã³ã¹ãé åºä»ããããšãã§ããªããªããŸãã
ã«ã¡ã©ãããããã®ã³ã³ããã«å
¥ãããšã广ããã¹ãŠã®æ å
ã«çŸããŸãã ããã¢ãã¬ãŒã³ã®ç ŽçãåŒãåºãã®åºãçµ¶ããããæããè¿·æãªç Žãããã¿ãŒã³ãäœæããæ§åãèŠãããšãã§ããŸãïŒZãã¡ã€ãã£ã³ã°ã¯æ·±åºŠãããã¡ãŒã䜿çšããå Žåã«äžè¬çãªåé¡ã§ãããé ãã®ãªããžã§ã¯ãã§ã¯äžè¬çã«ç®ç«ã¡ãŸãïŒãããã¡ãŒã®ç²ŸåºŠãé ããªããšäœäžããããïŒã ãã®çŸè±¡ãå®å
šã«åé¿ããããšã¯ã§ããŸããããéçºè
ã®æŠåšã«ã¯ãç¹å®ã®ã·ãŒã³ã§Zãã¡ã€ãã£ã³ã°ãæžããããå®å
šã«åãé€ãããã€ãã®ã¢ãããŒãããããŸãã
å¯ŸåŠæ¹æ³
æåã®ããããŠããããæãéèŠãªãã³ãã¯ã
ãªããžã§ã¯ããäºãã«è¿ã¥ããããŠãäžè§åœ¢ãéããå±éºãåããªãããšã§ãã ãŠãŒã¶ãŒã«ç®ç«ããªãããã«å°ããªãªããžã§ã¯ãã远å ããããšã«ããããªããžã§ã¯ãéã®ãªãã»ããã«ããzãã¡ã€ãã£ã³ã°ããã®èªç±ã確ä¿ãããŸãã é£è¡æ©ãšã³ã³ããã®å Žåãã³ã³ãããæ£ã®è»žYã®æ¹åã«ç§»åããã ãã§ååã§ããååã«å°ããå€äœã¯æç¥ã§ããŸããããã¢ãŒãã£ãã¡ã¯ããåãé€ãã«ã¯ååã§ãã ãã ãããã®æ¹æ³ã§ã¯ãã·ãŒã³ãæåã§ä¿®æ£ããã·ãŒã³ã«zãã¡ã€ãã£ã³ã°ã®å
åããªãããšã確èªããããã®å³å¯ãªãã¹ããå¿
èŠã§ãã
å¥ã®ã¢ãããŒãã¯
ãå¯èœãªéãè¿ãã¯ãªããã³ã°ãã¬ãŒã³ãèšå®
ããããšã§ãã äžèšã®ããã«ãzNearå¹³é¢ã®è¿ãã§ããªãã®ç²ŸåºŠãæäŸãããŸãã ãããã£ãŠã芳枬è
ããè¿ãå¹³é¢ãç§»åãããšãèŠçã®ãã©ãããã®ããªã¥ãŒã å
šäœã®ç²ŸåºŠãåäžããŸãã ãã ãããã¢ãã¬ãŒã³ã®é床ã®å€äœã¯ãè¿åã®ãªããžã§ã¯ãã®é¡èãªåãæšãŠã«ã€ãªããå¯èœæ§ãããããšãèŠããŠãã䟡å€ããããŸãã ãããã£ãŠããã®ã¢ãããŒãã§ã¯ãzNearå€ãæ£åžžã«éžæããããã«ãäžå®éã®ãµã³ãã«ãšé©åãå¿
èŠã§ãã
3çªç®ã®æ¹æ³ã¯
ããã粟床ã®é«ã深床ãããã¡ãŒåœ¢åŒã䜿çšããããš
ãåã«ææ¡
ãããããããã©ãŒãã³ã¹ã®äžéšãæ¯æãå¿
èŠããããŸãã ã»ãšãã©ã®å Žåã24ãããã®ç²ŸåºŠã®ãããã¡ãŒã䜿çšãããŸãããææ°ã®ãããªã«ãŒãã§ã¯æ·±åºŠãããã¡ãŒã«32ãããã®ç²ŸåºŠã䜿çšã§ããŸãã 粟床ãäžãããšZãã¡ã€ãã£ã³ã°ã®å¹æãæžããŸãããã¹ããŒããç ç²ã«ãªããŸãã
Zãã¡ã€ãã£ã³ã°ãåãé€ãããã®ããã3ã€ã®ææ³ã¯ãæãäžè¬çã§å®è£
ãç°¡åã§ãã ããæéããããä»ã®æ¹æ³ããããŸãããããã§ãåé¡ã®å®å
šãªè§£æ±ºãä¿èšŒãããã®ã§ã¯ãããŸããã å®éãzãã¡ã€ãã£ã³ã°ã¯å
žåçãªåé¡ã§ãããäžèšã®ææ³ãæ
éã«äœ¿çšããã°ããã®ã¢ãŒãã£ãã¡ã¯ãã®å
åã«ãŸã£ãã察åŠããå¿
èŠã¯ãªãã§ãããã
PS ïŒå
ã®èšäºã®ã³ã¡ã³ããŒã¿ãŒã®1人ããzãã¡ã€ãã£ã³ã°ã100ïŒ
æé€ãã2ã€ã®æ¹æ³ã«ã€ããŠã®ãã³ããæäŸããŠããŸãã ãããŠãSGIX_reference_plainæ¡åŒµã䜿çšããŸãã