Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Erich Ess on Imaging Vector Fields Using Line I...

Erich Ess on Imaging Vector Fields Using Line Integral Convolution

Line Integral Convolution is one of the most intuitive data visualization techniques around. It's dropping paint in a river to see how the current is flowing: to visualize a vector field simply take an image and have the vector field smear the colors. The result is a powerful alternative to using arrows or stream lines. And while the intuition is very straightforward, the actual mathematics that power the technique are very complex.

Papers_We_Love

February 28, 2017
Tweet

More Decks by Papers_We_Love

Other Decks in Programming

Transcript

  1. Vector Fields • A vector field is a function V

    with takes a location in space and returns a vector • Used to represent things like: fluid behavior, magnetic fields, gravity, etc.
  2. Where do Vector Fields Arise • Fluid Dynamics • Climate

    information • Physics including modelling electromagnetic fields, gravity, and particle motion
  3. Glyphs • Divide the space into a grid • At

    each point on the grid • Get the vector at that point • Draw a glyph (like an arrow) which points in the direction of the vector
  4. Glyphs: Problems • Take up a lot of visual space

    • Limits how many glyphs you can display which means • Overly turbulent or large vector fields don’t render well with glyphs • It becomes hard to visualize or intuit how something would move through the vector field
  5. Stream Lines • Stream Lines draw lines which start at

    a point and the follow the flow of the vector field • Pick a point in the space • Get the vector at that point and move a step in the direction of that vector • Draw a line connecting the previous point and the new point • Repeat
  6. Stream Lines: Problems • Depend critically on where stream lines

    are placed • Complex information in turbulent vector fields can be missed entirely if the stream lines are not well placed
  7. DDA Convolution • An intermediate step to Line Integral Convolution

    • DDA convolution takes a vector field and an input image (usually white noise), the image is mapped one to one to the vector field • For each vector a short line is followed and each pixel on the line is summed • The result is the value of the pixel at the vector point
  8. DDA Convolution: Problems • Assumes that the local vector field

    can be modelled using a straight line • Works for where the local curvature is small • Does not work where the local curvature is high, such as turbulent fluids or small vortices
  9. Line Integral Convolution • Combine DDA Convolution with Stream Lines

    • DDA Convolution: follow a straight line that’s parallel to the vector and sample each pixel in the input image at each step on this straight line • Line Integral Convolution: trace a stream line through the vector field and sample the input image at each step
  10. Convolution • Each step on the curve maps to a

    pixel on the input image • The color of that pixel is sampled to get the color of the output pixel • At each point the convolution kernel is used to determine the weight that pixel color will have to the output
  11. Convolution • The function k is a weighting function used

    to determine how much a specific pixel in the input image will contribute to the value of an output pixel • The simplest version of LIC just uses the unit function k(w)=1 for it’s kernel
  12. Periodic Motion Filters • Using the basic kernel doesn’t show

    any information with regards to the direction of flow • Using more complex kernel functions allow us to use the direction of the vector field and the distance from the given point to impact the weight of a given pixel from the input image
  13. Normalization • Playing with how normalization works can also be

    used to provide additional information • In the bottom image, normalization is used to highlight sources and sinks