ä»æ¥ã¯ãGLSLã«ããã°ã¼ãã¼ã·ã§ã¼ãã£ã³ã°ã¨ãã©ã¼ã³ã·ã§ã¼ãã£ã³ã°ãç´¹ä»ãã¾ããã°ã¼ãã¼ã¯é ç¹ãã¨ã«å æºè¨ç®ãè¡ããé ç¹ã®è²ãè¨ç®ããä¸è§å½¢ã®å é¨ãè²è£éãã¾ãããã©ã¼ã³ã¯ä¸è§å½¢å é¨ãæ³ç·è£éããç»ç´ æ¯ã«è²ãè¨ç®ãã¾ãããã©ã¼ã³ã®æ¹ãéãã®ã§ãããã¹ããã¥ã©ã¼çã¯ç¶ºéºã«ãªãã¾ãã OpenGLã®å æºè¨ç® ããã°ã©ã ãç´¹ä»ããåã«ãOpenGLã®å æºè¨ç®æ¹æ³ãç°¡åã«èª¬æãã¾ããOpenGL(DirectXã§ãåãã§ããï¼ã§ã¯ãå æºã«ããç©ä½è¡¨é¢ã®è²ã¯ã主ã«diffuseï¼æ¡æ£åå°ï¼ã¨specularï¼é¡é¢åå°ï¼ããè¨ç®ãã¾ããä¸ã®å³ã«ç¤ºãããã«ãdiffuseã¯å æºãã¯ãã«ã¨æ³ç·ãã¯ãã«ã¨ã®å ç©ã§è¨ç®ããã¾ãã ä¸æ¹ãspecularã¯å æºãã¯ãã«ãæ³ç·ãã¯ãã«ãè¦ç·ãã¯ãã«ããè¨ç®ããã¾ããOpenGLã®åºå®ãã¤ãã©ã¤ã³ã«ããå æºè¨ç®ï¼GLSLã使ç¨ããªãå æºè¨ç®ï¼ã§ã¯ãå·¦ä¸ã®å³ã®ããã«
OpenGL ã¯ããã¤ã¦ã¯ä¸ä½äºæã®ã©ã¤ãã©ãªã§ããã OpenGL 3.0 ã¾ã§ã¯ã以åã®ãã¼ã¸ã§ã³ã«å«ã¾ããæ¨æºæ©è½ã¯ã以éã®ãã¼ã¸ã§ã³ã§ä½¿ç¨å¯è½ã§ãã ä¾ãã°ãOpenGL 1.1 ã®é ç¹é åæ©è½ã¯ãOpenGL 1.2 以éã§ã使ç¨ã§ãã¾ãã ã¤ã¾ãããã®ãã¨ã¯ OpenGL 2.X ã¯ãOpenGL 1.X ã®æ©è½ãå ¨ã¦å«ããã¨ãæå³ãã¦ãã¾ãã OpenGL 1.2 以éã§ã¯ãARB_imaging ãµãã»ããããªãã·ã§ã³ã§ä½¿ç¨ã§ããç°å¢ãããã¾ãã æ°¸ããä¸ä½äºæãç¶æãã¦ãã OpenGL ã§ããã è¥å¤§åãã OpenGL ã®ä»æ§ãã·ã§ã¤ãã¢ããããããã«ã OpenGL 3.0 ã§ã¯éå»ã®ãã¼ã¸ã§ã³ã¨ã®äºææ§ã«é¢ãã¦è¦ç´ããè¡ããã å°æ¥åé¤ãäºå®ãããéæ¨å¥¨æ©è½ãã¾ã¨ãããã¾ããã ãããã¯åé·ãªãã®ã§ãã£ãããã·ã§ã¼ãã§ç½®ãæãå¯è½ãªæ©è½ã§ãã OpenGL 3.1
æ¦åå¤éå ä¸å£ã«ä»äºã¨ãã£ã¦ãããããªå´é¢ãããã¨ã¯æãã®ã§ããï¼ã ããã¨è¨ã£ã¦ç¬ãããããªãã¨ã°ãããã¦ããã°ï¼è©ä¾¡ãå¾ããã¨ã¯ã§ãã¾ããï¼ããã¦è©ä¾¡ãå¾ãããªãç¶æ ãç¶ç¶ãã¦ããã¨ï¼å½ç¶ãã®çµç¹ã«è²¢ç®ãã¦ããªãã¨è¦ãªããï¼æ¦åå¤ãéåããããã¨ã«ãªãã¾ãï¼ ãã£ã¨çµç¹ã«è²¢ç®ããå½¢ã§è¡åãæé©åããªããã°ã¨èãã¦ãã¾ãï¼ã¡ãã£ã¨é å¼µã£ã¦ã¿ã¾ã (2013å¹´7æ3æ¥è¿½è¨)ï¼ åºå®æ©è½ã®è¿½å ã®éçã¨ããã°ã©ããã«ã·ã§ã¼ã dot3 ãã³ããããã³ã°ãã·ã£ãã¦ãããã³ã°ã¯ï¼ç»ç´ åä½ã®é°å½±ä»ããå½±ä»ãå¦çãåºå®æ©è½ã®ãã¼ãã¦ã§ã¢ä¸ã«å®è£ ããããã®ï¼é常ã«å·§ã¿ãªæ¡å¼µæ©è½ã ã¨æãã¾ãï¼ãããï¼ã¦ã¼ã¶ï¼ãã¶ã¤ãï¼ããã°ã©ãï¼ã®å¤æ§ãªçºæ³ããçºããããæ§ã ãªè¦æ±ããã®ãããªå½¢ã§å®è£ ãç¶ãããã¨ã«ã¯ï¼é ãããéçããã¾ãï¼ãããã£ã¦ï¼ã¦ã¼ã¶ã®çºæ³ãã¦ã¼ã¶èªèº«ã®æã«ãã£ã¦å®è£ ã§ãããããªä»çµã¿ãç¨æããã
ããã«ã¡ã¯ãtomohiroã§ãã æ¦è¦ æè¿ã®4k/64k introã§ãã使ããã¦ããã¬ã¤ãã¼ãã³ã°(Ray marching)æ³ã«ã¤ãã¦èª¬æããã ã¬ã¤ããã¼ã³ã°ã¨ã¯ã¬ã¤ãã¬ã¼ã·ã³ã°æ³ã®ä¸ç¨®ã§ããã ã¬ã¤ãã¼ãã³ã°ã§ã¯ã¬ã¤ã®å§ç¹ããå°ãã¥ã¤é²ã¿ãªããã·ã¼ã³å ã®ãªãã¸ã§ã¯ãã¨ã®äº¤ç¹ãæ±ããã ã·ã¼ã³å ã®ãªãã¸ã§ã¯ãã¯Distance functionã¨ããé¢æ°ã§è¨è¿°ãããã ãªãã¬ã¤ãã¼ãã³ã°, Distance functionã使ãã®ã Distance functionã¯æ°è¡ç¨åº¦ã®ã³ã¼ãã«ãã£ã¦å®è£ ã§ããã®ã§, å°ããªãã¼ã¿ã§3Då½¢ç¶ã表ç¾ããäºãã§ããã è¤éãªå½¢ç¶ãé¢æ°ãããã¤ãçµã¿åãããäºã«ãã£ã¦ä½ãäºãã§ããã ãããä¸è§å½¢ããªã´ã³ã»ã©æ±ç¨çã«å½¢ç¶ã表ç¾ããã®ã¯é£ããã ã¬ã¤ãã¼ãã³ã°ã使ã㨠Distance functionã§è¡¨ç¾ãããå½¢ç¶ãå°ãã®ã³ã¼ãã§ã¬ã³ããªã³
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}