I am trying to build simple game and I just bumped on some logical problem that I am sure many of you already came across. I have a plane - floor and several sprites-trees that have tree texture on them. It basically looks like this: What I would like to do is to add dynamic shadows below the trees. I don't want to generate the shadows in runtime - I have texture for that. By "dynamic" I mean that I can control shadow length and rotation (simulating different times of day). And here I would like to ask you for best practice for that. I was thinking about adding small plane under each tree and control it's rotation and scaling directly from the game. The other idea I had was to use vertex shader to position, scale and rotate those planes. I was also thinking about using pixel shader to combine floor texture with shadow texture. The last idea has this advantage over the others that my floor may eventually be not flat, and the shadows would still be nicely casted. Also this would allow me to have shadows close to edges of the floor (which hangs in "space") and the shadows would not stick out from the floor. I would be grateful if you could suggest me some approach to the problem.