Massive amounts of grass?

I apologize if this is not the right section.

I need to render an animation, which consists essentially of the camera moving very quickly trough a grass plain for about 30 seconds, in a straight line. I currently have a plane which has 100,000 particles (max). I could reduce the number at 80,000, at best, and still look good, and the camera only takes only 1/2 of the plane, but that does not fix the problem. For a 30 second animation it would easily take a plane 100 times longer, thus 100 times more particle. More then any computer could support.

So I ask, how could I produce such an animation?

I have included a .blend file, which needs to be openned in 2.45 by the way (so much easier for wind with texture offset).

Note : The skydome was there for a still image render, but it’s too small for an animation, so if you have any suggestion for a realistic sky, that works when advancing at high-speed, I’m always open to them ^^.


Grass245.blend (143 KB)

Here is a pic/better explanation. I need the answer :confused:

If you put the particles on a large cylinder, instead of a plane, you could spin the cylinder and pretend it’s the camera moving through a field.

Camera would have to be quite close to the ground, tho.
I tried the blend, but my computer doesn’t handle 100k particles so well.

That is an intresting idea. First problem, though, is that you can’t really spin the cylinder. For that, it would need to be perfectly round. But if it is, the camera view doesn’t really look like a flat plane anymore. Then, there are many of the 100k particles that are on the other side (50k or half). The grass is not dense enough then…(it really needs to be super-dense).

The best would be particles that appear when within range of camera, then disappear after. There would always be 100k on screen, and move, although I wonder if it’s feasible.

What if you used multiple planes, instead of one, and time-offset the particle emission.
Or would the fact that grass is static interfere with animating the particles?
I suppose you could give the start-stop offset one frame (a plane starts emitting at frame 500, and the emission is complete at 501, for example)
I’m really just speculating, you need an expert.

What about using delete and extrude?

Delete rows of vertices as the camera passes them, and extrude new rows at the other end. The plane could remain the same size throughout and you need never run out of terrain.

I can’t help thinking maybe you don’t need quite so many particles. Try playing around with the Child settings.
This setup uses 10,000 particles. and will render faster as well as allowing more leeway with the scene/animation. If you spend some time with it you could reduce it more and achieve a better result than this:-

How would I animate extrusion-delete with IPO’s? That is a good idea though.
In the first, there is 90k and in the second, 40k. You can see some texture trough it. But like I say, I need ~15 times the 100k. Rendering time is not an issue, at ~10 sec/frame it’s ok.
Anyway, I could have multiple objects and have the dispay setting at 1% or something. I could then work without super-lag. What I’m worried about is that the wind will seem to cut off all the time, since I use texture offset for simulating wind (here) The texture wont seamlessly blend between objects will it?

(Sorry, I’m a blender noob :spin:)

The 90k does look better.
Possibly you could animate the extrusion with Shape Keys. If the vertices already exist you could animate the extrusion, but I think it would mean using new shape keys for each extrusion. The delete I think would have to be done by hand; every x frames delete a row of vertices and extrude a row. I’m guessing the texture would be okay if the number of vertices remained the same but yeah, there might be a noticeable shift - couldn’t really say without testing it.

An alternative would be to divide the plane into strips and animate them moving from behind to in front of the camera. You could UV map the texture and change the map each time a section moves to the front.

It’s difficult to say without knowing the script, you are the best judge. There is a thread about the Shape Keys method here. The Wiki page is here.

[I haven’t been here long myself]

Take a look at the child simplification at the very end of the site. You should be able to control how much strands are displayed towards the end of your plane.
There are other tips in there as well how to reduce memory use etc…

Well what you could do is make it out of a whole bunch of planes, and when a plane is passed by, you just bump it back to the front of the line (and possibly change the seed value in the particles). Although, this solution would assume the camera wasn’t looking too far down the line…

EDIT: Gah! Sorry Organic. Didn’t realize you’d already posted a similar solution.

You can use a lattice to make it look flat. Look at my attachment.
If you open this blend you will need to enable the particle modifier for interactive display. I disabled it to minimize the filesize.


grass.blend (150 KB)

As Musk pointed out there is a feature specifically for this type of problem. More info about strand simplification can be found here.

You can make textures blend seamlessly across objects as long as you map the texture coordinates to the “Object” coordinates of an empty.