ã·ã§ã¼ãã£ã³ã°ã¾ã¨ã
ã¯ããã«
Â
å¼ãç¶ããCGã®åºç¤çãªã¨ããããããããã¦ãããã¨æãã¾ãã
ã®å 容ã¨é¢é£ãããã¾ãã®ã§åèã¾ã§ã«ã
ä»åã¯ãã¡ãã®æ¬ãåèã«ãã·ã§ã¼ãã£ã³ã°ã«ã¤ãã¦ã¾ã¨ãã¾ãã
ã·ã§ã¼ãã£ã³ã°ã®èãæ¹
ã©ã¤ãã£ã³ã°ã®ç©ç
ããã©ãã³(å å)ãã¯æ¯åæ°ã$\nu$ã¨ã㦠$$E=h\nu$$ ã§ãããããªã¨ãã«ã®ã¼$E$ãæã¡ã¾ãã$h$ã¯ãã©ã³ã¯å®æ°ã§ããããã§ã¨ãã«ã®ã¼ã®è©±ãããã®ã¯ãå ã®å¼·ãã¨ãã©ãã³ã®æã¤ã¨ãã«ã®ã¼ãå¯æ¥ã«é¢ãã£ã¦ããããã§ãã
ãå æºãã¯é£ç¶çã«ãã©ãã³ãæ¾åºãã¾ãããã©ãã³ã¯ç空ä¸ãçã£ç´ã移åãã¾ãããååã¨è¡çªãããã¨ã§ä»¥ä¸ã®ãããªå½±é¿ãåãã¾ãã
- é²è¡æ¹åãå¤ãã
- é²è¡æ¹åã¨æ¯åæ°ãå¤ãã
- ååã«å¸åããã
ãã©ãã³ã«è²ã¯ããã¾ããã人éã¯ãã©ãã³ã®æ¯åæ°ã«å¿ãã¦è²ãç¥è¦ãã¾ããããã§æ³¨æãã¹ããã¨ã¯ãæ¯åæ°ãé«ã(ã¨ãã«ã®ã¼ã大ãã)ãã©ãã³ã»ã©æããè²ã ã¨æããããã§ã¯ãªãã¨ãããã¨ã§ããç©ççãªãã©ãã³ã®ã¨ãã«ã®ã¼éã®ãã¨ããç©çéããããã«å¯¾ãã¦äººéãæããå ã®éãã測å é(å¿çé)ãã¨å¼ã³åºå¥ãã¾ããCGã®å ´åãåºç¤ãç©çç¾è±¡ã®ã·ãã¥ã¬ã¼ã·ã§ã³ã«ç½®ããããæ±ãéã¯ã»ã¨ãã©ã®å ´åç©çéã§ãã
ã¬ã³ããªã³ã°æ¹ç¨å¼
ãã©ãã³ã®æµã(å ã®é²è¡)ã¯ãæ(ãã©ãã³æ,å æ)ãã¨ããã¾ããç©ä½è¡¨é¢ä¸ã®ããä½ç½®$p$ã§ãããæ¹å(è¦ç¹æ¹å)$v$ã¸åºã¦è¡ãæã$R(p,v)$ã¨è¡¨ãã¾ãã$R$ã®ããã«ãããä½ç½®ããããæ¹åã¸åºã¦è¡ãæãã®éããã©ã¸ã¢ã³ã¹(æ¾å°è¼åº¦)ãã¨å¼ã³ã¾ãã
$R(p,v)$ã¯ãä½ç½®$p$ã®è¡¨é¢ãèªãçºå ããé$R_{\mathrm{emission}}$ã¨ãå æºããåããæãåå°ããé$R_{\mathrm{reflection}}$ã®ï¼ã¤ã®éã®åã§è¡¨ããã¨ãã§ãã¾ããã¤ã¾ã $$R(p,v)=R_{\mathrm{emission}}(p,v)+R_{\mathrm{reflection}}(p,v)$$ ã§ãããã®å¼ã¯ãã¬ã³ããªã³ã°æ¹ç¨å¼ãã¨å¼ã°ãã¾ããèªç¶çºå ããªãç©ä½ã®è¡¨é¢ã§ã¯$R_{\mathrm{emission}}=0$ã§ãã
ã¬ã³ããªã³ã°ã®ç®çã¯ããã®ã¬ã³ããªã³ã°æ¹ç¨å¼ã解ããã¨ã§ããããªãã¡ãåå°é¢ä¸ã®åç¹ã«ãããã©ã¸ã¢ã³ã¹ãè¨ç®ãããã¨ãç®çã¨ãªãã¾ãã$R_{\mathrm{emission}}$ã¯ç©ä½åºæã®æ§è³ªã¨ãã¦é©å½ãªå¤ã渡ãã¦ããã°ããã®ã§æ·±å ¥ãããå¿ è¦ã¯ããã¾ãããåé¡ã¯$R_{\mathrm{reflection}}$ã§ãå³å¯ãªè¨ç®ã¯å°é£ã§ãããããæ§ã ãªè¿ä¼¼ãèãããã¦ãã¾ãã
å®éã«ã©ã¸ã¢ã³ã¹ãè¨ç®ãã¦ã¿ã¾ããããç°¡åã®ããã«ãï¼åã®ç¹å æºãããå ´åã®åå°ã«ã¤ãã¦èãã¦ã¿ã¾ããåå°é¢ä¸ã®ä½ç½®$p$ããè¦ç¹æ¹å$v$ã«åå°ããã©ã¸ã¢ã³ã¹$R_{\mathrm{reflection}}(p,v)$ãè¨ç®ããã«ã¯ãå æºãä½ç½®$p$ããè¦ã¦$l$æ¹åã«ããã¨ãã¦ããã®å æºããä½ç½®$p$ã«éã注ãæã$L(p)$ã¨ãã¾ãã
ãã®ã¨ããåå°ã®ã©ã¸ã¢ã³ã¹$R_{\mathrm{reflection}}$ã¯å ¥å°ããæã®é$L$ã«æ¯ä¾ããã¯ããªã®ã§ $$R_{\mathrm{reflection}}=kL(p) ; 0 \leq k \leq 1$$ ãè¨ãã¾ãããã®å¼ã¯æãåç´ãªåå°ã¢ãã«ã®ä¾ã§ãã$k$ã¯åå°ä¿æ°ã§ãä½ç½®$p$ãå æºæ¹å$l$ãè¦ç¹æ¹å$v$ã«ä¾åãããã $$k=k(p,v,l)$$ ãè¨ãã¾ãã
Nåã®å æº$L_1,L_2,...,L_N$ãããå ´åã¯ãéãåããã®åçãæãç«ã¤ãã $$ \begin{align} R_{\mathrm{reflection}}(p,v)&=k(p,v,l_1)L_1(p)+k(p,v,l_2)L_2(p)+...+k(p,v,l_N)L_N(p)\\ &=\sum_{i=1}^{N}k(p,v,l_i)L_i(p) \end{align} $$
ã¨ãªãã¾ãã ããã¾ã§ç°¡åã«åå°ã®ã©ã¸ã¢ã³ã¹$R_{\mathrm{reflection}}$ã«ã¤ãã¦è¦ã¦ã¿ã¾ããããåå°ãã¹ããã©ãã³ã¯ãã¤ãå æºãããã£ã¦ããããã§ã¯ããã¾ããã大æµã¯ä½ãä»ã®ç©ä½ã«åå°ãã¦ãããã£ã¦ãã¾ããããã¯ãå¤éãã¹ã«ããåå°ãã¨å¼ã°ãã¾ããå¤éãã¹ã«ããåå°ãããã«ãã¾ãããéãããã¬ã³ããªã³ã°ãã¯ããã¯ã®è¦ãå ´ã¨ãªãã¾ãããã®ãããªã¬ã³ããªã³ã°ãã¯ããã¯ã«ã¯ãã¬ã¤ãã¬ã¼ã·ã³ã°æ³ãããã©ã¸ãªã·ãã£æ³ããããã©ãã³ãããã³ã°æ³ããªã©ãããã¾ãã
ãªã¢ã«ã¿ã¤ã ã·ã§ã¼ãã£ã³ã°
CGã®ä¸çã§ããªã¢ã«ã¿ã¤ã ã§åä½ãã(è¦ããç¨åº¦ã®fpsã§è¨ç®ãçµãããã¨ãã§ãã)ã·ã§ã¼ãã¼ããã°ã©ã ã®ãã¨ããªã¢ã«ã¿ã¤ã ã·ã§ã¼ãã¼ã¨å¼ã¶ãã¨ã«ãã¾ãããã®ãªã¢ã«ã¿ã¤ã ã·ã§ã¼ãã¼ãç¨ãã¦ã·ã§ã¼ãã£ã³ã°ãè¡ããã¨ããªã¢ã«ã¿ã¤ã ã·ã§ã¼ãã£ã³ã°ã¨å¼ã³ã¾ãã
ãªã¢ã«ã¿ã¤ã ã·ã§ã¼ãã£ã³ã°ã§ä½¿ããããã¯ããã¯ã®ä¸ã¤ã«ãå¤éãã¹ã«ããåå°è¨ç®ãä¸åç¡è¦ãã¦å¯è½ãªéãåå°ã¢ãã«ãç°¡ç¥åãããã®ãããã¾ããåæã®ã·ã§ã¼ãã¼(OpenGL 1.3ãDirectX 7ä¸ä»£ã®ãã¼ãã¦ã§ã¢ç)ã§ã¯
- å¤éãã¹ã«ããåå°ã®å½±é¿ã¯ç¡è¦ãã
- ã·ã£ãã¦ã¤ã³ã°ã¯åºæ¬çã«è¡ããªã
- åå°ã¯ãå¤å ¸çã©ã¤ãã£ã³ã°ã¢ãã«ãã«ãã£ã¦è¿ä¼¼ãã
- ã·ã§ã¼ãã¼ã¯ããã°ã©ããã«ã§ãªã(ãã¼ãã¦ã§ã¢ãã©ã¤ãã©ãªã®æ·±é¨ã«ç¼ãä»ãããã)
ã¨ãã£ãå¶ç´ã課ããã¨ã§ãªã¢ã«ã¿ã¤ã ã·ã§ã¼ãã£ã³ã°ãå®ç¾ãã¦ããããã§ãããã¼ãã¦ã§ã¢ãã©ã¤ãã©ãªã®æ·±é¨ã«ç¼ãä»ããããã·ã§ã¼ãã¼ã¯ãåºå®æ©è½ã·ã§ã¼ãã¼ãã¨å¼ã°ãã¾ããã¾ããåºå®æ©è½ã·ã§ã¼ãã¼ãããµãã¼ãããªããã¼ãã¦ã§ã¢ã¯ãåºå®ã¬ã³ããªã³ã°ãã¤ãã©ã¤ã³ãã¨å¼ã°ãã¾ãã
å¤å ¸çã©ã¤ãã£ã³ã°ã¢ãã«
å¤å ¸çã©ã¤ãã£ã³ã°ã¢ãã«ã¯ãã·ã§ã¼ãã£ã³ã°ã®åç´åæ³ã®ã²ã¨ã¤ã§ãå°ãªãè¨ç®éã§ããããåå®çãªã¬ã³ããªã³ã°çµæãå¾ããã¨ãã§ãã代表çãªè¿ä¼¼æ³ã§ããå¤å ¸çã©ã¤ãã£ã³ã°ã¢ãã«ã¯
- ç©ä½ã«å ããã¦ãã¨ãç©ä½åºæã®è²ããè¦ããé¨åã¨ãå ã®è²ããè¦ãããã¤ã©ã¤ãé¨åã¨åããã
- ç©ä½åºæã®è²ãè¦ããé¨åã¯è¦ãä½ç½®ãå¤ãã¦ãæããã¯å¤åããªã
- ãã¤ã©ã¤ãé¨åã¯ãè¦ãä½ç½®ãå¤ããã¨ç§»åãã
ã¨ãããããªç©ççãªæ´å¯ã«åºã¥ãã¦ãã¾ãããã®ç¾è±¡ã§ã¯ãç©ä½è¡¨é¢ã§ã¯ï¼ã¤ã®ç°ãªãåå°ãæ··å¨ãã¦ãããã¨ã示åãã¦ãã¾ãããã®ãããªèãæ¹ããï¼è²æ§åå°ã¢ãã«ãã¨å¼ã³ã¾ãã ç©ä½åºæã®è²ãè¦ããé¨åã®åå°ãããã£ãã¥ã¼ãºåå°(æ¡æ£åå°)ãããã¤ã©ã¤ãé¨åã®åå°ããã¹ããã¥ã©ã¼åå°(é¡é¢åå°)ãã¨å¼ã³ã¾ããå¤å ¸çã©ã¤ãã£ã³ã°ã¢ãã«ã§ã¯ãåå°æåããã£ãã¥ã¼ãºåå°$R_{\mathrm{diffuse}}$ã¨ã¹ããã¥ã©ã¼åå°$R_{\mathrm{specular}}$ã®åã«å解ã $$R_{\mathrm{reflection}}(p,v)=R_{\mathrm{diffuse}}(p)+R_{\mathrm{specular}}(p,v)$$ ã¨è¡¨ãã¾ãããã®$R_{\mathrm{diffuse}}$ã¨$R_{\mathrm{specular}}$ãããããç°¡åã«è¨ç®ãã¾ããããã¨ããã®ãå¤å ¸çã©ã¤ãã£ã³ã°ã¢ãã«ã®åºæ¬çãªèãæ¹ã§ãã
ãã£ãã¥ã¼ãºåå°ã®åºç¤
ãã£ãã¥ã¼ãºåå°ã¯ãæ¡æ£åå°ãã¨ããä¹±åå°ãã¨ãå¼ã°ãã¾ããCGã§ãã£ãã¥ã¼ãºåå°ã¨ããã°ããåå°ããã©ã¸ã¢ã³ã¹ãè¦ãè§åº¦ã«ä¾åããªãåå°ãã®ãã¨ã§ãããããããªåå°ãç¹ã«ãã©ã³ãã¼ã(Lambert)åå°ãã¨å¼ã³ã¾ããã¾ãããã£ãã¥ã¼ãºåå°ã§ã¯ç©ä½åºæã®è²ã観測ãããã¨ãã£ãç¹å¾´ãããã¾ãã
ã©ã³ãã¼ãåå°ã¢ãã«
ã©ã³ãã¼ãåå°ã§ã¯ä½ç½®$p$ã«é£ã³è¾¼ãã æã¯ãä¹±éã«åå°ãããä½ç½®$p$ããåçã«åºã¦è¡ãã¾ããã©ã³ãã¼ãåå°ã¢ãã«ã«ãããåå°ã®å¼·ãã¯å ¥å°è§$\phi$ã«ä¾åãã$\cos\phi$ã«æ¯ä¾ãã¾ãã$\cos\phi$ã¯ï¼ã¤ã®ãã¯ãã«$n$ã¨$l$ã®å ç©ãç¨ãã¦$<n,l>$ã¨è¡¨ç¾ã§ãã¾ã(ãã ã$n$ã¨$l$ã¯æ£è¦åããããã¯ãã«ã§ã)ãã©ã³ãã¼ãåå°ã¯å ¥å°ããæã®é$L(p)$ã¨$<n,l>$ã«æ¯ä¾ããã®ã§ãæ¯ä¾ä¿æ°ã$k_{\mathrm{diffuse}}$ã¨ããã¨ãã©ã³ãã¼ãåå°ã¯ $$R_{\mathrm{diffuse}}=k_{\mathrm{diffuse}}(p)<n,l>L(p)$$ ã¨ãªãã¾ããå®éã«ãããå®è£ ããå ´åãå ç©$<n,l>$ãè² ã«ãªããªããã $$R_{\mathrm{diffuse}}=k_{\mathrm{diffuse}}(p)max(<n,l>,0)L(p)$$ ã¨ãã¾ãã
ã¢ã³ãã¨ã³ãå ã¨ã¢ã³ãã¨ã³ãåå°
å æºããåºãæã¯å£ãåºãªã©ãæ§ã ãªãªãã¸ã§ã¯ãã«è·³ãè¿ããã¦å¨å²ããããããç §ãããã¨ã«ãªãã¾ããã¤ã¾ããå£ãåºãªã©ã®å ãè·³ãè¿ããªãã¸ã§ã¯ãã¯éæ¥çãªå æºã«ãªãå¾ã¾ãããããã®ç¾è±¡ãè¿ä¼¼çã«è¨ç®ããããã«èããããã®ããã¢ã³ãã¨ã³ãå (ç°å¢å )ãã¨ãã¢ã³ãã¨ã³ãåå°(ç°å¢åå°)ãã§ãã
ã¢ã³ãã¨ã³ãå ã¯Sceneå ¨ä½ãã»ã®ãã«ç §ããç §æã§ããã¢ã³ãã¨ã³ãå ã¯ã©ãããå ããã¦ãã¨ããèãæ¹ã¯ãªãããã ãªãã¸ã§ã¯ãå ¨ä½ãåä¸ã«ç §ããã¾ãããªãã¸ã§ã¯ããåä¸ã«ç §ããã¦ãããªãã¸ã§ã¯ãã«ãã£ã¦åå°çãç°ãªãã®ã¯å½ç¶ã§ããããã§ããªãã¸ã§ã¯ããã¨ã«åºæã®ã¢ã³ãã¨ã³ãåå°çä¿æ°$k_{\mathrm{ambient}}(p)$ãèãã¾ããä½ç½®$p$ã®ã¢ã³ãã¨ã³ãåå°ã$k_{\mathrm{ambient}}(p)$ãã¢ã³ãã¨ã³ãå ã®æã$L_{\mathrm{ambient}}$ã¨ãã㨠$$R_{\mathrm{ambient}}=k_{\mathrm{ambient}}(p)L_{\mathrm{ambient}}$$ ã§ã¢ã³ãã¨ã³ãå ã表ç¾ã§ãã¾ãã ãã£ãã¥ã¼ãºåå°ã¢ãã«ãèããæã®ããå æºããã®æã$L_{diffuse}(p)$ã¨ããã¨ãã¢ã³ãã¨ã³ãå ãèæ ®ããåå°ã¯ $$ \begin{align} R_{\mathrm{reflection}}&=R_{\mathrm{diffuse}}+R_{\mathrm{ambient}}\\ &=k_{\mathrm{diffuse}}(p)L_{\mathrm{diffuse}}+k_{\mathrm{ambient}}(p)L_{\mathrm{ambient}} \end{align} $$ ã¨ãªãã¾ãã
ã°ãã¼ãã«ã¤ã«ããã¼ã·ã§ã³
ç´æ¥ç §æã ãã§ãªããéæ¥ç §æãèæ ®ã«å ¥ããç §æå ¨ä½ããã°ãã¼ãã«ã¤ã«ããã¼ã·ã§ã³ãã¨ããã¾ããã¬ã³ããªã³ã°æ¹ç¨å¼ã®ç°¡ç¥åæ¹æ³ã®ã²ã¨ã¤ã¨ãã¦ãSceneå ã®ãã¹ã¦ã®åå°é¢ãã©ã³ãã¼ãåå°ã§ããã¨ä»®å®ããæ¹æ³ãããã¾ãããã®çµæå¾ãããæ¹ç¨å¼ããã©ã¸ãªã·ãã£æ¹ç¨å¼ãã¨ããã¾ãããã®ã©ã¸ãªã·ãã£æ¹ç¨å¼ãç¨ããã¬ã³ããªã³ã°ææ³ããã©ã¸ãªã·ãã£æ³ãã¨ããã¾ããã©ã¸ãªã·ãã£æ³ã¯ä¸»ã«ãã¬ã¤ãã¬ã¼ã·ã³ã°æ³ãã¨çµã¿åããã¦å©ç¨ããã¾ãã ã¬ã¤ãã¬ã¼ã·ã³ã°æ³ã¯ãæçµçã«è¦ç¹ã«é£ã³è¾¼ãã§ããæ(ã¬ã¤)ã ããèãããã¨ããçºæ³ããçã¾ãã¾ãããè¦ç¹ã«é£ã³è¾¼ãæãéåãã«å æºã«å½ããã¾ã§ãã¬ã¼ã¹ãããã¨ã§ãå æºããç®ã«å±ãæã®éãè¨ç®ãã¾ãã
ã¹ããã¥ã©ã¼åå°ã®åºç¤
ã¹ããã¥ã©ã¼åå°ã¯ãç©ä½ã®ã¤ãã¤ãããé¨åã®åå°ã§ããé¡ã®åå°ã¯ã¹ããã¥ã©ã¼åå°ã®ä¸çªæ¥µç«¯ãªä¾ã§ããã¹ããã¥ã©ã¼åå°ã®ç¹å¾´ã¯
- è¦ãè§åº¦ã«ä¾åãã
- ç©ä½è²ã§ã¯ãªãå æºè²ãè¦ãã
ãæãããã¾ãã
æ£åå°ã¢ãã«
é¡é¢ã¯ãåå°ã®ä¸ã§ãç¹æ®ãªãæ£åå°(é¡é¢åå°)ãããã¾ããæ£åå°ã¨ã¯ãè§åº¦$\phi$ã§å ¥å°ããæããã®ã¾ã¾è§åº¦$\phi$ã§åå°æ¹åã«åå°ããããã¨ã§ãã
ããã§ãåå°ãã¯ãã«$r$㯠$$\frac{r+l}{2}=<n,l>n$$ ãã $$r=2<n,l>n-l$$ ã¨ãªãã¾ãã
ãã©ã³åå°ã¢ãã«ã¨ããªã³ã®è¿ä¼¼
磨ãããéå±ãªã©ã¯é¡ã®ãããªæ£åå°ã ãã§ãªããæ£åå°æ¹åããå ãã«è¦ç·ããããã¦ããã¤ã©ã¤ãã観å¯ãããã¨ãã§ãã¾ãããã®ç¾è±¡ãã¢ãã«åããã®ããã©ã³(Phong)ã§ãããã©ã³ã®ã¹ããã¥ã©ã¼åå°ã¢ãã«ãã¨ãã¦æåã§ãã
ãã©ã³åå°ã¢ãã«ã®èãæ¹ã¯ã$v=r$ã®ã¨ãæ£åå°ã§ãããããå ¥å°ããæ$L$ã«åå°ä¿æ°$k_{\mathrm{specular}}$ãæãã$k_{\mathrm{specular}}L$ãåå°ãããã¨ãããã®ã§ãã ä¸æ¹ã$v \neq r$ã®æã¯ãè¦ç¹æ¹å$v$ãæ£åå°$r$ã«ã©ãã ãè¿ããã§åå°ã®å¼·ããç°ãªãã¾ãããã¯ãã«$v$ã¨ãã¯ãã«$r$ã®ãªãè§ã$x$ã¨ããã¨ã$x$ã大ãããªãã«ã¤ãã¦æ¥æ¿ã«åå°ã¯æ¸ãçã§ãã
ãã©ã³ã¯ã¹ããã¥ã©ã¼åå°ã$\cos ^{S}x$ã«æ¯ä¾ãã¦æ¸è¡°ããã¨èãã¾ããã$S$ã¯ãã·ã£ã¤ããã¹ãã¾ãã¯ãé¡é¢åå°ææ°ãã¨ããéã§ãç´ æãã¨ã«ãããããè¦ããããã«è¨å®ããéã§ããå®å ¨ãªé¡é¢åå°ã®å ´å$S \to \infty$ã§ããå ç©ã®å®ç¾©ãã $$\cos x=<r,v>$$ ãªã®ã§ããã©ã³åå°ã¢ãã«ã¯ $$R_{\mathrm{specular}}(p,v)=k_{\mathrm{specular}}(p)<r,v>^{S}L(p)$$ ã¨ãªãã¾ãããã©ã³ã®åå°ã¢ãã«ã¯ç©ççæ ¹æ ãæããããããç©ççã«ã¯ééã£ã¦ãã¾ããããããã¹ããã¥ã©ã¼åå°ããã¾ãã¢ãã«åã§ããä¸ã«ãå¾è¿°ãããã¼ããã¯ãã«ãç¨ããç°¡æè¨ç®æ³ããããã¨ã¨ç¸ã¾ã£ã¦ãé·ã使ããã¦ãã¾ãã
å ã®è¨ç®$<r,v>$㯠$$<r,v> = <(2<n,l>n-l),v>$$ ãªã®ã§ãã¾ãå ç©$<n,l>$ãè¨ç®ãã2åãã¦ãã¯ãã«$n$ã®åæåã«æãããã¯ãã«å士ã®å¼ãç®ãè¡ããããä¸åº¦å ç©ãè¨ç®ããå¿ è¦ãããã¾ããè¨ç®æ©ã®å¦çæ§è½ãä½ãé ã«ã¯ããããæ¼ç®ã§ããããã©ã³ã®åå°ã¢ãã«ã«ã¯æ¬¡ã®ãããªç°¡æè¨ç®æ³ãããã¾ããã¾ã $$h=\frac{v+l}{||v+l||}$$ ã¨ããããã¼ããã¯ãã«ã$h$ãç¨æãã¾ãã$h$ã¯è¦ç·æ¹å$v$ã¨å ¥å°æ¹å$l$ã®ä¸éã®æ¹åãåãã¦ãã¦ããã«ã ãï¼ã«æ£è¦åããã¦ãã¾ããæ£è¦åã $$\mathrm{normalize}(a)=\frac{a}{||a||}$$ ã¨ãã¦ããã¨ããã¼ããã¯ãã«ã¯ $$h=\mathrm{normalize}(v+l)$$ ã¨è¡¨ç¾ã§ãã¾ãã ç°¡æè¨ç®æ³ã§ã¯ãã¹ããã¥ã©ã¼åå°ã次ã®ããã«è¨ç®ãã¾ãã $$R_{\mathrm{specular}}(p,v)=k_{\mathrm{specular}}(p)<n,h>^{S}L(p)$$
ããã¯ãã©ã³ã®èããã¢ãã«ã¨ã¯ç°ãªãã¾ãããã¬ã³ããªã³ã°çµæã¯ããªããã©ã³ã®ã¢ãã«ã«è¿ããªãã¾ãããã®å¼ã¯ãããªã³(Blinn)ã®è¿ä¼¼ããã¨ãã¦ç¥ããã¦ãã¾ãã
ãã©ã³/ããªã³ã®ã¢ãã«ã§ç°ãªãã®ã¯å ç©ã®è¨ç®ã§ $$<(2<n,l>n-l),v> \to <n,\mathrm{normalize}(v+l)>$$ ã¨ãã風ã«å¤åãã¦ãã¾ãã
ã¾ããããããå®è£ ããéã«ã¯å ç©ãè² ã«ãªããªãããæ°ãã¤ããå¿ è¦ãããã次ã®ããã«ãã¾ãã $$R_{\mathrm{specular}}(p,v)=k_{\mathrm{specular}}(p)\max(<r,v>)^{S},0)L(p)$$ $$R_{\mathrm{specular}}(p,v)=k_{\mathrm{specular}}(p)\max(<n,h>^{S},0)L(p)$$
éå±ã®åå°ã¢ãã«
ãã©ã³ã®åå°ã¢ãã«ã§ã¯ãéå±è³ªã®åå°ããã¾ãåç¾ã§ãã¾ãããããã§ããã©ã³ã®åå°ã¢ãã«ã®æ¹è¯çãããã¤ãæå±ããã¦ãã¾ãããããã®æ¹è¯ã¢ãã«ã®å ±éç¹ã¯ããã©ã³/ããªã³ã®åå°ã¢ãã«ã«ç¾ãã$<n,h>^{S}$ã®é ãç©ççã«æå³ã®ããéã«ç½®ãæãããã¨ãããã¨ã§ãããããã$<n,h>^{S}$ã®é ã¯ããã¤ã©ã¤ã(é¡é¢åå°)ã®ãã±ã表ãé ã§ãããã®ãã±ãã©ãããããã®ãã¨ããã°ãç©ä½è¡¨é¢ãé¡ã®ããã«ãã«ãã«ãã¦ããããã§ã¯ãªãã微細ãªå¸å¹ãããããã§ãããã®å¾®ç´°ãªå¸å¹ãæ§æããå¾®å°ãªé¢ã²ã¨ã¤ã²ã¨ã¤ã®ãã¨ãããã¤ã¯ããã¡ã»ãããã¨å¼ã³ã¾ãããã¤ã¯ããã¡ã»ãããè²ã ãªæ¹åãåãã¦ããããããã¤ã©ã¤ãããã±ãããã§ããããªã³ã¯ä»¥ä¸ã®ãããªä»®å®ããããã©ã³ã®åå°ã¢ãã«ã次ã®ããã«æ¸ãæãããã¨ãæå±ãã¾ããã $$R_{\mathrm{specular}}(p,v)=k_{\mathrm{specular}}(p) \frac{D(<n,h>)F(<n,l>, η )G(n,v,h,l)}{<n,v>} L(p)$$ $D$ã¯ããã¤ã¯ããã¡ã»ããåå¸é¢æ°(NDF:Normal Distribution Function)ãã$F$ã¯ããã¬ãã«(Fresnel)åå°ä¿æ°ãã$G$ã¯ãå¹¾ä½å¦çæ¸è¡°ä¿æ°ãã§ããåæ¯ã®$<n,v>$ã¯è¦ç¹ããè¦ããã¤ã¯ããã¡ã»ããã®æ¿åº¦ãæ£è¦åããä¿æ°ã§ãã
ãã¤ã¯ããã¡ã»ããåå¸é¢æ°$D$ã¯ããã¤ã¯ããã¡ã»ãããé¢ã®æ³ç·$n$ã«å¯¾ãã¦ã©ã®ç¨åº¦ãºã¬ã¦åå¸ãã¦ããã®ããè¨è¿°ããé¢æ°ã§ããé¢æ°$D$ã¯æ§ã ãªãã®ãææ¡ããã¦ãã¾ãããæãæåãªã®ã¯ã¯ãã¯ã¨ãã©ã³ã¹ã® $$D(d)=\frac{1}{S^{2} \cos^{4} d} \exp \left(-\left(\frac{\tan d}{S}\right)^{2} \right)$$ ã§ããããã§ã$d$ã«ã¯$<n,h>$ãä»£å ¥ãããã¨ã«ãªãã¾ãã$S$ã¯é¢ã®èãã決ããå®æ°ã§ãå°ããã»ã©ã·ã£ã¼ããªãã¤ã©ã¤ãã«ãªãã¾ãããã®é¢æ°$D$ã¯ãããã¯ãã³(Beckmann)åå¸ãã¨ãã¦ç¥ããã¦ãã¾ãã ä¸æ¹ãããã©ã³ã¹ã¹ããã¦ã®ã¢ãã«ãã¨ãã¦ç¥ããã¦ããåå°ã¢ãã«ã§ã¯ãé¢æ°$D$ã¨ã㦠$$D(d)=S'\exp\left(-(S''d)^{2}\right)$$ ã使ããã¾ã($S'$ã¨$S''$ã¯å®æ°)ããã®é¢æ°$D$ã¯ãã¬ã¦ã¹(Gauss)åå¸ãã§ãã ãªããããªã³ã¯ãã¨ãã¨ãã¤ã¯ããã¡ã»ããåå¸é¢æ°ã¨ã㦠$$D(d)=\left(\frac{S'''^{2}}{(S'''^{2}-1)\cos^{2}d+1}\right)^{2}$$ ãææ¡ãã¾ãã($S'''ã¯å®æ°$)ããã®é¢æ°$D(d)$ã¯æ¥åã表ããå®æ°$S'''$ã¯æ¥åã®é·è»¸ã¨ç軸ã®æ¯ã§ãã
å¹¾ä½å¦çæ¸è¡°ä¿æ°$G$ã¯ããã¤ã¯ããã¡ã»ãããä»ã®ãã¤ã¯ããã¡ã»ããã®åå°ã®éªéãããå¹æã表ãã¾ãã
åå°å ãä»ã®ãã¤ã¯ããã¡ã»ããã«é®ãããå ´å(ãã¯ãã«$v$ããã¯ãã«$n$ã«ã»ã¼åç´ã®å ´å)ã®å¹æ㯠$$G_{out}(n,v,h)=2\frac{<n,h><n,v>}{<v,h>}$$ ã¨ãªãã¾ããä¸æ¹ãå ¥å°å ãä»ã®ãã¤ã¯ããã¡ã»ããã«é®ãããå ´å(ãã¯ãã«$l$ããã¯ãã«$n$ã«ã»ã¼åç´ã®å ´å)ã®å¹æ㯠$$G_{in}(n,v,h,l)=2\frac{<n,h><n,l>}{<v,h>}$$ ã¨ãªãã¾ãã ããããã¼ã¿ã«ã§ã®å½±é¿ã¯ãåå°å ããã¤ã¯ããã¡ã»ããã«é®ãããããå ¥å°å ããã¤ã¯ããã¡ã»ããã«é®ããããããããã¯å ¨ãé®ãããªããã§ããã®ã§ $$G(n,v,h,l)=\min(G_{in},G_{out},1)$$ ã§ãã
ãã¬ãã«åå°ä¿æ°$F$ã¯ããã¬ãã«ã®åå°ã®æ³åããå°ãããä¿æ°ã§ãããã¬ãã«ã®åå°ã®æ³åã¯ããªãããã§å質ãªéå±è¡¨é¢ã§ãã©ãã³ãæ£åå°æ¹åã«ã©ã®ç¨åº¦ã®å²åã§åå°ãããã®ãã調ã¹ãçµæãã¾ã¨ããæ³åã§ããåå°ãããªãã£ããã©ãã³ã¯å¸åããã¾ããå ¥å°è§ã$\phi$ã®ã¨ãããã¬ãã«åå°ä¿æ°$F$㯠$$F(\phi,η)=\frac{(\zeta -c)^{2}}{(\zeta +c)^{2}}\left(1+\frac{(c(\zeta +c)-1)^{2}}{(c(\zeta -c)+1)^{2}}\right)$$ $$c=\cos \phi$$ $$\zeta=\sqrt{η^{2}+c^{2}-1}$$ ã§ä¸ãããã¾ããηã¯æ質æ¯ã«ãã£ã¦ç°ãªãå®æ°ã§ããè¤ç´ å±æçãã¨å¼ã°ããè¤ç´ æ°ã§ãã
ã·ã¥ãªãã¯(Schlick)ã¯ããã¬ãã«åå°ä¿æ°$F$ã次ã®ããã«è¿ä¼¼ã§ãããã¨ãçºè¦ãã¾ããã $$F(\phi)\simeq F_{0}+(1-F_{0})(1-\cos\phi)^{5}$$ ããã§ã$F_{0}$ã¯åç´å ¥å°æ($\phi=0$)ã®ãã¬ãã«ä¿æ°ã®å®é¨ã§ãã
ã«ã©ã¼
人éã®è¦è¦ã¯L(Long)ãM(Middle)ãS(Short)ã®ï¼å¨æ³¢ã«ããããåå¿ããç´°èããæãã¾ããCGã§ã¯ãã®ï¼ç¨®ãã代表çãªå¨æ³¢æ°ãããããã²ã¨ã¤ãã¤é¸ã³(å ã®ï¼åè²)ãï¼å¨æ³¢æ°ã®ã¿ã«ã¤ãã¦è¨ç®ãããã¨ãã»ã¨ãã©ã§ããLã¯èµ¤ãMã¯ç·ãSã¯é(æ£ç¢ºã«ã¯èã«è¿ã)ã«ç¸å½ãã¾ãã
ç©ä½ã«åºæã®åå°ä¿æ°$k_{\mathrm{diffuse}}$ã¨$k_{\mathrm{specular}}$ã®ãã¡ãã©ã³ãã¼ãåå°ã§ç»å ´ãã$k_{\mathrm{diffuse}}$ã¯æ¯åæ°ã«ä¾åããé¢æ°ã§ããã¤ã¾ã $k_{\mathrm{diffuse}}=k_{\mathrm{diffuse}}(\nu)$ ãè¨ãã¾ãããã£ãã¥ã¼ãºåå°ã§ã¯ãããç¹å®ã®å¨æ³¢æ°å¸¯ãé¸ãã§ãã©ãã³ãåå°ãããã以å¤ã®å¨æ³¢æ°å¸¯ã®ãã©ãã³ã¯å¸åããã¾ããä¸æ¹ãã¹ããã¥ã©ã¼åå°ã«ç»å ´ãã$k_{\mathrm{specular}}$ã¯ãã¾ãæ¯åæ°ã«ä¾åãã¾ããããããç©ä½è²ã¨å æºè²ãããããç¾ããã¨ãã£ãéãã®ç±æ¥ã«ãªãã¾ã(ã¨ãã風ã«ï¼è²æ§åå°ã¢ãã«ã§ã¯è§£éãã¾ã)ã
ã«ã©ã¼ã®æå®ã¯ä¸çç¸ã«ã¯ããã¾ããããAããã®æ³åãã赤ãã¨ãBããã®æ³åãã赤ããéãã¨ãã£ããã¨ã¯æ¥å¸¸çã«ãã°ãã°ãããã¨ã§ããCGã§ãåããã¨ã§ããR=1, G=0, B=0ãã¨ããã¨ããã§ããã£ã¹ãã¬ã¤æ¯ã«è¡¨ç¤ºãããRã®è²åã(åå æ¾å°ç)ãç°ãªãããã§ãã
ã«ã©ã¼ã絶対çã«æå®ããã²ã¨ã¤ã®æ¹æ³ã¯ããRã¨ãã£ãã440[THz]ã®ãã©ãã³ã®ãã¨ã ãã¨ãã£ããããªåã決ãããã¦ãããã¨ã§ãããããã£ãåã決ãã«ã¯ãsRGBãããNTSCãããAdobe-RGBããªã©ãããã¾ãã
ä¸è¬çãªåå°ã®åºç¤
ããã§è¿°ã¹ãä¸è¬çãªåå°ã¯ããã£ãã¥ã¼ãºåå°ãã¹ããã¥ã©ã¼åå°ãå«ã¿ã¾ããããããè¿°ã¹ããåæ¹ååå°çåå¸é¢æ°(BRDF)ãã¯è¨ç®ã³ã¹ããé«ãã工夫ããªããã°ãªã¢ã«ã¿ã¤ã æ¼ç®åãã§ã¯ããã¾ãããã¾ãããåæ¹å表é¢åæ£ä¹±åå°çåå¸é¢æ°(BSSRDF)ãããªã¢ã«ã¿ã¤ã æ¼ç®åãã§ã¯ããã¾ããããããããã®ï¼ã¤ã®èãæ¹ã¯æ°å¤ãã®ãªã¢ã«ã¿ã¤ã CGã§ã®åºç¤ã¨ãã¦ä½¿ããã¦ãã¾ãã工夫次第ã§ããªã¢ã«ã¿ã¤ã ã§ãããããè¦ãããã¨ãå¯è½ã§ãã
åå°ã¢ãã«ã®ãããã
å ã»ã©ç´¹ä»ãããã£ãã¥ã¼ãºåå°ã¨ã¹ããã¥ã©ã¼åå°ã«ã¤ãã¦ãããããã¦ããã¾ãã使ç¨ãããã¯ãã«ã®å®ç¾©ã¯
ãã¯ãã« | æå³ |
---|---|
$p$ | åå°ãèãã¦ããä½ç½® |
$l$ | $p$ããè¦ãå æºã®æ¹åããã«ã ã¯ï¼ |
$v$ | $p$ããè¦ãè¦ç¹ã®æ¹åããã«ã ã¯ï¼ |
$R(p,v)$ | $p$ããæ¹å$v$ã¸ã®åå°ã®ã©ã¸ã¢ã³ã¹ |
$L(p)$ | $p$ããæ¹å$l$ã«ããç¹å æºãã$p$ã¸éã注ãå ¥å°ã®ã©ã¸ã¢ã³ã¹ |
$n$ | $p$ã«ãããåå°é¢ã®æ³ç·æ¹åããã«ã ã¯ï¼ |
$r$ | $p$ã«æ¹å$l$ããå ãå ¥å°ããå ´åã®æ£åå°æ¹åããã«ã ã¯ï¼ |
ã§ãããããã¾ã§èããåå°ã¯
- ã©ã³ãã¼ãåå° $$R_{\mathrm{diffuse}}(p)=k_{\mathrm{diffuse}}(p)<n,l>L_{\mathrm{diffuse}}(p)$$
- ã¹ããã¥ã©ã¼åå° $$R_{\mathrm{specular}}(p,v)=k_{\mathrm{specular}}(p)<r,v>^{S}L_{\mathrm{specular}}(p)$$
ã®ï¼ã¤ã§ãã(ãªã¢ã«ã¿ã¤ã ã·ã§ã¼ãã£ã³ã°ã®å ´åããã£ãã¥ã¼ãºåå°è¨ç®ç¨ã®å æºã¨ã¹ããã¥ã©ã¼åå°è¨ç®ç¨ã®å æºã¯å¥ã ã«è¨å®ãããã¨ãå¤ãã®ã§$L_{\mathrm{diffuse}}$ã¨$L_{\mathrm{specular}}$ã§åãã¦ããã¾ã)ã ä¸è¨ï¼ã¤ã®åå°ã«ã¢ã³ãã¨ã³ãåå° $$R_{\mathrm{ambient}}(p)=k_{\mathrm{ambient}}(p)L_{\mathrm{ambient}}$$ ãå ã㦠$$R_{\mathrm{reflection}}=R_{\mathrm{diffuse}}+R_{\mathrm{specular}}+R_{\mathrm{ambient}}$$ ã¨ããã®ããåºå®æ©è½ã·ã§ã¼ãã¼ã®ãµãã¼ãããåå°ã¢ãã«ã§ãã
ã¤ã©ã¸ã¢ã³ã¹
ä½ç½®$p$ããæ¹å$l$ãè¦ãã¨ãã®å ¥å°ãã¦ããã©ã¸ã¢ã³ã¹ã$I(p,l)$ã§ãããããªå æºåå¸ãèãã¦ã¿ã¾ãããã®å æºåå¸é¢æ°$I(p,l)$ãä½ç½®$p$ã«ããããã¤ã©ã¸ã¢ã³ã¹ãã¨å¼ã³ã¾ãã
å¼ã®ä¸ã§ã¯ãåå°ã®ã©ã¸ã¢ã³ã¹$R(p,v)$ã¨å ¥å°ã®ã¤ã©ã¸ã¢ã³ã¹$I(p,l)$ã¯åãå½¢ããã¦ãã¾ãããæå³ã¯å¤§ããç°ãªãã¾ããã©ã¸ã¢ã³ã¹$R(p,v)$ã«ã¤ãã¦ã¯ç¹å®ã®æ¹å$v$ã«ã¤ãã¦ã®ã¿èå³ããã£ãã®ã«å¯¾ããã¤ã©ã¸ã¢ã³ã¹$I(p,l)$ã«ã¤ãã¦ã¯ããããæ¹å(ã¤ã©ã¸ã¢ã³ã¹ãèããå ´å$l$ã¯åçä¸ãåã)ã«ã¤ãã¦èå³ãããã¾ãã
ã¤ã©ã¸ã¢ã³ã¹$I(p,l)$ãè¨è¿°ããã®ã¯å¤§å¤ãªã®ã§ãCGã§ã¯ãããç°å¢ãã¥ã¼ãããããã¨å¼ã°ããææ³ã§è¿ä¼¼ãã¾ããç°å¢ãã¥ã¼ããããã¯ç«æ¹ä½ã§å¤©ç©ºãä¸ãã¦ããããã¹ã¦ã®ä½ç½®$p$ããè¦ãã¤ã©ã¸ã¢ã³ã¹ãåä¸ã§ããã¨ä»®å®ãã¾ãã
åæ¹ååå°çåå¸é¢æ°(BRDF)
ãåæ¹ååå°çåå¸é¢æ°(BRDF:Bidirectional Reflectance Distribution Function)ãã¯ãåå°çã®ä¸è¬åã§ãã
ããä½ç½®$p$ã§ãããæ¹å$l$ããå ¥å°ããæããããæ¹å$v$ã«åå°ããã¨ãããã®æã®åå°ä¿æ°ã$k'(p,v,l)$ã¨ãã¾ããåå°ã®ä¿æ°ã¯ãå ¥å°ããåã$l$ã¨åå°é¢ã®æ³ç·$n$ã®è§åº¦$\phi$ã®ä½å¼¦ã«æ¯ä¾ããã®ã§ããã®ä½å¼¦é ã$<n,l>$ã§è¡¨ã $$k(p,v,l)=\frac{k'(p,v,l)}{<n,l>}$$ ã¨ããé¢æ°$k$ãå®ç¾©ãã¾ãããã®é¢æ°$k$ãBRDFã§ãã
ãã®å®ç¾©ããããã天空ã«ç¹å æºãï¼åã ãããããã®æ¹åã$l$ãå æºããä½ç½®$p$ã«éã注ãæã$L(p)$ã¨ãã㨠$$R_{\mathrm{reflection}}(p,v)=k(p,v,l)<n,l>L(p)$$ ãè¨ãã¾ããå æºã天空ã«Nåããã¨ãã㨠$$R_{\mathrm{reflection}}(p,v)=\sum_{i=1}^{N}(p,v,l_{i})<n,l_{i}>L_{i}(p)$$ ã§ãããã¨ã¾ã§ã¯ãã©ã³ãã¼ãåå°ã¢ãã«ããã©ã³åå°ã¢ãã«ã®å ´åã¨åãã§ãã
BRDFãèããæã¯ãå¤©ç©ºå ¨ä½ãå æºã§ããã¨èãã(ã¤ã©ã¸ã¢ã³ã¹ãèãã)ãã¨ãæ®éã§ãã å¤©ç©ºå ¨ä½ãèããå ´åã¯ç·å$\sum$ã®ä»£ããã«åçå ¨ä½ã«ãããç©å$\int_{\mathrm{hemisphere}}$ãç¨ã㦠$$R_{\mathrm{reflection}}(p,v)=\int_{\mathrm{hemisphere}}k(p,v,l)<n,l>I(p,l)dl$$ ã¨è¨ç®ãã¾ãã ãã®å¼ã¯çé¢ç©åã«é¢ããå¼å¤æã«ãã£ã¦ $$R_{\mathrm{reflection}}(p,v)=\int_{0}^{\frac{\pi}{2}}\int_{0}^{\frac{\pi}{2}}k(p,v,(\theta,\phi))<n,(\theta,\phi)>I(p,(\theta,\phi))\sin\phi ~~ d\theta d\phi$$ ã®ããã«æ¸ãç´ããã¨ãã§ãã¾ãã ããã§ã$(\theta,\phi)$ã¯æ¹ä½è§$\theta$ã¨ä»°è§$\phi$ã§ãã«ã ãï¼ã®ãã¯ãã«($l=(\theta,\phi)$)ã§ãã
BRDF $k$ã¯æ質ãã¨ã«ç°ãªãã¾ããåç¾ãããæ質ã®$k$ã¯æ¬ç©ããè¨æ¸¬ããé©å½ãªé¢æ°ã§è¿ä¼¼ãããã®ãä¸è¬çã§ããã¡ãªã¿ã«ã©ã³ãã¼ãã®BRDF㯠$$k(p,v,l)=k_{\mathrm{diffuse}}(p)$$ ã§ããåå°çã$k_{\mathrm{specular}}(p)$ã§ããå®å ¨ãªé¡é¢ã§ã¯BRDF㯠$$k(p,v,l)=2k_{\mathrm{specular}}(p)\delta(\sin^{2}v_{\phi}-\sin^{2}l_{\phi})\delta(v_{0}-l_{0}\pm \pi)$$ ã§ãããã ã $$v=(v_{\theta},v_{\phi}),l=(l_{\theta},l_{\phi})$$ ã¨ãã¦ãããããã®ãã¯ãã«ã®æ¹ä½è§ãä»°è§ã表ããé¢æ°$\delta$ã¯ãã£ã©ãã¯ã®ãã«ã¿é¢æ° $$ \delta(x)=\left\{ \begin{array}{rcl} 0 & (x \neq 0) \\ \infty & (x=0) \end{array} \right. $$ $$\int_{-\infty}^{\infty}\delta(x)dx=1$$ ã¨ãã¦ãã¾ãã
é«éãªBRDFã·ã§ã¼ãã£ã³ã°
å ã«è¿°ã¹ãã¤ã©ã¸ã¢ã³ã¹ãèæ ®ããåå° $$R_{\mathrm{reflection}}(p,v)=\int_{\mathrm{hemisphere}}k(p,v,l)<n,l>I(p,l)dl$$ ã¯ãªã¢ã«ã¿ã¤ã ã§ã¯ã¾ã解ãã¾ãããè¨ç®ãé«éã«è¡ãããã«ã¯ä»¥ä¸ãå¿ è¦ã«ãªãã¾ãã
- çµæã®è³ªãåºæ¥ãã ãè½ã¨ããã«éä¸ã®è¨ç®ã ãæ¸ãã
- åºæ¥ãã ãç°¡åãªã¢ã«ã´ãªãºã ã§è¨ç®ãã
ãçé¢èª¿åå¤æãã¨å¼ã°ãããã¯ããã¯ã¯ãä¸è¨ã®ï¼ã¤ãããªãæºè¶³ããããã®ã§ãã
$k(p,v,l)<n,l>$ãé¢æ°$T$ã§è¡¨ãã¨ãã¾ã($T$ã¯å ¥å°è§ãèæ ®ããBRDFã¨ããæå³åãã«ãªãã¾ã)ã$T$ã¯ä½ç½®$p$ãåå°æ¹å$v$ãå ¥å°æ¹å$l$ã®é¢æ°ãªã®ã§ $$T=T(p,v,l)$$ ã§ããã¤ã©ã¸ã¢ã³ã¹ã$I$ãåå°ã®ã©ã¸ã¢ã³ã¹ã$R$ã¨ãã¦ã¤ã©ã¸ã¢ã³ã¹ãèæ ®ããåå°ã®å¼ãç°¡åã«è¡¨ã㨠$$R=\int TI ~ dl$$ ã§ãããã㧠$$ \begin{align} \breve{x}_{l}^{m}&=SH\left[x(v)\right]_{l}^{m}\\ &= \int_{\mathrm{sh}} x(v) ~ y_{l}^{m}(v) ~ dv ; \hspace{15pt} (0 \leq l,-l \leq m \leq l) \end{align} $$ ã¨ãã¾ãã æ¼ç®$SH$ãçé¢èª¿åå¤æã§ãé¢æ°$y_{l}^{m}$ã¯ã(æ£è¦å)çé¢èª¿åé¢æ°ãã¨å¼ã°ãã¾ãã大éæãªè¨ãæ¹ãããã¨ãå¹³é¢ã®ãã¼ãªã¨å¤æãçé¢ã«ãããã®ãçé¢èª¿åå¤æã§ãã é$\breve{x}$ã¯é¢æ°$x$ã®ãçé¢èª¿åå±éä¿æ°ãã¨å¼ã°ãã¾ãã çé¢èª¿åå¤æã使ãå¹æã¯ã以ä¸ã®å¼ã®é¢ä¿ã«ããã¾ãã $$ \begin{align} SH\left[\int TI ~ dl\right] &= \sum_{l} \sum_{m} SH\left[T\right]_{l}^{m} SH\left[I\right]_{l}^{m}\\ &=\sum_{l}\sum_{m}\breve{T}_{l}^{m}\breve{I}_{l}^{m} \end{align} $$ BRDFã®ç©åã¯å®æ°ã®åã«ç½®ãæãããã¾ã(è¨ç®ã$n=5$ç¨åº¦ã§æã¡åã£ã¦è¯ã)ãããã¯ãéçé¢èª¿åå¤æãã§å ã®ã©ã¸ã¢ã³ã¹ã«æ»ããã¨ãã§ãã¾ããçé¢èª¿åå±éä¿æ°$\breve{x}$ããå ã®é¢æ°$x$㯠$$ \begin{align} x(v)&=SH^{-1} [\breve{x}] (v)\\ &=\sum_{l=0}^{n-1} \sum_{m=-l}^{l} \breve{x}_{l}^{m} y_{l}^{m} (v) \end{align} $$ ã§å¾©å ãããã¨ãã§ãã¾ãã
åæ¹å表é¢ä¸æ£ä¹±åå°çåå¸é¢æ°(BSSRDF)
ãåæ¹å表é¢ä¸æ£ä¹±åå°çåå¸é¢æ°(BSSRDF:Bidirectional Subsurface Scattering Reflectance Distribution Function)ãã¯è¡¨é¢åæ£ä¹±åå°ãæ±ãåå°ã¢ãã«ã§ããã»ã¨ãã©ã®åå°ã¯BSSRDFãèããã°å åã§ãããã¨ãçµé¨çã«ç¥ããã¦ãã¾ãã
BSSRDFãèããå ´åãå ¥å°ç¹ã¨åå°ç¹ãç°ãªãã±ã¼ã¹ãèæ ®ããå¿ è¦ãããã¾ãã注ç®ããç¹ã$p$ã¨ããã¨ã$p$ä»è¿ã®å ¥å°ç¹$q_{i}$ããã®åå°ãå ¨ã¦åå®ã«å ¥ããªããã°ããã¾ãããããã§ã次ã®ãããªé¢ç©å$\int_{\mathrm{area}}$ãè¡ããã¨ã«ãªãã¾ãã $$R_{\mathrm{reflection}}(p,v)=\int_{\mathrm{area}}\int_{\mathrm{hemisphere}} k_{\mathrm{BSSRDF}}(p,g,v,l)I(q,l) ~ dldq$$ ãã®é¢æ°$k_{\mathrm{BSSRDF}}$ãBSSRDFã§ãã