轉載請註明出處:http://www.cnblogs.com/jerrycg/p/4924761.html html
本系列從零起步,做爲學習筆記與你們分享,從基礎的數學和圖形理論,一步一步實現基於物理的渲染。函數
Reference:《PBRT》、《Ray Tracing from the Ground Up》學習
因爲光源是三維空間中的輻射光能,對於其傳播範圍一般使用立體角來描述,先來看一下什麼是立體角。spa
立體角表示一個錐面所圍成的空間部分,用符號\(\omega \)表示。htm
立體角是以圓錐體的頂點爲心,半徑爲r的球面被錐面所截得的面積來度量的,度量單位爲「球面度」(steradian,符號∶sr)。球面度表示爲三維弧度。blog
在球座標系中,球面的極小面積\({dA}_{2}\)爲:ip
\({dA}_{2}=({r}\,\sin\theta\, {d}\varphi )({r\,d\theta })={r}^{2}(\sin\theta\,{d\theta }\,{d}\varphi)\)ci
整個球面面積爲\({dA}\)的積分: get
\({A}=\int {dA}_{2}=\int_{0}^{2\pi}\int_{0}^{\pi}({r}\,\sin\theta\, {d}\varphi*{r\,d\theta })={r}^{2}\int_{0}^{2\pi}{d}\varphi\int_{0}^{\pi}\sin\theta\,{d}\theta\)數學
極小立體角定義爲球面面積與球半徑平方的比值,即:
\({d\omega} = \frac{dA}{{r}^{2}}=\sin\theta\,{d}\theta\,{d}\varphi\)
對上式積分:
\({\omega} = \int_{0}^{2\pi }{d\varphi }\int_{0}^{\pi } \sin \theta\, {d\theta }={4\pi }\)
可知,最大立體角就是單位球體的表面積。
半球積分方程表示爲:\({I} = \int_{\omega}{f(\theta, \phi)\cos \theta \, d\omega}\)
其中,\({(\theta, \phi)} \in {[0, \frac{\pi}{2}] [0, 2\pi]}\),\({\omega \in [0, 2\pi]}\),\(\cos\theta \, d\omega\)表示立體角在水平面\({(x, y)}\)上的投影,又稱爲投影立體角。
當函數\({f(\theta, \phi)} = \cos^{n-1} \theta \)時,
\({I} = \int_{2\pi} \cos^{n} \theta \, {d\omega}\)
\(= \int_{0}^{2\pi} \int_{0}^{\frac{\pi}{2}}{\cos^{n}\theta \sin\theta \, d\phi}\)
\(= \int_{0}^{2\pi} d\phi \int_{0}^{2\pi} {\cos^{n}\theta \sin\theta \, d\theta} \)
\(= {2\pi \int_{0}^{\frac{\pi}{2}} \cos^{n}\theta \, \sin\theta \, d\theta}\)
\(= {2\pi \left[\frac{{\cos\theta}^{n+1}}{n+1} \right]_{0}^{\frac{\pi}{2}}} = \frac{2\pi}{n+1}\)
最終得出當\({f(\theta, \phi)} = \cos^{n-1} \theta \)時,半球積分爲:\({I} = \frac{2\pi}{n+1}\)