ToDo:
- sink_LIC.png
- source_LIC.png
- spiral_LIC.png
LIC (Line Integral Convolution) is a scientific visualization technique
- based on
- texture ( not like geometry-based approaches such as arrow plots, streamlines, pathlines, timelines, streaklines, particle tracing, surface particles, stream arrows, stream tubes, stream balls, flow volumes and topological analysis)
- integration
- a global method: all structural features of the vector field are displayed
- it has high computational expense ( in comparisen to low computational expense of a geometry-based methods)
- basic LIC image (grayscale without color and animation) conveys the orientation of the field vectors, but it does not indicate their direction, the length of the vectors (or the strength of the field)
- good for identifying critical points
It can be applied to:
- steady planar flow of fluids
- a 2D static (= time independent) vector field
It shows:
- Streamlines = field lines of the fluid flow
- field lines of vector field
- 2 inputs
- vector field
- white noise
- one output ( LIC image)
First input:
- strong wind or flow of the river
- steady flow = A flow that is not a function of time = time independent flow (as described in fluid dynamics )
- a 2D static (= time independent) vector field defined by a real-valued function F of two real variables x and y
z = F(x,y)
Second input:
- White noise
- massless fine sand
- an input grayscale white noise texture
Output: LIC image
- grayscale image ( texture)
- which "emulates what happens when a rectangular area of massless fine sand is blown by strong wind"
- "provides a global dense representation of the flow, analogous to the resulting pattern of wind-blown sand"
- throwing paint in a river. The result is a random striped texture where points along the same streamline tend to have similar color.
- "It employs a low-pass filter to convolve an input noise texture along pixel-centered symmetrically bi-directional streamlines"
- Data Integration = The process of consolidating data from multiple sources
- line integral is an integral where the function to be integrated is evaluated along a curve
Original repo : Basic LIC by Chang Sha
Here is it's c implementation of saddle-shaped field:
void SyntheszSaddle(int n_xres, int n_yres, float* pVectr)
{
int i,j;
for(j = 0; j < n_yres; j ++) // y
for(i = 0; i < n_xres; i ++) // x
{
int index = ( (n_yres - 1 - j) * n_xres + i ) << 1;
pVectr[index ] = - ( j / (n_yres - 1.0f) - 0.5f ); // y
pVectr[index + 1] = i / (n_xres - 1.0f) - 0.5f; // x
}
}
- par_streamlines by Philip Rideout in 2019., c code,
- 2DFlowVisualization by Andres Bejarano
- fluid-simulator by Linus Mossberg
- LIC by M. Harper Langston
- LIC by Dzhelil Rufat
- LIC by greenhol
- fieldplay by anvaka
- Vector-Field-Topolgy-2D by zaman13
- Line integral convolution algorithm for numpy arrays by Steffen Brinkmann
- Line Integral Convolution for Flow Visualization by Han-Wei Shen
- ParaView: Line_Integral_Convolution
Vector field
create a new repository on the command line
echo "# LIC" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:adammaj1/LIC.git
git push -u origin main
~/Dokumenty/lic/basic_lic/
mkdir png
git add *.png
git mv *.png ./png
git commit -m "move"
git push -u origin main
then link the images:
![](./png/n.png "description")
to overwrite
git mv -f