Sellith don't use a multimeshinstance3D, and that tutorial is bad.
multimeshinstance3D should not be used, it is there, it is part of particle systems and can be used to do some nice things like groups of fish.
but it makes no sense for something that doesn't move, like grass.
1 - multimeshinstance3D sends a transform to the gpu for each instance of the mesh, and when your mesh is 4 vertices it is a waste of resources and will even slow down the scene.
2 - these transforms make sense if the object must move every frame, like with particles. using it for grass is bad.
3 - multimeshintance3D doesn't make use of culling, so it will lead to a loss of performance, specially in big open scenes like these.
what you have to do is:
create your terrain in blender
create the grass that goes over the terrain, and put it all in a single big mesh, or one mesh for each patch of grass (if the scene is massive).
for animating the grass, use a vertex shader on the grass material.
advantages:
- you are sending a single mesh, that even with a lot of stuff will still be smaller than something like a character.
- because it doesn't move it can be stored in the gpu as static, which is faster.
- you get complete control over the grass, and can add all the variations you want, you are not limited to a single mesh duplicated multiple times.
- modern gpus are good at rendering high polycount, you won't get a problem with performance.
- culling if using multiple patches of grass on a massive terrain.
- fewer nodes, easier setup.
Sellith I gotta make a seperate mesh in blender that matches the shape of my patch of grass each time I need a new patch of grass on my terrain, is there a more practical solution where I can draw the grass onto the terrain (or even draw a mesh?) or maybe some type of mask or is this solution more practical than I'm expecting? Appreciate the help.
godot, as far as i'm aware, doesn't have mesh batching as of yet, which would be what drawing grass on a terrain in editor would need. multimeshinstance3D is not it, it is designed wrong and misunderstood by people who seek quick, shallow ease of use of the engine.