So, while building my own grass surface material, I came up with this very neat trick outlined by Graphisoft's own site:
"Tips and Tricks for Using Grass
•
If you want to let grass grow on a plane with a green material assigned to it, the Density setting, which can greatly influence render speed, can be reduced without affecting the overall look very much.
•
Grass that is thicker and longer than real-world grass helps simulate fuller growth without having to increase the Density value too much.
•
If the grass surface is very far from the camera you should consider using a texture instead of grass (for much faster rendering).
* Use a 3D Density gradient within the camera space in order to let 3D grass gradually fade into a simple grass texture with distance. This is the best way to reduce the number of unnecessary 3D grass blades.""
This is a great trick. Problem is, the coordinates don't work. The camera space just doesn't work like it should (put its own zero on the camera itself). And this only doesn't work in the grass. In other characteristics (like, say, diffuse), it works perfectly, and I can build a smooth gradient whose zero is the exact camera coordinate.
In the image attached, I have two slabs. One with only the grass attribute turned on (all the neat pictures and all the other effects turned off), and the other with only a diffuse effect turned on. As a way to help visualize things, I have the gradients on repeat (the final effect is supposedly without this repeat, of course).
In the black/white slab, the diffuse has a gradient effect with a 3D sphere type, coordinates 0,0,0, with a radius of 3.
The grass slab has a gradient effect on its grass attribute, with the same 3D sphere type, coordinates 0,0,0 camera space, with a radius of 1.
Moreover, if I move the camera, the underneath slab changes accordingly, while the above slab's grass maintains its exact shape.
This has been happening in all recent builds of Archicad, since 19 IIRC. I have never tried this before, so it's well possible that this has never worked at all.
Can you replicate this issue on your end, anyone? This is so weird, and forces me to have small patches of terrain so the render actually renders the grass (once you have too much of an area, the render simply decides to not even render the grass attribute, which is a clever way to avoid problems I guess).