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的点乘可以由下式得到:

\[L\cdot N = |L_N| = \sqrt{1-|L_T|^2}=\sqrt{1-(L\cdot T)^2} \tag{2} \]

那么\(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\)。那么漫反射项可以表示为:

\[P(t_1) = I_{diffuse} = k_d \sqrt{1-(2t_1 - 1)^2} \]

通过该公式可以构建出一维纹理。使用的时候,直接利用切向量和光线方向向量,求出纹理坐标,然后进行采样得到漫反射项。

镜面反射的构建和使用和漫反射基本一致,此处略。

posted @ 2022-04-11 11:44  grassofsky  阅读(49)  评论(0编辑  收藏  举报