paper read - Fast display of illuminated field lines
paper read - Fast display of illuminated field lines
Stalling D, Zockler M, Hege H C. Fast display of illuminated field lines[J]. IEEE transactions on visualization and computer graphics, 1997, 3(2): 118-128.
提出了一種利用大量適當照明的場線進行互動式向量場視覺化的新技術。考慮到環境光、漫反射和鏡面反射條件以及透明度和深度感知,我們採用了真實的著色模型,顯著提高了生成影象的質量和真實性。
2 Illumination of lines in R3
在表面渲染的時候,有一個很重要的元素是法向量N,它決定了光源和表面上的點的互動。在phong模型中,我們令L表示光線方向,V表示視線方向,R表示光線方向相對於法向量的反射方向,那麼特定表面位置的光照強度是:
\[I = I_{ambient} + I_{diffuse} + I_{specular} =k_a + k_dL\cdot N + k_s(V\cdot R)^n \]考慮到線的場景,沒法直接得到法向量N以及R。在直線切向量的法平面上,我們會選擇切向量和光線向量L共面和法平面的交線處為法向量對應的位置。那麼L和N的點乘可以由下式得到:
那麼\(V\cdot R\)的計算如下:
\[V\cdot R = V \cdot (L_N - L_T) = (L\cdot N)\sqrt{(1-(V\cdot T)^2)} - (L\cdot T)(V\cdot T) \tag{3} \]對應的示意圖如下(此處相對於原文進行了適當更改,保證公式和影象一致性):
3 Rendering Illuminated lines
3.1 Texture Mapping
這一步在現代GPU中使用的必要性有待驗證。
上述公式中\(L\cdot N\)和\(V\cdot R\)的計算可以提前預製好對應的紋理,用於渲染加速。針對漫反射項,利用切向量建立查詢反反射值的紋理。計算過程中,就可以直接利用切向量和光源位置,計算得到紋理座標,然後在紋理上插值出對應的漫反射值。針對鏡面反射的情況也是類似,需要根據切向量求得xy的紋理座標,然後從紋理中取樣得到具體的鏡面反射值。
漫反射紋理構建與使用
在公式2中\(L\cdot T\)的值是在[-1, 1]
範圍,而紋理座標的取值範圍在[0,1]
範圍,那麼用紋理座標表示\(L\cdot T\)的值為:\(L\cdot T = 2t_1 - 1\)。那麼漫反射項可以表示為:
通過該公式可以構建出一維紋理。使用的時候,直接利用切向量和光線方向向量,求出紋理座標,然後進行取樣得到漫反射項。
鏡面反射的構建和使用和漫反射基本一致,此處略。