Best way to move through 1000 planes moving at different speeds? Camera or Move all the planes?

More of a methodology question than a code question this one…

I have about 1000 planes, each set at incrementing z points which are to be either scrolled towards the camera or to have the camera move through them (camera movement would be more efficient).

Now this is fine, however I need some of the planes to move at different speeds towards the camera. So that eliminates moving the camera, or does it?

What’s your opinion on the best way to handle this?

Move each tree in the forest (planes) is not an option as you will need a RTX9090TI.

Is there a way to achieve this with camera movement? Multiple scenes?, layers? and cameras? (z-indexing issues?)



I guess I would trying to solve this issue by rendering the trees with THREE.InstancedMesh since it allows you to transform instances individually. Instanced rendering will ensure that all trees are rendered with a single draw call so the performance should probably be good (depending on the complexity of the trees and other stuff in your scene).

Each of the 1000 planes actually has a unique textures on them (photos), some but not many are repeat textures, each of which fades out the closer it comes to the camera.

I tested moving 500 planes with the distance to camera calc modifying transparency and it drops my i9 9900k RTX3080 to 27 to 47fps, doesn’t even render on pixel 5.

The main issue is that I need to move some planes towards the camera at different speeds. I would much pref to move the camera and do some trick with multiple scenes or layers or something but I think z-indexing will be lost, which brings me back to moving the planes.

I think I’m going to need to create a set amount of planes and do texture switching on them and have them in rotation.