Is your feature request related to a problem? Please describe.
I recently had to switch from LOD terrain to non-LOD terrain as I'm developing a multiplayer game and LOD terrain currently does not support multiplayer and I doubt I have the skills (or time, as I am very close to the early access release deadline) to develop a custom solution for that.
The switch went fairly well, except one thing: Rendering all the grass kills your frame rate, even after optimization.
This was an issue I had with LOD terrain as well but to a lesser degree since you can at least limit it to only the first LOD, which was still too much in my opinion, especially for a small mesh that is repeated tens of thousands* of times and only needs maybe ~10 meters at most for the first LOD. However, with normal terrain, it is not possible to limit it at all, and it makes it impossible to increase render distance without either getting rid of the grass or decreasing density, which has already been decreased by a lot.
*To be specific, there are 53,203 grass meshes in the scene below. My computer could handle several times the render distance of that scene if this issue were to be solved, as that grass will kill my frame rate otherwise.
Here is the scene fairly optimized. I haven't further optimized the grass mesh yet but that will probably not get many more frames as the main issue here is the distance at which grass generates and the fact that I cannot implement proper LOD.

(Grass is made by me, though the trees are not mine.)
Describe the solution you'd like
I would like a way to use configurable distance-based LOD rather than the current chunk's LOD level. LOD distance shouldn't be uniform for every single object, as small-but-numerous objects such as grass and small rocks require very short distances between LOD levels, as well as a cull distance, while large and rare objects often need large distances between LOD levels.
Perhaps make a separate version of the VoxelInstanceLibraryMultiMeshItem (that is a rather long name) that is instead based on distance, as there is no LOD system for non-LOD terrain.
At the very least, I need a way to cull grass meshes past a certain distance. A simple "cull distance" option would be fine in this case.
Adding multiplayer support to LOD terrain would fix a good portion of the issue but it still wouldn't allow for the level of LOD control that should be a requirement for any game with large amounts of grass.
Describe alternatives you've considered
I tried optimizing the grass voxel instance and shader which did bring frames up a fair amount but the issue here is the sheer number of triangles rendering on the screen at the same time. There is no real way to fix this except an LOD system, which is not supported on non-LOD terrain.
I have also tried removing grass altogether, but the scene looks very bad without it. It isn't quite an option to just remove it completely.
Godot's built-in LOD system also seems to have zero effect on anything. Only thing I could get working was distance fade using a standard material but that would not work for this specific scenario, as the grass requires a special shader.
Is your feature request related to a problem? Please describe.
I recently had to switch from LOD terrain to non-LOD terrain as I'm developing a multiplayer game and LOD terrain currently does not support multiplayer and I doubt I have the skills (or time, as I am very close to the early access release deadline) to develop a custom solution for that.
The switch went fairly well, except one thing: Rendering all the grass kills your frame rate, even after optimization.
This was an issue I had with LOD terrain as well but to a lesser degree since you can at least limit it to only the first LOD, which was still too much in my opinion, especially for a small mesh that is repeated tens of thousands* of times and only needs maybe ~10 meters at most for the first LOD. However, with normal terrain, it is not possible to limit it at all, and it makes it impossible to increase render distance without either getting rid of the grass or decreasing density, which has already been decreased by a lot.
*To be specific, there are 53,203 grass meshes in the scene below. My computer could handle several times the render distance of that scene if this issue were to be solved, as that grass will kill my frame rate otherwise.
Here is the scene fairly optimized. I haven't further optimized the grass mesh yet but that will probably not get many more frames as the main issue here is the distance at which grass generates and the fact that I cannot implement proper LOD.
(Grass is made by me, though the trees are not mine.)
Describe the solution you'd like
I would like a way to use configurable distance-based LOD rather than the current chunk's LOD level. LOD distance shouldn't be uniform for every single object, as small-but-numerous objects such as grass and small rocks require very short distances between LOD levels, as well as a cull distance, while large and rare objects often need large distances between LOD levels.
Perhaps make a separate version of the VoxelInstanceLibraryMultiMeshItem (that is a rather long name) that is instead based on distance, as there is no LOD system for non-LOD terrain.
At the very least, I need a way to cull grass meshes past a certain distance. A simple "cull distance" option would be fine in this case.
Adding multiplayer support to LOD terrain would fix a good portion of the issue but it still wouldn't allow for the level of LOD control that should be a requirement for any game with large amounts of grass.
Describe alternatives you've considered
I tried optimizing the grass voxel instance and shader which did bring frames up a fair amount but the issue here is the sheer number of triangles rendering on the screen at the same time. There is no real way to fix this except an LOD system, which is not supported on non-LOD terrain.
I have also tried removing grass altogether, but the scene looks very bad without it. It isn't quite an option to just remove it completely.
Godot's built-in LOD system also seems to have zero effect on anything. Only thing I could get working was distance fade using a standard material but that would not work for this specific scenario, as the grass requires a special shader.