PROJECT SPECIFICATION
Simulating dynamic tree movement in a wind field
Simon Ekman simonevh@kth.se
Anders Blomqvist andblomq@kth.se
Sandra Tor santor@kth.se
Background
Dynamic foliage which can be affected by various forces such as wind, moving objects, rain etc can create a more immersive world. Interactive foliage makes the world feel more alive and not as stiff as predefined animations. Together with a mass-spring system and a skeletal mesh this dynamic foliage behaviour can be implemented.
We got inspiration from this video by Patrick Murphy which simulates plants affected by wind. However we want to make a tree instead but the concept is the same.
A more detailed implementation has been made by Y.Akagi and K.Kitajima [3] where they implemented a wind system and a tree which moves accordingly, shown in figure 1.
Figure 1. A tree which moves in the wind.
Problem
The problem is to simulate in real time a realistic animation showing how trees are affected by wind at different speeds.
Implementation
The implementation will use techniques from [3], which has the potential to simulate realistic tree bending in real time. We have divided this project into layers of complexity, which we will tackle one by one. The simulation will be done in Unity and a skeletal mesh will be imported from Blender.
Step 1. Make a simple tree trunk model bend with the wind
We will import a skeletal mesh model from blender representing our tree (fig 2). It consists of
rigid bodies connected vertices along the trunk. The first challenge will be to make each rigid
body bend realistically when there is wind acceleration present.
Figure 2. A simple blender model.
We will calculate the moment on each joint with eq 1.
Njoint=Lbranch(MjointAwind) (1)
Where Njoint is the moment on the joint, Lbranch is the length of the branch, Mjoint is the mass of the branch from the joint to the end of the branch and Awind is the wind speed. The bending angle for the joint will then be calculated using it’s moment and an elasticity constant.
Rjoint=Njoint/Cjoint (2)
Where Rjoint is the rotation by the joint, Njoint is the moment for the joint and Cjointis an elasticity constant.
Step 2. Add a mass-spring system to ensure swaying
Wind is the force that sets the tree in motion. To simulate the sway that happens as a dampening effect of the stiffness of the tree, we will use a damped mass-spring system if needed. [1]
Step 3. Adding branches
Instead of having only one single stem to represent our tree we want to add branches. This will require a more complex 3D model of the tree with more skeletal arms. Additionally we will try to simulate the transmission of moment forces between the tree parts. The moment force from a branch will somehow be added to the connection point of the parent branch.
Extensions
Additional extensions can be made if there’s enough time left to make the simulation more complex, and the visualization prettier.
Add leaves to the tree and simulate them moving with the wind using a noise based simulation [2].
Implementing navier stokes to simulate the wind field around the tree with regards to the branches and leaves [3].
References
Our Blog: https://veryhappytreefriends.blogspot.com/
[3] 2006. Computer animation of swaying trees based on physical simulation. Computers & graphics. 30, 4 (Aug. 2006), 529–539.
Kommentarer
Skicka en kommentar