• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# XNA 2D Sprite Sway/Wind for Foliage, Trees, ect...

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

3 replies to this topic

### #1LiberLogic969  Members

Posted 27 April 2014 - 07:12 AM

I'm trying to find a method for simulating the effects of wind on various sprites in a 2D scene. Is there a relatively simple technique that I could use to achieve this?

What I have in mind is to give these sprites a "spring" effect that I could hand a force to which would rotate them in a specific direction and eventually degrade the force and bring the sprite back to its "resting" rotation over time with a little bit of rebound/wobble/sway... My Problem is I don't understand how I can mathematically create the elastic/spring effect using rotation and bringing into account things like mass, resistance, or stiffness. How would I go about doing this in code?

This doesn't have to be super realistic in anyway, but I was hoping I could set it up so there is a global wind variable that gets applied to sprites starting at one side of the screen and making its way to the other to look like a gust of wind passed through, which I should be able to accomplish once I have a method for applying a wind force to each sprite...

If anyone has any experience doing something like this or any advice/ideas that you think may be helpful I would greatly appreciate it!!!

### #2PhillipHamlyn  Members

Posted 27 April 2014 - 10:22 AM

This might be a useful resource http://http.developer.nvidia.com/GPUGems/gpugems_ch07.html

### #3phil_t  Members

Posted 27 April 2014 - 10:33 AM

My Problem is I don't understand how I can mathematically create the elastic/spring effect using rotation and bringing into account things like mass, resistance, or stiffness. How would I go about doing this in code?

For an appropriate equation, you might google things like "damped oscillator equation".   http://mathworld.wolfram.com/UnderdampedSimpleHarmonicMotion.html

Basically, a sine/cosine wave multiplied by an exponential decay function.

Or you could just use a sine wave and modify it by the current strength of the "wind gust" in that location.

Your wind gust could be a modifier on your global wind speed, and could be modeled by a point that moves across the screen, and the wind strength being some function of distance from that point at a particular location.

How are you drawing your trees? How are your sprites broken up?

I have a blog post based on the crysis method for rendering wind animations in vegetation (in 3d), it may be of some use:

http://mtnphil.wordpress.com/2011/10/18/wind-animations-for-vegetation/

### #4LiberLogic969  Members

Posted 27 April 2014 - 12:59 PM

My Problem is I don't understand how I can mathematically create the elastic/spring effect using rotation and bringing into account things like mass, resistance, or stiffness. How would I go about doing this in code?

For an appropriate equation, you might google things like "damped oscillator equation".   http://mathworld.wolfram.com/UnderdampedSimpleHarmonicMotion.html

Basically, a sine/cosine wave multiplied by an exponential decay function.

Or you could just use a sine wave and modify it by the current strength of the "wind gust" in that location.

Your wind gust could be a modifier on your global wind speed, and could be modeled by a point that moves across the screen, and the wind strength being some function of distance from that point at a particular location.

How are you drawing your trees? How are your sprites broken up?

I have a blog post based on the crysis method for rendering wind animations in vegetation (in 3d), it may be of some use:

http://mtnphil.wordpress.com/2011/10/18/wind-animations-for-vegetation/

Thanks for the replies. That math is way over my head >_<

For trees my current plans are to create a few different trunk pieces that I can group together and them place the leaves above them in my map editor. Same thing for vegetation, I will be placing groups of sprites in various layers of the map and flagging them as "effected by wind".

I don't have any experience with shaders unfortunately so I wouldn't know where to begin with advanced concepts like that.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.