W3C home > Mailing lists > Public > www-svg@w3.org > November 2011

feTurbulence -- new feature request

From: David Dailey <ddailey@zoominternet.net>
Date: Sat, 12 Nov 2011 13:37:53 -0500
To: <www-svg@w3.org>
Message-ID: <002f01cca16a$301ddad0$90599070$@net>
I don't know if the SVG Working Group is contemplating new forms of random
noise or not, but the article at
http://graphics.pixar.com/library/WaveletNoise/paper.pdf makes for an
interesting read. More types of noise, even introduction of random
sinusoidal generators, such as in the Adobe Photoshop "wave" distortion
(only mapped to RGB rather than xy - xy is another story that would be nice
for distortion, in fact) would be nice.

 

All that notwithstanding there is one kind of control over feTurbulence that
I don't think should be difficult to implement - an animatable x-y offset
that could be used to control the position of the turbulence map relative to
a filled region.

 

Here's the premise - many of the intriguing uses of turbulence have to do
with animation: clouds, smoke,  bubbles, fire, water, etc.

 

(you'll need Opera for these)

http://srufaculty.sru.edu/david.dailey/svg/text/ripples11.svg

http://srufaculty.sru.edu/david.dailey/svg/text/fire7.svg 

http://srufaculty.sru.edu/david.dailey/svg/text/bubbles8.svg 

 

all of which are, in the intrinsic human perception of them, things that
move. I remember a social psychology friend telling me once that certain
Pacific Islanders didn't recognize still photographs of things that are
suppose to move, and there are plenty of examples of things that make no
sense, even in a photo-savvy culture, without movement :

http://srufaculty.sru.edu/david.dailey/pictures/dance2/dance.html (when you
show this sequence to someone while stopped it is unrecognizable, but when
it moves it is).

 

Anyhow, the question, then, becomes "how to animate turbulence?"

 

Of the attributes available, only baseFrequency puts "in motion" an
feTurbulence, and it varies the density of the turbulence in a way that can
simulate motion but does not impart much-needed directionality of things
like "flow" and  "wind" that impart to much of the meaning to real world
motion.

 

See http://srufaculty.sru.edu/david.dailey/svg/SVGOpen2008/clouds2.svg as an
example of animating feTurbulence (back and forth rather boringly).

 

An attempt to simulate turbulent flow, using a series of tricks, can be seen
at

http://srufaculty.sru.edu/david.dailey/svg/spout2.svg 

In such animations, the discontinuities between the beginning and end of the
animation are all too obvious., though the patient animator may find ways to
cloak those seams (well-timed explosions come to mind)

 

The problem is that feTurbulence is defined relative to some start values of
x and y that remain immutable. Note how in 

http://cs.sru.edu/~ddailey/svg/feTurbulence11.svg (works in Opera, Chrome or
FF)

we may drag a window through a turbulence map, but the turbulence itself is
not so easily dragged.

 

In http://cs.sru.edu/~ddailey/svg/feTurbulence12.svg , (Opera okay, though
FF is really slow and Chrome is not at all) a solution to seamless
directional turbulence is explored (and it is the same method used in
ripples, fire, and bubbles, above):

A turbulence map is laid into a rectangle. The rectangle is mirrored about
its bottom edge. The turbulence and its mirror image are then dragged
repeatedly through the pattern space, which is in turn applied to the region
to be animated. It works but it is really slow.

 

I think if we just had x and y offsets associated with the Perlin noise then
we could animate those without nearly so much hoopla.

 

Ideas?

 

thanks

David

 

 
Received on Saturday, 12 November 2011 18:38:38 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:49 GMT