Can you summarize the following document?
        
  

  光經過反射和折射能產生一種叫caustics的效果

  我們把光從一個漫反射物體反射到另外一個物體的照明效果叫做間接漫反射,這是Photon mapping的強項之一, 因為這個演算法考慮了photon從一個表面反射到另外一個表面的過程,並且BRDF也能起作用,其結果自然的顯示出間接漫反射的效果。Color bleed是最常見的間接漫反射的例子。

  次表面散射是光射入物體表面後,在被完全吸收/反射前朝不同方向散射的效果。該效果也能很精確的被photon mapping模擬。Jensen曾經有過一個實現,但是,當處理一些高散射材質時該方法會變得很慢, 與之對比,BSSRDFs能更好的處理這些情況。

  

  在光子對映演算法中,光子從光源發射到場景中。一旦光子和一個幾何面(surface)相交,相交點和入射方向就會被存在一個叫光子貼圖(photon map)的快取中。一般來講我們會存兩張貼圖,一個給caustics另一個給其他光。經過相交檢測後, 根據相交面的材質,該光子可能被反射,吸收或者折射, 這一步通常用一個叫俄羅斯輪盤(russian roulette)的蒙特卡羅方法(Monte Carlo method)來處理。如果該光子被吸收,不需要下一步處理,這個光子停止輻射。如果光子被反射,根據BRDF計算新反射方向。最後,如果光子被折射,則根據相關自然定理,算出新的傳輸方向。 光子貼圖被構建後,由於光子的查詢時間給予光子的空間分佈,所以他會被用一種叫K-nearest neighbor的演算法來組織和優化。Jensen提議用kd-trees。光子貼圖會被存到硬碟或者記憶體裡,等待下一步使用。

  這一步中,前面建立好的光子貼圖將被用來估算輸出影象上每個畫素的最終輻射度(亮度)。 針對單個畫素,需要做一個光線追蹤去找到最近的相交面。然後在該點上,用渲染方程計算最終輻射。方便起見,渲染方程被分解成四部分:直接光照,鏡面反射,光線蝕刻(caustics),和間接光照。  為了精確估計直接光照,需要從該點輻射射線到各個光源,如果射線沒和其他物體相交,那麼那光源就會被用作直接光照。 鏡面反射一般都用光線追蹤的方法來做(它可以很好的處理反射)。 Caustics則根據caustics光子貼圖來計算而來。由於該光子貼圖是caustics的唯一來源,所以該光子貼圖中,光子數目必須足夠多。 對於間接光照,輻射計算來自光子貼圖,但其不需要像Castics計算那麼精確,使用全域性光子貼圖即可。

  為了計算相交點的表面輻射度, 一個快取光子貼圖將被使用,步驟為: 1.用nearest neighbor搜尋函式搜尋光子貼圖,收集臨近區域的N個光子 2.構造一個球體S,把得到的這N個光子包圍起來 3.對每個光子,根據S和BRDF,計算其光通量能量 4.所有光子的貢獻總和將為相交點的輻射強度

  儘管光子對映設計時是針對光線跟蹤渲染器的,但掃描線渲染器也能使用。
在計算機圖形學中,photon mapping是一個2 pass的全域性光照演算法,發明者為Henrik Wann Jensen。其做法為:分別從光源和照相機發出射線,當滿足終止條件時,兩條射線被連線在一起,用來在下一步中產生輻射度數值。該方法被用來做光和物體間的真實感模擬,特別值得一提的是,該方法在能夠模擬一些特殊的效果,比如處理透明介質的折射,間接漫反射,透明材質的次表面反射和某些煙及水蒸汽效果等等。經過擴充套件,Photon mapping也能更加精確的模擬光譜渲染。