language-icon Old Web
English
Sign In

Line integral convolution

In scientific visualization, line integral convolution (LIC) is a technique to visualize a vector field, like a fluid motion, such as the wind movement in a tornado. LIC has been proposed by Brian Cabral and Leith Leedom. Compared to other integration-based techniques that compute field lines of the input vector field, LIC has the advantage that all structural features of the vector field are displayed, without the need to adapt the start and end points of field lines to the specific vector field. LIC is a method from the texture advection family. In scientific visualization, line integral convolution (LIC) is a technique to visualize a vector field, like a fluid motion, such as the wind movement in a tornado. LIC has been proposed by Brian Cabral and Leith Leedom. Compared to other integration-based techniques that compute field lines of the input vector field, LIC has the advantage that all structural features of the vector field are displayed, without the need to adapt the start and end points of field lines to the specific vector field. LIC is a method from the texture advection family. Intuitively, the flow of a vector field in some domain is visualized by adding a static random pattern of dark and light paint sources. As the flow passes by the sources, each parcel of fluid picks up some of the source color, averaging it with the color it has already acquired in a manner similar to throwing paint in a river. The result is a random striped texture where points along the same streamline tend to have similar color. Algorithmically, the technique starts by generating in the domain of the vector field a random gray level image at the desired output resolution. Then, for every pixel in this image, the forward and backward streamline of a fixed arc length is calculated. The value assigned to the current pixel is computed by a convolution of a suitable convolution kernel with the gray levels of all the pixels lying on a segment of this streamline. This creates a gray level LIC image. Although the input vector field and the result image are discretized, it pays to look at it from a continuous viewpoint. Let v {displaystyle mathbf {v} } be the vector field given in some domain Ω {displaystyle Omega } . Although the input vector field is typically discretized, we regard the field v {displaystyle mathbf {v} } as defined in every point of Ω {displaystyle Omega } , i.e. we assume an interpolation. Streamlines, or more generally field lines, are tangent to the vector field in each point. They end either at the boundary of Ω {displaystyle Omega } or at critical points where v = 0 {displaystyle mathbf {v} =mathbf {0} } . For the sake of simplicity, in the following critical points and boundaries are ignored. A field line σ {displaystyle {oldsymbol {sigma }}} , parametrized by arc length s {displaystyle s} , is defined as d σ ( s ) d s = v ( σ ( s ) ) | v ( σ ( s ) ) | {displaystyle {frac {d{oldsymbol {sigma }}(s)}{ds}}={frac {mathbf {v} ({oldsymbol {sigma }}(s))}{|mathbf {v} ({oldsymbol {sigma }}(s))|}}} . Let σ r ( s ) {displaystyle {oldsymbol {sigma }}_{mathbf {r} }(s)} be the field line that passes through the point r {displaystyle mathbf {r} } for s = 0 {displaystyle s=0} . Then the image gray value at r {displaystyle mathbf {r} } is set to where k ( s ) {displaystyle k(s)} is the convolution kernel, N ( r ) {displaystyle N(mathbf {r} )} is the noise image, and L {displaystyle L} is the length of field line segment that is followed. D ( r ) {displaystyle D(mathbf {r} )} has to computed for each pixel in the LIC image. If carried out naively, this is quite expensive. First, the field lines have to be computed using a numerical method for solving ordinary differential equations, like a Runge–Kutta method, and then for each pixel the convolution along a field line segment has to be calculated. The computation can be significantly accelerated by re-using parts of already computed field lines, specializing to a box function as convolution kernel k ( s ) {displaystyle k(s)} and avoding redundant computations during convolution. The resulting fast LIC method can be generalized to convolution kernels that are arbitrary polynomials. Note that Ω {displaystyle Omega } does not have to be a 2D domain: the method is applicable to higher dimensional domains using multidimensional noise fields. However, the visualization of the higher-dimensional LIC texture is problematic; one way is to use interactive exploration with 2D slices that are manually positioned and rotated. The domain Ω {displaystyle Omega } does not have to be flat either; the LIC texture can be computed also for arbitrarily shaped 2D surfaces in 3D space. The output image will normally be colored in some way. Typically some scalar field in Ω {displaystyle Omega } is used, like the vector length, to determine the hue, while the gray-scale LIC image determines the brightness of the color. Different choices of convolution kernels and random noise produce different textures: for example pink noise produces a cloudy pattern where areas of higher flow stand out as smearing, suitable for weather visualization. Further refinements in the convolution can improve the quality of the image.

[ "Visualization", "Flow visualization", "Vector field", "Convolution" ]
Parent Topic
Child Topic
    No Parent Topic