Content deleted Content added
Large copy edit. Rewrote sections, condensed content, cleaned up grammar, improved citations |
Additional copy edits and citation improvements |
||
Line 1:
{{Short description|Method for visualizing vector fields}}
[[File:Rotation of the Large Magellanic Cloud ESA393163.png|thumb|right|Image of the [[Large Magellanic Cloud]], one of the nearest galaxies to our Milky Way, created with LIC]]
In [[scientific visualization]], '''line integral convolution''' ('''LIC''') is a method to visualize a [[vector field]] (such as [[fluid motion]]) at high spatial resolutions.<ref name="Stalling 1995" /> The LIC technique was first proposed by Brian Cabral and Leith Casey Leedom in 1993.<ref name="Cabral 1993">{{cite conference |last1=Cabral |first1=Brian |last2=Leedom |first2=Leith Casey |date=August 2–6, 1993 |title=Imaging Vector Fields Using Line Integral Convolution |conference=SIGGRAPH '93 |___location=Anaheim, California |pages=263–270 |citeseerx=10.1.1.115.1636 |doi=10.1145/166117.166151 |isbn=0-89791-601-8 |book-title=Proceedings of the 20th annual conference on Computer graphics and interactive techniques}}</ref>
In LIC, discrete numerical [[Line integral|line integration]] is performed along the [[field line]]s (curves) of the vector field on a [[Regular grid|uniform grid]]. The integral operation is a [[convolution]] of a filter [[Kernel (image processing)|kernel]] and an input texture, often [[white noise]].<ref name="Stalling 1995" /> In [[signal processing]], this process is known as a [[Convolution#Discrete convolution|discrete convolution]].<ref name=":0">
==Overview==
Traditional visualizations of vector fields use small arrows or lines to represent vector direction and magnitude. This method has a low spatial resolution, which limits the density of presentable data and risks obscuring characteristic features in the data.<ref name="Stalling 1995" /><ref name=":0" /> More sophisticated methods, such as [[Streamlines, streaklines, and pathlines|streamlines]] and particle tracing techniques, can be more revealing but
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. In other words, it shows the topology of the vector field.{{Citation needed|date=July 2024}}
In user testing, LIC was found to be particularly good for identifying critical points.<ref name="Laidlaw 2001">{{cite conference | first1 = David H. | last1 = Laidlaw | first2 = Robert M. | last2 = Kirby | first3 = J. Scott | last3 = Davidson | first4 = Timothy S. | last4 = Miller | first5 = Marco | last5 = da Silva | first6 = William H. | last6 = Warren | first7 = Michael J. | last7 = Tarr | title = Quantitative Comparative Evaluation of 2D Vector Field Visualization Methods | book-title = IEEE Visualization 2001, VIS '01. Proceedings | date = October 21–26, 2001 | place = San Diego, CA, USA | pages = 143–150}}</ref>
== Algorithm ==
=== Informal description ===
LIC causes output values to be strongly correlated along the field lines, but uncorrelated in orthogonal directions.<ref name="Stalling 1995" /> As a result, the field lines contrast each other and stand out visually from the background.
Line 26 ⟶ 22:
* whorl patterns of paint, oil, or foam on a river
* visualisation of [[magnetic field]] lines using [[:commons:Category:Magnetised iron filings|randomly distributed iron filings]]
* fine sand being blown by strong wind<ref>
=== Formal mathematical description ===
Line 33 ⟶ 29:
A field line <math>\boldsymbol \sigma</math>, parametrized by arc length <math>s</math>, is defined as <math display="block">\frac{d\boldsymbol \sigma (s)}{ds} = \frac{\mathbf{v}(\boldsymbol {\sigma}(s))}{|\mathbf{v}(\boldsymbol{\sigma}(s))|}.</math>Let <math>\boldsymbol{\sigma}_\mathbf{r}(s)</math> be the field line that passes through the point <math>\mathbf{r}</math> for <math>s=0</math>. Then the image gray value at <math>\mathbf{r}</math> is set to
:<math>D(\mathbf{r}) = \int_{-L/2}^{L/2} k(s)N(\boldsymbol{\sigma}_{\mathbf{r}}(s)) ds</math>
where <math>k(s)</math> is the convolution [[Kernel (image processing)|kernel]], <math>N(\mathbf{r})</math> is the noise image, and <math>L</math> is the length of field line segment that is followed.
<math>D(\mathbf{r})</math> has to be 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 methods for ordinary differential equations|numerical method for solving ordinary differential equations]], like a [[Runge–Kutta methods|Runge–Kutta method]], and then for each pixel the convolution along a field line segment has to be calculated.
The final image will normally be colored in some way. Typically, some scalar field in <math>\Omega</math>
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.<ref name="Weiskopf 2009">{{cite book |last1=Weiskopf |first1=Daniel |url=https://archive.org/details/mathematicalfoun00mlle |title=Mathematical Foundations of Scientific Visualization, Computer Graphics, and Massive Data Exploration |publisher=[[Springer Science+Business Media|Springer]] |year=2009 |isbn=978-3-540-25076-0 |editor1-last=Möller |editor1-first=Torsten |series=Mathematics and Visualization |___location=Berlin, New York |pages=[https://archive.org/details/mathematicalfoun00mlle/page/n195 191]–211 |chapter=Iterative Twofold Line Integral Convolution for Texture-Based Vector Field Visualization |citeseerx=10.1.1.66.3013 |doi=10.1007/b106657_10 |editor2-last=Hamann |editor2-first=Bernd |editor3-last=Russell |editor3-first=Robert D. |url-access=limited |url-status=dead}}</ref>
Line 55 ⟶ 51:
=== Animation ===
[[File:Animated LIC.svg|thumb|Illustration
▲[[File:Animated LIC.svg|thumb|Illustration on how to animate. Above: Normal [[Box Filter]] (average). Middle: Sinusoidal Filter at <math>t</math>. Bottom: Sinusoidal Filter at <math>t + \delta t</math>]]
LIC images can be animated by using a kernel that changes over time. Samples at a constant time from the streamline would still be used, but instead of averaging all pixels in a streamline with a static kernel, a ripple-like kernel constructed from a periodic function multiplied by a [[Hann function]] acting as a window (in order to prevent artifacts) is used. The periodic function is then shifted along the period to create an animation.
Line 69 ⟶ 64:
=== Unsteady Flow LIC (UFLIC) ===
For time-dependent vector fields (unsteady flow), a variant called Unsteady Flow LIC has been designed that maintains the coherence of the flow animation.<ref name="Shen 1998">{{cite journal | last1 = Shen | first1 = Han-Wei | last2 = Kam | first2 = David L. | title = A New Line Integral Convolution Algorithm for Visualizing Time-Varying Flow Fields | journal = IEEE Trans Vis Comput Graph | volume = 4 | issue = 2 | pages = 98–108 | publisher = IEEE | ___location = Los Alamitos | url = http://web.cse.ohio-state.edu/~shen.94/Research/Gravity/Project_2_files/Shen1998a.pdf | year = 1998 | issn = 1077-2626 | doi = 10.1109/2945.694952 }}</ref> An interactive GPU-based implementation of UFLIC has been presented.<ref name="Ding 2015">{{cite conference |last1=Ding |first1=Zi'ang |last2=Liu |first2=Zhanping |last3=Yu |first3=Yang |last4=Chen |first4=Wei |year=2015 |title=Parallel unsteady flow line integral convolution for high-performance dense visualization |pages=25–30 |book-title=2015 IEEE Pacific Visualization Symposium, PacificVis 2015 |place=Hangzhou, China}}</ref>
=== Parallel ===
Since the computation of an LIC image is expensive but inherently parallel, the process has been [[Parallel computing|parallelized]]<ref name="Zoeckler 1996">{{cite journal | last1 = Zöckler | first1 = Malte | last2 = Stalling | first2 = Detlev | last3 = Hege | first3 = Hans-Christian | title = Parallel Line Integral Convolution | journal = Parallel Computing | volume = 23 | issue = 7 | pages = 975–989 | publisher = North Holland | ___location = Amsterdam | url = http://www.zib.de/visual-publications/sources/src-1996/parLIC.pdf | year = 1997 | issn = 0167-8191 | doi = 10.1016/S0167-8191(97)00039-2 }}</ref> and, with availability of GPU-based implementations, interactive on PCs.
Line 106 ⟶ 99:
==See also==
* [[Weighted arithmetic mean
== References ==
|