Joshua Ray
Line Integral Convolution
(LIC)
Project description: This project visualizes flow vector fields using the LIC or Line Integral Convolution Technique with vectors created by the user.
Instructions:
1. Press and hold the right mouse click button to select the vector start point.
2. Release the mouse at desired Extension to create a vector.
3. View animated flow field
4. Repeat as Desired.
Control Scheme:
KeyAction
W: Switches to Whitenoise Image
S: Turns on Flow Field Arrows
A: Switches to Picture Image
LIC Implementation:
I used the C# XNA libraries as the base for this program and HLSL to visualize the Flow Fields. I Read the data in using the C# Textures Class and then created an Arrow class to display flow fields. This arrow class determines the angle the arrow is facing and changes the color based on the vector that is given to it. This way when the coordinate points are read in from the mouse, it can simply be sent to the arrow class for processing to alter the arrow properly. I then mapped the arrows to each pixel on the texture (I only draw a few of them, any more would clutter the screen) and then used Sheppard’s interpolation to determine how these points will be affected by user input when a user vector is created. I then took this arrow data and passed it into the HLSL shader. Using the vectors from the arrow data I passed in I was able to then use Euler Integration the grab the next pixel and display it. By increasing the step Size each frame I able to achieve an animated effect.